diff --git a/DM_Weight/App.config b/DM_Weight/App.config index 3cbbe58..f7ff196 100644 --- a/DM_Weight/App.config +++ b/DM_Weight/App.config @@ -3,7 +3,7 @@ - + - + diff --git a/DM_Weight/Port/PortUtil.cs b/DM_Weight/Port/PortUtil.cs index 1cea921..13f3e1b 100644 --- a/DM_Weight/Port/PortUtil.cs +++ b/DM_Weight/Port/PortUtil.cs @@ -1883,7 +1883,65 @@ namespace DM_Weight.Port } //FridgeOperate = false; } - #endregion + #endregion + + #region 新冰箱抽屉获取温度 + + /// + /// 获取冰箱温度 + /// + /// + public async Task GetFridgeTemperatureForNew(int iIndex) + { + float temperature = 0.0f; + try + { + fridgeSerial.DiscardInBuffer(); + byte bAddress; + if (iIndex == 1) + { + bAddress = 0x01; + } + else + { + bAddress = 0x02; + } + byte[] buffer = new byte[] { bAddress, 0x03, 0x00, 0x03, 0x02 }; + + //获取数组CRC校验码 + byte[] byteDate = CRC16MODBUS.CrcModBus(buffer); + //Array.Reverse(byteDate); + int dataLength = buffer.Length; + Array.Resize(ref buffer, dataLength + byteDate.Length); + for (int i = 0; i < byteDate.Length; i++) + { + buffer[dataLength + i] = byteDate[i]; + } + + logger.Info($"获取冰箱温度【{Convert.ToHexString(buffer)}】"); + fridgeSerial.Write(buffer, 0, 8); + + byte[] retByte = await GetBufferByPort(fridgeSerial, 7); + + logger.Info($"获取冰箱温度返回【{Convert.ToHexString(retByte)}】"); + + if (retByte != null && retByte.Length >= 7) + { + var hight = retByte[3]; + var low = retByte[4]; + int iHight = Convert.ToInt32(hight << 8); + int iLow = Convert.ToInt32(retByte[4]); + temperature = Convert.ToSingle(iHight + iLow) / 10; + } + } + catch (Exception ex) + { + + logger.Info($"获取冰箱温度发生异常:ex:{ex.Message}"); + } + return temperature; + } + #endregion } } diff --git a/DM_Weight/ViewModels/HomeWindowViewModel.cs b/DM_Weight/ViewModels/HomeWindowViewModel.cs index 30bf3c2..230225a 100644 --- a/DM_Weight/ViewModels/HomeWindowViewModel.cs +++ b/DM_Weight/ViewModels/HomeWindowViewModel.cs @@ -459,7 +459,7 @@ namespace DM_Weight.ViewModels { string retStr = string.Empty; byte[] data = null; - float retT = await _portUtil.GetFridgeTemperature(1); + float retT = await _portUtil.GetFridgeTemperatureForNew(1); Thread.Sleep(80); WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT), 2)}℃"; logger.Info(WD); @@ -706,7 +706,7 @@ namespace DM_Weight.ViewModels { string retStr = string.Empty; byte[] data = null; - float retT = await _portUtil.GetFridgeTemperature(1); + float retT = await _portUtil.GetFridgeTemperatureForNew(1); Thread.Sleep(80); WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT), 2)}℃;"; AlertColor = Brushes.White;