Exemplo n.º 1
0
        public void TestRequestTempHumidity()
        {
            TempHumiditySensorAdapter ci = new TempHumiditySensorAdapter();
            Sensor s = new Sensor();

            s.ModuleNo = 0x23;
            int err;
            // fc 01 00 23 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a4 cf
            var r = this.GetSensorAcqResult();

            r.Sensor = s;
            ci.Request(ref r);
            byte[] buff = r.Request;
            Assert.AreEqual(32, buff.Length);
            Assert.AreEqual(0xFC, buff[0]); //模块号=设备号
            Assert.AreEqual(0x23, buff[3]);
            Assert.AreEqual(0xCF, buff[31]);
        }
Exemplo n.º 2
0
        public void TestParseTempHumidityResponse()
        {
            DbAccessorHelper.Init(new MsDbAccessor(connstr)); // 配置
            TempHumiditySensorAdapter ci = new TempHumiditySensorAdapter();
            string bs = "FD0100230000";                       //0-5

            bs += "01";                                       // 命令号 6=01
            bs += "000055";                                   // Hum: 7-9: 01 H L  = 85
            bs += "41CC0000";                                 // Temp 10-13,float, = 25.5
            bs += "000000000000000000000000000000005EDF";
            byte[] buff = ValueHelper.ToBytes(bs);
            byte   crc  = ValueHelper.CheckCRC8(buff, 1, 29);

            buff[30] = crc;
            SensorAcqResult r = new SensorAcqResult
            {
                Response = buff,
                Sensor   = new Sensor()
                {
                    ModuleNo    = 35,
                    ChannelNo   = 1,
                    TableColums = "Humidity,Temperature"
                }
            };

            ci.ParseResult(ref r);
            var data = r.Data;

            Assert.IsNotNull(data);

            Assert.AreEqual(25.50, data.RawValues[0]);
            Assert.AreEqual(0.85, data.RawValues[1]);
            bs         = "Fc0100230000"; //0-5
            bs        += "01";           // 命令号 6=01
            bs        += "000055";       // Hum: 7-9: 01 H L  = 85
            bs        += "41CC0000";     // Temp 10-13,float, = 25.5
            bs        += "000000000000000000000000000000005EDF";
            buff       = ValueHelper.ToBytes(bs);
            crc        = ValueHelper.CheckCRC8(buff, 1, 29);
            buff[30]   = crc;
            r.Response = buff;
            ci.ParseResult(ref r);
            Assert.AreEqual((int)Errors.ERR_INVALID_DATA, r.ErrorCode);
        }