Exemple #1
0
        /// <summary>
        /// download all information from hardware
        /// </summary>
        /// <param name="DevName"></param>
        public void DownloadSMSFrmDeviceToBuf(string DevName, int wdDeviceType, int intActivePage, int num1, int num2)// 0 mean all, else that tab only
        {
            string strMainRemark = DevName.Split('\\')[1].Trim();

            DevName = DevName.Split('\\')[0].Trim();

            //保存basic informations网络信息
            byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString());
            byte bytDevID = byte.Parse(DevName.Split('-')[1].ToString());

            // read basic paramters
            byte[] ArayTmp = null;

            if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x000E, bytSubID, bytDevID, false, true, true, false) == true)
            {
                byte[] arayRemark = new byte[20];
                for (int intI = 0; intI < 20; intI++)
                {
                    arayRemark[intI] = CsConst.myRevBuf[25 + intI];
                }
                Devname = bytSubID.ToString() + "-" + bytDevID.ToString() + "\\" + HDLPF.Byte2String(arayRemark);
            }
            else
            {
                return;
            }

            ArayTmp    = new byte[3];
            ArayTmp[0] = 0;
            ArayTmp[1] = 1;
            if (intActivePage == 0 || intActivePage == 1)
            {
                if (CsConst.isRestore)
                {
                    num1 = 0;
                    num2 = 99;
                    if (wdDeviceType == 4001)
                    {
                        num2 = 90;
                    }
                }
                MyControls = new List <SMSControls>();
                #region
                for (byte bytI = (byte)num1; bytI < num2; bytI++)
                {
                    ArayTmp[2] = bytI;
                    SMSControls oTmpSMS = new SMSControls();
                    oTmpSMS.ID        = bytI;
                    oTmpSMS.MyVerify  = new List <PhoneInF>();
                    oTmpSMS.MyTargets = new List <UVCMD.ControlTargets>();

                    if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xC017, bytSubID, bytDevID, true, true, true, false) == true)
                    {
                        // 20 bytes remark
                        byte[] arayRemark = new byte[20];
                        for (int intI = 0; intI < 20; intI++)
                        {
                            arayRemark[intI] = CsConst.myRevBuf[28 + intI];
                        }
                        oTmpSMS.strRemark = HDLPF.Byte2String(arayRemark);

                        // 30 bytes sms content unicode
                        arayRemark = new byte[32];
                        for (int intI = 0; intI < 32; intI++)
                        {
                            arayRemark[intI] = CsConst.myRevBuf[48 + intI];
                        }
                        oTmpSMS.strSMSContent = HDLPF.Byte22String(arayRemark, true);

                        // 判断是否验证手机号码
                        #region
                        oTmpSMS.blnIsVerify = (CsConst.myRevBuf[896] == 0x11);
                        oTmpSMS.blnReply    = (CsConst.myRevBuf[897] == 0x11);

                        for (int intJ = 0; intJ < 12; intJ++)
                        {
                            PhoneInF oPhone = new PhoneInF();
                            arayRemark = new byte[20];
                            for (int intI = 0; intI < 20; intI++)
                            {
                                arayRemark[intI] = CsConst.myRevBuf[80 + intJ * 36 + intI];
                            }
                            oPhone.Remark = HDLPF.Byte2String(arayRemark);

                            arayRemark = new byte[16];
                            for (int intI = 0; intI < 16; intI++)
                            {
                                if (CsConst.myRevBuf[100 + intJ * 36 + intI] != 0x45)
                                {
                                    arayRemark[intI] = CsConst.myRevBuf[100 + intJ * 36 + intI];
                                }
                                else
                                {
                                    arayRemark[intI] = 0;
                                }
                            }
                            oPhone.PhoneNum = HDLPF.Byte2String(arayRemark);
                            oTmpSMS.MyVerify.Add(oPhone);
                        }

                        #endregion

                        // 判断是否存在控制目标
                        #region
                        int intTmpST = 512;
                        for (int intI = 0; intI < 48; intI++)
                        {
                            //if (CsConst.myRevBuf[intTmpST + intI * 8 + 7] == 0xAA) //只保留有效
                            //{
                            UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets();

                            oCMD.SubnetID = CsConst.myRevBuf[intTmpST + intI * 8];
                            oCMD.DeviceID = CsConst.myRevBuf[intTmpST + intI * 8 + 1];
                            oCMD.Type     = CsConst.myRevBuf[intTmpST + intI * 8 + 2];
                            //oCMD.Type = HDLSysPF.GetIDAccordinglyRightControlTypeSMS(CsConst.myRevBuf[intTmpST + intI * 8 + 2]);  //转换为正确的类型
                            oCMD.Param1  = CsConst.myRevBuf[intTmpST + intI * 8 + 3];
                            oCMD.Param2  = CsConst.myRevBuf[intTmpST + intI * 8 + 4];
                            oCMD.Param3  = CsConst.myRevBuf[intTmpST + intI * 8 + 5];
                            oCMD.Param4  = CsConst.myRevBuf[intTmpST + intI * 8 + 6];
                            oCMD.IsValid = (CsConst.myRevBuf[intTmpST + intI * 8 + 7] == 0xAA);
                            oTmpSMS.MyTargets.Add(oCMD);
                            //}
                        }
                        #endregion
                        MyControls.Add(oTmpSMS);
                    }
                    else
                    {
                        return;
                    }

                    if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                    {
                        CsConst.calculationWorker.ReportProgress(bytI / 2, null);
                    }
                    HDLUDP.TimeBetwnNext(20);
                }
                #endregion
                MyRead2UpFlags[0] = true;
            }

            if (intActivePage == 0 || intActivePage == 2)
            {
                // send message when needs
                #region
                ArayTmp    = new byte[4];
                ArayTmp[0] = 0;
                ArayTmp[1] = 2;

                MySendSMS = new List <SendSMS>();
                if (CsConst.isRestore)
                {
                    num1 = 0;
                    num2 = 20;
                    if (wdDeviceType == 4001)
                    {
                        num2 = 90;
                    }
                }
                for (byte bytI = (byte)num1; bytI < num2; bytI++)
                {
                    ArayTmp[2] = bytI;
                    byte[] TmpSMS = new byte[1794];

                    SendSMS oTmpSMS = new SendSMS();
                    oTmpSMS.ID       = bytI;
                    oTmpSMS.MyGuests = new List <PhoneInF>();

                    if (wdDeviceType == 4001)
                    {
                        if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xC060, bytSubID, bytDevID, true, true, true, false) == true)
                        {
                            Array.Copy(CsConst.myRevBuf, 29, TmpSMS, 0, 598);

                            HDLUDP.TimeBetwnNext(20);
                        }
                        else
                        {
                            return;
                        }
                    }
                    else
                    {
                        for (int intI = 0; intI < 3; intI++) //分三次读取数据
                        {
                            ArayTmp[3] = Convert.ToByte(intI);
                            if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xC060, bytSubID, bytDevID, true, true, true, false) == true)
                            {
                                Array.Copy(CsConst.myRevBuf, 29, TmpSMS, intI * 598, 598);

                                HDLUDP.TimeBetwnNext(20);
                            }
                            else
                            {
                                return;
                            }
                        }
                    }
                    // 20 bytes remark
                    byte[] arayRemark = new byte[20];
                    for (int intI = 0; intI < 20; intI++)
                    {
                        arayRemark[intI] = TmpSMS[intI];
                    }
                    oTmpSMS.strRemark = HDLPF.Byte2String(arayRemark);

                    // 判断接收的手机号码
                    #region
                    int num = 10;
                    if (wdDeviceType == 4001)
                    {
                        num = 3;
                    }
                    for (int intJ = 0; intJ < num; intJ++)
                    {
                        PhoneInF oPhone = new PhoneInF();
                        if (TmpSMS[200 + intJ * 177] == 0xAA)
                        {
                            oPhone.Valid = true;
                        }
                        else
                        {
                            oPhone.Valid = false;
                        }
                        oPhone.ID  = Convert.ToByte(intJ);
                        arayRemark = new byte[20];
                        for (int intI = 0; intI < 20; intI++)
                        {
                            arayRemark[intI] = TmpSMS[24 + intJ * 177 + intI];
                        }
                        oPhone.Remark = HDLPF.Byte2String(arayRemark);

                        arayRemark = new byte[16];
                        for (int intI = 0; intI < 16; intI++)
                        {
                            if (TmpSMS[44 + intJ * 177 + intI] != 0x45)
                            {
                                arayRemark[intI] = TmpSMS[44 + intJ * 177 + intI];
                            }
                            else
                            {
                                arayRemark[intI] = 0;
                            }
                        }
                        oPhone.PhoneNum = HDLPF.Byte2String(arayRemark);

                        arayRemark = new byte[140];
                        for (int intI = 0; intI < 140; intI++)
                        {
                            arayRemark[intI] = TmpSMS[60 + intJ * 177 + intI];
                        }
                        oPhone.strSMS = HDLPF.Byte22String(arayRemark, true);
                        oTmpSMS.MyGuests.Add(oPhone);
                    }
                    #endregion

                    MySendSMS.Add(oTmpSMS);
                    if (CsConst.calculationWorker != null)
                    {
                        CsConst.calculationWorker.ReportProgress(50 + bytI / 2, null);
                    }
                }
                #endregion
                MyRead2UpFlags[1] = true;
            }
            if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
            {
                CsConst.calculationWorker.ReportProgress(100, null);
            }
        }
