Esempio n. 1
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);
        }