| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | using Aitex.Core.Util;using MECF.Framework.Common.Net;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace MECF.Framework.Common.Device.Festo{    public class FestoFlag : Singleton<FestoFlag>    {        #region 内部变量        short _flag = 0;        object _locker = new object();        #endregion        /// <summary>        /// 产生数据标识        /// </summary>        /// <returns></returns>        private void GenerateDataFlag()        {            lock(_locker)            {                if(_flag+1==short.MaxValue)                {                    _flag = 1;                }                else                {                    _flag++;                }            }        }        /// <summary>        /// 产生数据标识数组        /// </summary>        /// <returns></returns>        public byte[] GenerateDataFlagBuffer(IByteTransform byteTransform)        {            GenerateDataFlag();            return byteTransform.GetBytes(_flag);        }    }}
 |