Exemple #2
0
        /// <summary>
        /// 下载所有数据
        /// </summary>
        /// <param name="DevName"></param>
        /// <returns></returns>
        public bool DownloadFHInforsFrmDevice(string DevName, int wdDeviceType, int intActivePage, byte num1, byte num2)
        {
            string strMainRemark = DevName.Split('\\')[1].Trim();

            DevName = DevName.Split('\\')[0].Trim();

            byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString());
            byte bytDevID = byte.Parse(DevName.Split('-')[1].ToString());

            byte[] ArayTmp = new byte[0];
            if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x000E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
            {
                byte[] arayRemark = new byte[20];
                for (int intI = 0; intI < 20; intI++)
                {
                    arayRemark[intI] = CsConst.myRevBuf[25 + intI];
                }
                DevName = bytSubID.ToString() + "-" + bytDevID.ToString() + "\\" + HDLPF.Byte2String(arayRemark);
            }
            else
            {
                return(false);
            }
            if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
            {
                CsConst.calculationWorker.ReportProgress(1);
            }

            if (intActivePage == 0 || intActivePage == 1)
            {
                #region
                arayDateTime = new byte[10];
                araySummer   = new byte[30];
                arayOutdoor  = new byte[10];
                if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xD99E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                {
                    Array.Copy(CsConst.myRevBuf, 25, arayDateTime, 0, 7);
                    HDLUDP.TimeBetwnNext(1);
                }
                else
                {
                    return(false);
                }
                if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                {
                    CsConst.calculationWorker.ReportProgress(2);
                }
                if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C12, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                {
                    Array.Copy(CsConst.myRevBuf, 25, arayDateTime, 7, 2);
                    HDLUDP.TimeBetwnNext(1);
                }
                else
                {
                    return(false);
                }
                if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                {
                    CsConst.calculationWorker.ReportProgress(3);
                }
                if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1D1A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                {
                    Array.Copy(CsConst.myRevBuf, 26, araySummer, 0, 23);
                    HDLUDP.TimeBetwnNext(1);
                }
                else
                {
                    return(false);
                }
                if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                {
                    CsConst.calculationWorker.ReportProgress(4);
                }
                if (wdDeviceType == 211 || wdDeviceType == 208 || wdDeviceType == 209)
                {
                    if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1D06, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                    {
                        Array.Copy(CsConst.myRevBuf, 25, arayOutdoor, 0, 5);
                        HDLUDP.TimeBetwnNext(1);
                    }
                    else
                    {
                        return(false);
                    }
                }
                if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                {
                    CsConst.calculationWorker.ReportProgress(5);
                }
                #endregion
                MyRead2UpFlags[0] = true;
            }
            if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
            {
                CsConst.calculationWorker.ReportProgress(10);
            }
            //读取6回路状态
            if (intActivePage == 0 || intActivePage == 2)
            {
                #region
                myHeating = new List <FHeating>();
                for (byte i = 1; i <= 6; i++)
                {
                    FHeating temp = new FHeating();
                    temp.ID = i;
                    temp.arayWorkControl   = new byte[20];
                    temp.arayFlush         = new byte[20];
                    temp.araySensorSetting = new byte[30];
                    temp.arayWorkSetting   = new byte[20];
                    if (CsConst.isRestore || (i >= num1 && i <= num2))
                    {
                        ArayTmp    = new byte[1];
                        ArayTmp[0] = i;
                        if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1D02, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                        {
                            byte[] arayRemark = new byte[20];
                            for (int intI = 0; intI < 20; intI++)
                            {
                                arayRemark[intI] = CsConst.myRevBuf[26 + intI];
                            }
                            temp.strRemark = HDLPF.Byte22String(arayRemark, true);
                            HDLUDP.TimeBetwnNext(1);
                        }
                        else
                        {
                            return(false);
                        }
                        if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                        {
                            CsConst.calculationWorker.ReportProgress(10 + (i - 1) * 5 + 1);
                        }

                        if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C5E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                        {
                            Array.Copy(CsConst.myRevBuf, 26, temp.arayWorkControl, 0, 13);
                            HDLUDP.TimeBetwnNext(1);
                        }
                        else
                        {
                            return(false);
                        }
                        if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                        {
                            CsConst.calculationWorker.ReportProgress(10 + (i - 1) * 5 + 2);
                        }

                        if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C5A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                        {
                            Array.Copy(CsConst.myRevBuf, 26, temp.arayWorkSetting, 0, 10);
                            HDLUDP.TimeBetwnNext(1);
                        }
                        else
                        {
                            return(false);
                        }
                        if (wdDeviceType == 211 || wdDeviceType == 208 || wdDeviceType == 209)
                        {
                            if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1D0A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                            {
                                Array.Copy(CsConst.myRevBuf, 26, temp.arayWorkSetting, 10, 1);
                                HDLUDP.TimeBetwnNext(1);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                        {
                            CsConst.calculationWorker.ReportProgress(10 + (i - 1) * 5 + 3);
                        }


                        if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C56, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                        {
                            Array.Copy(CsConst.myRevBuf, 26, temp.araySensorSetting, 0, 20);
                            HDLUDP.TimeBetwnNext(1);
                        }
                        else
                        {
                            return(false);
                        }

                        if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C62, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                        {
                            Array.Copy(CsConst.myRevBuf, 26, temp.arayFlush, 0, 11);
                            HDLUDP.TimeBetwnNext(1);
                        }
                        else
                        {
                            return(false);
                        }
                        if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                        {
                            CsConst.calculationWorker.ReportProgress(10 + (i - 1) * 5 + 4);
                        }
                        myHeating.Add(temp);
                    }
                    if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                    {
                        CsConst.calculationWorker.ReportProgress(10 + i * 5);
                    }
                }
                #endregion
                MyRead2UpFlags[1] = true;
            }
            if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
            {
                CsConst.calculationWorker.ReportProgress(40);
            }
            //读取主从机功能
            if (intActivePage == 0 || intActivePage == 3)
            {
                #region
                araySynChannel = new byte[10];
                arayHost       = new byte[20];
                if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C6E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                {
                    Array.Copy(CsConst.myRevBuf, 25, araySynChannel, 0, 6);
                    HDLUDP.TimeBetwnNext(1);
                }
                else
                {
                    return(false);
                }
                if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                {
                    CsConst.calculationWorker.ReportProgress(41);
                }
                if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1CE6, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                {
                    Array.Copy(CsConst.myRevBuf, 25, arayHost, 0, 15);
                    HDLUDP.TimeBetwnNext(1);
                }
                else
                {
                    return(false);
                }
                if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                {
                    CsConst.calculationWorker.ReportProgress(42);
                }
                #endregion
                MyRead2UpFlags[2] = true;
            }
            if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
            {
                CsConst.calculationWorker.ReportProgress(50);
            }
            // 读取额外目标设置
            if (intActivePage == 0 || intActivePage == 4 || intActivePage == 6)
            {
                #region
                byte Chn    = Convert.ToByte(num1 >> 4);
                byte Statue = Convert.ToByte(num2 >> 4);
                myTargets1 = new List <FHTargets>();
                for (byte i = 1; i <= 6; i++)
                {
                    if (CsConst.isRestore || i == Chn)
                    {
                        for (byte j = 0; j < 4; j++)
                        {
                            if (CsConst.isRestore || j == Statue)
                            {
                                FHTargets temp = new FHTargets();
                                temp.ID          = i;
                                temp.StatusIndex = j;
                                temp.Targets     = new List <UVCMD.ControlTargets>();
                                ArayTmp          = new byte[3];
                                ArayTmp[0]       = i;
                                ArayTmp[1]       = j;
                                for (byte k = 0; k < 5; k++)
                                {
                                    ArayTmp[2] = k;
                                    if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1CE2, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                                    {
                                        UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets();
                                        oCMD.ID       = Convert.ToByte(CsConst.myRevBuf[27]);
                                        oCMD.Type     = CsConst.myRevBuf[28]; //转换为正确的类型
                                        oCMD.SubnetID = CsConst.myRevBuf[29];
                                        oCMD.DeviceID = CsConst.myRevBuf[30];
                                        oCMD.Param1   = CsConst.myRevBuf[31];
                                        oCMD.Param2   = CsConst.myRevBuf[32];
                                        oCMD.Param3   = CsConst.myRevBuf[33];
                                        oCMD.Param4   = CsConst.myRevBuf[34];
                                        temp.Targets.Add(oCMD);
                                        HDLUDP.TimeBetwnNext(1);
                                    }
                                    else
                                    {
                                        return(false);
                                    }
                                }
                                myTargets1.Add(temp);
                            }
                        }
                    }
                    if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                    {
                        CsConst.calculationWorker.ReportProgress(50 + i);
                    }
                }
                if ((wdDeviceType == 211 || wdDeviceType == 208 || wdDeviceType == 209) && intActivePage != 6)
                {
                    if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1CEA, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                    {
                        FHTargetEnable    = CsConst.myRevBuf[25];
                        RelayTargetEnable = CsConst.myRevBuf[26];
                    }
                    else
                    {
                        return(false);
                    }
                }
                #endregion
                MyRead2UpFlags[5] = true;
                MyRead2UpFlags[3] = true;
            }
            if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
            {
                CsConst.calculationWorker.ReportProgress(60);
            }
            if (intActivePage == 0 || intActivePage == 5 || intActivePage == 6)
            {
                #region
                if (wdDeviceType == 211 || wdDeviceType == 208 || wdDeviceType == 209)
                {
                    #region
                    byte Chn    = Convert.ToByte(num1 & 0x0F);
                    byte Statue = Convert.ToByte(num2 & 0x0F);
                    myTargets2 = new List <FHTargets>();
                    for (byte i = 1; i <= 6; i++)
                    {
                        if (CsConst.isRestore || i == Chn)
                        {
                            for (byte j = 0; j < 2; j++)
                            {
                                if (CsConst.isRestore || j == Statue)
                                {
                                    FHTargets temp = new FHTargets();
                                    temp.ID          = i;
                                    temp.StatusIndex = j;
                                    temp.Targets     = new List <UVCMD.ControlTargets>();
                                    ArayTmp          = new byte[3];
                                    ArayTmp[0]       = i;
                                    ArayTmp[1]       = j;
                                    for (byte k = 0; k < 5; k++)
                                    {
                                        ArayTmp[2] = k;
                                        if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1CEE, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                                        {
                                            UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets();
                                            oCMD.ID       = Convert.ToByte(CsConst.myRevBuf[27]);
                                            oCMD.Type     = CsConst.myRevBuf[28]; //转换为正确的类型
                                            oCMD.SubnetID = CsConst.myRevBuf[29];
                                            oCMD.DeviceID = CsConst.myRevBuf[30];
                                            oCMD.Param1   = CsConst.myRevBuf[31];
                                            oCMD.Param2   = CsConst.myRevBuf[32];
                                            oCMD.Param3   = CsConst.myRevBuf[33];
                                            oCMD.Param4   = CsConst.myRevBuf[34];
                                            temp.Targets.Add(oCMD);
                                            HDLUDP.TimeBetwnNext(1);
                                        }
                                        else
                                        {
                                            return(false);
                                        }
                                    }
                                    myTargets2.Add(temp);
                                }
                            }
                        }
                        if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                        {
                            CsConst.calculationWorker.ReportProgress(60 + i);
                        }
                    }

                    if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1CEA, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                    {
                        FHTargetEnable    = CsConst.myRevBuf[25];
                        RelayTargetEnable = CsConst.myRevBuf[26];
                    }
                    else
                    {
                        return(false);
                    }
                    #endregion
                }
                #endregion
                MyRead2UpFlags[5] = true;
                MyRead2UpFlags[4] = true;
            }
            if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
            {
                CsConst.calculationWorker.ReportProgress(70);
            }
            if (intActivePage == 0 || intActivePage == 7)
            {
                #region
                if (wdDeviceType == 208)
                {
                    myPumps = new List <Pumps>();
                    if (CsConst.mySends.AddBufToSndList(null, 0x1D22, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                    {
                        PumpsEnable = CsConst.myRevBuf[25];
                        HDLUDP.TimeBetwnNext(1);
                    }
                    else
                    {
                        return(false);
                    }
                    if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                    {
                        CsConst.calculationWorker.ReportProgress(71);
                    }
                    for (byte i = 0; i <= 6; i++)
                    {
                        ArayTmp    = new byte[1];
                        ArayTmp[0] = i;
                        if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1D26, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true)
                        {
                            Pumps temp = new Pumps();
                            temp.TrueTargets  = new List <UVCMD.ControlTargets>();
                            temp.FalseTargets = new List <UVCMD.ControlTargets>();
                            temp.ID           = i;
                            temp.Enable       = CsConst.myRevBuf[26];
                            temp.ChooseChns   = CsConst.myRevBuf[27];
                            temp.TrueDelay    = CsConst.myRevBuf[28] * 256 + CsConst.myRevBuf[29];
                            temp.FalseDelay   = CsConst.myRevBuf[30] * 256 + CsConst.myRevBuf[31];
                            if (temp.TrueDelay > 600)
                            {
                                temp.TrueDelay = 600;
                            }
                            if (temp.FalseDelay > 600)
                            {
                                temp.FalseDelay = 600;
                            }
                            myPumps.Add(temp);
                            HDLUDP.TimeBetwnNext(1);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }
                #endregion
                MyRead2UpFlags[6] = true;
            }
            if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
            {
                CsConst.calculationWorker.ReportProgress(100, null);
            }
            return(true);
        }