From 24a3002084a31e94d264c6c2d07df3df0d7e6a59 Mon Sep 17 00:00:00 2001 From: maqiao <625215135@qq.com> Date: Wed, 29 Oct 2025 11:46:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=B0=E7=AE=B1=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=8F=91=E6=8C=87=E4=BB=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DM_Weight/Port/PortUtil.cs | 234 +++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) diff --git a/DM_Weight/Port/PortUtil.cs b/DM_Weight/Port/PortUtil.cs index 13f3e1b..5d4250c 100644 --- a/DM_Weight/Port/PortUtil.cs +++ b/DM_Weight/Port/PortUtil.cs @@ -1942,6 +1942,240 @@ namespace DM_Weight.Port } return temperature; } + /// + /// 冰箱使能 + /// + /// + public async Task FridegOpenForNew(int iIndex) + { + try + { + fridgeSerial.DiscardInBuffer(); + byte bAddress; + if (iIndex == 1) + { + bAddress = 0x01; + } + else + { + bAddress = 0x02; + } + //byte[] buffer = new byte[] { bAddress, 0x06, 0x10, 0xD4, 0x00, 0x01, 0x0C, 0xF2 }; + byte[] buffer = new byte[] { 0x01, 0x06, 0x00, 0x10,0x00, 0x01 }; + //获取数组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); + await Task.Delay(80); + } + catch (Exception ex) + { + logger.Info($"冰箱使能发生异常:ex:{ex.Message}"); + } + FridgeOperate = false; + } + /// + /// 冰箱失能 + /// + /// + public async Task FridgeOffForNew(int iIndex) + { + try + { + fridgeSerial.DiscardInBuffer(); + byte bAddress; + if (iIndex == 1) + { + bAddress = 0x01; + } + else + { + bAddress = 0x02; + } + //byte[] buffer = new byte[] { bAddress, 0x06, 0x10, 0xD4, 0x00, 0x00, 0xCD, 0x32 }; + byte[] buffer = new byte[] { 0x01, 0x06, 0x00, 0x11, 0x00, 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); + await Task.Delay(80); + } + catch (Exception ex) + { + logger.Info($"冰箱失能发生异常:ex:{ex.Message}"); + } + FridgeOperate = false; + } /// + /// 冰箱报警使能 + /// + /// + public async Task FridgeAlarmOnForNew(int iIndex) + { + try + { + fridgeSerial.DiscardInBuffer(); + byte bAddress; + if (iIndex == 1) + { + bAddress = 0x01; + } + else + { + bAddress = 0x02; + } + //byte[] buffer = new byte[] { bAddress, 0x06, 0x10, 0xD5, 0x00, 0x01, 0x5D, 0x32 }; + byte[] buffer = new byte[] { 0x01, 0x10, 0x00, 0x0E, 0x00, 0x02,0x04,0x00,0x00 }; + //获取数组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); + await Task.Delay(80); + } + catch (Exception ex) + { + logger.Info($"冰箱报警使能发生异常:ex:{ex.Message}"); + } + FridgeOperate = false; + + } + + /// + /// 冰箱报警失能 + /// + /// + public async Task FridgeAlarmOffForNew(int iIndex) + { + try + { + fridgeSerial.DiscardInBuffer(); + byte bAddress; + if (iIndex == 1) + { + bAddress = 0x01; + } + else + { + bAddress = 0x02; + } + //byte[] buffer = new byte[] { bAddress, 0x06, 0x10, 0xD5, 0x00, 0x00, 0x9C, 0xF2 }; + byte[] buffer = new byte[] { 0x01, 0x10, 0x00, 0x0E, 0x00, 0x02, 0x04, 0x00, 0x00 }; + //获取数组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); + await Task.Delay(80); + } + catch (Exception ex) + { + logger.Info($"冰箱报警失能发生异常:ex:{ex.Message}"); + } + FridgeOperate = false; + } + /// + /// 冰箱温度设定最小 + /// + /// + public async Task FridgeMinSettingForNew(float min, int iIndex) + { + try + { + + int iMix = Convert.ToInt32(min * 10); + fridgeSerial.DiscardInBuffer(); + //byte[] bufferMin = new byte[] { 0x01, 0x06, 0x10, 0xC9, 0x00, 0x15, 0x9C, 0xFB }; + byte bAddress; + if (iIndex == 1) + { + bAddress = 0x01; + } + else + { + bAddress = 0x02; + } + byte[] bufferMin = new byte[] { bAddress, 0x06, 0x10, 0xC9, 0x00, (byte)(iMix & 0xff) }; + //获取数组CRC校验码 + byte[] byteDate = CRC16MODBUS.CrcModBus(bufferMin); + //Array.Reverse(byteDate); + int dataLength = bufferMin.Length; + Array.Resize(ref bufferMin, dataLength + byteDate.Length); + for (int i = 0; i < byteDate.Length; i++) + { + bufferMin[dataLength + i] = byteDate[i]; + } + logger.Info($"冰箱温度设定Min:【{Convert.ToHexString(bufferMin)}】"); + fridgeSerial.Write(bufferMin, 0, 8); + } + catch (Exception ex) + { + logger.Info($"获取冰箱温度发生异常:ex:{ex.Message}"); + } + } + /// + /// 冰箱温度设定最大 + /// + /// + public async Task FridgeMaxSettingForNew(float max, int iIndex) + { + try + { + int iMax = Convert.ToInt32(max * 10); + fridgeSerial.DiscardInBuffer(); + //byte[] bufferMin = new byte[] { 0x01, 0x06, 0x10, 0xC9, 0x00, 0x15, 0x9C, 0xFB }; + byte bAddress; + if (iIndex == 1) + { + bAddress = 0x01; + } + else + { + bAddress = 0x02; + } + byte[] bufferMax = new byte[] { bAddress, 0x06, 0x10, 0xC8, 0x00, (byte)(iMax & 0xff) }; + //获取数组CRC校验码 + byte[] byteDate = CRC16MODBUS.CrcModBus(bufferMax); + //Array.Reverse(byteDate); + int dataLength = bufferMax.Length; + Array.Resize(ref bufferMax, dataLength + byteDate.Length); + for (int i = 0; i < byteDate.Length; i++) + { + bufferMax[dataLength + i] = byteDate[i]; + } + logger.Info($"冰箱温度设定Max:【{Convert.ToHexString(bufferMax)}】"); + fridgeSerial.Write(bufferMax, 0, 8); + } + catch (Exception ex) + { + logger.Info($"获取冰箱温度发生异常:ex:{ex.Message}"); + } + } #endregion } }