Exemplo n.º 1
0
        /// <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(), "", ""));
                //    }
                //}
            }
        }
Exemplo n.º 2
0
        ///// <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);
        }