public virtual IEnumerable <DataContext> this[DataFlag flag] { get { return(contextLookup[flag]); } }
public virtual async Task <DbResult> UpdateFlagAsync(T item, DataFlag flag) { if (typeof(IFlagEntity).IsAssignableFrom(typeof(T))) { ((IFlagEntity)item).Flag = flag; } return(await UpdateAsync(item)); }
public static void Apply(this IProtocolConverter protocolConverter, byte[] destination, ref int index, object data, DataFlag dataFlag) { protocolConverter.Apply(destination, ref index, new DataContext() { Data = data, DataFlag = dataFlag }); }
public virtual async Task <DbResult> UpdateFlagAsync(TKey id, DataFlag flag) { var item = await GetByIdAsync(id); if (typeof(IFlagEntity).IsAssignableFrom(typeof(T))) { ((IFlagEntity)item).Flag = flag; } return(await UpdateAsync(item)); }
/// <summary> /// /// </summary> /// <param name="data"></param> /// <param name="dataLength"></param> /// <param name="refValue"></param> public PumpProcessor(byte[] data, int Len, ref object oPars) { //����У�� // if (Len <= 2) { oPars = null; _dataFlag = DataFlag.LENGTH_ERROR; return; } //����У�� byte[] DataVal = new byte[Len - 2]; for (int i = 0; i < Len - 2; i++) { DataVal[i] = data[i]; } crc = CRC.CRC16(DataVal); //�������� if (data[Len - 2] == crc[0] && data[Len - 1] == crc[1]) { address = (int)data[3];//�õ�վ�� switch (data[5]) { //ʵʱ���� case PumpDefine.FCDefine.FC_READREAL: { // �������ݳ���Ӧ��Ϊ46 // �п����ϴ�����Ϊ28��CRCУ����ȷ������ // if (data.Length == 46) { //Read_Rlt(data, ref refValue); PumpRealData prd = ParseRealData(data); oPars = prd; } else { _dataFlag = DataFlag.LENGTH_ERROR; oPars = null; return; } } break; } this._dataFlag = DataFlag.OK; } else { this._dataFlag = DataFlag.CRC_ERROR; oPars = null; } }
/// <summary> /// /// </summary> /// <param name="data"></param> /// <param name="dataLength"></param> /// <param name="refValue"></param> public PumpProcessor(byte[] data, int Len, ref object oPars) { //进行校验 // if (Len <= 2) { oPars = null; _dataFlag = DataFlag.LENGTH_ERROR; return; } //进行校验 byte[] DataVal = new byte[Len - 2]; for (int i = 0; i < Len - 2; i++) { DataVal[i] = data[i]; } crc = CRC.CRC16(DataVal); //分析数据 if (data[Len - 2] == crc[0] && data[Len - 1] == crc[1]) { address = (int)data[3];//得到站号 switch (data[5]) { //实时数据 case PumpDefine.FCDefine.FC_READREAL: { // 正常数据长度应该为46 // 有可能上传长度为28且CRC校验正确的数据 // if (data.Length == 46) { //Read_Rlt(data, ref refValue); PumpRealData prd = ParseRealData(data); oPars = prd; } else { _dataFlag = DataFlag.LENGTH_ERROR; oPars = null; return; } } break; } this._dataFlag = DataFlag.OK; } else { this._dataFlag = DataFlag.CRC_ERROR; oPars = null; } }
public override bool Equals(object obj) { DataFlag otherObj = (DataFlag)obj; return(otherObj.InternalValue.Equals(this.InternalValue)); }
/// <summary> /// 解析来自口门测控仪数据 /// </summary> /// <param name="data">用户数据</param> /// <param name="dataLength"></param> /// <param name="refValue">返回结果</param> public GateReader(byte[] data, ref object oPars) { int dataLength = 0; if (data != null) { dataLength = data.Length; } //TODO: len < 2, 2007-06-25 Added // //进行校验 if (dataLength <= 2) { oPars = null; _dataFlag = DataFlag.LENGTH_ERROR; return; } byte[] dataValue = new byte[dataLength - 2]; for (int i = 0; i < dataLength - 2; i++) { dataValue[i] = data[i]; } crc = CRC.CRC16(dataValue); //分析数据(带校验) // // crc success // if (data[dataLength - 2] == crc[0] && data[dataLength - 1] == crc[1]) { //得到站号 comAdr = (int)data[3]; // data[5] - Function code // switch (data[5]) { //参数数据 case 0x23: Read_Par(data, ref oPars); break; //实时数据 case 0x24: Read_Rlt(data, ref oPars); break; //历史记录 case 0x25: { if (!Read_His(data, ref oPars)) { _dataFlag = DataFlag.DATA_ERROR; oPars = null; return; } break; } //输入水量记录 // case 0x37: Read_InWater(data, ref oPars); break; //最后一条记录 // case 0x3C: if (!Read_His(data, ref oPars)) { _dataFlag = DataFlag.DATA_ERROR; oPars = null; return; } break; //读取状态量 // default: Read_Sts(data, ref oPars); break; } _dataFlag = DataFlag.OK; } else { _dataFlag = DataFlag.CRC_ERROR; oPars = null; } }
public bool Contains(DataFlag key) { return(contextLookup.Contains(key)); }
public static T Resolve <T>(this IProtocolConverter protocolConverter, byte[] source, ref int index, DataFlag checkDataFlag) { var dataContext = protocolConverter.Resolve(source, ref index); if (dataContext.DataFlag != checkDataFlag) { throw new ProtocolException($"Data flag should be '{checkDataFlag}' bus is ''{dataContext.DataFlag}", ErrorCode.BadRequest); } return((T)dataContext.Data); }
public static bool TryResolveSingle <T>(this ILookup <DataFlag, DataContext> lookup, DataFlag dataFlag, out T data) { var array = lookup[dataFlag].Select(c => c.Data).OfType <T>().ToArray(); data = array.FirstOrDefault(); return(array.Length == 1); }
public static bool TryResolve <T>(this ILookup <DataFlag, DataContext> lookup, DataFlag dataFlag, out T[] data) { data = lookup[dataFlag].Select(c => c.Data).OfType <T>().ToArray(); return(data.Length > 0); }
public static T ResolveSingle <T>(this ILookup <DataFlag, DataContext> lookup, DataFlag dataFlag) { if (lookup.TryResolveSingle <T>(dataFlag, out var data)) { return(data); } throw new ProtocolException($"Data for flag '{dataFlag}' not found or found more than 1", ErrorCode.DataNotFound); }
public static T[] Resolve <T>(this ILookup <DataFlag, DataContext> lookup, DataFlag dataFlag) { var result = lookup[dataFlag].Select(c => c.Data).OfType <T>().ToArray(); return(result); }
/// <summary> /// �������Կ��Ų�������� /// </summary> /// <param name="data">�û�����</param> /// <param name="dataLength"></param> /// <param name="refValue">���ؽ��</param> public GateReader(byte[] data, ref object oPars) { int dataLength = 0; if (data != null) { dataLength = data.Length; } //TODO: len < 2, 2007-06-25 Added // //����У�� if (dataLength <= 2) { oPars = null; _dataFlag = DataFlag.LENGTH_ERROR; return; } byte[] dataValue = new byte[dataLength - 2]; for (int i = 0; i < dataLength - 2; i++) { dataValue[i] = data[i]; } crc = CRC.CRC16(dataValue); //��������(��У��) // // crc success // if (data[dataLength - 2] == crc[0] && data[dataLength - 1] == crc[1]) { //�õ�վ�� comAdr = (int)data[3]; // data[5] - Function code // switch (data[5]) { //�������� case 0x23: Read_Par(data, ref oPars); break; //ʵʱ���� case 0x24: Read_Rlt(data, ref oPars); break; //��ʷ��¼ case 0x25: { if (!Read_His(data, ref oPars)) { _dataFlag = DataFlag.DATA_ERROR; oPars = null; return; } break; } //����ˮ����¼ // case 0x37: Read_InWater(data, ref oPars); break; //���һ����¼ // case 0x3C: if (!Read_His(data, ref oPars)) { _dataFlag = DataFlag.DATA_ERROR; oPars = null; return; } break; //��ȡ״̬�� // default: Read_Sts(data, ref oPars); break; } _dataFlag = DataFlag.OK; } else { _dataFlag = DataFlag.CRC_ERROR; oPars = null; } }