private Boolean SaveServerURLInformation() { Boolean blnIsSuccess = false; try { String UrlAddress = URL.Text; Byte[] ArayTmp = HDLUDP.StringToByte(UrlAddress); Byte[] SendBuffer = new Byte[68]; ArayTmp.CopyTo(SendBuffer, 0); if (CsConst.mySends.AddBufToSndList(SendBuffer, 0x3022, bytSubID, bytDevID, false, true, true, false) == true) { CsConst.myRevBuf = new byte[1200]; blnIsSuccess = true; } else { blnIsSuccess = false; } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } return(blnIsSuccess); }
public bool UploadInfosToDevice(string DevName, int DeviceType, int intActivePage)// 0 mean all, else that tab only { //保存回路信息 string strMainRemark = DevName.Split('\\')[1].Trim(); String TmpDevName = DevName.Split('\\')[0].Trim(); byte bytSubID = byte.Parse(TmpDevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(TmpDevName.Split('-')[1].ToString()); int wdMaxValue = DeviceTypeList.GetMaxValueFromPublicModeGroup(DeviceType); byte[] ArayMain = new byte[20]; byte[] arayTmpRemark = HDLUDP.StringToByte(strMainRemark); HDLSysPF.CopyRemarkBufferToSendBuffer(arayTmpRemark, ArayMain, 0); if (CsConst.mySends.AddBufToSndList(ArayMain, 0x0010, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == false) { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } return(true); }
public bool DeleteCard() { bool result = true; try { NewDS.CardInfo temp = oNewDS.MyCardInfo[ID]; temp.CardType = 0; temp.BuildingNO = 0; temp.UnitNO = 0; temp.RoomNO = 0; temp.UIDL = 0; temp.UID = new byte[10]; temp.arayDate = new byte[5]; temp.arayPhone = new byte[11]; temp.arayName = new byte[10]; temp.Remark = ""; byte[] arayTmp = new byte[64]; arayTmp[0] = temp.UIDL; Array.Copy(temp.UID, 0, arayTmp, 1, temp.UIDL); arayTmp[11] = temp.CardType; arayTmp[12] = Convert.ToByte(temp.CardNum / 256); arayTmp[13] = Convert.ToByte(temp.CardNum % 256); arayTmp[14] = Convert.ToByte(temp.BuildingNO / 256); arayTmp[15] = Convert.ToByte(temp.BuildingNO % 256); arayTmp[16] = Convert.ToByte(temp.UnitNO / 256); arayTmp[17] = Convert.ToByte(temp.UnitNO % 256); arayTmp[18] = Convert.ToByte(temp.RoomNO / 256); arayTmp[19] = Convert.ToByte(temp.RoomNO % 256); Array.Copy(temp.arayDate, 0, arayTmp, 20, temp.arayDate.Length); Array.Copy(temp.arayName, 0, arayTmp, 25, temp.arayName.Length); Array.Copy(temp.arayPhone, 0, arayTmp, 35, temp.arayPhone.Length); byte[] arayTmpRemark = HDLUDP.StringToByte(temp.Remark); byte[] ArayMain = new byte[18]; if (arayTmpRemark.Length > 18) { Array.Copy(arayTmpRemark, 0, ArayMain, 0, 18); } else { Array.Copy(arayTmpRemark, 0, ArayMain, 0, arayTmpRemark.Length); } Array.Copy(ArayMain, 0, arayTmp, 46, ArayMain.Length); if (CsConst.mySends.AddBufToSndList(arayTmp, 0x3518, SubNetID, DeviceID, false, false, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { } else { result = false; } } catch { result = false; } return(result); }
private void btnUser_Click(object sender, EventArgs e) { try { FileIndex = 0; UDPReceive.receiveQueueForAudio = new Queue <byte[]>(); CsConst.MyBlnFinish = false; CsConst.isStartUploadFile = false; string MyPath = HDLPF.OpenFileDialog("WAV File|*.wav", "Choose File"); if (MyPath == null || MyPath == "") { return; } FileStream fs = new FileStream(MyPath, FileMode.Open, FileAccess.Read);//创建文件流 SourceFile = new byte[fs.Length]; fs.Read(SourceFile, 0, SourceFile.Length); fs.Flush(); fs.Close(); int FileLength = SourceFile.Length; string strFileNmae = "share/sounds/linphone/rings/011.wav"; byte[] arayTmp = new byte[strFileNmae.Length + 6 + 2]; int DataLength = strFileNmae.Length + 6; arayTmp[0] = Convert.ToByte(DataLength / 256); arayTmp[1] = Convert.ToByte(DataLength % 256); arayTmp[2] = 1; byte[] arayName = HDLUDP.StringToByte(strFileNmae); arayName.CopyTo(arayTmp, 3); arayTmp[strFileNmae.Length + 3] = 13; arayTmp[strFileNmae.Length + 4] = Convert.ToByte(FileLength / 256 / 256 / 256); arayTmp[strFileNmae.Length + 5] = Convert.ToByte(FileLength / 256 / 256 % 256); arayTmp[strFileNmae.Length + 6] = Convert.ToByte(FileLength / 256 % 256); arayTmp[strFileNmae.Length + 7] = Convert.ToByte(FileLength % 256); if (CsConst.mySends.AddBufToSndList(arayTmp, 0x1364, SubNetID, DevID, true, true, true, false) == true) { if (CsConst.isStartUploadFile) { MyBackGroup = new BackgroundWorker(); MyBackGroup.DoWork += new DoWorkEventHandler(calculationWorker_DoWork); MyBackGroup.ProgressChanged += new ProgressChangedEventHandler(calculationWorker_ProgressChanged); MyBackGroup.WorkerReportsProgress = true; MyBackGroup.RunWorkerCompleted += new RunWorkerCompletedEventHandler(calculationWorker_RunWorkerCompleted); MyBackGroup.RunWorkerAsync(); MyBackGroup.WorkerSupportsCancellation = true; frmProcessTmp = new FrmProcess(); frmProcessTmp.ShowDialog(); } else { MessageBox.Show(CsConst.mstrINIDefault.IniReadValue("public", "99535", "")); } } } catch { } }
private void tbPSK_TextChanged(object sender, EventArgs e) { byte[] arayTmpRemark = new byte[16]; if (tbPSK.Text != null) { arayTmpRemark = HDLUDP.StringToByte(tbPSK.Text); } myIPModule.bytPWD = new byte[16]; Array.Copy(arayTmpRemark, 0, myIPModule.bytPWD, 0, arayTmpRemark.Length); myIPModule.MyRead2UpFlags[2] = false; }
public Boolean ModifyNormalCurtainSetupInformation(Byte SubNetID, Byte DeviceID, Byte CurtainID, int wdDeviceType) { Boolean blnSuccess = true; try { byte[] arayTmp = new byte[21]; arayTmp[0] = CurtainID; byte[] arayTmp1 = HDLUDP.StringToByte(remark); arayTmp1.CopyTo(arayTmp, 1); if (CsConst.mySends.AddBufToSndList(arayTmp, 0xF010, SubNetID, DeviceID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == false) { return(false); } arayTmp = new byte[3]; arayTmp[0] = CurtainID; arayTmp[1] = byte.Parse((runTime / 256).ToString()); // modify valid or not arayTmp[2] = byte.Parse((runTime % 256).ToString()); if (CsConst.mySends.AddBufToSndList(arayTmp, 0xE802, SubNetID, DeviceID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == false) { return(false); } HDLUDP.TimeBetwnNext(20); arayTmp[1] = byte.Parse((onDelay / 256).ToString()); // modify valid or not arayTmp[2] = byte.Parse((onDelay % 256).ToString()); if (CsConst.mySends.AddBufToSndList(arayTmp, 0xE807, SubNetID, DeviceID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == false) { return(false); } HDLUDP.TimeBetwnNext(20); if (wdDeviceType != 707) { arayTmp[1] = byte.Parse((offDelay / 256).ToString()); // modify off delay arayTmp[2] = byte.Parse((offDelay % 256).ToString()); if (CsConst.mySends.AddBufToSndList(arayTmp, 0xE80B, SubNetID, DeviceID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == false) { return(false); } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(20 * CurtainID); } } catch (Exception ex) { } return(blnSuccess); }
private void txtZone_TextChanged(object sender, EventArgs e) { if (isRead) { return; } string str = txtZone.Text; str = GlobalClass.AddLeftZero(str, 4); byte[] arayTmp = HDLUDP.StringToByte(str); Array.Copy(arayTmp, 0, oNewDS.arayCall, 0, 4); }
private void btnOK_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; ((Button)sender).Enabled = false; byte[] ArayTmp = new byte[20]; string strTmp = tbNew.Text; if (strTmp == null || strTmp == string.Empty) { strTmp = ""; } if (CsConst.MyEditMode == 0) // project mode { CsConst.MyTmpName = new List <string>(); CsConst.MyTmpName.Add(strTmp); } else if (CsConst.MyEditMode == 1) // online mode { #region byte[] arayTmpRemark = HDLUDP.StringToByte(strTmp); if (arayTmpRemark.Length <= 20) { Array.Copy(arayTmpRemark, 0, ArayTmp, 0, arayTmpRemark.Length); } else { Array.Copy(arayTmpRemark, 0, ArayTmp, 0, 20); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x0010, bytSubID, bytDevID, false, true, true, false) == true) //修改备注 { CsConst.MyTmpName = new List <string>(); CsConst.MyTmpName.Add(strTmp); } else { CsConst.MyTmpName = new List <string>(); Cursor.Current = Cursors.Default; return; } #endregion } ((Button)sender).Enabled = true; Cursor.Current = Cursors.Default; DialogResult = DialogResult.OK; this.Close(); }
private void txtName_TextChanged(object sender, EventArgs e) { if (isRead) { return; } if (MyMHIC.arayHotel == null) { MyMHIC.arayHotel = new byte[13]; } string str = txtName.Text.Trim(); byte[] arayTmpRemark = HDLUDP.StringToByte(str); Array.Copy(arayTmpRemark, 0, MyMHIC.arayHotel, 0, 8); }
public void btnModify_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; byte[] arayTmp = new byte[57]; arayTmp[0] = Convert.ToByte(cbType.SelectedIndex); byte[] arayTmpRemark = new byte[20]; arayTmpRemark = HDLUDP.StringToByte(tbGroup.Text.Trim()); if (arayTmpRemark != null) { Array.Copy(arayTmpRemark, 0, arayTmp, 1, arayTmpRemark.Length); } arayTmpRemark = HDLUDP.StringToByte(tbProject.Text.Trim()); if (arayTmpRemark != null) { Array.Copy(arayTmpRemark, 0, arayTmp, 21, arayTmpRemark.Length); } arayTmpRemark = HDLUDP.StringToByte(tbUser.Text.Trim()); if (arayTmpRemark != null) { Array.Copy(arayTmpRemark, 0, arayTmp, 41, arayTmpRemark.Length); } arayTmpRemark = HDLUDP.StringToByte(tbPWD.Text.Trim()); if (arayTmpRemark != null) { Array.Copy(arayTmpRemark, 0, arayTmp, 49, arayTmpRemark.Length); } if (CsConst.mySends.AddBufToSndList(arayTmp, 0x3003, bytSubID, bytDevID, false, true, true, false) == false) { return; } if (arayTmp[0] <= 2) // 不是域名解析的 { SaveServerIpAddressInformation(); } else { SaveServerURLInformation(); } if (cbZone.Visible == true) { lbTime.Text = HDLSysPF.ReadDeviceDateTime(bytSubID, bytDevID); } Cursor.Current = Cursors.Default; }
private void btnModify_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; byte[] arayRemark = new byte[20]; string strRemark = ""; byte[] arayTmp2 = HDLUDP.StringToByte(strRemark); if (arayTmp2.Length > 20) { Array.Copy(arayTmp2, 0, arayRemark, 0, 20); } else { Array.Copy(arayTmp2, 0, arayRemark, 0, arayTmp2.Length); } byte[] araySendIR = new byte[12]; araySendIR[0] = Convert.ToByte(Convert.ToInt32(dgvIR[0, dgvIR.CurrentRow.Index].Value.ToString()) - 1); araySendIR[1] = 0; for (int K = 0; K <= 9; K++) { araySendIR[2 + K] = arayRemark[K]; } if (CsConst.mySends.AddBufToSndList(araySendIR, 0xD90E, SubNetID, DevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(araySendIR.Length); CsConst.myRevBuf = new byte[1200]; } araySendIR[1] = 1; //save the remark then for (int K = 0; K <= 9; K++) { araySendIR[2 + K] = arayRemark[10 + K]; } if (CsConst.mySends.AddBufToSndList(araySendIR, 0xD90E, SubNetID, DevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(araySendIR.Length); CsConst.myRevBuf = new byte[1200]; } Cursor.Current = Cursors.Default; }
private void btnFindA_Click(object sender, EventArgs e) { if (dgvListA.Rows.Count == 0) { return; } Cursor.Current = Cursors.WaitCursor; try { foreach (DataGridViewRow oRow in dgvListA.Rows) { Byte[] arayTmpRemark = new Byte[22]; arayTmpRemark[1] = Convert.ToByte(oRow.Cells[1].Value.ToString()); if (oRow.Cells[2].Value.ToString() == "TX") { arayTmpRemark[0] = 0; } else { arayTmpRemark[0] = 1; } String strMainRemark = oRow.Cells[3].Value.ToString(); Byte[] arayRemark = HDLUDP.StringToByte(strMainRemark); //ruby test HDLSysPF.CopyRemarkBufferToSendBuffer(arayRemark, arayTmpRemark, 2); if (CsConst.mySends.AddBufToSndList(arayTmpRemark, 0xE422, bSubNetId, bDeviceId, false, true, true, false) == false) { return; } } } catch { } Cursor.Current = Cursors.Default; }
public void ModifyButtonRemark(Byte SubNetID, Byte DeviceID, int DeviceType, int RemoteAddress) { Byte ExtraLength = 0; if (IPmoduleDeviceTypeList.RFIpModuleV2.Contains(DeviceType)) { ExtraLength = 1; } byte[] arayRemark = new byte[21 + ExtraLength]; if (ExtraLength != 0) { arayRemark[21 + ExtraLength - 1] = (Byte)RemoteAddress; } byte[] arayTmp = HDLUDP.StringToByte(Remark); arayRemark[0] = ID; arayTmp.CopyTo(arayRemark, 1); if (CsConst.mySends.AddBufToSndList(arayRemark, 0xE006, SubNetID, DeviceID, false, true, true, true)) { return; } }
/// <summary> ///上传设置 /// </summary> public void UploadMSPUInfoToDevice(string DevName, int DeviceType, int intActivePage, int num1, int num2) { string strMainRemark = DevName.Split('\\')[1].Trim().Split('(')[0].Trim(); DevName = DevName.Split('\\')[0].Trim(); //保存回路信息 byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.Split('-')[1].ToString()); byte[] arayRemark = new byte[21];// used for restore remark if (HDLSysPF.ModifyDeviceMainRemark(bytSubID, bytDevID, strMainRemark, DeviceType)) { HDLUDP.TimeBetwnNext(20); } else { return; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5); } byte[] ArayTmp = null; if (intActivePage == 0 || intActivePage == 1) { #region //LED状态 ArayTmp = new byte[3]; ArayTmp[0] = 2; ArayTmp[1] = ONLEDs[0]; ArayTmp[2] = ONLEDs[1]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xDB3C, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(6); } //传感器使能 ArayTmp = new byte[12]; ArayTmp[1] = EnableSensors[1]; ArayTmp[11] = EnableSensors[3]; ArayTmp[8] = EnableSensors[5]; ArayTmp[9] = EnableSensors[6]; ArayTmp[10] = EnableSensors[7]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x161E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(7); } //补偿值 ArayTmp = new byte[14]; ArayTmp[0] = ParamSensors[0]; ArayTmp[1] = ParamSensors[1]; ArayTmp[6] = 2; ArayTmp[7] = 5; ArayTmp[8] = 2; ArayTmp[9] = 2; ArayTmp[10] = 2; ArayTmp[12] = ParamSensors[2]; ArayTmp[13] = ParamSensors[3]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1602, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(8); } // 增加恒照度修改保存 if (DeviceType == 326) { ArayTmp = new byte[9]; Array.Copy(EnableBroads, 0, ArayTmp, 0, 9); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x16AB, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return; } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(9); } #endregion } if (intActivePage == 0 || intActivePage == 2) { //逻辑块功能设置 #region // 修改24个逻辑的使能位 if (logic != null && logic.Count != 0) { ArayTmp = new byte[logic.Count]; for (byte bytJ = 0; bytJ < logic.Count - 1; bytJ++) { ArayTmp[bytJ] = logic[bytJ].Enabled; } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x161A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10); } HDLUDP.TimeBetwnNext(20); byte bytI = 1; foreach (SensorLogic oLogic in logic) { #region //修改备注 ArayTmp = new byte[21]; ArayTmp[0] = bytI; string strRemark = oLogic.Remarklogic; if (strRemark == null) { strRemark = ""; } byte[] arayTmp2 = HDLUDP.StringToByte(strRemark); Array.Copy(arayTmp2, 0, ArayTmp, 1, arayTmp2.Length); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1608, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return; } if (oLogic.ID == num1 || CsConst.isRestore) { //修改设置 ArayTmp = new byte[30]; ArayTmp[0] = bytI; ArayTmp[1] = oLogic.bytRelation; int intTmp = 0; for (int i = 0; i < 8; i++) { switch (i) { case 0: intTmp = intTmp | (oLogic.EnableSensors[i] << 0); break; case 1: intTmp = intTmp | (oLogic.EnableSensors[i] << 1); break; case 2: intTmp = intTmp | (oLogic.EnableSensors[i] << 5); break; case 3: intTmp = intTmp | (oLogic.EnableSensors[i] << 11); break; case 4: intTmp = intTmp | (oLogic.EnableSensors[i] << 6); break; case 5: intTmp = intTmp | (oLogic.EnableSensors[i] << 8); break; case 6: intTmp = intTmp | (oLogic.EnableSensors[i] << 9); break; case 7: intTmp = intTmp | (oLogic.EnableSensors[i] << 10); break; } } ArayTmp[2] = (Byte)(intTmp / 256); ArayTmp[3] = (Byte)(intTmp % 256); ArayTmp[4] = (Byte)(oLogic.DelayTimeT / 256); ArayTmp[5] = (Byte)(oLogic.DelayTimeT % 256); ArayTmp[6] = (Byte)(oLogic.DelayTimeF / 256); ArayTmp[7] = (Byte)(oLogic.DelayTimeF % 256); Array.Copy(oLogic.Paramters, 0, ArayTmp, 8, 6); ArayTmp[14] = 20; ArayTmp[15] = 20; ArayTmp[20] = 0; ArayTmp[29] = oLogic.Paramters[7]; ArayTmp[21] = 0; if (oLogic.UV1 != null) { ArayTmp[23] = oLogic.UV1.id; ArayTmp[24] = oLogic.UV1.condition; } if (oLogic.UV2 != null) { ArayTmp[25] = oLogic.UV2.id; ArayTmp[26] = oLogic.UV2.condition; } ArayTmp[27] = oLogic.Paramters[9]; ArayTmp[28] = oLogic.Paramters[10]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1610, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return; } //成立的触发目标 if (CsConst.isRestore) { if (oLogic.SetUp != null && oLogic.SetUp.Count != 0) { foreach (UVCMD.ControlTargets TmpCmd in oLogic.SetUp) { byte[] arayCMD = new byte[9]; arayCMD[0] = bytI; arayCMD[1] = byte.Parse(TmpCmd.ID.ToString()); arayCMD[2] = TmpCmd.Type; arayCMD[3] = TmpCmd.SubnetID; arayCMD[4] = TmpCmd.DeviceID; arayCMD[5] = TmpCmd.Param1; arayCMD[6] = TmpCmd.Param2; arayCMD[7] = TmpCmd.Param3; // save targets arayCMD[8] = TmpCmd.Param4; if (CsConst.mySends.AddBufToSndList(arayCMD, 0x1614, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return; } } } //不成立的触发目标 if (oLogic.NoSetUp != null && oLogic.NoSetUp.Count != 0) { foreach (UVCMD.ControlTargets TmpCmd in oLogic.NoSetUp) { byte[] arayCMD = new byte[9]; arayCMD[0] = Convert.ToByte(bytI + 24); arayCMD[1] = byte.Parse(TmpCmd.ID.ToString()); arayCMD[2] = TmpCmd.Type; arayCMD[3] = TmpCmd.SubnetID; arayCMD[4] = TmpCmd.DeviceID; arayCMD[5] = TmpCmd.Param1; arayCMD[6] = TmpCmd.Param2; arayCMD[7] = TmpCmd.Param3; // save targets arayCMD[8] = TmpCmd.Param4; if (CsConst.mySends.AddBufToSndList(arayCMD, 0x1614, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return; } } } } } #endregion bytI++; if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10 + bytI); } } } else { return; } } #endregion } if (intActivePage == 0 || intActivePage == 3) { //安防功能 #region if (fireset != null && fireset.Count != 0) { foreach (UVCMD.SecurityInfo oTmp in fireset) { ArayTmp = new byte[21]; ArayTmp[0] = oTmp.bytSeuID; //修改备注 ArayTmp[0] = oTmp.bytSeuID; string strRemark = oTmp.strRemark; if (strRemark == null) { strRemark = ""; } byte[] arayTmp2 = HDLUDP.StringToByte(strRemark); Array.Copy(arayTmp2, 0, ArayTmp, 1, arayTmp2.Length); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1626, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return; } //修改设置 ArayTmp = new byte[9]; ArayTmp[0] = oTmp.bytSeuID; ArayTmp[1] = oTmp.bytTerms; ArayTmp[2] = oTmp.bytSubID; ArayTmp[3] = oTmp.bytDevID; ArayTmp[4] = oTmp.bytArea; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x162A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(40); } } } #endregion } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } }
public override void UploadMS04ToDevice(string strDevName, int intDeviceType, int intActivePage, int num1, int num2)// 0 mean all, else that tab only { string strMainRemark = strDevName.Split('\\')[1].Trim().Split('(')[0].Trim(); string strTmpDevName = strDevName.Split('\\')[0].Trim(); byte bytSubID = byte.Parse(strTmpDevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(strTmpDevName.Split('-')[1].ToString()); base.UploadMS04ToDevice(strDevName, intDeviceType, intActivePage, 0, 0); if (intActivePage == 0 || intActivePage == 7) { //modify channel information #region byte[] arayRemark = new byte[21];// used for restore remark byte[] arayLoadType = new byte[1]; byte[] arayLimitL = new byte[2]; arayLimitL[0] = 0; byte[] arayLimitH = new byte[2]; arayLimitH[0] = 1; byte[] arayMaxLevel = new byte[1]; byte bytI = 1; foreach (RelayChannel ch in Chans) { // modify the chns remark arayRemark = new byte[21]; // 初始化数组 string strRemark = ch.Remark; if (ch.Remark == null) { strRemark = ""; } byte[] arayTmp = HDLUDP.StringToByte(strRemark); arayRemark[0] = bytI; HDLSysPF.CopyRemarkBufferToSendBuffer(arayTmp, arayRemark, 1); CsConst.mySends.AddBufToSndList(arayRemark, 0x3318, bytSubID, bytDevID, false, false, false, false); HDLUDP.TimeBetwnNext(arayRemark.Length); arayLoadType[0] = byte.Parse(ch.OFFDelay.ToString()); arayMaxLevel[0] = byte.Parse(ch.OnDelay.ToString()); arayLimitL[0] = byte.Parse(ch.ProtectDelay.ToString()); bytI++; } // modify the off delay CsConst.mySends.AddBufToSndList(arayLoadType, 0xF086, bytSubID, bytDevID, false, false, false, false); HDLUDP.TimeBetwnNext(arayLoadType.Length); // modify the on delay CsConst.mySends.AddBufToSndList(arayMaxLevel, 0xF04F, bytSubID, bytDevID, false, false, false, false); HDLUDP.TimeBetwnNext(arayLoadType.Length); // modify the protect delay CsConst.mySends.AddBufToSndList(arayLimitL, 0xF041, bytSubID, bytDevID, false, false, false, false); HDLUDP.TimeBetwnNext(arayLoadType.Length); MyRead2UpFlags[1] = true; #endregion } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } }
/// <summary> ///下载设置 /// </summary> public bool DownLoadInformationFrmDevice(string DevName) { 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()); byte[] ArayMain = new byte[20]; byte[] arayTmpRemark = HDLUDP.StringToByte(strMainRemark); Array.Copy(arayTmpRemark, 0, ArayMain, 0, arayTmpRemark.Length); if (CsConst.mySends.AddBufToSndList(ArayMain, 0x000E, bytSubID, bytDevID, false, true, true, false) == false) { return(false); } else { byte[] arayRemark = new byte[20]; for (int intI = 0; intI < 20; intI++) { arayRemark[intI] = CsConst.myRevBuf[25 + intI]; } DeviceName = bytSubID.ToString() + "-" + bytDevID.ToString() + "\\" + HDLPF.Byte2String(arayRemark); } //HAI unit to single light control #region units = new List <Unit>(); for (byte bytI = 1; bytI <= 192; bytI++) { Unit oTmp = new Unit(); oTmp.bytID = bytI; oTmp.Command = "^A" + String.Format("{0:D3} ", bytI); ArayMain = new byte[3]; ArayMain[0] = 1; ArayMain[1] = bytI; ArayMain[2] = 0; if (CsConst.mySends.AddBufToSndList(ArayMain, 0x0238, bytSubID, bytDevID, false, true, true, false) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = 1; oCMD.Type = CsConst.myRevBuf[28]; //转换为正确的类型 if (oCMD.Type != 3 && oCMD.Type < 13) { 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]; CsConst.myRevBuf = new byte[1200]; oTmp.oUnit = oCMD; } } else { return(false); } units.Add(oTmp); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(bytI / 6, null); } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(33, null); } #endregion //HAI scene to scene #region scen = new List <Scene>(); for (byte bytI = 1; bytI <= 254; bytI++) { Scene oTmp = new Scene(); oTmp.bytID = bytI; oTmp.Command = "^C" + String.Format("{0:D3} ", bytI); ArayMain = new byte[3]; ArayMain[0] = 2; ArayMain[1] = bytI; ArayMain[2] = 0; if (CsConst.mySends.AddBufToSndList(ArayMain, 0x0238, bytSubID, bytDevID, false, true, true, false) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = 1; oCMD.Type = CsConst.myRevBuf[28]; //转换为正确的类型 if (oCMD.Type != 3 && oCMD.Type < 13) { 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]; CsConst.myRevBuf = new byte[1200]; oTmp.oUnit = oCMD; } } else { return(false); } scen.Add(oTmp); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(33 + bytI / 6, null); } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(66, null); } #endregion //HAI buttons to UV switch #region buttonstatus = new List <ButtonStatus>(); for (byte bytI = 1; bytI <= 192; bytI++) { ButtonStatus oTmp = new ButtonStatus(); oTmp.bytID = bytI; oTmp.Command = String.Format("{0:D3} ", bytI) + " Button Tab/Press<-->OFF/ON"; ArayMain = new byte[2]; ArayMain[0] = 3; ArayMain[1] = bytI; if (CsConst.mySends.AddBufToSndList(ArayMain, 0x0238, bytSubID, bytDevID, false, true, true, false) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = 1; if (CsConst.myRevBuf[27] == 1) { oCMD.Type = 2; //转换为正确的类型 } else { oCMD.Type = 3; } if (oCMD.Type != 3) { oCMD.SubnetID = CsConst.myRevBuf[28]; oCMD.DeviceID = CsConst.myRevBuf[29]; oCMD.Param1 = CsConst.myRevBuf[30]; oCMD.Param2 = 0; oCMD.Param3 = 0; oCMD.Param4 = 0; CsConst.myRevBuf = new byte[1200]; oTmp.oUnit = oCMD; } } else { return(false); } buttonstatus.Add(oTmp); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(66 + bytI / 6, null); } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100, null); } #endregion MyRead2UpFlags[0] = true; return(true); }
private void btnSave_Click(object sender, EventArgs e) { try { allVisible(false); Cursor.Current = Cursors.WaitCursor; btnSave.Enabled = false; int CMD1 = 0xE422; int CMD2 = 0xE42A; if (Type == 1) { CMD1 = 0xE422; CMD2 = 0xE42A; } else if (Type == 2) { CMD1 = 0xDA63; CMD2 = 0xDA6B; } for (int i = 0; i < dgvUV.Rows.Count; i++) { byte[] arayTmp = new byte[4]; if (MyintDeviceType == 1041) { arayTmp = new byte[6]; } arayTmp[0] = Convert.ToByte(dgvUV[0, i].Value.ToString()); if (dgvUV[1, i].Value == null) { dgvUV[1, i].Value = ""; } string strRemark = dgvUV[1, i].Value.ToString(); string strType = dgvUV[2, i].Value.ToString(); string str1 = dgvUV[3, i].Value.ToString(); string str2 = dgvUV[4, i].Value.ToString(); if (str1.Contains("(")) { str1 = str1.Split('(')[0].ToString(); } if (str2.Contains("(")) { str2 = str2.Split('(')[0].ToString(); } if (MyintDeviceType == 1041) { if (strType == CsConst.myPublicControlType[14].ControlTypeName) { arayTmp[1] = 0xBB; } arayTmp[2] = Convert.ToByte(str1.Split('/')[0].ToString()); arayTmp[3] = Convert.ToByte(str1.Split('/')[1].ToString()); arayTmp[4] = Convert.ToByte(str2.Split('/')[0].ToString()); arayTmp[5] = Convert.ToByte(str2.Split('/')[1].ToString()); } else { if (strType == CsConst.myPublicControlType[4].ControlTypeName) { arayTmp[1] = 0x58; } arayTmp[2] = Convert.ToByte(str1); if (str2 == CsConst.Status[0]) { arayTmp[3] = 0; } else if (str2 == CsConst.Status[1]) { arayTmp[3] = 255; } } if (CsConst.mySends.AddBufToSndList(arayTmp, CMD1, SubNetID, DevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(MyintDeviceType)) == true) { if (oRS232 != null) { if (Type == 1) { oRS232.myBUS2RS[i].bytType = arayTmp[1]; oRS232.myBUS2RS[i].bytParam1 = arayTmp[2]; oRS232.myBUS2RS[i].bytParam2 = arayTmp[3]; if (MyintDeviceType == 1041) { oRS232.myBUS2RS[i].bytParam3 = arayTmp[4]; oRS232.myBUS2RS[i].bytParam4 = arayTmp[5]; } } else if (Type == 2) { oRS232.myBUS2485[i].bytType = arayTmp[1]; oRS232.myBUS2485[i].bytParam1 = arayTmp[2]; oRS232.myBUS2485[i].bytParam2 = arayTmp[3]; } } else if (oMHRCU != null) { if (Type == 1) { oMHRCU.myBUS2RS[i].bytType = arayTmp[1]; oMHRCU.myBUS2RS[i].bytParam1 = arayTmp[2]; oMHRCU.myBUS2RS[i].bytParam2 = arayTmp[3]; } else if (Type == 2) { oMHRCU.myBUS2485[i].bytType = arayTmp[1]; oMHRCU.myBUS2485[i].bytParam1 = arayTmp[2]; oMHRCU.myBUS2485[i].bytParam2 = arayTmp[3]; } } } else { break; } HDLUDP.TimeBetwnNext(20); arayTmp = new byte[21]; arayTmp[0] = Convert.ToByte(dgvUV[0, i].Value.ToString()); byte[] arayRemark = HDLUDP.StringToByte(strRemark); if (arayRemark.Length <= 20) { arayRemark.CopyTo(arayTmp, 1); } else { Array.Copy(arayRemark, 0, arayTmp, 1, 20); } if (CsConst.mySends.AddBufToSndList(arayTmp, CMD2, SubNetID, DevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(MyintDeviceType)) == true) { if (oRS232 != null) { if (Type == 1) { oRS232.myBUS2RS[i].Remark = strRemark; } else if (Type == 2) { oRS232.myBUS2485[i].Remark = strRemark; } } else if (oMHRCU != null) { if (Type == 1) { oMHRCU.myBUS2RS[i].Remark = strRemark; } else if (Type == 2) { oMHRCU.myBUS2485[i].Remark = strRemark; } } } else { break; } HDLUDP.TimeBetwnNext(20); } } catch { } btnSave.Enabled = true; Cursor.Current = Cursors.Default; }
private void btnModify_Click(object sender, EventArgs e) { try { Cursor.Current = Cursors.WaitCursor; NewDS.CardInfo tmp = new NewDS.CardInfo(); string str1 = txtBuilding.Text; string str2 = txtUnit.Text; string str3 = txtRoom.Text; if (oDS != null) { tmp.CardNum = oDS.MyCardInfo[ID].CardNum; } else if (oNewDS != null) { tmp.CardNum = oNewDS.MyCardInfo[ID].CardNum; } tmp.CardType = Convert.ToByte(cbType.SelectedIndex + 1); tmp.BuildingNO = Convert.ToInt32(str1, 16); tmp.UnitNO = Convert.ToInt32(str2, 16); tmp.RoomNO = Convert.ToInt32(str3, 16); tmp.UIDL = Convert.ToByte(lbUIDLV.Text); tmp.UID = new byte[10]; byte[] arayUIDTmp = GlobalClass.HexToByte(lbUIDDV.Text); if (arayUIDTmp.Length > 10) { Array.Copy(arayUIDTmp, 0, tmp.UID, 0, 10); } else { Array.Copy(arayUIDTmp, 0, tmp.UID, 0, arayUIDTmp.Length); } tmp.arayDate = new byte[5]; tmp.arayDate[0] = Convert.ToByte(TimePicker.Value.Year - 2000); tmp.arayDate[1] = Convert.ToByte(TimePicker.Value.Month); tmp.arayDate[2] = Convert.ToByte(TimePicker.Value.Day); tmp.arayDate[3] = Convert.ToByte(numTime1.Value); tmp.arayDate[4] = Convert.ToByte(numTime2.Value); tmp.arayPhone = new byte[11]; byte[] arayTmpRemark = HDLUDP.StringToByte(txtPhone.Text); if (arayTmpRemark.Length > 11) { Array.Copy(arayTmpRemark, 0, tmp.arayPhone, 0, 11); } else { Array.Copy(arayTmpRemark, 0, tmp.arayPhone, 0, arayTmpRemark.Length); } tmp.arayName = new byte[10]; arayTmpRemark = HDLUDP.StringToByte(txtName.Text); if (arayTmpRemark.Length > 10) { Array.Copy(arayTmpRemark, 0, tmp.arayName, 0, 10); } else { Array.Copy(arayTmpRemark, 0, tmp.arayName, 0, arayTmpRemark.Length); } tmp.Remark = txtRemark.Text.Trim(); byte[] arayTmp = new byte[64]; arayTmp[0] = tmp.UIDL; Array.Copy(tmp.UID, 0, arayTmp, 1, tmp.UIDL); arayTmp[11] = tmp.CardType; arayTmp[12] = Convert.ToByte(tmp.CardNum / 256); arayTmp[13] = Convert.ToByte(tmp.CardNum % 256); arayTmp[14] = Convert.ToByte(tmp.BuildingNO / 256); arayTmp[15] = Convert.ToByte(tmp.BuildingNO % 256); arayTmp[16] = Convert.ToByte(tmp.UnitNO / 256); arayTmp[17] = Convert.ToByte(tmp.UnitNO % 256); arayTmp[18] = Convert.ToByte(tmp.RoomNO / 256); arayTmp[19] = Convert.ToByte(tmp.RoomNO % 256); Array.Copy(tmp.arayDate, 0, arayTmp, 20, tmp.arayDate.Length); Array.Copy(tmp.arayName, 0, arayTmp, 25, tmp.arayName.Length); Array.Copy(tmp.arayPhone, 0, arayTmp, 35, tmp.arayPhone.Length); arayTmpRemark = HDLUDP.StringToByte(tmp.Remark); if (arayTmpRemark.Length > 18) { Array.Copy(arayTmpRemark, 0, arayTmp, 46, 18); } else { Array.Copy(arayTmpRemark, 0, arayTmp, 46, arayTmpRemark.Length); } if (CsConst.mySends.AddBufToSndList(arayTmp, 0x3518, SubnetID, DeviceID, false, false, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { if (oNewDS != null) { oNewDS.MyCardInfo[ID] = tmp; } else if (oDS != null) { oDS.MyCardInfo[ID] = tmp; } this.Close(); } else { MessageBox.Show(CsConst.mstrINIDefault.IniReadValue("Public", "99777", ""), "" , MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return; } } catch { } Cursor.Current = Cursors.Default; }
/// <summary> ///上传设置 /// </summary> public bool UploaDeviceFromBufferToDevice(string DevName) { string strMainRemark = DevName.Split('\\')[1].Trim().Split('(')[0].Trim(); DevName = DevName.Split('\\')[0].Trim(); //保存basic informations byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.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, bytSubID, bytDevID, false, true, true, false) == false) { return(false); } //HAI unit to single light control #region if (units != null && units.Count != 0) { foreach (Unit oTmp in units) { if (oTmp.oUnit != null) { UVCMD.ControlTargets TmpCmd = oTmp.oUnit; byte[] arayCMD = new byte[10]; arayCMD[0] = 1; //表示类型 HAI单元 arayCMD[1] = oTmp.bytID; arayCMD[2] = 0; arayCMD[3] = TmpCmd.Type; arayCMD[4] = TmpCmd.SubnetID; arayCMD[5] = TmpCmd.DeviceID; arayCMD[6] = TmpCmd.Param1; arayCMD[7] = TmpCmd.Param2; arayCMD[8] = TmpCmd.Param3; // save targets arayCMD[9] = TmpCmd.Param4; if (CsConst.mySends.AddBufToSndList(arayCMD, 0x023A, bytSubID, bytDevID, false, true, true, false) == false) { return(false); } HDLUDP.TimeBetwnNext(arayCMD.Length); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(oTmp.bytID / 6, null); } } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(33, null); } #endregion //HAI scene to scene #region if (scen != null && scen.Count != 0) { foreach (Scene oTmp in scen) { if (oTmp.oUnit != null) { UVCMD.ControlTargets TmpCmd = oTmp.oUnit; byte[] arayCMD = new byte[10]; arayCMD[0] = 2; //表示类型 HAI单元 arayCMD[1] = oTmp.bytID; arayCMD[2] = 0; arayCMD[3] = TmpCmd.Type; arayCMD[4] = TmpCmd.SubnetID; arayCMD[5] = TmpCmd.DeviceID; arayCMD[6] = TmpCmd.Param1; arayCMD[7] = TmpCmd.Param2; arayCMD[8] = TmpCmd.Param3; // save targets arayCMD[9] = TmpCmd.Param4; if (CsConst.mySends.AddBufToSndList(arayCMD, 0x023A, bytSubID, bytDevID, false, true, true, false) == false) { return(false); } HDLUDP.TimeBetwnNext(arayCMD.Length); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(33 + oTmp.bytID / 6, null); } } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(66, null); } #endregion //HAI buttons to UV Switch #region if (buttonstatus != null && buttonstatus.Count != 0) { foreach (ButtonStatus oTmp in buttonstatus) { if (oTmp.oUnit != null) { UVCMD.ControlTargets TmpCmd = oTmp.oUnit; byte[] arayCMD = new byte[52]; arayCMD[0] = 3; //表示类型 HAI单元 arayCMD[1] = oTmp.bytID; arayCMD[2] = TmpCmd.Type; arayCMD[3] = TmpCmd.SubnetID; arayCMD[4] = TmpCmd.DeviceID; arayCMD[5] = TmpCmd.Param1; if (CsConst.mySends.AddBufToSndList(arayCMD, 0x023A, bytSubID, bytDevID, false, true, true, false) == false) { return(false); } HDLUDP.TimeBetwnNext(arayCMD.Length); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(66 + oTmp.bytID / 6, null); } } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100, null); } #endregion MyRead2UpFlags[1] = true; return(true); }
public bool UploadInfosToDevice(string DevNam, int wdDeviceType, int intActivePage) { string strMainRemark = DevNam.Split('\\')[1].Trim(); DevNam = DevNam.Split('\\')[0].Trim(); byte bytSubID = byte.Parse(DevNam.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevNam.Split('-')[1].ToString()); int wdMaxValue = DeviceTypeList.GetMaxValueFromPublicModeGroup(wdDeviceType); byte[] ArayMain = new byte[20]; byte[] arayTmpRemark = HDLUDP.StringToByte(strMainRemark); byte[] ArayTmp = null; if (HDLSysPF.ModifyDeviceMainRemark(bytSubID, bytDevID, strMainRemark, wdDeviceType) == false) { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5, null); } if (intActivePage == 0 || intActivePage == 1) { #region byte[] arayLED = new byte[11]; arayLED[0] = Backlight; // modify LED and backlight arayLED[1] = Ledlight; if (CsConst.mySends.AddBufToSndList(arayLED, 0xE012, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10, null); } if (CsConst.mySends.AddBufToSndList(arayHotel, 0x2016, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(15, null); } #endregion } if (intActivePage == 0 || intActivePage == 2) { #region byte[] arayKeyMode = new byte[wdMaxValue]; byte[] arayRemark = new byte[21]; byte[] arayDely = new byte[wdMaxValue * 2]; foreach (Key TmpKey in myKeySetting) { arayRemark = new byte[21]; TmpKey.UploadButtonRemarkAndCMDToDevice(bytSubID, bytDevID, wdDeviceType, -1, 255); arayDely[(TmpKey.ID - 1) * 2] = Convert.ToByte(TmpKey.Delay / 256); arayDely[(TmpKey.ID - 1) * 2 + 1] = Convert.ToByte(TmpKey.Delay % 256); arayKeyMode[TmpKey.ID - 1] = TmpKey.Mode; if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(25 + TmpKey.ID, null); } } if (CsConst.mySends.AddBufToSndList(arayKeyMode, 0xE00A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(40, null); } if (wdDeviceType != 3058 && wdDeviceType != 3060) { if (CsConst.mySends.AddBufToSndList(arayDely, 0x2026, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(45, null); } } #endregion } if (intActivePage == 0 || intActivePage == 3) { #region if (wdDeviceType == 3076 || wdDeviceType == 3078 || wdDeviceType == 3080) { if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(91); } int maxLength = wdMaxValue; if (wdDeviceType == 3076 || wdDeviceType == 3078 || wdDeviceType == 3080) { maxLength = 3; } for (int i = 1; i <= maxLength; i++) { ArayTmp = new byte[7]; ArayTmp[0] = Convert.ToByte(i); Array.Copy(arayButtonColor, (i - 1) * 6, ArayTmp, 1, 6); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xE14E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(92); } if (arayButtonBalance[0] >= 0) { ArayTmp = new byte[arayButtonBalance[0] * 3]; Array.Copy(arayButtonBalance, 1, ArayTmp, 0, arayButtonBalance.Length - 1); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x199A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } } ArayTmp = new byte[maxLength]; Array.Copy(arayButtonSensitiVity, 0, ArayTmp, 0, maxLength); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xE152, bytSubID, bytDevID, false, false, false, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(93); } } #endregion } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100, null); } return(true); }
/// <summary> ///上传设置 /// </summary> public bool UploadSensorInfosToDevice(string DevName, int DeviceType, int intActivePage, int num1, int num2) { string strMainRemark = DevName.Split('\\')[1].Trim().Split('(')[0].Trim(); DevName = DevName.Split('\\')[0].Trim(); //保存basic informations byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.Split('-')[1].ToString()); byte[] ArayMain = new byte[20]; if (HDLSysPF.ModifyDeviceMainRemark(bytSubID, bytDevID, strMainRemark, DeviceType) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } byte[] ArayTmp = null; ///红外发射 if (intActivePage == 0 || intActivePage == 1) { if (IRCodes != null && IRCodes.Count != 0) { #region byte byt = 0; foreach (UVCMD.IRCode TmpIRcode in IRCodes) { byte[] arayRemark = new byte[20]; string strRemark = TmpIRcode.Remark1; byte[] arayTmp2 = HDLUDP.StringToByte(strRemark); if (arayTmp2.Length <= 20) { Array.Copy(arayTmp2, 0, arayRemark, 0, arayTmp2.Length); } else { Array.Copy(arayTmp2, 0, arayRemark, 0, 20); } byte[] araySendIR = new byte[12]; araySendIR[0] = byte.Parse((TmpIRcode.KeyID - 1).ToString()); araySendIR[1] = 0; for (int K = 0; K <= 9; K++) { araySendIR[2 + K] = arayRemark[K]; } if (CsConst.mySends.AddBufToSndList(araySendIR, 0x1690, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } araySendIR[1] = 1; for (int K = 0; K <= 9; K++) { araySendIR[2 + K] = arayRemark[10 + K]; } if (CsConst.mySends.AddBufToSndList(araySendIR, 0x1690, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(byt * 10 / IRCodes.Count); } byt++; } #endregion } } //红外接收 if (intActivePage == 0 || intActivePage == 2) { //红外接收设置 #region if (IrReceiver != null && IrReceiver.Count != 0) { for (int i = 0; i < IrReceiver.Count; i++) { ArayTmpMode[IrReceiver[i].BtnNum - 1] = IrReceiver[i].IRBtnModel; } if (CsConst.mySends.AddBufToSndList(ArayTmpMode, 0x1674, bytSubID, bytDevID, false, true, true, false) == true) { byte byt = 0; HDLUDP.TimeBetwnNext(20); foreach (IRReceive oTmp in IrReceiver) { //修改备注 ArayTmp = new byte[21]; ArayTmp[0] = Convert.ToByte(oTmp.BtnNum); string strRemark = oTmp.IRBtnRemark; byte[] arayTmp2 = HDLUDP.StringToByte(strRemark); if (arayTmp2.Length <= 20) { Array.Copy(arayTmp2, 0, ArayTmp, 1, arayTmp2.Length); } else { Array.Copy(arayTmp2, 0, ArayTmp, 1, 20); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x167C, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.isRestore) { if (oTmp.TargetInfo != null && oTmp.TargetInfo.Count != 0) { foreach (UVCMD.ControlTargets TmpCmd in oTmp.TargetInfo) { if (TmpCmd.Type != 0 && TmpCmd.Type != 255) { byte[] arayCMD = new byte[9]; arayCMD[0] = Convert.ToByte(oTmp.BtnNum); arayCMD[1] = byte.Parse(TmpCmd.ID.ToString()); arayCMD[2] = TmpCmd.Type; arayCMD[3] = TmpCmd.SubnetID; arayCMD[4] = TmpCmd.DeviceID; arayCMD[5] = TmpCmd.Param1; arayCMD[6] = TmpCmd.Param2; arayCMD[7] = TmpCmd.Param3; // save targets arayCMD[8] = TmpCmd.Param4; if (CsConst.mySends.AddBufToSndList(arayCMD, 0x1678, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } } } } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(byt * 10 / IRCodes.Count + 10); } byt++; } } else { return(false); } } #endregion } if (intActivePage == 0 || intActivePage == 3) { #region //LED灯开关设置 #region ArayTmp = new byte[3]; ArayTmp[0] = 2; Array.Copy(ONLEDs, 0, ArayTmp, 1, 2); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xDB3C, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } #endregion if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(21); } //修改使能位 #region ArayTmp = new byte[7]; Array.Copy(EnableSensors, 0, ArayTmp, 0, 7); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1660, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } #endregion if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(22); } //修改补偿值和灵敏度 #region ArayTmp = new byte[4]; Array.Copy(ParamSensors, 0, ArayTmp, 0, 1); // 只有温度亮度 if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1643, bytSubID, bytDevID, false, true, true, false) == true) //修改2014-12-04 原来0x1641 --> 0x1643 { HDLUDP.TimeBetwnNext(20); } else { return(false); } #endregion if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(23); } //修改灵敏度 #region ArayTmp = new byte[1]; Array.Copy(ParamSensors, 1, ArayTmp, 0, 1); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1670, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } #endregion if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(24); } // 增加恒照度修改保存 if (DeviceType == 329) { #region ArayTmp = new byte[9]; Array.Copy(EnableBroads, 0, ArayTmp, 0, 9); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x16AB, bytSubID, bytDevID, false, true, true, false) == false) { HDLUDP.TimeBetwnNext(20); } #endregion } #endregion if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(30); } } if (intActivePage == 0 || intActivePage == 4) { //逻辑块功能设置 #region // 修改24个逻辑的使能位 if (logic != null && logic.Count != 0) { ArayTmp = new byte[logic.Count]; for (byte bytJ = 0; bytJ < logic.Count; bytJ++) { ArayTmp[bytJ] = logic[bytJ].Enabled; } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x165C, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); byte bytI = 1; foreach (SensorLogic oLogic in logic) { #region if (oLogic.ID == num1 || CsConst.isRestore) { //修改备注 #region ArayTmp = new byte[21]; ArayTmp[0] = bytI; string strRemark = oLogic.Remarklogic; byte[] arayTmp2 = HDLUDP.StringToByte(strRemark); if (arayTmp2.Length <= 20) { Array.Copy(arayTmp2, 0, ArayTmp, 1, arayTmp2.Length); } else { Array.Copy(arayTmp2, 0, ArayTmp, 1, 20); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x164A, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } #endregion //修改设置 #region ArayTmp = new byte[21]; ArayTmp[0] = bytI; ArayTmp[1] = oLogic.bytRelation; int intTmp = 0; for (byte bytJ = 0; bytJ <= 6; bytJ++) { intTmp = intTmp | (oLogic.EnableSensors[bytJ] << bytJ); } ArayTmp[2] = (Byte)(intTmp); ArayTmp[3] = (Byte)(oLogic.DelayTimeT / 256); ArayTmp[4] = (Byte)(oLogic.DelayTimeT % 256); Array.Copy(oLogic.Paramters, 0, ArayTmp, 5, 7); ArayTmp[12] = 201; ArayTmp[13] = 202; if (oLogic.UV1 != null) { ArayTmp[12] = oLogic.UV1.id; ArayTmp[13] = oLogic.UV1.condition; } if (oLogic.UV2 != null) { ArayTmp[14] = oLogic.UV2.id; ArayTmp[15] = oLogic.UV2.condition; } ArayTmp[16] = Convert.ToByte(oLogic.DelayTimeF / 256); ArayTmp[17] = Convert.ToByte(oLogic.DelayTimeF % 256); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1652, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } #endregion //目标配置 #region if (CsConst.isRestore) { //成立的触发目标 oLogic.ModifyLogicTrueCommandsFromDevice(bytSubID, bytDevID, DeviceType); //不成立的触发目标 oLogic.ModifyLogicFalseCommandsFromDevice(bytSubID, bytDevID, DeviceType); } #endregion } #endregion if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(30 + bytI); } bytI++; } } else { return(false); } } #endregion } if (intActivePage == 0 || intActivePage == 5) { //安防功能 #region if (fireset != null && fireset.Count != 0) { foreach (UVCMD.SecurityInfo oTmp in fireset) { ArayTmp = new byte[21]; ArayTmp[0] = oTmp.bytSeuID; //修改备注 ArayTmp[0] = oTmp.bytSeuID; string strRemark = oTmp.strRemark; byte[] arayTmp2 = HDLUDP.StringToByte(strRemark); Array.Copy(arayTmp2, 0, ArayTmp, 1, arayTmp2.Length); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1668, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } //修改设置 ArayTmp = new byte[9]; ArayTmp[0] = oTmp.bytSeuID; ArayTmp[1] = oTmp.bytTerms; ArayTmp[2] = oTmp.bytSubID; ArayTmp[3] = oTmp.bytDevID; ArayTmp[4] = oTmp.bytArea; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x166C, bytSubID, bytDevID, false, true, true, false) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10 * oTmp.bytSeuID / fireset.Count + 60); } } } #endregion } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } return(true); }
/// <summary> ///上传设置 /// </summary> public bool UploadCurtainInfosToDevice(string DevName, int intActivePage) { string strMainRemark = DevName.Split('\\')[1].Trim().Split('(')[0].Trim(); DevName = DevName.Split('\\')[0].Trim(); //保存basic informations byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.Split('-')[1].ToString()); byte[] ArayMain = new byte[20]; byte[] arayTmpRemark = HDLUDP.StringToByte(strMainRemark); byte[] ArayTmp; 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, bytSubID, bytDevID, false, true, true, false) == false) { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(1); } if (intActivePage == 0) { // 修改基本信息设备ID bacnet标准设置 #region ArayTmp = new byte[4]; ArayTmp[0] = Convert.ToByte(Address >> 24); ArayTmp[1] = Convert.ToByte(Address >> 16 & 0x00FF); ArayTmp[2] = Convert.ToByte(Address >> 8 & 0x0000FF); ArayTmp[3] = Convert.ToByte(Address % 256); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xBAD0, bytSubID, bytDevID, false, true, true, false) == true) { CsConst.myRevBuf = new byte[1200]; } else { return(false); } #endregion //bacnet 端口 IP设置 #region ArayTmp = new byte[7]; if (blnSwitch) { ArayTmp[0] = 1; } ArayTmp[5] = Convert.ToByte(intPort / 256); ArayTmp[6] = Convert.ToByte(intPort % 256); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x180F, bytSubID, bytDevID, false, true, true, false) == true) { CsConst.myRevBuf = new byte[1200]; } else { return(false); } #endregion } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(2); } // 修改转换列表 if (intActivePage == 0 || intActivePage == 1) { if (otherInfo != null && otherInfo.Count != 0) { byte bytID = 0; if (CsConst.isRestore) { ArayTmp = new byte[2]; ArayTmp[0] = Convert.ToByte(ValidCount / 256); ArayTmp[1] = Convert.ToByte(ValidCount % 256); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xBAC8, bytSubID, bytDevID, false, true, true, false) == true) { CsConst.myRevBuf = new byte[1200]; } else { return(false); } } #region foreach (OtherInfo oTmp in otherInfo) { ArayTmp = new byte[65]; ArayTmp[0] = oTmp.ID; ArayTmp[1] = oTmp.BackNetIDAry[0]; ArayTmp[2] = oTmp.BackNetIDAry[1]; ArayTmp[3] = oTmp.BackNetIDAry[2]; ArayTmp[4] = oTmp.BackNetIDAry[3]; #region switch (oTmp.Type) { case 0x000C: ///场景 广播场景 ArayTmp[5] = 0x000C % 256; ArayTmp[6] = 0x000C / 256; ArayTmp[7] = 0x000D % 256; ArayTmp[8] = 0x000D / 256; ArayTmp[9] = 0x0002 % 256; ArayTmp[10] = 0x0002 / 256; ArayTmp[11] = 0x0003 % 256; ArayTmp[12] = 0x0003 / 256; break; case 0xE014: //序列 ArayTmp[5] = 0xE014 % 256; ArayTmp[6] = 0xE014 / 256; ArayTmp[7] = 0xE015 % 256; ArayTmp[8] = 0xE015 / 256; ArayTmp[9] = 0x001A % 256; ArayTmp[10] = 0x001A / 256; ArayTmp[11] = 0x001B % 256; ArayTmp[12] = 0x001B / 256; break; case 0x0033: //单路调节 广播回路 ArayTmp[5] = 0x0033 % 256; ArayTmp[6] = 0x0033 / 256; ArayTmp[7] = 0x0034 % 256; ArayTmp[8] = 0x0034 / 256; ArayTmp[9] = 0x0031 % 256; ArayTmp[10] = 0x0031 / 256; ArayTmp[11] = 0x0032 % 256; ArayTmp[12] = 0x0032 / 256; break; case 0xE018: //通用开关 ArayTmp[5] = 0xE018 % 256; ArayTmp[6] = 0xE018 / 256; ArayTmp[7] = 0xE019 % 256; ArayTmp[8] = 0xE019 / 256; ArayTmp[9] = 0xE01C % 256; ArayTmp[10] = 0xE01C / 256; ArayTmp[11] = 0xE01D % 256; ArayTmp[12] = 0xE01D / 256; break; case 0xF112: //时间开关 ArayTmp[5] = 0xF112 % 256; ArayTmp[6] = 0xF112 / 256; ArayTmp[7] = 0xF113 % 256; ArayTmp[8] = 0xF113 / 256; ArayTmp[9] = 0xF116 % 256; ArayTmp[10] = 0xF116 / 256; ArayTmp[11] = 0xF117 % 256; ArayTmp[12] = 0xF117 / 256; break; case 0xE3E2: //窗帘开关 ArayTmp[5] = 0xE3E2 % 256; ArayTmp[6] = 0xE3E2 / 256; ArayTmp[7] = 0xE3E3 % 256; ArayTmp[8] = 0xE3E3 / 256; ArayTmp[9] = 0xE3E0 % 256; ArayTmp[10] = 0xE3E0 / 256; ArayTmp[11] = 0xE3E1 % 256; ArayTmp[12] = 0xE3E1 / 256; break; case 0xE3D6: //GPRS控制 ArayTmp[5] = 0xE3D6 % 256; ArayTmp[6] = 0xE3D6 / 256; ArayTmp[7] = 0xE3D7 % 256; ArayTmp[8] = 0xE3D7 / 256; ArayTmp[9] = 0xE3D4 % 256; ArayTmp[10] = 0xE3D4 / 256; ArayTmp[11] = 0xE3D5 % 256; ArayTmp[12] = 0xE3D5 / 256; break; case 0xE3DA: //面板控制 ArayTmp[5] = 0xE3DA % 256; ArayTmp[6] = 0xE3DA / 256; ArayTmp[7] = 0xE3DB % 256; ArayTmp[8] = 0xE3DB / 256; ArayTmp[9] = 0xE3D8 % 256; ArayTmp[10] = 0xE3D8 / 256; ArayTmp[11] = 0xE3D9 % 256; ArayTmp[12] = 0xE3D9 / 256; break; case 0x011E: //消防控制 ArayTmp[5] = 0x011E % 256; ArayTmp[6] = 0x011E / 256; ArayTmp[7] = 0x011F % 256; ArayTmp[8] = 0x011F / 256; ArayTmp[9] = 0x0104 % 256; ArayTmp[10] = 0x0104 / 256; ArayTmp[11] = 0x0105 % 256; ArayTmp[12] = 0x0105 / 256; break; case 0x16A4: //通用控制 ArayTmp[5] = 0x16A4 % 256; ArayTmp[6] = 0x16A4 / 256; ArayTmp[7] = 0x16A5 % 256; ArayTmp[8] = 0x16A5 / 256; ArayTmp[9] = 0x16A6 % 256; ArayTmp[10] = 0x16A6 / 256; ArayTmp[11] = 0x16A7 % 256; ArayTmp[12] = 0x16A7 / 256; break; case 0x15CE: //干接点 ArayTmp[5] = 0x15CE % 256; ArayTmp[6] = 0x15CE / 256; ArayTmp[7] = 0x15CF % 256; ArayTmp[8] = 0x15CF / 256; ArayTmp[9] = 0x15CE % 256; ArayTmp[10] = 0x15CE / 256; ArayTmp[11] = 0x15CF % 256; ArayTmp[12] = 0x15CF / 256; break; case 0xE440: //模拟值输出 ArayTmp[5] = 0x40; ArayTmp[6] = 0xE4; ArayTmp[7] = 0x41; ArayTmp[8] = 0xE4; ArayTmp[9] = 0x42; ArayTmp[10] = 0xE4; ArayTmp[11] = 0x43; ArayTmp[12] = 0xE4; break; case 0xE444: //模拟量设置 ArayTmp[5] = 0x44; ArayTmp[6] = 0xE4; ArayTmp[7] = 0x45; ArayTmp[8] = 0xE4; ArayTmp[9] = 0x46; ArayTmp[10] = 0xE4; ArayTmp[11] = 0x47; ArayTmp[12] = 0xE4; break; case 0xE3E7: //温度读取(1 byte) ArayTmp[5] = 0xE3E7 % 256; ArayTmp[6] = 0xE3E7 / 256; ArayTmp[7] = 0xE3E8 % 256; ArayTmp[8] = 0xE3E8 / 256; ArayTmp[9] = 0xE3E5 % 256; ArayTmp[10] = 0xE3E5 / 256; ArayTmp[11] = 0xE3E5 % 256; ArayTmp[12] = 0xE3E5 / 256; break; case 0x1948: //温度读取(4 byte) ArayTmp[5] = 0x1948 % 256; ArayTmp[6] = 0x1948 / 256; ArayTmp[7] = 0x1949 % 256; ArayTmp[8] = 0x1949 / 256; ArayTmp[9] = 0xE3E5 % 256; ArayTmp[10] = 0xE3E5 / 256; ArayTmp[11] = 0xE3E5 % 256; ArayTmp[12] = 0xE3E5 / 256; break; case 0xA008: //DALI灯状态 ArayTmp[5] = 0xA008 % 256; ArayTmp[6] = 0xA008 / 256; ArayTmp[7] = 0xA009 % 256; ArayTmp[8] = 0xA009 / 256; ArayTmp[9] = 0xA008 % 256; ArayTmp[10] = 0xA008 / 256; ArayTmp[11] = 0xA009 % 256; ArayTmp[12] = 0xA009 / 256; break; } #endregion ArayTmp[13] = Convert.ToByte(oTmp.strDevName.Split('/')[0].ToString()); ArayTmp[14] = Convert.ToByte(oTmp.strDevName.Split('/')[1].ToString()); ArayTmp[15] = oTmp.Param1; ArayTmp[16] = oTmp.Param2; ArayTmp[17] = oTmp.Param3; ArayTmp[18] = oTmp.Param4; ArayTmp[20] = 1; ArayTmp[21] = 20; ArayTmp[22] = 0; arayTmpRemark = new byte[40]; arayTmpRemark = HDLUDP.StringToByte(oTmp.Remark); if (arayTmpRemark.Length > 40) { Array.Copy(arayTmpRemark, 0, ArayTmp, 23, 40); } else { Array.Copy(arayTmpRemark, 0, ArayTmp, 23, arayTmpRemark.Length); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xBAC2, bytSubID, bytDevID, false, true, true, false) == true) { CsConst.myRevBuf = new byte[1200]; } else { return(false); } bytID++; if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100 / otherInfo.Count * bytID); } } #endregion } } MyRead2UpFlags[1] = true; if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } return(true); }
/// <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); }
public bool UploadInfosToDeviceNetVersion(string DevNam, int wdDeviceType, int intActivePage) { string strMainRemark = DevNam.Split('\\')[1].Trim(); DevNam = DevNam.Split('\\')[0].Trim(); byte bytSubID = byte.Parse(DevNam.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevNam.Split('-')[1].ToString()); byte[] ArayMain = new byte[20]; byte[] arayTmpRemark = HDLUDP.StringToByte(strMainRemark); //ruby test 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, bytSubID, bytDevID, false, true, true, false) == false) { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5, null); } if (intActivePage == 0 || intActivePage == 1) { byte[] ArayTmp = new byte[8]; ArayTmp[0] = 0; if (Enable) { ArayTmp[1] = 1; } ArayTmp[2] = Convert.ToByte(strIP.Split('.')[0].ToString()); ArayTmp[3] = Convert.ToByte(strIP.Split('.')[1].ToString()); ArayTmp[4] = Convert.ToByte(strIP.Split('.')[2].ToString()); ArayTmp[5] = Convert.ToByte(strIP.Split('.')[3].ToString()); ArayTmp[6] = Convert.ToByte(Port / 256); ArayTmp[7] = Convert.ToByte(Port % 256); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1386, bytSubID, bytDevID, false, true, true, false) == true) { CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(ArayTmp.Length); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10, null); } for (int i = 0; i < myACSetting.Count; i++) { ArayTmp = new byte[8]; ArayTmp[0] = myACSetting[i].ID; ArayTmp[1] = myACSetting[i].Enable; ArayTmp[2] = myACSetting[i].ACNO; ArayTmp[3] = myACSetting[i].GroupID; if (myACSetting[i].arayACinfo == null || myACSetting[i].arayACinfo.Length < 3) { myACSetting[i].arayACinfo = new byte[3]; myACSetting[i].arayACinfo[0] = 41; } Array.Copy(myACSetting[i].arayACinfo, 0, ArayTmp, 4, 3); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1386, bytSubID, bytDevID, false, true, true, false) == true) { CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(ArayTmp.Length); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10 + i, null); } } else { return(false); } } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100, null); } return(true); }
/// <summary> ///upload all information to IR sender /// </summary> /// <param name="DIndex"></param> /// <param name="DevID"></param> /// <param name="DeviceType"></param> /// <param name="DevName"></param> /// <returns></returns> public bool UploadPanelInfosToDevice(string DevNam, int wdDeviceType, int intActivePage) { string strMainRemark = DevNam.Split('\\')[1].Trim(); DevNam = DevNam.Split('\\')[0].Trim(); byte bytSubID = byte.Parse(DevNam.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevNam.Split('-')[1].ToString()); byte[] ArayMain = new byte[20]; byte[] arayTmpRemark = HDLUDP.StringToByte(strMainRemark); //ruby test 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, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == false) { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5); } if (intActivePage == 0 || intActivePage == 1) { #region if (wdDeviceType == 306 || wdDeviceType == 319 || wdDeviceType == 313) { byte[] arayTmp = new byte[2]; arayTmp[0] = 255; arayTmp[1] = RemoteEnable; if (CsConst.mySends.AddBufToSndList(arayTmp, 0xE01C, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(arayTmp.Length); } } if (IRCodes == null) { return(false); } int count = IRCodes.Count; int Int = 0; foreach (UVCMD.IRCode TmpIRcode in IRCodes) { Int++; if (TmpIRcode.Codes != "" && TmpIRcode.Codes != null) { string[] strTmp = TmpIRcode.Codes.Split(';'); //上传红外码 #region byte[] arayTmp1 = new byte[3]; arayTmp1[0] = byte.Parse((TmpIRcode.KeyID - 1).ToString()); int IRSize = Convert.ToInt32(strTmp[0].Split(' ')[2] + strTmp[0].Split(' ')[3], 16); arayTmp1[1] = byte.Parse((IRSize / 256).ToString()); arayTmp1[2] = byte.Parse((IRSize % 256).ToString()); // ask for enough space for IR code if (CsConst.mySends.AddBufToSndList(arayTmp1, 0xD900, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(arayTmp1.Length); for (int i = 0; i < strTmp.Length; i++) { byte[] arayIR = new byte[16]; string[] araystrIR = strTmp[i].Split(' '); for (int j = 0; j < 16; j++) { arayIR[j] = HDLPF.StringToByte(araystrIR[j].ToString()); } if (CsConst.mySends.AddBufToSndList(arayIR, 0xD906, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(arayIR.Length); } else { return(false); } } byte[] arayRemark = new byte[20]; string strRemark = TmpIRcode.Remark1; byte[] arayTmp2 = HDLUDP.StringToByte(strRemark); //arayTmp2.CopyTo(arayRemark, 0); if (arayTmp2.Length > 20) { Array.Copy(arayTmp2, 0, arayRemark, 0, 20); } else { Array.Copy(arayTmp2, 0, arayRemark, 0, arayTmp2.Length); } byte[] araySendIR = new byte[12]; araySendIR[0] = byte.Parse((TmpIRcode.KeyID - 1).ToString()); araySendIR[1] = 0; //save the remark first time for (int K = 0; K <= 9; K++) { araySendIR[2 + K] = arayRemark[K]; } if (CsConst.mySends.AddBufToSndList(araySendIR, 0xD90E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(araySendIR.Length); } else { return(false); } araySendIR[1] = 1; //save the remark then for (int K = 0; K <= 9; K++) { araySendIR[2 + K] = arayRemark[10 + K]; } if (CsConst.mySends.AddBufToSndList(araySendIR, 0xD90E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(araySendIR.Length); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(Int * (90 / count) + 5, null); } } else { return(false); } #endregion } } #endregion } if (intActivePage == 0) { #region if (CsConst.isRestore) { byte[] ArayTmp = new byte[2]; //发送第一个开关 ArayTmp[0] = 0; ArayTmp[1] = mbytOne; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xD960, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(ArayTmp.Length); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(91); } //发送第二个开关 ArayTmp[0] = 1; if (mbytTwo != 0) { ArayTmp[1] = mbytTwo; } else { ArayTmp[1] = 0; } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xD960, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(ArayTmp.Length); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(92); } } #endregion } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } return(true); }
/// <summary> /// 将调光模块设备上传 /// </summary> /// <param name="DIndex"></param> /// <param name="DevID"></param> /// <param name="DeviceType"></param> /// <param name="DevName"></param> /// <returns></returns> public bool UploadDimmerInfosToDevice(string DevName) { //保存回路信息 string strMainRemark = DevName.Split('\\')[1].Trim().Split('(')[0].Trim(); DevName = DevName.Split('\\')[0].Trim(); //保存basic informations byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.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, bytSubID, bytDevID, false, true, true, false) == false) { MessageBox.Show("This module is not online or the address is another one, please check it !!"); return(false); } byte bytChID = 1; byte[] arayTmp = new byte[16]; foreach (Chn ch in Chans) { // modify the chns remark byte[] arayRemark = new byte[8]; // 初始化数组 arayRemark[0] = bytChID; arayRemark[1] = ch.bytTheType; arayRemark[2] = ch.bytRValue[0]; arayRemark[3] = ch.bytRValue[1]; arayRemark[4] = ch.bytRValue[2]; arayRemark[5] = ch.bytRValue[3]; arayRemark[6] = ch.bytRValue[4]; arayRemark[7] = ch.bytRValue[5]; CsConst.mySends.AddBufToSndList(arayRemark, 0x1C06, bytSubID, bytDevID, false, true, true, false); HDLUDP.TimeBetwnNext(arayRemark.Length); if (ch.blnBroadTemp == true) { arayTmp[(bytChID - 1) * 4] = 1; } else { arayTmp[(bytChID - 1) * 4] = 0; } arayTmp[(bytChID - 1) * 4 + 1] = ch.bytSubID; arayTmp[(bytChID - 1) * 4 + 2] = ch.bytDevID; arayTmp[(bytChID - 1) * 4 + 3] = ch.byAdjustVal; if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(bytChID * 25, null); } bytChID++; } // modify the load type CsConst.mySends.AddBufToSndList(arayTmp, 0xF014, bytSubID, bytDevID, false, true, true, false); HDLUDP.TimeBetwnNext(arayTmp.Length); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100, null); } MyRead2UpFlags[1] = true; return(true); }
public bool UploadNewIRInfosToDevice(string DevName, int intDeviceType, int intActivePage) { //保存basic informations string strMainRemark = DevName.Split('\\')[1].Trim().Split('(')[0].Trim(); DevName = DevName.Split('\\')[0].Trim(); //保存basic informations byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.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.isRestore) { if (CsConst.mySends.AddBufToSndList(ArayMain, 0x0010, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5); } byte[] ArayTmp = new byte[0]; if (intActivePage == 0 || intActivePage == 1) { if (IRCodes != null && IRCodes.Count != 0) { #region for (int i = 0; i < IRCodes.Count; i++) //IRCodes.Count { NewIRCode temp = IRCodes[i]; ArayTmp = new byte[26]; if (intDeviceType == 1301 || intDeviceType == 1300 || intDeviceType == 6100) { ArayTmp = new byte[27]; } ArayTmp[0] = Convert.ToByte(temp.KeyID); ArayTmp[1] = 0; ArayTmp[2] = temp.DevID; ArayTmp[3] = (byte)(temp.IRIndex / 256); ArayTmp[4] = (byte)(temp.IRIndex % 256); ArayTmp[5] = (byte)temp.IRLength; arayTmpRemark = new Byte[20]; arayTmpRemark = HDLUDP.StringToByte(temp.Remark); if (arayTmpRemark.Length > 20) { Array.Copy(arayTmpRemark, 0, ArayTmp, 6, 20); } else { Array.Copy(arayTmpRemark, 0, ArayTmp, 6, arayTmpRemark.Length); } if (intDeviceType == 1301 || intDeviceType == 1300) { if (temp.DevID < 4) { ArayTmp[26] = 0; } else { ArayTmp[26] = 1; } if (temp.DevID != 5) { ArayTmp[0] = Convert.ToByte(ArayTmp[0] - 4); } } else if (intDeviceType == 6100) { if (i < 3 && temp.DevID == 255) { ArayTmp[2] = 1; } else if (temp.DevID == 255) { ArayTmp[2] = 0; } // 空调设置标识,固定存储为1 if (i < 3) { ArayTmp[26] = 1; } else { ArayTmp[26] = 0; } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5 + i); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x137A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) //请求空间 { byte[] arayCodes = GlobalClass.HexToByte(temp.Codes); if (arayCodes.Length > 62) { #region int Count = arayCodes.Length / 62; if (arayCodes.Length % 124 != 0) { Count = Count + 1; } for (int j = 0; j < Count; j++) { if (arayCodes.Length % 62 != 0) { if (i == (Count - 1)) { ArayTmp = new byte[2 + arayCodes.Length % 124]; ArayTmp[0] = Convert.ToByte(temp.KeyID); ArayTmp[1] = Convert.ToByte(j + 1); for (int k = 0; k < arayCodes.Length % 62; k++) { ArayTmp[2 + k] = arayCodes[j * 62 + k]; } } else { ArayTmp = new byte[2 + 62]; ArayTmp[0] = Convert.ToByte(temp.KeyID); ArayTmp[1] = Convert.ToByte(j + 1); for (int k = 0; k < 62; k++) { ArayTmp[2 + k] = arayCodes[j * 62 + k]; } } } else { ArayTmp = new byte[2 + 62]; ArayTmp[0] = Convert.ToByte(temp.KeyID); ArayTmp[1] = Convert.ToByte(j + 1); for (int k = 0; k < 62; k++) { ArayTmp[2 + k] = arayCodes[j * 62 + k]; } ; } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x137A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { } else { return(false); } } #endregion } else if (arayCodes.Length > 0) { #region ArayTmp = new byte[2 + arayCodes.Length]; ArayTmp[0] = Convert.ToByte(temp.KeyID); ArayTmp[1] = 1; arayCodes.CopyTo(ArayTmp, 2); // 上传试红外码 if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x137A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { } #endregion } } } #endregion } if (intDeviceType == 729 || intDeviceType == 1300) { ArayTmp = new byte[4]; for (int i = 0; i < 4; i++) { ArayTmp[i] = arayBrocast[i]; } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xE0FA, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { } else { return(false); } } if (intDeviceType == 6100) { ArayTmp = new byte[7]; for (int i = 0; i < 7; i++) { ArayTmp[i] = arayTime[i]; } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xDA02, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { } else { return(false); } } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(40); } if (intActivePage == 0 || intActivePage == 6) { #region if (intDeviceType == 6100) { for (int i = 0; i < Clocks.Count; i++) { ArayTmp = new byte[9]; ArayTmp[0] = Clocks[i].ID; ArayTmp[1] = Clocks[i].Enable; ArayTmp[2] = Clocks[i].Type; Array.Copy(Clocks[i].arayParam, 0, ArayTmp, 3, 5); ArayTmp[8] = Clocks[i].SceneID; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xE46C, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(40 + i); } } if (CsConst.isRestore) { if (Scenes != null && Scenes.Count == 8) { #region for (int i = 1; i <= 8; i++) { Scene temp = Scenes[i - 1]; if (temp.Targets != null && temp.Targets.Count > 0) { foreach (UVCMD.ControlTargets TmpCmd in temp.Targets) { if (TmpCmd.Type != 0 && TmpCmd.Type != 255) { byte[] arayCMD = new byte[9]; arayCMD[0] = Convert.ToByte(i); arayCMD[1] = Convert.ToByte(TmpCmd.ID); arayCMD[2] = TmpCmd.Type; arayCMD[3] = TmpCmd.SubnetID; arayCMD[4] = TmpCmd.DeviceID; arayCMD[5] = TmpCmd.Param1; arayCMD[6] = TmpCmd.Param2; arayCMD[7] = TmpCmd.Param3; // save targets arayCMD[8] = TmpCmd.Param4; if (CsConst.mySends.AddBufToSndList(arayCMD, 0x1400, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } } } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(60 + i); } } #endregion } } } #endregion } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } return(true); }
public override void UploadMS04ToDevice(string strDevName, int DeviceType, int intActivePage, int num1, int num2)// 0 mean all, else that tab only { String strTmpDevName = strDevName.Split('\\')[0].Trim(); byte bytSubID = byte.Parse(strTmpDevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(strTmpDevName.Split('-')[1].ToString()); try { base.UploadMS04ToDevice(strDevName, DeviceType, intActivePage, 0, 0); if (ChnList == null || ChnList.Count == 0) { return; } int wdMaxValue = ChnList.Count; if (intActivePage == 0 || intActivePage == 7 || intActivePage == 8) { //修改区域信息 #region if (intActivePage == 7 || (intActivePage == 8 && (Areas == null || Areas.Count == 0))) { byte[] arayArea = new byte[wdMaxValue + 3]; arayArea[0] = bytSubID; arayArea[1] = bytDevID; if (Areas == null || Areas.Count == 0) { arayArea[2] = 1; } else { arayArea[2] = (byte)Areas.Count; foreach (Channel chn in ChnList) { arayArea[2 + chn.ID] = Convert.ToByte(chn.intBelongs); } } // modify area first or nothing can be go on after that if (CsConst.mySends.AddBufToSndList(arayArea, 0x0006, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == false) { return; } CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(10); } #endregion #region Byte bytI = 0; Byte[] arayRemark = new Byte[0]; Byte[] bytSceFlag = new Byte[Areas.Count]; Byte[] bytSceIDs = new Byte[Areas.Count]; foreach (Area area in Areas) { // modify area remark arayRemark = new byte[21]; // 初始化数组 string strRemark = area.Remark; byte[] arayTmp = HDLUDP.StringToByte(strRemark); arayRemark[0] = area.ID; arayTmp.CopyTo(arayRemark, 1); if (CsConst.mySends.AddBufToSndList(arayRemark, 0xF00C, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == false) { return; } CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(20); if (area.bytDefaultSce != 13) { bytSceFlag[bytI] = 1; bytSceIDs[bytI] = area.bytDefaultSce; } bytI++; if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(20 + 10 * bytI / Areas.Count); } } if (CsConst.mySends.AddBufToSndList(bytSceFlag, 0xF053, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == false) { return; } CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(20); if (CsConst.mySends.AddBufToSndList(bytSceIDs, 0xF057, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == false) { return; } CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(20); MyRead2UpFlags[6] = true; #endregion if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(30); } if (intActivePage == 8) { foreach (Area area in Areas) { // scene #region bytI = 1; foreach (Scene scen in area.Scen) { string strRemark = scen.Remark; byte[] arayTmp = HDLUDP.StringToByte(strRemark); byte[] arayRemark1 = new byte[22]; arayRemark1[0] = area.ID; arayRemark1[1] = scen.ID; if (arayTmp != null) { arayTmp.CopyTo(arayRemark1, 2); } if (CsConst.mySends.AddBufToSndList(arayRemark1, 0xF026, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == false) { return; } CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(20); // modify scene running time and lights byte[] araySce = new byte[4 + wdMaxValue]; araySce[0] = area.ID; araySce[1] = scen.ID; araySce[2] = byte.Parse((scen.Time / 256).ToString()); araySce[3] = byte.Parse((scen.Time % 256).ToString()); int intTmp = 0; foreach (Channel ch in ChnList) { //添加所在区域的亮度值 if (ch.intBelongs == area.ID) { araySce[4 + intTmp] = scen.light[ch.ID - 1]; intTmp++; } } if (CsConst.mySends.AddBufToSndList(araySce, 0x0008, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == false) { return; } CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(20); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(30 + bytI * 10 / area.Scen.Count); } bytI++; } #endregion if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(40); } } } } } catch { } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } }
public bool UploadInfosToDevice(string DevNam, int wdDeviceType, int intActivePage) { string strMainRemark = DevNam.Split('\\')[1].Trim(); DevNam = DevNam.Split('\\')[0].Trim(); byte bytSubID = byte.Parse(DevNam.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevNam.Split('-')[1].ToString()); int wdMaxValue = DeviceTypeList.GetMaxValueFromPublicModeGroup(wdDeviceType); byte[] arayTmp = new byte[20]; if (HDLSysPF.ModifyDeviceMainRemark(bytSubID, bytDevID, strMainRemark, wdDeviceType) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5, null); } if (intActivePage == 0 || intActivePage == 1) { if (strNO == "") { strNO = "0000"; } if (strPassword == "") { strPassword = "******"; } if (strNO.Length < 4) { strNO = GlobalClass.AddLeftZero(strNO, 4); } if (strPassword.Length < 4) { strPassword = GlobalClass.AddLeftZero(strPassword, 6); } arayTmp = HDLUDP.StringToByte(strNO + strPassword); if (CsConst.mySends.AddBufToSndList(arayTmp, 0x352F, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(6, null); } if (CsConst.mySends.AddBufToSndList(arayBasic, 0x3527, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(6, null); } arayTmp = new byte[2]; arayTmp[0] = arayInfo[0]; arayTmp[1] = arayInfo[1]; if (CsConst.mySends.AddBufToSndList(arayTmp, 0x350E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(7, null); } arayTmp = new byte[11]; Array.Copy(arayCall, 0, arayTmp, 0, 11); if (CsConst.mySends.AddBufToSndList(arayTmp, 0x138C, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(8, null); } arayTmp = new byte[2]; arayTmp[0] = arayInfo[3]; arayTmp[1] = arayInfo[4]; if (CsConst.mySends.AddBufToSndList(arayTmp, 0x353D, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } arayTmp = new byte[2]; arayTmp[0] = arayInfo[5]; arayTmp[1] = arayInfo[6]; if (CsConst.mySends.AddBufToSndList(arayTmp, 0x3340, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } arayTmp = new byte[1] { arayInfo[2] }; if (CsConst.mySends.AddBufToSndList(arayTmp, 0x3535, bytSubID, bytDevID, false, false, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } arayTmp = new byte[1] { bEnableCard }; if (CsConst.mySends.AddBufToSndList(arayTmp, 0x3346, bytSubID, bytDevID, false, false, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } } if (CsConst.isRestore) { if (intActivePage == 0 || intActivePage == 2) { for (int i = 0; i < MyCardInfo.Count; i++) { if (MyCardInfo[i].CardType != 0 && MyCardInfo[i].CardType != 0xFF) { CardInfo tmp = MyCardInfo[i]; arayTmp = new byte[64]; arayTmp[0] = tmp.UIDL; Array.Copy(tmp.UID, 0, arayTmp, 1, tmp.UIDL); arayTmp[11] = tmp.CardType; arayTmp[12] = Convert.ToByte(tmp.CardNum / 256); arayTmp[13] = Convert.ToByte(tmp.CardNum % 256); arayTmp[14] = Convert.ToByte(tmp.BuildingNO / 256); arayTmp[15] = Convert.ToByte(tmp.BuildingNO % 256); arayTmp[16] = Convert.ToByte(tmp.UnitNO / 256); arayTmp[17] = Convert.ToByte(tmp.UnitNO % 256); arayTmp[18] = Convert.ToByte(tmp.RoomNO / 256); arayTmp[19] = Convert.ToByte(tmp.RoomNO % 256); Array.Copy(tmp.arayDate, 0, arayTmp, 20, tmp.arayDate.Length); Array.Copy(tmp.arayName, 0, arayTmp, 25, tmp.arayName.Length); Array.Copy(tmp.arayPhone, 0, arayTmp, 35, tmp.arayPhone.Length); Byte[] arayTmpRemark = HDLUDP.StringToByte(tmp.Remark); if (arayTmpRemark.Length > 18) { Array.Copy(arayTmpRemark, 0, arayTmp, 46, 18); } else { Array.Copy(arayTmpRemark, 0, arayTmp, 46, arayTmpRemark.Length); } if (CsConst.mySends.AddBufToSndList(arayTmp, 0x3518, bytSubID, bytDevID, false, false, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { HDLUDP.TimeBetwnNext(20); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(15 + i, null); } } } } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100, null); } return(true); }
/// <summary> ///上传设置 /// </summary> public bool UploadCurtainInfosToDevice(string DevName) { string strMainRemark = DevName.Split('\\')[1].Trim().Split('(')[0].Trim(); DevName = DevName.Split('\\')[0].Trim(); //保存basic informations byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.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, bytSubID, bytDevID, false, true, true, false) == false) { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(1); } // 修改基本信息物理地址设置 byte[] ArayTmp = new byte[2]; string[] ArayStr = Address.Split('/').ToArray(); ArayTmp[0] = Convert.ToByte(Convert.ToByte(ArayStr[0]) << 4 | Convert.ToByte(ArayStr[1])); ArayTmp[1] = Convert.ToByte(ArayStr[2]); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xF257, bytSubID, bytDevID, false, true, true, false) == true) { CsConst.myRevBuf = new byte[1200]; } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(2); } // 修改转换列表 if (otherInfo != null && otherInfo.Count != 0) { byte bytID = 0; ArayTmp = new byte[11]; foreach (OtherInfo oTmp in otherInfo) { ArayTmp[0] = bytID; ArayStr = oTmp.GroupAddress.Split('/').ToArray(); ArayTmp[1] = Convert.ToByte(Convert.ToByte(ArayStr[0]) << 3 | Convert.ToByte(ArayStr[1])); ArayTmp[2] = Convert.ToByte(ArayStr[2]); ArayTmp[3] = oTmp.Type; ArayTmp[4] = Convert.ToByte(oTmp.strDevName.Split('/')[0].ToString()); ArayTmp[5] = Convert.ToByte(oTmp.strDevName.Split('/')[1].ToString()); ArayTmp[6] = oTmp.ControlType; ArayTmp[7] = oTmp.Param1; ArayTmp[8] = oTmp.Param2; ArayTmp[9] = oTmp.Param3; ArayTmp[10] = oTmp.Param4; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xC082, bytSubID, bytDevID, false, true, true, false) == true) { CsConst.myRevBuf = new byte[1200]; } else { return(false); } bytID++; if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(3 + 100 / otherInfo.Count * bytID); } } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } MyRead2UpFlags[1] = true; return(true); }