| | |
| | | * data1L data1H-----18B20返回温度 |
| | | * 注意:粮温返回数据高位在后,低位在前,转换为十进制后乘以0.0625,得到实际温度值 |
| | | * 仓温湿度高位在前,低位在后,转换为十进制后乘以0.1得到实际温湿度值 |
| | | * |
| | | * 02 |
| | | * 89 00 7A 00 E2 00 8C 00 7D 00 E9 00 99 00 82 00 EC 00 87 00 87 00 ED 00 83 00 77 00 EF 00 92 00 7D 00 08 01 87 00 77 00 03 01 7F 00 7A 00 F6 00 |
| | | * 9B 00 5D 00 D1 00 |
| | | * 84 00 65 00 D4 00 8D 00 6D 00 D6 00 89 00 6E 00 DD 00 87 00 61 00 CA 00 81 00 6B 00 DA 00 81 00 68 00 E2 00 86 00 69 00 D0 00 |
| | | * 87 00 6D 00 E4 00 88 00 71 00 07 01 8E 00 76 00 13 01 82 00 75 00 EB 00 86 00 6D 00 DB 00 83 00 71 00 F1 00 87 00 7B 00 03 01 79 00 7D 00 F7 00 |
| | | * 02 C1 00 6D AA BB CC |
| | | * @param strMsg |
| | | */ |
| | | private void analysisGrainStep1(InetAddress address, String strMsg) { |
| | | strMsg = strMsg.substring(0,strMsg.length()-6); |
| | | log.info("完整的数据体:"+strMsg); |
| | | int start = 0; |
| | | int len = 1 * 2; |
| | | String tag = strMsg.substring(start, start + 2); |
| | |
| | | //仓内湿度 |
| | | start = 1 * 2; |
| | | len = 2 * 2; |
| | | tag = strMsg.substring(start, start + len); |
| | | tag = strMsg.substring(strMsg.length()-8,strMsg.length() -4); |
| | | double hIn = BytesUtil.hexToInt(tag) * 0.1; |
| | | |
| | | //仓内温度 |
| | | start = 3 * 2; |
| | | len = 2 * 2; |
| | | tag = strMsg.substring(start, start + len); |
| | | tag = strMsg.substring(strMsg.length()-4,strMsg.length() ); |
| | | double tIn = BytesUtil.hexToInt(tag) * 0.1; |
| | | |
| | | GatewayDevice device = reqData.getDevice(); |
| | |
| | | |
| | | int sumNum = cableZ * cableY * cableX; |
| | | //粮温信息 |
| | | start = 5 * 2; |
| | | start = 2; |
| | | len = 2 * 2; |
| | | List<Double> points = new ArrayList<>(); |
| | | double temp = 0.0; |
| | | for (int i = 0; i < sumNum; i++) { |
| | | start = start + i * 2 * 2; |
| | | start = i * 2 * 2 +2; |
| | | tag = strMsg.substring(start, start + len); |
| | | temp = BytesUtil.hexToInt(BytesUtil.tran_LH(tag)) * 0.0625; |
| | | temp = NumberUtil.keepPrecision(temp, 1); |