/// <summary> /// 先 环境事件 显示和存储 /// </summary> public void NewEventRecord(EventType eventType, string area, DeviceRunModel runModel, string strContent) { commonCls.NewEnvirEventRecord(eventType, area, runModel, strContent); if (NewEventShowEvent != null) { NewEventShowEvent(new NewEventEventArgs(eventType, area, strContent, "", "", DateTime.Now)); } }
/// <summary> /// 环境事件记录 /// </summary> public void NewEnvirEventRecord(EventType type, string area, DeviceRunModel reason, string content) { string strTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string strSql = "insert into tb_EnviriEvent (Type,Area,Reason,EventContent,Time)values " + "('" + type.ToString() + "','" + area + "','" + reason.ToString() + "'," + "'" + content + "','" + strTime + "')"; datalogic.SqlComNonQuery(strSql); }
public bool OperDevice(int Addr, OnOffRelay bOnOff, string area, DeviceRunModel runModel, bool blRecord, IsWait isWait) { bool isok = false; try { bool blRet = false; bytOperXF[0] = (byte)Addr; bytOperXF[1] = 0x05; bytOperXF[2] = 0x00; bytOperXF[4] = (byte)bOnOff; bytOperXF[5] = 0x00; ushort crc = crc16.CalculateCrc16(bytOperXF, 6); bytOperXF[7] = (byte)(crc); bytOperXF[6] = (byte)(crc >> 8); byte[] bRece = new byte[8]; int iReceLen = serial.SendReceByte(bytOperXF, ref bRece, 10, isWait); //txt 发送 接受 txtLog.TxtWriteByte("XF.txt", "OnOff Send", bytOperXF, false); if (iReceLen > 0) { txtLog.TxtWriteByte("XF.txt", "OnOff Rece", bRece, true); } if (iReceLen == 8 && bRece[0] == bytOperXF[0] && bRece[1] == bytOperXF[1] && bRece[2] == bytOperXF[2] && bRece[3] == bytOperXF[3] && bRece[4] == bytOperXF[4] && bRece[5] == bytOperXF[5] && bRece[6] == bytOperXF[6] && bRece[7] == bytOperXF[7]) { blRet = true; if (blRecord) { EventType eventType = EventType.新风; string strContent = bOnOff.ToString(); if (eventType != EventType.初值) { NewEventRecord(eventType, area, runModel, strContent); } } } return(blRet); } catch (Exception ex) { } return(isok); }
/// <summary> /// 更新和记录 继电器 控制设备 运行或关闭 /// </summary> public void DeviceNewAndRecord(int iRoomIndex, EventType eventType, DeviceRunState onOrOff, DeviceRunModel handOrAuto, bool blRecord) { EventContent eventContent = EventContent.开启; if (onOrOff == DeviceRunState.运行) { eventContent = EventContent.开启; if (eventType == EventType.烘干) { lock (clsEnvirControl.listRoom) { clsEnvirControl.listRoom[iRoomIndex].roomHot.State = DeviceRunState.运行; } } else if (eventType == EventType.除湿) { lock (clsEnvirControl.listRoom) { clsEnvirControl.listRoom[iRoomIndex].roomDehumi.State = DeviceRunState.运行; } } else if (eventType == EventType.新风) { lock (clsEnvirControl.listRoom) { clsEnvirControl.listRoom[iRoomIndex].roomFan.State = DeviceRunState.运行; } } } else if (onOrOff == DeviceRunState.停止) { eventContent = EventContent.关闭; if (eventType == EventType.烘干) { lock (clsEnvirControl.listRoom) { clsEnvirControl.listRoom[iRoomIndex].roomHot.State = DeviceRunState.停止; } } else if (eventType == EventType.除湿) { lock (clsEnvirControl.listRoom) { clsEnvirControl.listRoom[iRoomIndex].roomDehumi.State = DeviceRunState.停止; } } else if (eventType == EventType.新风) { lock (clsEnvirControl.listRoom) { clsEnvirControl.listRoom[iRoomIndex].roomFan.State = DeviceRunState.停止; } } } if (handOrAuto == DeviceRunModel.手动) { if (eventType == EventType.烘干) { lock (clsEnvirControl.listRoom) { clsEnvirControl.listRoom[iRoomIndex].roomHot.HandOrAuto = DeviceRunModel.手动; clsEnvirControl.listRoom[iRoomIndex].roomHot.TimeHand = DateTime.Now; } } else if (eventType == EventType.除湿) { lock (clsEnvirControl.listRoom) { clsEnvirControl.listRoom[iRoomIndex].roomDehumi.HandOrAuto = DeviceRunModel.手动; clsEnvirControl.listRoom[iRoomIndex].roomDehumi.TimeHand = DateTime.Now; } } else if (eventType == EventType.新风) { lock (clsEnvirControl.listRoom) { clsEnvirControl.listRoom[iRoomIndex].roomFan.HandOrAuto = DeviceRunModel.手动; clsEnvirControl.listRoom[iRoomIndex].roomFan.TimeHand = DateTime.Now; } } } if (blRecord) { string strSql = "insert into tb_EnviriEvent (Type,Area,Reason,EventContent,Time)values " + "('" + eventType.ToString() + "','" + clsEnvirControl.listRoom[iRoomIndex].StrName + "','" + handOrAuto.ToString() + "'," + "'" + eventContent.ToString() + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')"; datalogic.SqlComNonQuery(strSql); //if (NewEventShowEvent != null) //{ // string strPoint = strArea; // if (blMoreAir) // strPoint += btAddr.ToString(); // if (content == EventContent.设置温度) // { // NewEventShowEvent(new NewEventEventArgs(EventType.空调, strPoint, content.ToString() + btSetTemp.ToString(), "", "")); // } // else // { // NewEventShowEvent(new NewEventEventArgs(EventType.空调, strPoint, content.ToString(), "", "")); // } //} } }
/// <summary> /// 开启关闭 设备 空调、加热、除湿、新风 /// </summary> /// <param name="Addr">板地址</param> /// <param name="bOnOff">开启关闭4</param> /// <param name="bHotDehumi">继电器序号 加热为0 除湿为1 即继电器0 继电器1 </param> public bool OnOffDevice(int Addr, OnOffRelay bOnOff, DeviceRelayNo bRelayNo, string area, DeviceRunModel runModel, bool blRecord, IsWait isWait) { bool blRet = false; SendRelay[0] = (byte)Addr; SendRelay[1] = 0x05; SendRelay[2] = 0x00; SendRelay[3] = (byte)bRelayNo; SendRelay[4] = (byte)bOnOff; SendRelay[5] = 0x00; ushort crc = crc16.CalculateCrc16(SendRelay, 6); SendRelay[7] = (byte)(crc); SendRelay[6] = (byte)(crc >> 8); byte[] bRece = new byte[8]; int iReceLen = serial.SendReceByte(SendRelay, ref bRece, 10, isWait); //txt 发送 接受 txtLog.TxtWriteByte("Io.txt", "OnOff Send", SendRelay, false); if (iReceLen > 0) { txtLog.TxtWriteByte("Io.txt", "OnOff Rece", bRece, true); } if (iReceLen == 8 && bRece[0] == SendRelay[0] && bRece[1] == SendRelay[1] && bRece[2] == SendRelay[2] && bRece[3] == SendRelay[3] && bRece[4] == SendRelay[4] && bRece[5] == SendRelay[5] && bRece[6] == SendRelay[6] && bRece[7] == SendRelay[7]) { blRet = true; if (blRecord) { EventType eventType = EventType.初值; switch (bRelayNo) { case DeviceRelayNo.除湿: eventType = EventType.除湿; break; case DeviceRelayNo.烘干: eventType = EventType.烘干; break; case DeviceRelayNo.警灯: eventType = EventType.警灯; break; case DeviceRelayNo.新风: eventType = EventType.新风; break; } string strContent = bOnOff.ToString(); if (eventType != EventType.初值) { NewEventRecord(eventType, area, runModel, strContent); //commonCls.NewEnvirEventRecord(eventType, area, runModel, strContent); //if (NewEventShowEvent != null) //{ // NewEventShowEvent(new NewEventEventArgs(eventType, area, strContent, "", "")); //} } } } return(blRet); }
///// <summary> ///// 新告警显示 事件 ///// </summary> //public event NewEventShowEventHandler NewAlarmShowEvent; #endregion /// <summary> /// 空调控制 及SQL 存储 /// </summary> public bool AirControl(AirFactoryType factory, byte btAddr, EventContent content, byte btSetTemp, string strArea, DeviceRunModel runMode, bool blMoreAir, IsWait isWait) { bool blRet = false; string strContent = content.ToString(); #region 大金 空调控制 if (factory == AirFactoryType.大金) { if (content == EventContent.开启 || content == EventContent.关闭) { if (content == EventContent.开启) { blRet = DjAirControl(btAddr, DjControlType.开关, (byte)DjOnOff.开启, isWait); } else if (content == EventContent.关闭) { blRet = DjAirControl(btAddr, DjControlType.开关, (byte)DjOnOff.关闭, isWait); } } else if (content == EventContent.设置制冷 || content == EventContent.设置制热 || content == EventContent.设置除湿) { if (content == EventContent.设置制冷) { blRet = DjAirControl(btAddr, DjControlType.模式, (byte)DjModel.制冷, isWait); } else if (content == EventContent.设置制热) { blRet = DjAirControl(btAddr, DjControlType.模式, (byte)DjModel.制热, isWait); } else if (content == EventContent.设置除湿) { } } else if (content == EventContent.设置温度) { blRet = DjAirControl(btAddr, DjControlType.温度, btSetTemp, isWait); strContent = content.ToString() + btSetTemp.ToString(); } } #endregion #region 其他 空调控制 else if (factory == AirFactoryType.其他) { if (content == EventContent.开启 || content == EventContent.关闭) { if (content == EventContent.开启) { blRet = OtherAirControl(btAddr, OtherAirControlType.开关, (byte)OtherAirOnOff.开启, isWait); } else if (content == EventContent.关闭) { blRet = OtherAirControl(btAddr, OtherAirControlType.开关, (byte)OtherAirOnOff.关闭, isWait); } } else if (content == EventContent.设置制冷 || content == EventContent.设置制热 || content == EventContent.设置除湿) { if (content == EventContent.设置制冷) { blRet = OtherAirControl(btAddr, OtherAirControlType.模式, (byte)OtherAirModelType.制冷, isWait); } else if (content == EventContent.设置制热) { blRet = OtherAirControl(btAddr, OtherAirControlType.模式, (byte)OtherAirModelType.制热, isWait); } else if (content == EventContent.设置除湿) { } } else if (content == EventContent.设置温度) { blRet = OtherAirControl(btAddr, OtherAirControlType.温度, btSetTemp, isWait); strContent = content.ToString() + btSetTemp.ToString(); } } #endregion if (blRet) { commonCls.NewEnvirEventRecord(EventType.空调, strArea, runMode, strContent); if (NewEventShowEvent != null) { string strPoint = strArea + " "; if (blMoreAir) { strPoint += btAddr.ToString(); strPoint += "#空调"; } if (content == EventContent.设置温度) { NewEventShowEvent(new NewEventEventArgs(EventType.空调, strPoint, content.ToString() + btSetTemp.ToString(), "", "", DateTime.Now)); } else { NewEventShowEvent(new NewEventEventArgs(EventType.空调, strPoint, content.ToString(), "", "", DateTime.Now)); } } } return(blRet); }