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.Wago
- {
- public class WagoFlag : Singleton<WagoFlag>
- {
- #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);
- }
- }
- }
|