Exemplo n.º 1
0
 public void btnModify_Click(object sender, EventArgs e)
 {
     Cursor.Current    = Cursors.WaitCursor;
     btnModify.Enabled = false;
     try
     {
         TmpNetwork.ModifyNetworkInfomation(SubNetID, DeviceID);
     }
     catch
     {
     }
     Cursor.Current    = Cursors.Default;
     btnModify.Enabled = true;
 }
Exemplo n.º 2
0
        /// <summary>
        /// 上传设置到窗帘模块
        /// </summary>
        /// <param name="DIndex"></param>
        /// <param name="DevID"></param>
        /// <param name="DeviceType"></param>
        /// <param name="DevName"></param>
        /// <returns></returns>
        public bool UploadCurtainInfosToDevice(string DevName, int PageIndex, int DeviceType)
        {
            string strMainRemark = DevName.Split('\\')[1].Trim().Split('(')[0].Trim();
            String TmpDevName    = DevName.Split('\\')[0].Trim();

            //保存basic informations
            byte SubNetID = byte.Parse(TmpDevName.Split('-')[0].ToString());
            byte DeviceID = byte.Parse(TmpDevName.Split('-')[1].ToString());

            byte[] ArayMain      = new byte[20];
            byte[] arayTmpRemark = HDLUDP.StringToByte(strMainRemark);
            if (arayTmpRemark.Length > 20)
            {
                Array.Copy(arayTmpRemark, 0, ArayMain, 0, 20);
            }
            else
            {
                Array.Copy(arayTmpRemark, 0, ArayMain, 0, arayTmpRemark.Length);
            }

            if (CsConst.mySends.AddBufToSndList(ArayMain, 0x0010, SubNetID, DeviceID, false, true, true, false) == false)
            {
                return(false);
            }
            if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
            {
                CsConst.calculationWorker.ReportProgress(10, null);
            }
            if (PageIndex == 0 || PageIndex == 1)
            {
                netWork.ModifyNetworkInfomation(SubNetID, DeviceID);
                #region
                byte[] arayTmp = new byte[57];
                arayTmp[0] = bytWorkType;

                arayTmpRemark = HDLUDP.StringToByte(strGroup);
                Array.Copy(arayTmpRemark, 0, arayTmp, 1, arayTmpRemark.Length);
                arayTmpRemark = HDLUDP.StringToByte(strPrjName);
                Array.Copy(arayTmpRemark, 0, arayTmp, 21, arayTmpRemark.Length);
                arayTmpRemark = HDLUDP.StringToByte(strUser);
                Array.Copy(arayTmpRemark, 0, arayTmp, 41, arayTmpRemark.Length);
                arayTmpRemark = HDLUDP.StringToByte(strPWD);
                Array.Copy(arayTmpRemark, 0, arayTmp, 49, arayTmpRemark.Length);

                if (CsConst.mySends.AddBufToSndList(arayTmp, 0x3003, SubNetID, DeviceID, false, true, true, false) == false)
                {
                    return(false);
                }
                if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                {
                    CsConst.calculationWorker.ReportProgress(20, null);
                }

                arayTmp = new byte[14];
                string[] strTmp = strServer1.Split('.');
                for (int i = 0; i < 4; i++)
                {
                    arayTmp[i] = byte.Parse(strTmp[i].ToString());
                }
                arayTmp[4] = (byte)(intPort1 / 256);
                arayTmp[5] = (byte)(intPort1 % 256);

                strTmp = strServer2.Split('.');
                for (int i = 0; i < 4; i++)
                {
                    arayTmp[i + 6] = byte.Parse(strTmp[i].ToString());
                }
                arayTmp[10] = (byte)(intPort2 / 256);
                arayTmp[11] = (byte)(intPort2 % 256);
                arayTmp[12] = bytEnDHCP;
                arayTmp[13] = bytTimer;


                if (CsConst.mySends.AddBufToSndList(arayTmp, 0x3005, SubNetID, DeviceID, false, true, true, false) == false)
                {
                    return(false);
                }
                if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                {
                    CsConst.calculationWorker.ReportProgress(30, null);
                }
                #endregion
            }

            if (PageIndex == 0 || PageIndex == 2)
            {
                //上传拦截列表
                #region
                byte bytI = 0;
                if (MyBlocks != null)
                {
                    foreach (RFBlock Tmp in MyBlocks)
                    {
                        Tmp.ModifyfBlockSetupInformation(SubNetID, DeviceID, bytI);
                        if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                        {
                            CsConst.calculationWorker.ReportProgress(50 + bytI);
                        }
                        bytI++;
                    }
                }
                #endregion
            }

            if (PageIndex == 0 || PageIndex == 3) // 无线遥控器或者无源开关
            {
                #region
                // 上传无源开关的地址
                byte[] RemoteAddress = new Byte[11];
                RemoteControllers.CopyTo(RemoteAddress, 3);
                if (CsConst.mySends.AddBufToSndList(RemoteAddress, 0xE012, SubNetID, DeviceID, false, true, true, false))
                {
                    return(false);
                }

                Byte ValidRemoteNumber = 4;
                //判断地址是不是全部一样 一样保存一个即可
                if (((RemoteAddress[3] == RemoteAddress[5]) && (RemoteAddress[5] == RemoteAddress[7]) && (RemoteAddress[7] == RemoteAddress[9])) &&
                    ((RemoteAddress[4] == RemoteAddress[6]) && (RemoteAddress[6] == RemoteAddress[8]) && (RemoteAddress[8] == RemoteAddress[10])))
                {
                    ValidRemoteNumber = 1;
                }

                for (Byte i = 0; i < ValidRemoteNumber; i++)
                {
                    //无效地址不保存
                    if (RemoteAddress[3 + i * 2] == 0 && RemoteAddress[4 + i * 2] == 0)
                    {
                        continue;
                    }
                    if (RemoteAddress[3 + i * 2] == 255 && RemoteAddress[4 + i * 2] == 255)
                    {
                        continue;
                    }

                    Byte[] arayKeyMode   = new Byte[IPmoduleDeviceTypeList.HowManyButtonsEachPage];
                    Byte[] arayKeyMutex  = new Byte[IPmoduleDeviceTypeList.HowManyButtonsEachPage];
                    Byte[] arayKeyDimmer = new Byte[IPmoduleDeviceTypeList.HowManyButtonsEachPage];
                    Byte[] arayKeyLED    = new Byte[IPmoduleDeviceTypeList.HowManyButtonsEachPage];

                    for (int j = 0; j < IPmoduleDeviceTypeList.HowManyButtonsEachPage; j++)
                    {
                        HDLButton TmpKey = MyRemoteControllers[i * IPmoduleDeviceTypeList.HowManyButtonsEachPage + j];
                        // key mode and dimmer valid
                        arayKeyMode[TmpKey.ID - 1]   = TmpKey.Mode;
                        arayKeyMutex[TmpKey.ID - 1]  = TmpKey.bytMutex;
                        arayKeyDimmer[TmpKey.ID - 1] = byte.Parse(((TmpKey.IsDimmer << 4) + TmpKey.SaveDimmer).ToString());
                        arayKeyLED[TmpKey.ID - 1]    = (byte)(TmpKey.IsLEDON);

                        if (TmpKey.Mode == 0 || TmpKey.Mode > 30)
                        {
                            continue;
                        }

                        TmpKey.UploadButtonRemarkAndCMDToDevice(SubNetID, DeviceID, DeviceType, i + 1, 255);
                        if (TmpKey.ID + 2 < 15)
                        {
                            if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
                            {
                                CsConst.calculationWorker.ReportProgress(2 + TmpKey.ID);
                            }
                        }
                    }
                    // upload all key mode
                    if (CsConst.mySends.AddBufToSndList(arayKeyMode, 0xE00A, SubNetID, DeviceID, false, true, true, true) == false)
                    {
                        return(false);
                    }
                    HDLUDP.TimeBetwnNext(64);

                    SaveButtonDimFlagToDeviceFrmBuf(i, SubNetID, DeviceID, DeviceType);
                    CsConst.myRevBuf = new byte[1200];
                }
                #endregion
            }

            if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy)
            {
                CsConst.calculationWorker.ReportProgress(100, null);
            }
            return(true);
        }