예제 #1
0
 /// <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));
     }
 }
예제 #2
0
        /// <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);
        }
예제 #3
0
        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);
        }
예제 #4
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(), "", ""));
                //    }
                //}
            }
        }
예제 #5
0
        /// <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);
        }
예제 #6
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);
        }