上一篇讲了如何从传感器中拿到数据,下面我们来分析下返回的数据,返回的数据格式如下
00 B0 D0 3F B2 51 01 03 04 01 13 02 FF
其中的第九位与第十位为温度值,正数的范围为16进制0X0000-0X7FFF,负数采用正数的补码方式传输,其范围为16进制0X8000-0XFFFF
如:
湿度上传16进制 0X0311,对应十进制785,表示78.5%
温度上传16进制 0X00FF,对应十进制255,表示25.5℃
温度上传16进制 0XFF9B,对应十进制100(0XFFFF-0XFF9B=0X64),表示-10.0℃
private void dealData(byte[] bytRecv) {
SubData subData = new SubData();
//00 B0 D0 3F B2 51 01 03 04 01 13 02 FF gong13
if (bytRecv[2] == 208) {
double wen = (bytRecv[9] * 256 + bytRecv[10]) * 1.0 / 10;
subData.temperature = wen.ToString();
if (bytRecv[9] >= 80 * 16)
{
wen = (255*256-(bytRecv[9] * 256 + bytRecv[10]))* 1.0 / 10;
subData.temperature = "-"+wen.ToString();
}
double shi = (bytRecv[11]*256 + bytRecv[12])*1.0 / 10;
subData.humidity = shi.ToString();
}
showResult(subData);
SetviceSubData("ht001", subData);
//Trace.Write(subData.temperature + "\n"+ subData.humidity+"\n");
//00 B0 D0 3F B2 51 01 03 04
}
代码就不上传了,想要可以私聊我,在开发过程中,不可避免出现问题,需要先调试走通,我是用的
设备是用的这款
https://s.click.taobao.com/w4mLMew