Exemple #1
0
        //自动上报数据
        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);
        }
Exemple #2
0
        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);
        }