//自动上报数据 public bool DecodeAutoUploadEsParamsCmd(ref EsData model) { var bufferIndex = 0; CmdByte = 0x27; if (DataLen != 30) { return(false); } var flag = Utility.BytesToUint16(Data, bufferIndex, false); bufferIndex += 2; model.PmState = (byte)((flag >> 14) & 0x01); model.CmpState = (byte)((flag >> 13) & 0x01); model.NoiseState = (byte)((flag >> 12) & 0x01); model.WindDirState = (byte)((flag >> 11) & 0x01); model.WindSpeedState = (byte)((flag >> 10) & 0x01); model.EsState = (byte)((flag >> 9) & 0x01); model.Pm25 = Utility.BytesToInt32(Data, bufferIndex, false); bufferIndex += 4; model.Pm100 = Utility.BytesToInt32(Data, bufferIndex, false); bufferIndex += 4; model.Cmp = Utility.BytesToInt32(Data, bufferIndex, false); bufferIndex += 4; model.Noise = Data[bufferIndex] + Data[bufferIndex + 1] / 10.0; bufferIndex += 2; //addr bufferIndex += 1; model.WindDir = (ushort)(Utility.BytesToUint16(Data, bufferIndex, false) / 10); bufferIndex += 2; //addr bufferIndex += 1; model.WindSpeed = Utility.BytesToUint16(Data, bufferIndex, false) / 10.0; bufferIndex += 2; model.Temperature = (sbyte)Data[bufferIndex] + (sbyte)Data[bufferIndex + 1] / 100.0; bufferIndex += 2; model.Humidity = Data[bufferIndex] + Data[bufferIndex + 1] / 100.0; return(true); }
public bool DecodeReadAllDataCmd(ref EsData model) { var bufferIndex = 0; CmdByte = 0x27; if (DataLen != 26) { return(false); } var flag = Utility.BytesToUint16(Data, bufferIndex, false); bufferIndex += 2; model.PmState = (byte)((flag >> 5) & 0x01); model.CmpState = (byte)((flag >> 4) & 0x01); model.NoiseState = (byte)((flag >> 3) & 0x01); model.WindDirState = (byte)((flag >> 2) & 0x01); model.WindSpeedState = (byte)((flag >> 1) & 0x01); model.EsState = (byte)(flag & 0x01); model.Pm25 = Utility.BytesToInt32(Data, bufferIndex, false); bufferIndex += 4; model.Pm100 = Utility.BytesToInt32(Data, bufferIndex, false); bufferIndex += 4; model.Cmp = Utility.BytesToInt32(Data, bufferIndex, false); bufferIndex += 4; model.Noise = Data[bufferIndex] + Data[bufferIndex + 1] / 10.0; bufferIndex += 2; //addr bufferIndex += 1; model.WindDir = Utility.BytesToUint16(Data, bufferIndex, false); bufferIndex += 2; //addr bufferIndex += 1; model.WindSpeed = Utility.BytesToUint16(Data, bufferIndex, false) / 10.0; bufferIndex += 2; model.Temperature = (sbyte)Data[bufferIndex] + (sbyte)Data[bufferIndex + 1] / 10.0; bufferIndex += 2; model.Humidity = Data[bufferIndex] + Data[bufferIndex + 1] / 100.0; return(true); }