public static void SaveAllGroupCommandsFrmDatabase() { string str = string.Format("delete * from dbGrpRemark"); DataModule.ExecuteSQLDatabase(str); str = string.Format("delete * from dbGrpCMD"); DataModule.ExecuteSQLDatabase(str); if (CsConst.myTemplates == null) { return; } ////read keys commands to buffer foreach (ControlTemplates oTmp in CsConst.myTemplates) { if (oTmp.GpCMD != null) { string strsql = string.Format("Insert into dbGrpRemark(GrpID,Remark,bytType,bytGpID) values ({0},'{1}',{2},{3})", oTmp.ID, oTmp.Name, oTmp.bytType, oTmp.bytGpID); DataModule.ExecuteSQLDatabase(strsql); for (int i = 0; i < oTmp.GpCMD.Count; i++) { UVCMD.ControlTargets TmpCmds = oTmp.GpCMD[i]; ///// insert into all commands to database strsql = string.Format("Insert into dbGrpCMD(GrpID,objID,KeyFunType,SubNetID,DeviceID,FirstParameter," + "SecondParameter,RunTimeMinute,RunTimeSecond,strHint,Default1) values ({0},{1},{2},{3},{4},{5},{6},{7},{8},'{9}',{10})", oTmp.ID, TmpCmds.ID, TmpCmds.Type, TmpCmds.SubnetID, TmpCmds.DeviceID, TmpCmds.Param1, TmpCmds.Param2, TmpCmds.Param3, TmpCmds.Param4, TmpCmds.Hint, oTmp.bytType); DataModule.ExecuteSQLDatabase(strsql); } } } }
public static ControlTemplates AddNewTemplateToPublicGroup(String TemplateName, List <UVCMD.ControlTargets> TemplatesCMD) { if (CsConst.myTemplates == null) { CsConst.myTemplates = new List <ControlTemplates>(); } //添加到结构体 #region ControlTemplates oTmp = new ControlTemplates(); oTmp.ID = GetNewIDForGroup(); oTmp.Name = TemplateName; oTmp.bytType = 1; oTmp.bytGpID = 0; oTmp.GpCMD = new List <UVCMD.ControlTargets>(); for (int i = 0; i < TemplatesCMD.Count; i++) { UVCMD.ControlTargets oCtrls = (UVCMD.ControlTargets)TemplatesCMD[i].Clone(); oTmp.GpCMD.Add(oCtrls); } CsConst.myTemplates.Add(oTmp); #endregion return(oTmp); }
public UVCMD.ControlTargets GetCommandFrmBasicInformation(Byte bChannelId) { UVCMD.ControlTargets tmp = new UVCMD.ControlTargets(); try { tmp.SubnetID = subnetID; tmp.DeviceID = deviceID; tmp.Param1 = bChannelId; switch (bigType) { case 1: if (smallType == 0 || smallType == 1) { if (this is HdlSimpleLights) { HdlSimpleLights oTmp = (HdlSimpleLights)(this); tmp.Type = 89; tmp.Param2 = oTmp.sumLightChns[bChannelId - 1].curStatus[0]; } } break; } } catch { return(tmp); } return(tmp); }
public void ReadFloorheatingAdvancedCommandsGroup(Byte SubNetID, Byte DeviceID, int DeviceType) { // read advance commands when playing AdvancedCommands = new UVCMD.ControlTargets[16]; Byte[] ArayTmp = new byte[1]; if (CsConst.isRestore) { for (byte bytI = 0; bytI <= 15; bytI++) { ArayTmp[0] = (Byte)(100 + bytI); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x195A, SubNetID, DeviceID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { AdvancedCommands[bytI] = new UVCMD.ControlTargets(); AdvancedCommands[bytI].ID = CsConst.myRevBuf[26]; AdvancedCommands[bytI].Type = CsConst.myRevBuf[27]; AdvancedCommands[bytI].SubnetID = CsConst.myRevBuf[28]; AdvancedCommands[bytI].DeviceID = CsConst.myRevBuf[29]; AdvancedCommands[bytI].Param1 = CsConst.myRevBuf[30]; AdvancedCommands[bytI].Param2 = CsConst.myRevBuf[31]; AdvancedCommands[bytI].Param3 = CsConst.myRevBuf[32]; AdvancedCommands[bytI].Param4 = CsConst.myRevBuf[33]; CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(10); } else { return; } } } }
/// <summary> /// 单独下载某个表格的目标 /// </summary> /// <param name="bytSubID"></param> /// <param name="bytDevID"></param> /// <param name="bytLogicBlock"></param> /// <param name="bytTableID"></param> public void DownLoadLogicBlockOneTableCommandsGroup(Byte bytSubID, Byte bytDevID, Byte bytLogicBlock, Byte bytTableID, Byte bStartCmd, Byte bToCmd) { Byte bytI = 0; for (Byte TmpTableID = 1; TmpTableID <= MyDesign[bytLogicBlock].TableIDs[0]; TmpTableID++) { if (bytTableID == MyDesign[bytLogicBlock].TableIDs[TmpTableID]) { bytI = (Byte)(TmpTableID); break; } } #region if (bStartCmd == 0 && bToCmd == 0) { bStartCmd = 1; bToCmd = 20; } MyDesign[bytLogicBlock].ArmCmds[bytI - 1] = new List <UVCMD.ControlTargets>(); for (byte bytJ = 1; bytJ <= 20; bytJ++) { if (bytJ >= bStartCmd && bytJ <= bToCmd) { Byte[] ArayTmp = new byte[] { 0, (Byte)(bytLogicBlock * 12 + bytTableID), bytJ }; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xDA1C, bytSubID, bytDevID, false, true, true, false) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = CsConst.myRevBuf[28]; oCMD.Type = CsConst.myRevBuf[29]; //转换为正确的类型 oCMD.SubnetID = CsConst.myRevBuf[30]; oCMD.DeviceID = CsConst.myRevBuf[31]; oCMD.Param1 = CsConst.myRevBuf[32]; oCMD.Param2 = CsConst.myRevBuf[33]; oCMD.Param3 = CsConst.myRevBuf[34]; oCMD.Param4 = CsConst.myRevBuf[35]; //oCMD.Hint = HDLSysPF.GetHintForCMD(oCMD.SubnetID, oCMD.DeviceID, oCMD.Param1, oCMD.Param2, oCMD.Type); CsConst.myRevBuf = new byte[1200]; MyDesign[bytLogicBlock].ArmCmds[bytI - 1].Add(oCMD); } else { return; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5 + bytI + (bytLogicBlock - 1) * 8); } } } #endregion if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(8 * bytLogicBlock); } }
public void DownloadLogicFalseCommandsFromDevice(Byte SubNetID, Byte DeviceID, int DeviceType, Byte bStartCmd, Byte bToCmd) { try { Byte sumLogicCommandsInEveryBlock = 20; Byte sumLogibBlockInModule = 24; Int32 operationCode = 0x1612; if (Eightin1DeviceTypeList.HDL8in1DeviceType.Contains(DeviceType)) { operationCode = 0x1654; sumLogibBlockInModule = Eightin1DeviceTypeList.TotalLogic; sumLogicCommandsInEveryBlock = Eightin1DeviceTypeList.sumCommandsInEveryBlock; } if (bStartCmd == 0 && bToCmd == 0) { bStartCmd = 1; bToCmd = sumLogicCommandsInEveryBlock; } //不成立的触发目标 #region NoSetUp = new List <UVCMD.ControlTargets>(); for (Byte bytJ = 1; bytJ <= sumLogicCommandsInEveryBlock; bytJ++) { if (bytJ >= bStartCmd && bytJ <= bToCmd) { Byte[] ArayTmp = new byte[2] { (Byte)(ID + sumLogibBlockInModule), bytJ }; if (CsConst.mySends.AddBufToSndList(ArayTmp, operationCode, SubNetID, DeviceID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = CsConst.myRevBuf[27]; oCMD.Type = CsConst.myRevBuf[28]; //转换为正确的类型 oCMD.SubnetID = CsConst.myRevBuf[29]; oCMD.DeviceID = CsConst.myRevBuf[30]; oCMD.Param1 = CsConst.myRevBuf[31]; oCMD.Param2 = CsConst.myRevBuf[32]; oCMD.Param3 = CsConst.myRevBuf[33]; oCMD.Param4 = CsConst.myRevBuf[34]; CsConst.myRevBuf = new byte[1200]; NoSetUp.Add(oCMD); CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(1); } else { return; } } } #endregion } catch { } }
public static void ReadAllGroupCommandsFrmDatabase() { CsConst.myTemplates = new List <ControlTemplates>(); ////read keys commands to buffer string str = string.Format("select * from dbGrpRemark order by GrpID"); OleDbDataReader drKeyCmds = DataModule.SearchAResultSQLDB(str); if (drKeyCmds != null) { while (drKeyCmds.Read()) { ControlTemplates oTmpGrp = new ControlTemplates(); oTmpGrp.ID = drKeyCmds.GetInt16(0); oTmpGrp.Name = drKeyCmds.GetString(1); oTmpGrp.bytType = drKeyCmds.GetByte(2); oTmpGrp.bytGpID = drKeyCmds.GetByte(3); oTmpGrp.GpCMD = new List <UVCMD.ControlTargets>(); str = string.Format("select * from dbGrpCMD where GrpID = {0} order by objID", oTmpGrp.ID); OleDbDataReader drKeyCmds1 = DataModule.SearchAResultSQLDB(str); if (drKeyCmds1 != null) { while (drKeyCmds1.Read()) { UVCMD.ControlTargets TmpCmd = new UVCMD.ControlTargets(); TmpCmd.ID = drKeyCmds1.GetByte(1); TmpCmd.Type = drKeyCmds1.GetByte(2); TmpCmd.SubnetID = drKeyCmds1.GetByte(3); TmpCmd.DeviceID = drKeyCmds1.GetByte(4); TmpCmd.Param1 = drKeyCmds1.GetByte(5); TmpCmd.Param2 = drKeyCmds1.GetByte(6); TmpCmd.Param3 = drKeyCmds1.GetByte(7); TmpCmd.Param4 = drKeyCmds1.GetByte(8); oTmpGrp.GpCMD.Add(TmpCmd); } drKeyCmds1.Close(); } CsConst.myTemplates.Add(oTmpGrp); } drKeyCmds.Close(); } }
public Boolean ReadMusicAdvancedCommandsGroup(Byte SubNetID, Byte DeviceID, int DeviceType) { try { // read advance commands when playing Targets = new UVCMD.ControlTargets[14]; Byte[] ArayTmp = new byte[2]; if (CsConst.isRestore) { for (byte bytI = 0; bytI <= 13; bytI++) { ArayTmp = new Byte[] { (Byte)(bytI), ID }; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x195A, SubNetID, DeviceID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { Targets[bytI] = new UVCMD.ControlTargets(); Targets[bytI].ID = CsConst.myRevBuf[26]; Targets[bytI].Type = CsConst.myRevBuf[27]; Targets[bytI].SubnetID = CsConst.myRevBuf[28]; Targets[bytI].DeviceID = CsConst.myRevBuf[29]; Targets[bytI].Param1 = CsConst.myRevBuf[30]; Targets[bytI].Param2 = CsConst.myRevBuf[31]; Targets[bytI].Param3 = CsConst.myRevBuf[32]; Targets[bytI].Param4 = CsConst.myRevBuf[33]; CsConst.myRevBuf = new byte[1200]; HDLUDP.TimeBetwnNext(10); } else { return(false); } } } } catch { return(false); } return(true); }
/// <summary> ///下载设置 /// </summary> public bool DownloadSensorInfosToDevice(string DevName, int intActivePage, int wdDeviceType, int num1, int num2) // 0 mean all, else that tab only { string strMainRemark = DevName.Split('\\')[1].Trim(); DevName = DevName.Split('\\')[0].Trim(); //保存basic informations网络信息 byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.Split('-')[1].ToString()); byte[] ArayTmp = null; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x000E, bytSubID, bytDevID, false, true, true, false) == true) { byte[] arayRemark = new byte[20]; for (int intI = 0; intI < 20; intI++) { arayRemark[intI] = CsConst.myRevBuf[25 + intI]; } Devname = bytSubID.ToString() + "-" + bytDevID.ToString() + "\\" + HDLPF.Byte2String(arayRemark); HDLUDP.TimeBetwnNext(1); } else { return(false); } //传感器设置 if (intActivePage == 0 || intActivePage == 1 || intActivePage == 2) { #region if (intActivePage == 0 || intActivePage == 1) { // read led灯使能位 #region if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xDB3E, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 27, ONLEDs, 0, CsConst.myRevBuf[26]); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(1); } #endregion } if (intActivePage == 0 || intActivePage == 1 || intActivePage == 2) { //读取使能位 #region ArayTmp = null; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x161C, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 26, EnableSensors, 0, 12); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(2); } #endregion } if (intActivePage == 0 || intActivePage == 1) { //读取补偿值 十二合一额外命令读写 #region if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1600, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 26, ParamSensors, 0, 14); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(3); } #endregion //恒照度读取 #region if (wdDeviceType == 328) { EnableBroads = new byte[15]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x16A9, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 26, EnableBroads, 0, 9); HDLUDP.TimeBetwnNext(1); } else { return(false); } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5); } #endregion } #endregion MyRead2UpFlags[0] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10); } //逻辑块功能设置 if (intActivePage == 0 || intActivePage == 2) { #region // 读取24个逻辑的使能位 if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1618, bytSubID, bytDevID, false, true, true, false) == true) { logic = new List <Logic>(); byte[] ArayTmpMode = new byte[24]; Array.Copy(CsConst.myRevBuf, 26, ArayTmpMode, 0, 24); HDLUDP.TimeBetwnNext(1); for (int intI = 1; intI <= 24; intI++) { Logic oTmp = new Logic(); oTmp.ID = (byte)intI; oTmp.Enabled = ArayTmpMode[intI - 1]; oTmp.UV1 = new UVSet(); oTmp.UV2 = new UVSet(); //读取备注 #region ArayTmp = new byte[1]; ArayTmp[0] = Convert.ToByte(intI); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1606, bytSubID, bytDevID, false, true, true, false) == true) { byte[] arayRemark = new byte[20]; for (int intJ = 0; intJ < 20; intJ++) { arayRemark[intJ] = CsConst.myRevBuf[27 + intJ]; } oTmp.Remarklogic = HDLPF.Byte2String(arayRemark); HDLUDP.TimeBetwnNext(1); } else { return(false); } #endregion //读取设置 #region if (CsConst.isRestore) { if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x160E, bytSubID, bytDevID, false, true, true, false) == true) { oTmp.bytRelation = CsConst.myRevBuf[27]; oTmp.EnableSensors = new byte[15]; oTmp.Paramters = new byte[20]; int intTmp = CsConst.myRevBuf[28] * 256 + CsConst.myRevBuf[29]; if (intTmp == 65535) { intTmp = 0; } //oTmp.EnableSensors for (byte bytI = 0; bytI <= 10; bytI++) { oTmp.EnableSensors[bytI] = Convert.ToByte((intTmp & (1 << bytI)) == (1 << bytI)); } oTmp.DelayTimeT = CsConst.myRevBuf[30] * 256 + CsConst.myRevBuf[31]; oTmp.DelayTimeF = CsConst.myRevBuf[32] * 256 + CsConst.myRevBuf[33]; if (oTmp.DelayTimeT == 65535) { oTmp.DelayTimeT = 0; } if (oTmp.DelayTimeF == 65535) { oTmp.DelayTimeF = 0; } Array.Copy(CsConst.myRevBuf, 34, oTmp.Paramters, 0, 15); oTmp.UV1 = new UVSet(); oTmp.UV1.UvNum = Convert.ToByte(HDLPF.IsNumStringMode(CsConst.myRevBuf[49].ToString(), 201, 248)); oTmp.UV1.UVCondition = CsConst.myRevBuf[50]; oTmp.UV2 = new UVSet(); oTmp.UV2.UvNum = Convert.ToByte(HDLPF.IsNumStringMode(CsConst.myRevBuf[51].ToString(), 201, 248)); if (oTmp.UV2.UvNum == oTmp.UV1.UvNum) { oTmp.UV2.UvNum = Convert.ToByte(oTmp.UV1.UvNum + 1); } oTmp.UV2.UVCondition = CsConst.myRevBuf[52]; oTmp.Paramters[15] = CsConst.myRevBuf[53]; oTmp.Paramters[16] = CsConst.myRevBuf[54]; HDLUDP.TimeBetwnNext(1); if (CsConst.isRestore) { ArayTmp = new byte[1]; ArayTmp[0] = oTmp.UV1.UvNum; if ((CsConst.mySends.AddBufToSndList(ArayTmp, 0x160A, bytSubID, bytDevID, false, false, true, false) == true)) { byte[] arayRemark = new byte[20]; Array.Copy(CsConst.myRevBuf, 27, arayRemark, 0, arayRemark.Length); oTmp.UV1.UvRemark = HDLPF.Byte2String(arayRemark); oTmp.UV1.AutoOff = (CsConst.myRevBuf[47] == 1); if (CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49] > 3600) { oTmp.UV1.OffTime = 1; } else { oTmp.UV1.OffTime = CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49]; } HDLUDP.TimeBetwnNext(1); } ArayTmp[0] = oTmp.UV2.UvNum; if ((CsConst.mySends.AddBufToSndList(ArayTmp, 0x160A, bytSubID, bytDevID, false, false, true, false) == true)) { byte[] arayRemark = new byte[20]; Array.Copy(CsConst.myRevBuf, 27, arayRemark, 0, arayRemark.Length); oTmp.UV2.UvRemark = HDLPF.Byte2String(arayRemark); oTmp.UV2.AutoOff = (CsConst.myRevBuf[47] == 1); if (CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49] > 3600) { oTmp.UV2.OffTime = 1; } else { oTmp.UV2.OffTime = CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49]; } HDLUDP.TimeBetwnNext(1); } } } else { return(false); } } #endregion //成立的触发目标 #region oTmp.SetUp = new List <UVCMD.ControlTargets>(); if (CsConst.isRestore) { for (byte bytJ = 0; bytJ < 20; bytJ++) { ArayTmp = new byte[2]; ArayTmp[0] = (byte)(intI); ArayTmp[1] = (byte)(bytJ + 1); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1612, bytSubID, bytDevID, false, true, true, false) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = CsConst.myRevBuf[27]; oCMD.Type = CsConst.myRevBuf[28]; //转换为正确的类型 oCMD.SubnetID = CsConst.myRevBuf[29]; oCMD.DeviceID = CsConst.myRevBuf[30]; oCMD.Param1 = CsConst.myRevBuf[31]; oCMD.Param2 = CsConst.myRevBuf[32]; oCMD.Param3 = CsConst.myRevBuf[33]; oCMD.Param4 = CsConst.myRevBuf[34]; oTmp.SetUp.Add(oCMD); HDLUDP.TimeBetwnNext(1); } else { return(false); } } } #endregion //不成立的触发目标 #region oTmp.NoSetUp = new List <UVCMD.ControlTargets>(); if (CsConst.isRestore) { for (byte bytJ = 0; bytJ < 20; bytJ++) { ArayTmp = new byte[2]; ArayTmp[0] = (byte)(intI + 24); ArayTmp[1] = (byte)(bytJ + 1); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1612, bytSubID, bytDevID, false, true, true, false) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = CsConst.myRevBuf[27]; oCMD.Type = CsConst.myRevBuf[28]; oCMD.SubnetID = CsConst.myRevBuf[29]; oCMD.DeviceID = CsConst.myRevBuf[30]; oCMD.Param1 = CsConst.myRevBuf[31]; oCMD.Param2 = CsConst.myRevBuf[32]; oCMD.Param3 = CsConst.myRevBuf[33]; oCMD.Param4 = CsConst.myRevBuf[34]; oTmp.NoSetUp.Add(oCMD); HDLUDP.TimeBetwnNext(1); } else { return(false); } } } #endregion logic.Add(oTmp); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10 + intI * 10 / 24); } } } else { return(false); } #endregion MyRead2UpFlags[1] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(20); } if (intActivePage == 0 || intActivePage == 3) { //安防设置 #region fireset = new List <UVCMD.SecurityInfo>(); ArayTmp = new byte[1]; for (byte intI = 1; intI <= 3; intI++) { ArayTmp[0] = intI; //读取备注 #region UVCMD.SecurityInfo oTmp = new UVCMD.SecurityInfo(); oTmp.bytSeuID = intI; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1624, bytSubID, bytDevID, false, true, true, false) == true) { byte[] arayRemark = new byte[20]; for (int intJ = 0; intJ < 20; intJ++) { arayRemark[intJ] = CsConst.myRevBuf[27 + intJ]; } oTmp.strRemark = HDLPF.Byte2String(arayRemark); HDLUDP.TimeBetwnNext(1); } else { return(false); } #endregion //读取设置 #region if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1628, bytSubID, bytDevID, false, true, true, false) == true) { oTmp.bytTerms = CsConst.myRevBuf[27]; oTmp.bytSubID = CsConst.myRevBuf[28]; oTmp.bytDevID = CsConst.myRevBuf[29]; oTmp.bytArea = CsConst.myRevBuf[30]; HDLUDP.TimeBetwnNext(1); } else { return(false); } fireset.Add(oTmp); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(20 + (10 * intI / 3)); } #endregion } #endregion MyRead2UpFlags[2] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(30); } if (intActivePage == 0 || intActivePage == 4) { //模拟信息 #region if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1620, bytSubID, bytDevID, false, true, true, false) == true) { SimulateEnable = new byte[15]; SimulateEnable[0] = CsConst.myRevBuf[26]; SimulateEnable[1] = CsConst.myRevBuf[27]; SimulateEnable[2] = CsConst.myRevBuf[28]; SimulateEnable[3] = CsConst.myRevBuf[32]; ParamSimulate = new byte[15]; ParamSimulate[0] = CsConst.myRevBuf[33]; ParamSimulate[1] = CsConst.myRevBuf[34]; ParamSimulate[2] = CsConst.myRevBuf[35]; ParamSimulate[3] = CsConst.myRevBuf[39]; HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(31); } #endregion MyRead2UpFlags[3] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(40); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } return(true); }
/// <summary> /// download all information from hardware /// </summary> /// <param name="DevName"></param> public void DownloadSMSFrmDeviceToBuf(string DevName, int wdDeviceType, int intActivePage, int num1, int num2)// 0 mean all, else that tab only { string strMainRemark = DevName.Split('\\')[1].Trim(); DevName = DevName.Split('\\')[0].Trim(); //保存basic informations网络信息 byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.Split('-')[1].ToString()); // read basic paramters byte[] ArayTmp = null; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x000E, bytSubID, bytDevID, false, true, true, false) == true) { byte[] arayRemark = new byte[20]; for (int intI = 0; intI < 20; intI++) { arayRemark[intI] = CsConst.myRevBuf[25 + intI]; } Devname = bytSubID.ToString() + "-" + bytDevID.ToString() + "\\" + HDLPF.Byte2String(arayRemark); } else { return; } ArayTmp = new byte[3]; ArayTmp[0] = 0; ArayTmp[1] = 1; if (intActivePage == 0 || intActivePage == 1) { if (CsConst.isRestore) { num1 = 0; num2 = 99; if (wdDeviceType == 4001) { num2 = 90; } } MyControls = new List <SMSControls>(); #region for (byte bytI = (byte)num1; bytI < num2; bytI++) { ArayTmp[2] = bytI; SMSControls oTmpSMS = new SMSControls(); oTmpSMS.ID = bytI; oTmpSMS.MyVerify = new List <PhoneInF>(); oTmpSMS.MyTargets = new List <UVCMD.ControlTargets>(); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xC017, bytSubID, bytDevID, true, true, true, false) == true) { // 20 bytes remark byte[] arayRemark = new byte[20]; for (int intI = 0; intI < 20; intI++) { arayRemark[intI] = CsConst.myRevBuf[28 + intI]; } oTmpSMS.strRemark = HDLPF.Byte2String(arayRemark); // 30 bytes sms content unicode arayRemark = new byte[32]; for (int intI = 0; intI < 32; intI++) { arayRemark[intI] = CsConst.myRevBuf[48 + intI]; } oTmpSMS.strSMSContent = HDLPF.Byte22String(arayRemark, true); // 判断是否验证手机号码 #region oTmpSMS.blnIsVerify = (CsConst.myRevBuf[896] == 0x11); oTmpSMS.blnReply = (CsConst.myRevBuf[897] == 0x11); for (int intJ = 0; intJ < 12; intJ++) { PhoneInF oPhone = new PhoneInF(); arayRemark = new byte[20]; for (int intI = 0; intI < 20; intI++) { arayRemark[intI] = CsConst.myRevBuf[80 + intJ * 36 + intI]; } oPhone.Remark = HDLPF.Byte2String(arayRemark); arayRemark = new byte[16]; for (int intI = 0; intI < 16; intI++) { if (CsConst.myRevBuf[100 + intJ * 36 + intI] != 0x45) { arayRemark[intI] = CsConst.myRevBuf[100 + intJ * 36 + intI]; } else { arayRemark[intI] = 0; } } oPhone.PhoneNum = HDLPF.Byte2String(arayRemark); oTmpSMS.MyVerify.Add(oPhone); } #endregion // 判断是否存在控制目标 #region int intTmpST = 512; for (int intI = 0; intI < 48; intI++) { //if (CsConst.myRevBuf[intTmpST + intI * 8 + 7] == 0xAA) //只保留有效 //{ UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.SubnetID = CsConst.myRevBuf[intTmpST + intI * 8]; oCMD.DeviceID = CsConst.myRevBuf[intTmpST + intI * 8 + 1]; oCMD.Type = CsConst.myRevBuf[intTmpST + intI * 8 + 2]; //oCMD.Type = HDLSysPF.GetIDAccordinglyRightControlTypeSMS(CsConst.myRevBuf[intTmpST + intI * 8 + 2]); //转换为正确的类型 oCMD.Param1 = CsConst.myRevBuf[intTmpST + intI * 8 + 3]; oCMD.Param2 = CsConst.myRevBuf[intTmpST + intI * 8 + 4]; oCMD.Param3 = CsConst.myRevBuf[intTmpST + intI * 8 + 5]; oCMD.Param4 = CsConst.myRevBuf[intTmpST + intI * 8 + 6]; oCMD.IsValid = (CsConst.myRevBuf[intTmpST + intI * 8 + 7] == 0xAA); oTmpSMS.MyTargets.Add(oCMD); //} } #endregion MyControls.Add(oTmpSMS); } else { return; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(bytI / 2, null); } HDLUDP.TimeBetwnNext(20); } #endregion MyRead2UpFlags[0] = true; } if (intActivePage == 0 || intActivePage == 2) { // send message when needs #region ArayTmp = new byte[4]; ArayTmp[0] = 0; ArayTmp[1] = 2; MySendSMS = new List <SendSMS>(); if (CsConst.isRestore) { num1 = 0; num2 = 20; if (wdDeviceType == 4001) { num2 = 90; } } for (byte bytI = (byte)num1; bytI < num2; bytI++) { ArayTmp[2] = bytI; byte[] TmpSMS = new byte[1794]; SendSMS oTmpSMS = new SendSMS(); oTmpSMS.ID = bytI; oTmpSMS.MyGuests = new List <PhoneInF>(); if (wdDeviceType == 4001) { if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xC060, bytSubID, bytDevID, true, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 29, TmpSMS, 0, 598); HDLUDP.TimeBetwnNext(20); } else { return; } } else { for (int intI = 0; intI < 3; intI++) //分三次读取数据 { ArayTmp[3] = Convert.ToByte(intI); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xC060, bytSubID, bytDevID, true, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 29, TmpSMS, intI * 598, 598); HDLUDP.TimeBetwnNext(20); } else { return; } } } // 20 bytes remark byte[] arayRemark = new byte[20]; for (int intI = 0; intI < 20; intI++) { arayRemark[intI] = TmpSMS[intI]; } oTmpSMS.strRemark = HDLPF.Byte2String(arayRemark); // 判断接收的手机号码 #region int num = 10; if (wdDeviceType == 4001) { num = 3; } for (int intJ = 0; intJ < num; intJ++) { PhoneInF oPhone = new PhoneInF(); if (TmpSMS[200 + intJ * 177] == 0xAA) { oPhone.Valid = true; } else { oPhone.Valid = false; } oPhone.ID = Convert.ToByte(intJ); arayRemark = new byte[20]; for (int intI = 0; intI < 20; intI++) { arayRemark[intI] = TmpSMS[24 + intJ * 177 + intI]; } oPhone.Remark = HDLPF.Byte2String(arayRemark); arayRemark = new byte[16]; for (int intI = 0; intI < 16; intI++) { if (TmpSMS[44 + intJ * 177 + intI] != 0x45) { arayRemark[intI] = TmpSMS[44 + intJ * 177 + intI]; } else { arayRemark[intI] = 0; } } oPhone.PhoneNum = HDLPF.Byte2String(arayRemark); arayRemark = new byte[140]; for (int intI = 0; intI < 140; intI++) { arayRemark[intI] = TmpSMS[60 + intJ * 177 + intI]; } oPhone.strSMS = HDLPF.Byte22String(arayRemark, true); oTmpSMS.MyGuests.Add(oPhone); } #endregion MySendSMS.Add(oTmpSMS); if (CsConst.calculationWorker != null) { CsConst.calculationWorker.ReportProgress(50 + bytI / 2, null); } } #endregion MyRead2UpFlags[1] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100, null); } }
///<summary> ///保存数据库面板设置,将所有数据保存 ///</summary> public void SaveSensorInfoToDB() { //delete GPRS Info #region string strsql = string.Format("delete * from dbGPRSbasic where DIndex={0}", DIndex); DataModule.ExecuteSQLDatabase(strsql); //delete GPRS Control Info strsql = string.Format("delete * from dbGPRSControls where DIndex ={0}", DIndex); DataModule.ExecuteSQLDatabase(strsql); strsql = string.Format("delete * from dbGPRSVerify where DIndex={0}", DIndex); DataModule.ExecuteSQLDatabase(strsql); strsql = string.Format("delete * from dbGPRSTargets where DIndex={0}", DIndex); DataModule.ExecuteSQLDatabase(strsql); strsql = string.Format("delete * form dbGPRSSendSMS where DIndex={0}", DIndex); DataModule.ExecuteSQLDatabase(strsql); strsql = string.Format("delete * from dbGPRSSendSMSInfo where DIndex={0}", DIndex); DataModule.ExecuteSQLDatabase(strsql); #endregion //save GPRS Info #region strsql = string.Format("insert into dbGPRSbasic(DIndex,strIP,strRouterIP,strMAC,strSevCentre,strCode,strIMEI,blnTo485)values({0},'{1}','{2}','{3}','{4}','{5}','{6}',{7})", DIndex, strIP, strRouterIP, strMAC, strSevCentre, strCode, strIMEI, blnTo485); DataModule.ExecuteSQLDatabase(strsql); #endregion //save GPRS SMS Control Info #region if (MyControls != null) { foreach (SMSControls temp in MyControls) { strsql = string.Format("insert into dbGPRSControls(DIndex,SenNum,strRemark,strSMSContent,blnIsVerify,blnReply)values({0},{1},'{2}'," + "'{3}',{4},{5})", DIndex, temp.ID, temp.strRemark, temp.strSMSContent, temp.blnIsVerify, temp.blnReply); DataModule.ExecuteSQLDatabase(strsql); if (temp.MyVerify != null) { for (int i = 0; i < temp.MyVerify.Count; i++) { PhoneInF tmp = temp.MyVerify[i]; strsql = string.Format("insert into dbGPRSVerify(DIndex,SenNum,VerifyNum,Remark,PhoneNum)values({0},{1},{2},'{3}','{4}')", DIndex, temp.ID, i, tmp.Remark, tmp.PhoneNum); DataModule.ExecuteSQLDatabase(strsql); } } if (temp.MyTargets != null) { for (int i = 0; i < temp.MyTargets.Count; i++) { UVCMD.ControlTargets TmpCmds = temp.MyTargets[i]; strsql = string.Format("Insert into dbKeyTargets(DIndex,KeyIndex,objID,KeyFunType,SubNetID,DeviceID,FirstParameter," + "SecondParameter,RunTimeMinute,RunTimeSecond,Ms04State) values ({0},{1},'{2}',{3},{4},{5},{6},{7},{8},{9},{10})", DIndex, temp.ID, TmpCmds.ID, TmpCmds.Type, TmpCmds.SubnetID, TmpCmds.DeviceID, TmpCmds.Param1, TmpCmds.Param2, TmpCmds.Param3, TmpCmds.Param4, 0); DataModule.ExecuteSQLDatabase(strsql); } } } } #endregion //save GPRS SMS Send Info #region if (MySendSMS != null) { foreach (SendSMS temp in MySendSMS) { strsql = string.Format("insert into dbGPRSSendSMS(DIndex,SenNum,Remark)values({0},{1},'{2}')", DIndex, temp.ID, temp.strRemark); DataModule.ExecuteSQLDatabase(strsql); if (temp.MyGuests != null) { for (int i = 0; i < temp.MyGuests.Count; i++) { PhoneInF tmp = temp.MyGuests[i]; strsql = string.Format("insert into dbGPRSSendSMSInfo(DIndex,SenNum,TargetNum,Remark,PhoneNum,SMS)values({0},{1},{2},'{3}','{4}','{5}')", DIndex, temp.ID, i + 1, tmp.Remark, tmp.PhoneNum, tmp.strSMS); DataModule.ExecuteSQLDatabase(strsql); } } } } #endregion }
//<summary> //读取数据信息 //</summary> public void ReadDataFrmDBTobuf(int DIndex) { try { #region string strsql = string.Format("select * from dbBasicInfo where DIndex={0}", DIndex); OleDbDataReader dr = DataModule.SearchAResultSQLDB(strsql, CsConst.mstrCurPath); if (dr != null) { while (dr.Read()) { string str = dr.GetValue(1).ToString(); DeviceName = DeviceName.Split('\\')[0].ToString() + "\\" + str.Split('\\')[1].ToString(); } dr.Close(); } #endregion #region strsql = string.Format("select * from dbClassInfomation where DIndex={0} and ClassID=0 order by SenNum", DIndex); dr = DataModule.SearchAResultSQLDB(strsql, CsConst.mstrCurPath); if (dr != null) { while (dr.Read()) { string str = dr.GetValue(5).ToString(); Backlight = Convert.ToByte(str.Split('-')[0].ToString()); Ledlight = Convert.ToByte(str.Split('-')[1].ToString()); arayButtonColor = (byte[])dr[6]; arayButtonBalance = (byte[])dr[7]; arayButtonSensitiVity = (byte[])dr[8]; arayHotel = (byte[])dr[9]; } dr.Close(); } #endregion #region strsql = string.Format("select * from dbClassInfomation where DIndex={0} and ClassID={1} order by SenNum", DIndex, 1); dr = DataModule.SearchAResultSQLDB(strsql, CsConst.mstrCurPath); myKeySetting = new List <Key>(); if (dr != null) { while (dr.Read()) { Key temp = new Key(); string str = dr.GetValue(5).ToString(); temp.ID = Convert.ToByte(str.Split('-')[0].ToString()); temp.Mode = Convert.ToByte(str.Split('-')[1].ToString()); temp.Delay = Convert.ToByte(str.Split('-')[2].ToString()); temp.Remark = dr.GetValue(4).ToString(); str = string.Format("select * from dbKeyTargets where DIndex ={0} and KeyIndex = {1} and Ms04State = {2}", DIndex, temp.ID, 0); OleDbDataReader drKeyCmds = DataModule.SearchAResultSQLDB(str, CsConst.mstrCurPath); temp.KeyTargets = new List <UVCMD.ControlTargets>(); while (drKeyCmds.Read()) { UVCMD.ControlTargets TmpCmd = new UVCMD.ControlTargets(); TmpCmd.ID = drKeyCmds.GetByte(2); TmpCmd.Type = drKeyCmds.GetByte(3); TmpCmd.SubnetID = drKeyCmds.GetByte(4); TmpCmd.DeviceID = drKeyCmds.GetByte(5); TmpCmd.Param1 = drKeyCmds.GetByte(6); TmpCmd.Param2 = drKeyCmds.GetByte(7); TmpCmd.Param3 = drKeyCmds.GetByte(8); TmpCmd.Param4 = drKeyCmds.GetByte(9); temp.KeyTargets.Add(TmpCmd); } drKeyCmds.Close(); myKeySetting.Add(temp); } dr.Close(); } #endregion } catch { } }
public Byte[] curStatus; //当前状态 public Boolean ReadButtonRemarkAndCMDFromDevice(Byte SubNetID, Byte DeviceID, int DeviceType, int RemoteAddress, Byte ReadOnlyRemarkorCMD, Boolean blnIsSupportE474, Byte bStartCmd, Byte bToCmd) { try { Byte bTmpStartRead = 0; if (ReadOnlyRemarkorCMD == 0 || ReadOnlyRemarkorCMD == 255) { Remark = ReadButtonRemark(SubNetID, DeviceID, DeviceType, RemoteAddress); } if (Mode == 0) { return(true); } if (ReadOnlyRemarkorCMD == 1 || ReadOnlyRemarkorCMD == 255) { //读取目标 byte bytTotalCMD = 1; switch (Mode) { case 1: case 2: case 3: case 6: case 10: bytTotalCMD = 1; break; case 4: case 5: case 7: case 13: bytTotalCMD = 15; break; case 11: bytTotalCMD = 15; break; case 16: case 17: bytTotalCMD = 15; break; case 14: bytTotalCMD = 49; break; } if (bStartCmd == 0 && bToCmd == 0) { bStartCmd = 1; bToCmd = bytTotalCMD; } String strEnable = ""; Byte ExtraLength = 0; Byte[] ArayTmp = new Byte[1 + ExtraLength]; if (IPmoduleDeviceTypeList.RFIpModuleV2.Contains(DeviceType)) { ExtraLength = 1; ArayTmp = new Byte[1 + ExtraLength]; ArayTmp[0] = ID; ArayTmp[ExtraLength] = (Byte)RemoteAddress; } else if (EnviroNewDeviceTypeList.EnviroNewPanelDeviceTypeList.Contains(DeviceType)) // 新版彩屏面板 { ExtraLength = 3; ArayTmp = new Byte[1 + ExtraLength]; ArayTmp[0] = ID; ArayTmp[1] = 4; ArayTmp[2] = 0; ArayTmp[3] = 36; } else if (EnviroDLPPanelDeviceTypeList.HDLEnviroDLPPanelDeviceTypeList.Contains(DeviceType)) // 旧版彩屏面板 { ExtraLength = 3; ArayTmp = new Byte[1 + ExtraLength]; ArayTmp[0] = ID; ArayTmp[1] = 4; ArayTmp[2] = 0; ArayTmp[3] = 36; } //读取目标有效与否 #region if (blnIsSupportE474 == true) { if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xE474, SubNetID, DeviceID, false, false, true, false) == true) { int count1 = CsConst.myRevBuf[26]; int count2 = count1 / 8; if (count1 % 8 != 0) { count2 = count2 + 1; } byte[] arayEnable = new byte[count2]; Array.Copy(CsConst.myRevBuf, 27, arayEnable, 0, count2); for (int i = 0; i < count2; i++) { string strTmp = GlobalClass.AddLeftZero(Convert.ToString(arayEnable[i], 2), 8); for (int j = 7; j >= 0; j--) { string str = strTmp.Substring(j, 1); strEnable = strEnable + str; } } CsConst.myRevBuf = new byte[1200]; } } #endregion if (MS04DeviceTypeList.MS04DryContactWithE000PublicCMD.Contains(DeviceType)) // 干节点统一处理 { if (Mode == 9 || Mode == 0) // 组合开关分开放置目标 或者机械开关 { bytTotalCMD = 199; } } else { Byte[] oTMpModeList = new Byte[] { 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21 }; if (oTMpModeList.Contains(Mode) && bStartCmd >= 50) // j机械开关或者其他类别请添加在此处 { bTmpStartRead = 49; // 不初始化整个目标组合 } else { KeyTargets = new List <UVCMD.ControlTargets>(); } } for (int byt = 1 + bTmpStartRead; byt <= bytTotalCMD + bTmpStartRead; byt++) { if (byt >= bStartCmd && byt <= bToCmd) { #region bool isRead = true; if (strEnable != "") { if (strEnable.Length >= byt) { if (strEnable.Substring(byt - 1, 1) == "0") { isRead = false; } } } if (isRead) { byte[] arayTmp = new byte[2 + ExtraLength]; arayTmp[0] = ID; arayTmp[1] = (Byte)byt; if (ExtraLength != 0) { if (ExtraLength == 3) { arayTmp[2] = 4; arayTmp[3] = 0; arayTmp[4] = 36; } else { arayTmp[2] = (Byte)RemoteAddress; } } if (CsConst.mySends.AddBufToSndList(arayTmp, 0xE000, SubNetID, DeviceID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = Convert.ToByte(CsConst.myRevBuf[26]); oCMD.Type = CsConst.myRevBuf[27]; //转换为正确的类型 oCMD.SubnetID = CsConst.myRevBuf[28]; oCMD.DeviceID = CsConst.myRevBuf[29]; oCMD.Param1 = CsConst.myRevBuf[30]; oCMD.Param2 = CsConst.myRevBuf[31]; oCMD.Param3 = CsConst.myRevBuf[32]; oCMD.Param4 = CsConst.myRevBuf[33]; if (KeyTargets.Count < oCMD.ID) { KeyTargets.Add(oCMD); } else { KeyTargets[oCMD.ID - 1] = oCMD; } CsConst.myRevBuf = new byte[1200]; } else { return(false); } } #endregion } } } } catch { return(false); } return(true); }
private void tmiCopy_Click(object sender, EventArgs e) { if (tabControl1.SelectedIndex == 0) // 第一个页面 { #region if (tvArm.Nodes == null) { return; } if (mySecurity == null) { return; } if (tvArm.SelectedNode == null) { return; } if (tvArm.SelectedNode.Level == 2) { return; } if (tvArm.SelectedNode.Level == 1 && tvArm.SelectedNode.Index == 0) { return; } if (mySecurity.myReadyThings8[0].LeaveCmds == null) { return; } CsConst.MyPublicCtrls = new List <UVCMD.ControlTargets>(); TreeNode oNode = tvArm.SelectedNode; byte bytAll = 0; //表示选择的目标个数 if (oNode.Level == 1) // 表示单个选中的是目标 { bytAll = 1; } else //表示总共选中的目标 { bytAll = Convert.ToByte((oNode.Nodes.Count).ToString()); } //2. 根据分类进行复制 if (bytAll == 1) { UVCMD.ControlTargets oCtrls = (UVCMD.ControlTargets)mySecurity.myReadyThings8[0].LeaveCmds[oNode.Parent.Index][oNode.Index].Clone(); CsConst.MyPublicCtrls.Add(oCtrls); } else { string strTmp = oNode.Name; byte bytKeyID = byte.Parse(strTmp.Split('-')[0].ToString()); byte bytStatus = byte.Parse(strTmp.Split('-')[1].ToString()); for (byte bytI = 0; bytI < bytAll; bytI++) { UVCMD.ControlTargets oCtrls = (UVCMD.ControlTargets)mySecurity.myReadyThings8[0].LeaveCmds[oNode.Index][bytI].Clone(); CsConst.MyPublicCtrls.Add(oCtrls); } } #endregion } else if (tabControl1.SelectedIndex == 1) //第二个页面 { #region if (tvBypass.Nodes == null) { return; } if (mySecurity == null) { return; } if (tvBypass.SelectedNode == null) { return; } if (tvBypass.SelectedNode.Level == 2) { return; } if (tvBypass.SelectedNode.Level == 1 && tvBypass.SelectedNode.Index == 0) { return; } if (mySecurity.myReadyThings8[0].DoorWarns == null) { return; } CsConst.MyPublicCtrls = new List <UVCMD.ControlTargets>(); TreeNode oNode = tvBypass.SelectedNode; byte bytAll = 0; //表示选择的目标个数 if (oNode.Level == 1) // 表示单个选中的是目标 { bytAll = 1; } else //表示总共选中的目标 { bytAll = Convert.ToByte((oNode.Nodes.Count).ToString()); } //2. 根据分类进行复制 if (bytAll == 1) { UVCMD.ControlTargets oCtrls = (UVCMD.ControlTargets)mySecurity.myReadyThings8[0].DoorWarns[oNode.Parent.Index][oNode.Index].Clone(); CsConst.MyPublicCtrls.Add(oCtrls); } else { string strTmp = oNode.Name; byte bytKeyID = byte.Parse(strTmp.Split('-')[0].ToString()); byte bytStatus = byte.Parse(strTmp.Split('-')[1].ToString()); for (byte bytI = 0; bytI < bytAll; bytI++) { UVCMD.ControlTargets oCtrls = (UVCMD.ControlTargets)mySecurity.myReadyThings8[0].DoorWarns[oNode.Index][bytI].Clone(); CsConst.MyPublicCtrls.Add(oCtrls); } } #endregion } else if (tabControl1.SelectedIndex == 2) // 第三个页面 { #region if (tvArm1.Nodes == null) { return; } if (mySecurity == null) { return; } if (tvArm1.SelectedNode == null) { return; } if (tvArm1.SelectedNode.Level == 2) { return; } if (tvArm1.SelectedNode.Level == 1 && tvArm1.SelectedNode.Index == 0) { return; } if (mySecurity.myArms8[0].ArmCmds == null) { return; } CsConst.MyPublicCtrls = new List <UVCMD.ControlTargets>(); TreeNode oNode = tvArm1.SelectedNode; byte bytAll = 0; //表示选择的目标个数 if (oNode.Level == 1) // 表示单个选中的是目标 { bytAll = 1; } else //表示总共选中的目标 { bytAll = Convert.ToByte((oNode.Nodes.Count).ToString()); } //2. 根据分类进行复制 if (bytAll == 1) { UVCMD.ControlTargets oCtrls = (UVCMD.ControlTargets)mySecurity.myArms8[0].ArmCmds[oNode.Parent.Index][oNode.Index].Clone(); CsConst.MyPublicCtrls.Add(oCtrls); } else { string strTmp = oNode.Name; byte bytKeyID = byte.Parse(strTmp.Split('-')[0].ToString()); byte bytStatus = byte.Parse(strTmp.Split('-')[1].ToString()); for (byte bytI = 0; bytI < bytAll; bytI++) { UVCMD.ControlTargets oCtrls = (UVCMD.ControlTargets)mySecurity.myArms8[0].ArmCmds[oNode.Index][bytI].Clone(); CsConst.MyPublicCtrls.Add(oCtrls); } } #endregion } else if (tabControl1.SelectedIndex == 4) // 第五个页面 { #region if (tvAlarm.Nodes == null) { return; } if (mySecurity == null) { return; } if (tvAlarm.SelectedNode == null) { return; } if (tvAlarm.SelectedNode.Level == 2) { return; } if (tvAlarm.SelectedNode.Level == 1 && tvAlarm.SelectedNode.Index == 0) { return; } if (mySecurity.myAlarms8[0].AlarmCmds == null) { return; } CsConst.MyPublicCtrls = new List <UVCMD.ControlTargets>(); TreeNode oNode = tvAlarm.SelectedNode; byte bytAll = 0; //表示选择的目标个数 if (oNode.Level == 1) // 表示单个选中的是目标 { bytAll = 1; } else //表示总共选中的目标 { bytAll = Convert.ToByte((oNode.Nodes.Count).ToString()); } //2. 根据分类进行复制 if (bytAll == 1) { UVCMD.ControlTargets oCtrls = (UVCMD.ControlTargets)mySecurity.myAlarms8[0].AlarmCmds[oNode.Parent.Index][oNode.Index].Clone(); CsConst.MyPublicCtrls.Add(oCtrls); } else { string strTmp = oNode.Name; byte bytKeyID = byte.Parse(strTmp.Split('-')[0].ToString()); byte bytStatus = byte.Parse(strTmp.Split('-')[1].ToString()); for (byte bytI = 0; bytI < bytAll; bytI++) { UVCMD.ControlTargets oCtrls = (UVCMD.ControlTargets)mySecurity.myAlarms8[0].AlarmCmds[oNode.Index][bytI].Clone(); CsConst.MyPublicCtrls.Add(oCtrls); } } #endregion } else if (tabControl1.SelectedIndex == 5) // 第六个页面 { #region if (tvVac.Nodes == null) { return; } if (mySecurity == null) { return; } if (tvVac.SelectedNode == null) { return; } if (tvVac.SelectedNode.Level == 2) { return; } if (tvVac.SelectedNode.Level == 1 && tvVac.SelectedNode.Index == 0) { return; } if (mySecurity.myVacs8[0].VacationCmds == null) { return; } CsConst.MyPublicCtrls = new List <UVCMD.ControlTargets>(); TreeNode oNode = tvVac.SelectedNode; byte bytAll = 0; //表示选择的目标个数 if (oNode.Level == 1) // 表示单个选中的是目标 { bytAll = 1; } else //表示总共选中的目标 { bytAll = Convert.ToByte((oNode.Nodes.Count).ToString()); } //2. 根据分类进行复制 if (bytAll == 1) { UVCMD.ControlTargets oCtrls = (UVCMD.ControlTargets)mySecurity.myVacs8[0].VacationCmds[oNode.Parent.Index][oNode.Index].Clone(); CsConst.MyPublicCtrls.Add(oCtrls); } else { string strTmp = oNode.Name; byte bytKeyID = byte.Parse(strTmp.Split('-')[0].ToString()); byte bytStatus = byte.Parse(strTmp.Split('-')[1].ToString()); for (byte bytI = 0; bytI < bytAll; bytI++) { UVCMD.ControlTargets oCtrls = (UVCMD.ControlTargets)mySecurity.myVacs8[0].VacationCmds[oNode.Index][bytI].Clone(); CsConst.MyPublicCtrls.Add(oCtrls); } } #endregion } }
public bool DownLoadInfoFrmDevice(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[] ArayTmp = null; int wdMaxValue = DeviceTypeList.GetMaxValueFromPublicModeGroup(wdDeviceType); DeviceName = bytSubID.ToString() + "-" + bytDevID.ToString() + "\\" + HDLSysPF.ReadDeviceMainRemark(bytSubID, bytDevID); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5, null); } if (intActivePage == 0 || intActivePage == 1) { #region arayHotel = new byte[13]; ArayTmp = new byte[0]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xE010, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Backlight = CsConst.myRevBuf[25]; Ledlight = CsConst.myRevBuf[26]; HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10, null); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x2014, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 25, arayHotel, 0, 13); HDLUDP.TimeBetwnNext(1); } else { return(false); } #endregion MyRead2UpFlags[0] = true; } byte[] ArayMode = new byte[wdMaxValue]; //按键模式 byte[] ArayDelay = new byte[wdMaxValue * 2]; if (intActivePage == 0 || intActivePage == 2) { #region myKeySetting = new List <Key>(); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xE008, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { if (wdDeviceType == 3076) { for (int intJ = 0; intJ < wdMaxValue; intJ++) { ArayMode[intJ] = CsConst.myRevBuf[25 + intJ]; } } else if (wdDeviceType == 3078 || wdDeviceType == 3080) { for (int intJ = 0; intJ < wdMaxValue; intJ++) { ArayMode[intJ] = CsConst.myRevBuf[25 + intJ]; } } else if (wdDeviceType == 3064 || wdDeviceType == 3065 || wdDeviceType == 3068 || wdDeviceType == 3069) { for (int intJ = 0; intJ < wdMaxValue; intJ++) { ArayMode[intJ] = CsConst.myRevBuf[25 + intJ]; } } HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(15, null); } if (wdDeviceType != 3058) { if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x2024, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 26, ArayDelay, 0, ArayDelay.Length); HDLUDP.TimeBetwnNext(1); } else { return(false); } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(20, null); } for (int intI = 0; intI < wdMaxValue; intI++) { ArayTmp = new byte[1]; Key oKey = new Key(); oKey.ID = (Byte)(intI + 1); ArayTmp[0] = oKey.ID; if (oKey.ReadButtonRemarkAndCMDFromDevice(bytSubID, bytDevID, wdDeviceType, -1, 255, false, 0, 0) == false) { return(false); } oKey.Delay = ArayDelay[intI * 2] * 256 + ArayDelay[(intI * 2) + 1]; oKey.Mode = ArayMode[intI]; oKey.KeyTargets = new List <UVCMD.ControlTargets>(); if (oKey.Mode == 10 || oKey.Mode == 14) { for (byte byt = 50; byt <= 98; byt++) { byte[] arayTmp = new byte[2]; arayTmp[0] = Convert.ToByte(oKey.ID); arayTmp[1] = byt; if (CsConst.mySends.AddBufToSndList(arayTmp, 0xE000, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = Convert.ToByte(CsConst.myRevBuf[26]); oCMD.Type = CsConst.myRevBuf[27]; //转换为正确的类型 oCMD.SubnetID = CsConst.myRevBuf[28]; oCMD.DeviceID = CsConst.myRevBuf[29]; oCMD.Param1 = CsConst.myRevBuf[30]; oCMD.Param2 = CsConst.myRevBuf[31]; oCMD.Param3 = CsConst.myRevBuf[32]; oCMD.Param4 = CsConst.myRevBuf[33]; oKey.KeyTargets.Add(oCMD); HDLUDP.TimeBetwnNext(1); } else { return(false); } } } myKeySetting.Add(oKey); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(30 + 5 * intI, null); } } #endregion MyRead2UpFlags[1] = true; } if (intActivePage == 0 || intActivePage == 3) { #region if (wdDeviceType == 3076 || wdDeviceType == 3078 || wdDeviceType == 3080) { if (wdDeviceType == 3076 || wdDeviceType == 3078 || wdDeviceType == 3080) { wdMaxValue = 3; } arayButtonSensitiVity = new byte[wdMaxValue]; arayButtonColor = new byte[wdMaxValue * 6]; arayButtonBalance = new byte[wdMaxValue * 3 + 1]; ArayTmp = null; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xE150, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 25, arayButtonSensitiVity, 0, wdMaxValue); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(81); } ArayTmp = new byte[1]; for (int i = 1; i <= wdMaxValue; i++) { ArayTmp[0] = Convert.ToByte(i); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xE14C, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 26, arayButtonColor, (i - 1) * 6, 6); HDLUDP.TimeBetwnNext(1); } else { return(false); } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(82); } ArayTmp = null; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1998, bytSubID, bytDevID, false, false, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { for (int i = 1; i <= wdMaxValue; i++) { arayButtonBalance[0] = Convert.ToByte(i); Array.Copy(CsConst.myRevBuf, 25 + (i - 1) * 3, arayButtonBalance, (i - 1) * 3 + 1, 3); } HDLUDP.TimeBetwnNext(1); } MyRead2UpFlags[2] = true; } #endregion } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100, null); } return(true); }
/// <summary> ///下载设置 /// </summary> public void DownloadMSPUInfoToDevice(string DevName, int DeviceType, int intActivePage) { string strMainRemark = DevName.Split('\\')[1].Trim(); DevName = DevName.Split('\\')[0].Trim(); byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.Split('-')[1].ToString()); int wdMaxValue = DeviceTypeList.GetMaxValueFromPublicModeGroup(DeviceType); byte[] ArayTmp = new byte[0]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x000E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { byte[] arayRemark = new byte[20]; for (int intI = 0; intI < 20; intI++) { arayRemark[intI] = CsConst.myRevBuf[25 + intI]; } Devname = bytSubID.ToString() + "-" + bytDevID.ToString() + "\\" + HDLPF.Byte2String(arayRemark); HDLUDP.TimeBetwnNext(1); } else { return; } if (intActivePage == 0 || intActivePage == 1) { #region ONLEDs = new byte[5]; //读取LED状态 if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xDB3E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { ONLEDs = new byte[5]; ONLEDs[0] = CsConst.myRevBuf[27]; HDLUDP.TimeBetwnNext(1); } else { return; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(1, null); } //读取传感器使能 if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x161C, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { EnableSensors = new byte[15]; EnableSensors[0] = CsConst.myRevBuf[26]; EnableSensors[1] = CsConst.myRevBuf[27]; EnableSensors[2] = CsConst.myRevBuf[31]; EnableSensors[3] = CsConst.myRevBuf[37]; EnableSensors[4] = CsConst.myRevBuf[32]; EnableSensors[5] = CsConst.myRevBuf[34]; EnableSensors[6] = CsConst.myRevBuf[35]; EnableSensors[7] = CsConst.myRevBuf[36]; HDLUDP.TimeBetwnNext(1); } else { return; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(2, null); } //读取补偿值 if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1600, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { ParamSensors = new byte[15]; ParamSensors[0] = CsConst.myRevBuf[26]; ParamSensors[1] = CsConst.myRevBuf[27]; ParamSensors[2] = CsConst.myRevBuf[38]; ParamSensors[3] = CsConst.myRevBuf[39]; HDLUDP.TimeBetwnNext(1); } else { return; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(3); } //恒照度读取 if (DeviceType == 326) { EnableBroads = new byte[15]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x16A9, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 26, EnableBroads, 0, 9); HDLUDP.TimeBetwnNext(1); } else { return; } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(4); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5, null); } #endregion MyRead2UpFlags[0] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10); } if (intActivePage == 0 || intActivePage == 2) { //逻辑块功能设置 #region // 读取24个逻辑的使能位 if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1618, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { logic = new List <SensorLogic>(); byte[] ArayTmpMode = new byte[24]; Array.Copy(CsConst.myRevBuf, 26, ArayTmpMode, 0, 24); HDLUDP.TimeBetwnNext(1); for (int intI = 1; intI <= 24; intI++) { SensorLogic oTmp = new SensorLogic(); oTmp.ID = (byte)intI; oTmp.Enabled = ArayTmpMode[intI - 1]; oTmp.SetUp = new List <UVCMD.ControlTargets>(); oTmp.NoSetUp = new List <UVCMD.ControlTargets>(); if (oTmp.Enabled != 1) { logic.Add(oTmp); continue; } #region //读取备注 ArayTmp = new byte[1]; ArayTmp[0] = Convert.ToByte(intI); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1606, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { byte[] arayRemark = new byte[20]; for (int intJ = 0; intJ < 20; intJ++) { arayRemark[intJ] = CsConst.myRevBuf[27 + intJ]; } oTmp.Remarklogic = HDLPF.Byte2String(arayRemark); HDLUDP.TimeBetwnNext(1); } else { return; } if (CsConst.isRestore) { //读取设置 #region if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x160E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { oTmp.bytRelation = CsConst.myRevBuf[27]; oTmp.EnableSensors = new byte[15]; int intTmp = CsConst.myRevBuf[28] * 256 + CsConst.myRevBuf[29]; if (intTmp == 65535) { intTmp = 0; } for (byte i = 0; i < 12; i++) { if ((intTmp & (1 << i)) == (1 << i)) { switch (i) { case 0: oTmp.EnableSensors[0] = 1; break; case 1: oTmp.EnableSensors[1] = 1; break; case 5: oTmp.EnableSensors[2] = 1; break; case 6: oTmp.EnableSensors[4] = 1; break; case 8: oTmp.EnableSensors[5] = 1; break; case 9: oTmp.EnableSensors[6] = 1; break; case 10: oTmp.EnableSensors[7] = 1; break; case 11: oTmp.EnableSensors[3] = 1; break; } } } oTmp.DelayTimeT = CsConst.myRevBuf[30] * 256 + CsConst.myRevBuf[31]; oTmp.DelayTimeF = CsConst.myRevBuf[32] * 256 + CsConst.myRevBuf[33]; if (oTmp.DelayTimeT == 65535) { oTmp.DelayTimeT = 0; } if (oTmp.DelayTimeF == 65535) { oTmp.DelayTimeF = 0; } Array.Copy(CsConst.myRevBuf, 34, oTmp.Paramters, 0, 6); oTmp.Paramters[6] = CsConst.myRevBuf[46]; oTmp.Paramters[7] = CsConst.myRevBuf[55]; oTmp.Paramters[8] = CsConst.myRevBuf[47]; oTmp.UV1 = new UniversalSwitchSet(); if (201 <= CsConst.myRevBuf[49] && CsConst.myRevBuf[49] <= 248) { oTmp.UV1.id = CsConst.myRevBuf[49]; } else { oTmp.UV1.id = 201; } if (CsConst.myRevBuf[50] <= 1) { oTmp.UV1.condition = CsConst.myRevBuf[50]; } oTmp.UV2 = new UniversalSwitchSet(); if (201 <= CsConst.myRevBuf[51] && CsConst.myRevBuf[51] <= 248) { oTmp.UV2.id = CsConst.myRevBuf[51]; } else { oTmp.UV2.id = 201; if (oTmp.UV1.id == 201) { oTmp.UV2.id = 202; } } if (CsConst.myRevBuf[52] <= 1) { oTmp.UV2.condition = CsConst.myRevBuf[52]; } oTmp.Paramters[9] = CsConst.myRevBuf[53]; oTmp.Paramters[10] = CsConst.myRevBuf[54]; HDLUDP.TimeBetwnNext(1); } else { return; } #endregion //读取通用开关信息 #region ArayTmp[0] = oTmp.UV1.id; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x160A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { byte[] arayRemark = new byte[20]; for (int i = 0; i < 20; i++) { arayRemark[i] = CsConst.myRevBuf[27 + i]; } oTmp.UV1.remark = HDLPF.Byte2String(arayRemark); if (CsConst.myRevBuf[47] == 1) { oTmp.UV1.isAutoOff = true; } if (CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49] > 3600) { oTmp.UV1.autoOffDelay = 1; } else { oTmp.UV1.autoOffDelay = CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49]; } HDLUDP.TimeBetwnNext(1); } else { return; } if ((CsConst.mySends.AddBufToSndList(ArayTmp, 0xE018, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true)) { oTmp.UV1.state = CsConst.myRevBuf[26]; HDLUDP.TimeBetwnNext(1); } else { return; } ArayTmp[0] = oTmp.UV2.id; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x160A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { byte[] arayRemark = new byte[20]; for (int i = 0; i < 20; i++) { arayRemark[i] = CsConst.myRevBuf[27 + i]; } oTmp.UV2.remark = HDLPF.Byte2String(arayRemark); if (CsConst.myRevBuf[47] == 1) { oTmp.UV2.isAutoOff = true; } if (CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49] > 3600) { oTmp.UV2.autoOffDelay = 1; } else { oTmp.UV2.autoOffDelay = CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49]; } HDLUDP.TimeBetwnNext(1); } else { return; } if ((CsConst.mySends.AddBufToSndList(ArayTmp, 0xE018, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true)) { oTmp.UV2.state = CsConst.myRevBuf[26]; } else { return; } #endregion //成立的触发目标 #region for (byte bytJ = 0; bytJ < 20; bytJ++) { ArayTmp = new byte[2]; ArayTmp[0] = (byte)(intI); ArayTmp[1] = (byte)(bytJ + 1); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1612, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = CsConst.myRevBuf[27]; oCMD.Type = CsConst.myRevBuf[28]; //转换为正确的类型 if (oCMD.Type != 3) { 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]; oTmp.SetUp.Add(oCMD); } HDLUDP.TimeBetwnNext(1); } else { return; } } #endregion //不成立的触发目标 #region for (byte bytJ = 0; bytJ < 20; bytJ++) { ArayTmp = new byte[2]; ArayTmp[0] = (byte)(intI + 24); ArayTmp[1] = (byte)(bytJ + 1); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1612, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = CsConst.myRevBuf[27]; oCMD.Type = CsConst.myRevBuf[28]; //转换为正确的类型 if (oCMD.Type != 3) { 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]; oTmp.NoSetUp.Add(oCMD); } HDLUDP.TimeBetwnNext(1); } else { return; } } #endregion } logic.Add(oTmp); #endregion if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10 + intI); } } } else { return; } #endregion MyRead2UpFlags[1] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(20); } if (intActivePage == 0 || intActivePage == 3) { fireset = new List <UVCMD.SecurityInfo>(); ArayTmp = new byte[1]; #region for (byte intI = 1; intI <= 1; intI++) { ArayTmp[0] = intI; //读取备注 UVCMD.SecurityInfo oTmp = new UVCMD.SecurityInfo(); oTmp.bytSeuID = intI; switch (intI) { default: if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1624, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { byte[] arayRemark = new byte[20]; for (int intJ = 0; intJ < 20; intJ++) { arayRemark[intJ] = CsConst.myRevBuf[27 + intJ]; } oTmp.strRemark = HDLPF.Byte2String(arayRemark); HDLUDP.TimeBetwnNext(1); } else { return; } break; } //读取设置 if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1628, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { oTmp.bytTerms = CsConst.myRevBuf[27]; oTmp.bytSubID = CsConst.myRevBuf[28]; oTmp.bytDevID = CsConst.myRevBuf[29]; oTmp.bytArea = CsConst.myRevBuf[30]; HDLUDP.TimeBetwnNext(1); } else { return; } fireset.Add(oTmp); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(35 + intI); } } #endregion MyRead2UpFlags[2] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(30); } if (intActivePage == 0 || intActivePage == 4) { #region //读取模拟测试 if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1620, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(DeviceType)) == true) { SimulateEnable = new byte[15]; SimulateEnable[0] = CsConst.myRevBuf[26]; SimulateEnable[1] = CsConst.myRevBuf[27]; SimulateEnable[2] = CsConst.myRevBuf[28]; SimulateEnable[3] = CsConst.myRevBuf[32]; SimulateEnable[4] = CsConst.myRevBuf[40]; ParamSimulate = new byte[15]; ParamSimulate[0] = CsConst.myRevBuf[33]; ParamSimulate[1] = CsConst.myRevBuf[34]; ParamSimulate[2] = CsConst.myRevBuf[35]; ParamSimulate[3] = CsConst.myRevBuf[39]; ParamSimulate[4] = CsConst.myRevBuf[41]; HDLUDP.TimeBetwnNext(1); } else { return; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(31, null); } #endregion MyRead2UpFlags[3] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(40); } 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); }
///<summary> ///保存数据库面板设置,将所有数据保存 ///</summary> public void saveHaiInfoToDB(int DIndex) { /// delete all old information and refresh the database string strsql = string.Format("delete from dbKeyTargets where DIndex={0}", DIndex); DataModule.ExecuteSQLDatabase(strsql); ///save save basic setup of HAI #region if (units != null && units.Count != 0) { foreach (Unit oTmp in units) { if (oTmp.oUnit != null) { UVCMD.ControlTargets TmpCmds = oTmp.oUnit; strsql = string.Format("Insert into dbKeyTargets(DIndex,KeyIndex,objID,KeyFunType,SubNetID,DeviceID,FirstParameter," + "SecondParameter,RunTimeMinute,RunTimeSecond,Ms04State) values ({0},{1},'{2}',{3},{4},{5},{6},{7},{8},{9},{10})", DIndex, 1, oTmp.bytID, TmpCmds.Type, TmpCmds.SubnetID, TmpCmds.DeviceID, TmpCmds.Param1, TmpCmds.Param2, TmpCmds.Param3, TmpCmds.Param4, 0); DataModule.ExecuteSQLDatabase(strsql); } } } #endregion //save infomation of Hai Scene #region if (scen != null && scen.Count != 0) { foreach (Scene oTmp in scen) { if (oTmp.oUnit != null) { UVCMD.ControlTargets TmpCmds = oTmp.oUnit; strsql = string.Format("Insert into dbKeyTargets(DIndex,KeyIndex,objID,KeyFunType,SubNetID,DeviceID,FirstParameter," + "SecondParameter,RunTimeMinute,RunTimeSecond,Ms04State,StrTip) values ({0},{1},'{2}',{3},{4},{5},{6},{7},{8},{9},{10})", DIndex, 2, oTmp.bytID, TmpCmds.Type, TmpCmds.SubnetID, TmpCmds.DeviceID, TmpCmds.Param1, TmpCmds.Param2, TmpCmds.Param3, TmpCmds.Param4, 0); DataModule.ExecuteSQLDatabase(strsql); } } } #endregion //save infomation of Hai ButtonStatus #region if (buttonstatus != null && buttonstatus.Count != 0) { foreach (ButtonStatus oTmp in buttonstatus) { if (oTmp.oUnit != null) { UVCMD.ControlTargets TmpCmds = oTmp.oUnit; strsql = string.Format("Insert into dbKeyTargets(DIndex,KeyIndex,objID,KeyFunType,SubNetID,DeviceID,FirstParameter," + "SecondParameter,RunTimeMinute,RunTimeSecond,Ms04State) values ({0},{1},'{2}',{3},{4},{5},{6},{7},{8},{9},{10})", DIndex, 3, oTmp.bytID, TmpCmds.Type, TmpCmds.SubnetID, TmpCmds.DeviceID, TmpCmds.Param1, TmpCmds.Param2, TmpCmds.Param3, TmpCmds.Param4, 0); DataModule.ExecuteSQLDatabase(strsql); } } } #endregion }
///<summary> ///读取数据库面板设置,将所有数据读至缓存 ///</summary> public void ReadSensorInfoFromDB(int DIndex) { //read GPRS Info #region string str = string.Format("select * from dbGPRSbasic where DIndex={0}", DIndex); OleDbDataReader dr = DataModule.SearchAResultSQLDB(str, CsConst.mstrCurPath); if (dr == null) { return; } while (dr.Read()) { strIP = dr.GetString(1); strRouterIP = dr.GetString(2); strMAC = dr.GetString(3); strSevCentre = dr.GetString(4); strCode = dr.GetString(5); strIMEI = dr.GetString(6); blnTo485 = dr.GetBoolean(7); } dr.Close(); #endregion //read GPRS Control Info #region MyControls = new List <SMSControls>(); str = string.Format("select * from dbGPRSControls where DIndex={0} order by SenNum", DIndex); dr = DataModule.SearchAResultSQLDB(str, CsConst.mstrCurPath); if (dr != null) { while (dr.Read()) { SMSControls temp = new SMSControls(); temp.MyVerify = new List <PhoneInF>(); temp.MyTargets = new List <UVCMD.ControlTargets>(); temp.ID = dr.GetInt16(1); temp.strRemark = dr.GetString(2); temp.strSMSContent = dr.GetString(3); temp.blnIsVerify = dr.GetBoolean(4); temp.blnReply = dr.GetBoolean(5); #region if (temp.blnIsVerify == true) { str = string.Format("select * from dbGPRSVerify where DIndex={0} and SenNum ={1} order by VerifyNum", DIndex, temp.ID); OleDbDataReader drVerify = DataModule.SearchAResultSQLDB(str, CsConst.mstrCurPath); if (drVerify != null) { while (drVerify.Read()) { PhoneInF tmp = new PhoneInF(); tmp.ID = drVerify.GetInt16(2); tmp.Remark = drVerify.GetString(3); tmp.PhoneNum = drVerify.GetString(4); temp.MyVerify.Add(tmp); } drVerify.Close(); } } #endregion str = string.Format("select * from dbKeyTargets where DIndex ={0} and KeyIndex = {1} order by objID", DIndex, temp.ID); OleDbDataReader drKeyCmds = DataModule.SearchAResultSQLDB(str, CsConst.mstrCurPath); if (drKeyCmds != null) { while (drKeyCmds.Read()) { UVCMD.ControlTargets TmpCmd = new UVCMD.ControlTargets(); TmpCmd.ID = drKeyCmds.GetByte(2); TmpCmd.Type = drKeyCmds.GetByte(3); TmpCmd.SubnetID = drKeyCmds.GetByte(4); TmpCmd.DeviceID = drKeyCmds.GetByte(5); TmpCmd.Param1 = drKeyCmds.GetByte(6); TmpCmd.Param2 = drKeyCmds.GetByte(7); TmpCmd.Param3 = drKeyCmds.GetByte(8); TmpCmd.Param4 = drKeyCmds.GetByte(9); temp.MyTargets.Add(TmpCmd); } drKeyCmds.Close(); MyControls.Add(temp); } } dr.Close(); } #endregion //read GPRS SMS Send Info #region MySendSMS = new List <SendSMS>(); str = string.Format("select * from dbGPRSSendSMS where DIndex = {0} order by SenNum", DIndex); dr = DataModule.SearchAResultSQLDB(str, CsConst.mstrCurPath); if (dr != null) { while (dr.Read()) { SendSMS temp = new SendSMS(); temp.MyGuests = new List <PhoneInF>(); temp.ID = dr.GetInt16(1); temp.strRemark = dr.GetString(2); str = string.Format("select * from dbGPRSSendSMSInfo where DIndex={0} and SenNum ={1} order by TargetNum", DIndex, temp.ID); OleDbDataReader drSend = DataModule.SearchAResultSQLDB(str, CsConst.mstrCurPath); if (drSend != null) { while (drSend.Read()) { PhoneInF tmp = new PhoneInF(); tmp.ID = drSend.GetInt16(2); tmp.Remark = drSend.GetString(3); tmp.PhoneNum = drSend.GetString(4); tmp.strSMS = drSend.GetString(5); temp.MyGuests.Add(tmp); } drSend.Close(); } MySendSMS.Add(temp); } dr.Close(); } #endregion }
//<summary> //读取数据库面板设置,将所有数据读至缓存 //</summary> public void ReadSecurityFrmDBTobuf(int DIndex) { if (LogicPos == null) { LogicPos = new byte[50]; //存储位置经纬度 } if (MyDesign == null) { MyDesign = new LogicBlock[12]; //十二个逻辑块设置 } //读取经纬度 #region string str = string.Format("select * from dbLogic where DIndex={0}", DIndex); OleDbDataReader dr = DataModule.SearchAResultSQLDB(str); if (dr != null) { while (dr.Read()) { LogicPos = (byte[])dr[1]; LogicSummerTime = (byte[])dr[2]; DateTimeAry = (byte[])dr[3]; isBroadcastTime = (bool)dr[4]; } dr.Close(); } #endregion for (int intI = 1; intI <= 12; intI++) { MyDesign[intI - 1] = new LogicBlock(); //读取基本信息 #region str = string.Format("select * from dbLogicTable where DIndex={0}", DIndex); dr = DataModule.SearchAResultSQLDB(str); if (dr != null) { while (dr.Read()) { MyDesign[intI - 1].Remark = dr.GetString(1); MyDesign[intI - 1].TableIDs = (byte[])dr[2]; MyDesign[intI - 1].MyPins = new List <byte[]>(); MyDesign[intI - 1].Remarks = (string[])dr[3]; for (byte bytI = 0; bytI < 12; bytI++) { byte[] Tmp = (byte[])dr[4 + bytI]; if (Tmp != null) { MyDesign[intI - 1].MyPins.Add(Tmp); } } } } #endregion //读取目标设置 #region MyDesign[intI - 1].ArmCmds = new List <UVCMD.ControlTargets> [20]; str = string.Format("select * from dbKeyTargets where DIndex ={0} and KeyIndex = {1} and Ms04State >= 1 and Ms04State <= 20 order by objID", DIndex, intI); OleDbDataReader drKeyCmds = DataModule.SearchAResultSQLDB(str); if (drKeyCmds != null) { while (drKeyCmds.Read()) { int intIndex = drKeyCmds.GetInt16(10); //对应逻辑表号 UVCMD.ControlTargets TmpCmd = new UVCMD.ControlTargets(); TmpCmd.ID = drKeyCmds.GetByte(2); TmpCmd.Type = drKeyCmds.GetByte(3); TmpCmd.SubnetID = drKeyCmds.GetByte(4); TmpCmd.DeviceID = drKeyCmds.GetByte(5); TmpCmd.Param1 = drKeyCmds.GetByte(6); TmpCmd.Param2 = drKeyCmds.GetByte(7); TmpCmd.Param3 = drKeyCmds.GetByte(8); TmpCmd.Param4 = drKeyCmds.GetByte(9); TmpCmd.Hint = drKeyCmds.GetString(11); if (MyDesign[intI - 1].ArmCmds[intIndex - 1] == null) { MyDesign[intI - 1].ArmCmds[intIndex - 1] = new List <UVCMD.ControlTargets>(); } MyDesign[intI - 1].ArmCmds[intIndex - 1].Add((UVCMD.ControlTargets)TmpCmd); } drKeyCmds.Close(); } #endregion } }
/// <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); }
/// <summary> ///下载设置 /// </summary> public bool DownloadSensorInfosToDevice(string DevName, int DeviceType, int intActivePage, int num1, int num2) { 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[] ArayTmp = null; if (CsConst.mySends.AddBufToSndList(ArayTmp, 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]; } Devname = bytSubID.ToString() + "-" + bytDevID.ToString() + "\\" + HDLPF.Byte2String(arayRemark); HDLUDP.TimeBetwnNext(1); } ///红外发射 if (intActivePage == 0 || intActivePage == 1) { #region ArayTmp = new byte[2]; IRCodes = new List <UVCMD.IRCode>(); //读取红外有效性 for (int i = num1; i <= num2; i++) { UVCMD.IRCode temp = new UVCMD.IRCode(); temp.IRLength = 0; temp.IRLoation = 0; temp.KeyID = i; temp.Codes = ""; temp.Remark1 = ""; temp.Enable = 0; IRCodes.Add(temp); } ArayTmp = new byte[0]; int intTmp = 0; byte ValidCount = 0; byte FirstKey = 0; byte LastSendCount = 0; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x168A, bytSubID, bytDevID, false, true, true, false) == true) { ValidCount = CsConst.myRevBuf[26]; FirstKey = CsConst.myRevBuf[27]; HDLUDP.TimeBetwnNext(1); } else { return(false); } if (ValidCount > 11) { intTmp = ValidCount / 11; if (ValidCount % 11 != 0) { intTmp = intTmp + 1; LastSendCount = Convert.ToByte(ValidCount % 11); } } else if (ValidCount != 0 && ValidCount <= 11) { intTmp = 1; } List <byte> listTmp = new List <byte>(); for (int i = 0; i < intTmp; i++) { ArayTmp = new byte[2]; ArayTmp[0] = FirstKey; ArayTmp[1] = 11; if (i == intTmp - 1 && LastSendCount != 0) { ArayTmp[1] = LastSendCount; } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x168C, bytSubID, bytDevID, false, true, true, false) == true) { FirstKey = CsConst.myRevBuf[40]; for (int j = 0; j < ArayTmp[1]; j++) { if (!listTmp.Contains(CsConst.myRevBuf[29 + j])) { listTmp.Add(CsConst.myRevBuf[29 + j]); } } HDLUDP.TimeBetwnNext(1); } else { return(false); } } for (int i = 0; i < IRCodes.Count; i++) { for (int j = 0; j < listTmp.Count; j++) { if ((IRCodes[i].KeyID - 1) == Convert.ToInt32(listTmp[j])) { IRCodes[i].Enable = 1; break; } } } for (int i = 0; i < IRCodes.Count; i++) { if (IRCodes[i].Enable == 1) { ArayTmp = new byte[2]; ArayTmp[0] = Convert.ToByte(IRCodes[i].KeyID - 1); ArayTmp[1] = 0; byte[] arayRemark = new byte[20]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x168E, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 29, arayRemark, 0, 10); HDLUDP.TimeBetwnNext(1); } else { return(false); } ArayTmp = new byte[2]; ArayTmp[0] = Convert.ToByte(IRCodes[i].KeyID - 1); ArayTmp[1] = 1; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x168E, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 29, arayRemark, 10, 10); HDLUDP.TimeBetwnNext(1); } else { return(false); } IRCodes[i].Remark1 = HDLPF.Byte2String(arayRemark); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10 * (i + 1) / IRCodes.Count); } } #endregion MyRead2UpFlags[0] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10); } // 红外接收 if (intActivePage == 0 || intActivePage == 2) { #region IrReceiver = new List <IRReceive>(); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1672, bytSubID, bytDevID, false, true, true, false) == true) { ArayTmpMode = new byte[40]; Array.Copy(CsConst.myRevBuf, 26, ArayTmpMode, 0, 40); HDLUDP.TimeBetwnNext(1); for (int intI = num1; intI <= num2; intI++) { IRReceive oTmp = new IRReceive(); oTmp.BtnNum = intI; oTmp.IRBtnModel = ArayTmpMode[intI - 1]; oTmp.TargetInfo = new List <UVCMD.ControlTargets>(); //读取按键备注 #region ArayTmp = new byte[1]; ArayTmp[0] = Convert.ToByte(intI); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x167A, bytSubID, bytDevID, false, true, true, false) == true) { byte[] arayRemark = new byte[20]; for (int intJ = 0; intJ < 20; intJ++) { arayRemark[intJ] = CsConst.myRevBuf[27 + intJ]; } oTmp.IRBtnRemark = HDLPF.Byte2String(arayRemark); HDLUDP.TimeBetwnNext(1); } else { return(false); } #endregion //按键目标 #region oTmp.TargetInfo = new List <UVCMD.ControlTargets>(); if (CsConst.isRestore) { byte bytTotalCMD = 1; switch (oTmp.IRBtnModel) { case 0: bytTotalCMD = 1; break; case 1: case 2: case 3: case 6: case 10: bytTotalCMD = 1; break; case 4: case 5: case 7: case 13: bytTotalCMD = 99; break; case 11: bytTotalCMD = 98; break; case 16: case 17: bytTotalCMD = 49; break; } for (byte bytJ = 0; bytJ < bytTotalCMD; bytJ++) { ArayTmp = new byte[2]; ArayTmp[0] = (byte)(intI); ArayTmp[1] = (byte)(bytJ + 1); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1676, bytSubID, bytDevID, false, true, true, false) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = CsConst.myRevBuf[27]; oCMD.Type = CsConst.myRevBuf[28]; //转换为正确的类型 oCMD.SubnetID = CsConst.myRevBuf[29]; oCMD.DeviceID = CsConst.myRevBuf[30]; oCMD.Param1 = CsConst.myRevBuf[31]; oCMD.Param2 = CsConst.myRevBuf[32]; oCMD.Param3 = CsConst.myRevBuf[33]; oCMD.Param4 = CsConst.myRevBuf[34]; oTmp.TargetInfo.Add(oCMD); HDLUDP.TimeBetwnNext(1); } else { return(false); } } } #endregion IrReceiver.Add(oTmp); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(2 + intI / 2); } } } else { return(false); } #endregion MyRead2UpFlags[1] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(20); } //传感器设置 if (intActivePage == 0 || intActivePage == 3 || intActivePage == 4) { #region if (intActivePage == 0 || intActivePage == 3) { // read led灯使能位 #region if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xDB3E, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 27, ONLEDs, 0, CsConst.myRevBuf[26]); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(21); } #endregion } if (intActivePage == 0 || intActivePage == 3 || intActivePage == 4) { //读取使能位 #region ArayTmp = null; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x165E, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 26, EnableSensors, 0, 7); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(23); } #endregion } if (intActivePage == 0 || intActivePage == 3) { //读取温度补偿值 #region if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1641, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 26, ParamSensors, 0, 1); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(24); } #endregion //读取灵敏度 #region if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x166E, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 26, ParamSensors, 1, 1); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(25); } #endregion //恒照度读取 if (DeviceType == 329) { #region if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x16A9, bytSubID, bytDevID, false, true, true, false) == true) { Array.Copy(CsConst.myRevBuf, 26, EnableBroads, 0, 9); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(26); } #endregion } } #endregion MyRead2UpFlags[2] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(30); } //逻辑块功能设置 if (intActivePage == 0 || intActivePage == 4) { #region // 读取24个逻辑的使能位 if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x165A, bytSubID, bytDevID, false, true, true, false) == true) { logic = new List <SensorLogic>(); byte[] ArayTmpMode = new byte[24]; Array.Copy(CsConst.myRevBuf, 26, ArayTmpMode, 0, Eightin1DeviceTypeList.TotalLogic); HDLUDP.TimeBetwnNext(1); for (int intI = 1; intI <= Eightin1DeviceTypeList.TotalLogic; intI++) { SensorLogic oTmp = new SensorLogic(); oTmp.ID = (byte)intI; oTmp.EnableSensors = new byte[15]; oTmp.Paramters = new byte[20]; oTmp.Enabled = ArayTmpMode[intI - 1]; //无效则不读取 if (oTmp.Enabled != 1) { logic.Add(oTmp); continue; } //读取备注 #region ArayTmp = new byte[1]; ArayTmp[0] = Convert.ToByte(intI); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1648, bytSubID, bytDevID, false, true, true, false) == true) { byte[] arayRemark = new byte[20]; for (int intJ = 0; intJ < 20; intJ++) { arayRemark[intJ] = CsConst.myRevBuf[27 + intJ]; } oTmp.Remarklogic = HDLPF.Byte2String(arayRemark); HDLUDP.TimeBetwnNext(1); } else { return(false); } #endregion //读取设置 #region if (CsConst.isRestore) { if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1650, bytSubID, bytDevID, false, true, true, false) == true) { oTmp.bytRelation = CsConst.myRevBuf[27]; oTmp.EnableSensors = new byte[15]; int intTmp = CsConst.myRevBuf[28]; if (intTmp == 255) { intTmp = 0; } //oTmp.EnableSensors for (byte bytI = 0; bytI <= 6; bytI++) { oTmp.EnableSensors[bytI] = Convert.ToByte((intTmp & (1 << bytI)) == (1 << bytI)); } oTmp.DelayTimeT = CsConst.myRevBuf[29] * 256 + CsConst.myRevBuf[30]; Array.Copy(CsConst.myRevBuf, 31, oTmp.Paramters, 0, 7); oTmp.UV1 = new UniversalSwitchSet(); oTmp.UV1.id = Convert.ToByte(HDLPF.IsNumStringMode(CsConst.myRevBuf[38].ToString(), 201, 248)); oTmp.UV1.condition = CsConst.myRevBuf[39]; oTmp.UV2 = new UniversalSwitchSet(); oTmp.UV2.id = Convert.ToByte(HDLPF.IsNumStringMode(CsConst.myRevBuf[40].ToString(), 201, 248)); if (oTmp.UV2.id == oTmp.UV1.id) { oTmp.UV2.id = Convert.ToByte(oTmp.UV1.id + 1); } oTmp.UV2.condition = CsConst.myRevBuf[41]; oTmp.DelayTimeF = CsConst.myRevBuf[42] * 256 + CsConst.myRevBuf[43]; if (oTmp.DelayTimeT == 65535) { oTmp.DelayTimeT = 0; } if (oTmp.DelayTimeF == 65535) { oTmp.DelayTimeF = 0; } HDLUDP.TimeBetwnNext(1); ArayTmp = new byte[1]; ArayTmp[0] = oTmp.UV1.id; if ((CsConst.mySends.AddBufToSndList(ArayTmp, 0x164C, bytSubID, bytDevID, false, false, true, false) == true)) { byte[] arayRemark = new byte[20]; Array.Copy(CsConst.myRevBuf, 27, arayRemark, 0, arayRemark.Length); oTmp.UV1.remark = HDLPF.Byte2String(arayRemark); oTmp.UV1.isAutoOff = (CsConst.myRevBuf[47] == 1); if (CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49] > 3600) { oTmp.UV1.autoOffDelay = 1; } else { oTmp.UV1.autoOffDelay = CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49]; } HDLUDP.TimeBetwnNext(1); } ArayTmp[0] = oTmp.UV2.id; if ((CsConst.mySends.AddBufToSndList(ArayTmp, 0x164C, bytSubID, bytDevID, false, false, true, false) == true)) { byte[] arayRemark = new byte[20]; Array.Copy(CsConst.myRevBuf, 27, arayRemark, 0, arayRemark.Length); oTmp.UV2.remark = HDLPF.Byte2String(arayRemark); oTmp.UV2.isAutoOff = (CsConst.myRevBuf[47] == 1); if (CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49] > 3600) { oTmp.UV2.autoOffDelay = 1; } else { oTmp.UV2.autoOffDelay = CsConst.myRevBuf[48] * 256 + CsConst.myRevBuf[49]; } HDLUDP.TimeBetwnNext(1); } } else { return(false); } } #endregion //成立的触发目标 oTmp.DownloadLogicTrueCommandsFromDevice(bytSubID, bytDevID, DeviceType, 0, 0); //不成立的触发目标 oTmp.DownloadLogicFalseCommandsFromDevice(bytSubID, bytDevID, DeviceType, 0, 0); logic.Add(oTmp); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(24 + intI * 2); } } } else { return(false); } #endregion MyRead2UpFlags[3] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(40); } if (intActivePage == 0 || intActivePage == 5) { //安防设置 #region fireset = new List <UVCMD.SecurityInfo>(); ArayTmp = new byte[1]; for (byte intI = 1; intI <= 3; intI++) { ArayTmp[0] = intI; //读取备注 #region UVCMD.SecurityInfo oTmp = new UVCMD.SecurityInfo(); oTmp.bytSeuID = intI; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1666, bytSubID, bytDevID, false, true, true, false) == true) { byte[] arayRemark = new byte[20]; for (int intJ = 0; intJ < 20; intJ++) { arayRemark[intJ] = CsConst.myRevBuf[27 + intJ]; } oTmp.strRemark = HDLPF.Byte2String(arayRemark); HDLUDP.TimeBetwnNext(1); } else { return(false); } #endregion //读取设置 #region if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x166A, bytSubID, bytDevID, false, true, true, false) == true) { oTmp.bytTerms = CsConst.myRevBuf[27]; oTmp.bytSubID = CsConst.myRevBuf[28]; oTmp.bytDevID = CsConst.myRevBuf[29]; oTmp.bytArea = CsConst.myRevBuf[30]; HDLUDP.TimeBetwnNext(1); } else { return(false); } fireset.Add(oTmp); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(40 + (10 * intI / 4)); } #endregion } #endregion MyRead2UpFlags[4] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(50); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } return(true); }
///<summary> ///读取数据库面板设置,将所有数据读至缓存 ///</summary> public void ReadHaiInfoFromDB(int DIndex) { //read HAI Unit inofomation units = new List <Unit>(); #region string str = string.Format("select * from dbKeyTargets where DIndex ={0} and KeyIndex = {1} order by objID", DIndex, 1); OleDbDataReader drKeyCmds = DataModule.SearchAResultSQLDB(str); if (drKeyCmds != null) { while (drKeyCmds.Read()) { Unit oTmp = new Unit(); oTmp.bytID = drKeyCmds.GetByte(2); UVCMD.ControlTargets TmpCmd = new UVCMD.ControlTargets(); oTmp.Command = "^A" + String.Format("{0:D3} ", drKeyCmds.GetByte(2)); TmpCmd.ID = 1; TmpCmd.Type = drKeyCmds.GetByte(3); TmpCmd.SubnetID = drKeyCmds.GetByte(4); TmpCmd.DeviceID = drKeyCmds.GetByte(5); TmpCmd.Param1 = drKeyCmds.GetByte(6); TmpCmd.Param2 = drKeyCmds.GetByte(7); TmpCmd.Param3 = drKeyCmds.GetByte(8); TmpCmd.Param4 = drKeyCmds.GetByte(9); oTmp.oUnit = TmpCmd; units.Add(oTmp); } } #endregion scen = new List <Scene>(); //read HAI Scene infomation #region str = string.Format("select * from dbKeyTargets where DIndex ={0} and KeyIndex = {1} order by objID", DIndex, 2); drKeyCmds = DataModule.SearchAResultSQLDB(str); if (drKeyCmds != null) { while (drKeyCmds.Read()) { Scene oTmp = new Scene(); oTmp.bytID = drKeyCmds.GetByte(2); UVCMD.ControlTargets TmpCmd = new UVCMD.ControlTargets(); oTmp.Command = "^C" + String.Format("{0:D3} ", drKeyCmds.GetByte(2)); TmpCmd.ID = 1; TmpCmd.Type = drKeyCmds.GetByte(3); TmpCmd.SubnetID = drKeyCmds.GetByte(4); TmpCmd.DeviceID = drKeyCmds.GetByte(5); TmpCmd.Param1 = drKeyCmds.GetByte(6); TmpCmd.Param2 = drKeyCmds.GetByte(7); TmpCmd.Param3 = drKeyCmds.GetByte(8); TmpCmd.Param4 = drKeyCmds.GetByte(9); oTmp.oUnit = TmpCmd; scen.Add(oTmp); } } #endregion buttonstatus = new List <ButtonStatus>(); ///read HAI buttonstatus infomation #region str = string.Format("select * from dbKeyTargets where DIndex ={0} and KeyIndex = {1} order by objID", DIndex, 3); drKeyCmds = DataModule.SearchAResultSQLDB(str); if (drKeyCmds != null) { while (drKeyCmds.Read()) { ButtonStatus oTmp = new ButtonStatus(); oTmp.bytID = drKeyCmds.GetByte(2); UVCMD.ControlTargets TmpCmd = new UVCMD.ControlTargets(); oTmp.Command = String.Format("{0:D3} ", drKeyCmds.GetByte(2)) + " Button Tab/Press<-->OFF/ON"; TmpCmd.ID = 1; TmpCmd.Type = drKeyCmds.GetByte(3); TmpCmd.SubnetID = drKeyCmds.GetByte(4); TmpCmd.DeviceID = drKeyCmds.GetByte(5); TmpCmd.Param1 = drKeyCmds.GetByte(6); TmpCmd.Param2 = drKeyCmds.GetByte(7); TmpCmd.Param3 = drKeyCmds.GetByte(8); TmpCmd.Param4 = drKeyCmds.GetByte(9); oTmp.oUnit = TmpCmd; buttonstatus.Add(oTmp); } } #endregion }
//<summary> //保存数据 //</summary> public void SaveDataToDB() { try { string strsql = string.Format("delete * from dbClassInfomation where DIndex={0}", DIndex); DataModule.ExecuteSQLDatabase(strsql); strsql = string.Format("delete * from dbKeyTargets where DIndex={0}", DIndex); DataModule.ExecuteSQLDatabase(strsql); #region string strRemarkBasic = ""; string strParamBasic = Backlight.ToString() + "-" + Ledlight.ToString(); if (arayButtonColor == null) { arayButtonColor = new byte[0]; } if (arayButtonBalance == null) { arayButtonBalance = new byte[0]; } if (arayButtonSensitiVity == null) { arayButtonSensitiVity = new byte[0]; } if (arayHotel == null) { arayHotel = new byte[13]; } strsql = @"Insert into dbClassInfomation(DIndex,ClassID,ObjectID,SenNum,Remark,strParam1,byteAry1,byteAry2,byteAry3,byteAry4)" + " values(@DIndex,@ClassID,@ObjectID,@SenNum,@Remark,@strParam1,@byteAry1,@byteAry2,@byteAry3,@byteAry4)"; //创建一个OleDbConnection对象 OleDbConnection connBasic; connBasic = new OleDbConnection(DataModule.ConString + CsConst.mstrDefaultPath); //OleDbConnection conn = new OleDbConnection(DataModule.ConString + CsConst.mstrCurPath); connBasic.Open(); OleDbCommand cmdBaic = new OleDbCommand(strsql, connBasic); ((OleDbParameter)cmdBaic.Parameters.Add("@DIndex", OleDbType.Integer)).Value = DIndex; ((OleDbParameter)cmdBaic.Parameters.Add("@ClassID", OleDbType.Integer)).Value = 0; ((OleDbParameter)cmdBaic.Parameters.Add("@ObjectID", OleDbType.Integer)).Value = 0; ((OleDbParameter)cmdBaic.Parameters.Add("@SenNum", OleDbType.Integer)).Value = 0; ((OleDbParameter)cmdBaic.Parameters.Add("@Remark", OleDbType.VarChar)).Value = strRemarkBasic; ((OleDbParameter)cmdBaic.Parameters.Add("@strParam1", OleDbType.VarChar)).Value = strParamBasic; ((OleDbParameter)cmdBaic.Parameters.Add("@byteAry1", OleDbType.Binary)).Value = arayButtonColor; ((OleDbParameter)cmdBaic.Parameters.Add("@byteAry2", OleDbType.Binary)).Value = arayButtonBalance; ((OleDbParameter)cmdBaic.Parameters.Add("@byteAry3", OleDbType.Binary)).Value = arayButtonSensitiVity; ((OleDbParameter)cmdBaic.Parameters.Add("@byteAry4", OleDbType.Binary)).Value = arayHotel; try { cmdBaic.ExecuteNonQuery(); } catch { connBasic.Close(); } connBasic.Close(); #endregion #region if (myKeySetting != null) { for (int i = 0; i < myKeySetting.Count; i++) { string strRemark = myKeySetting[i].Remark; string strParam = myKeySetting[i].ID.ToString() + "-" + myKeySetting[i].Mode.ToString() + "-" + myKeySetting[i].Delay.ToString(); strsql = string.Format("Insert into dbClassInfomation(DIndex,ClassID,ObjectID,SenNum,Remark,strParam1) values ({0},{1},{2},{3},'{4}','{5}')", DIndex, 1, 0, i, strRemark, strParam); DataModule.ExecuteSQLDatabase(strsql); if (myKeySetting[i].KeyTargets != null) { for (int intK = 0; intK < myKeySetting[i].KeyTargets.Count; intK++) { UVCMD.ControlTargets TmpCmds = myKeySetting[i].KeyTargets[intK]; ///// insert into all commands to database strsql = string.Format("Insert into dbKeyTargets(DIndex,KeyIndex,objID,KeyFunType,SubNetID,DeviceID,FirstParameter," + "SecondParameter,RunTimeMinute,RunTimeSecond,Ms04State) values ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10})", DIndex, myKeySetting[i].ID, TmpCmds.ID, TmpCmds.Type, TmpCmds.SubnetID, TmpCmds.DeviceID, TmpCmds.Param1, TmpCmds.Param2, TmpCmds.Param3, TmpCmds.Param4, 0); DataModule.ExecuteSQLDatabase(strsql); } } } } #endregion } catch { } }
public bool DownloadNewIRInfoFrmDevice(string DevName, int intDeviceType, int intActivePage) { string strMainRemark = DevName.Split('\\')[1].Trim(); DevName = DevName.Split('\\')[0].Trim(); byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.Split('-')[1].ToString()); byte[] ArayTmp = new byte[0]; String sRemark = HDLSysPF.ReadDeviceMainRemark(bytSubID, bytDevID); strName = bytSubID.ToString() + "-" + bytDevID.ToString() + "\\" + sRemark; if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(1); } if (intActivePage == 0 || intActivePage == 1) { arayBrocast = new byte[5]; arayTime = new byte[7]; ArayTmp = new byte[2]; IRCodes = new List <NewIRCode>(); //读取28红外备注 int MaxIRDevice = 28; if (intDeviceType == 6100) { MaxIRDevice = 10; } if (intDeviceType == 1301 || intDeviceType == 1300 || intDeviceType == 6100) { ArayTmp = new byte[3]; } for (int i = 0; i < MaxIRDevice; i++) { ArayTmp[0] = Convert.ToByte(i + 1); ArayTmp[1] = 0; if (intDeviceType == 1301 || intDeviceType == 1300) { if (i >= 4) { ArayTmp[0] = Convert.ToByte(ArayTmp[0] - 4); ArayTmp[2] = 0; } else { ArayTmp[2] = 1; } } else if (intDeviceType == 6100) { if (i >= 3) { ArayTmp[0] = Convert.ToByte(ArayTmp[0] - 3); ArayTmp[2] = 0; } else { ArayTmp[2] = 1; } } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x137C, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { NewIRCode temp = new NewIRCode(); temp.KeyID = ArayTmp[0]; temp.DevID = CsConst.myRevBuf[27]; temp.IRIndex = CsConst.myRevBuf[28] * 256 + CsConst.myRevBuf[29]; temp.IRLength = CsConst.myRevBuf[30]; temp.KeyCodes = new List <UVCMD.IRCode>(); byte[] arayRemark = new byte[20]; for (int intI = 0; intI < 20; intI++) { arayRemark[intI] = CsConst.myRevBuf[32 + intI]; } ; temp.Remark = HDLPF.Byte2String(arayRemark); temp.Codes = ""; if (temp.DevID >= 6) { temp.Remark = ""; } if (temp.IRLength != 0 && temp.IRLength != 255) { ArayTmp[1] = 1; ArayTmp[2] = (Byte)temp.IRLength; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x137C, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { for (int intI = 0; intI < temp.IRLength; intI++) { temp.Codes = temp.Codes + CsConst.myRevBuf[27 + intI].ToString("X2") + " "; } } } IRCodes.Add(temp); } else { return(false); } HDLUDP.TimeBetwnNext(1); if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(1 + i); } } if (intDeviceType != 1301) { ArayTmp = new byte[0]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xE0F8, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 25, arayBrocast, 0, 5); HDLUDP.TimeBetwnNext(1); } else { return(false); } } if (intDeviceType == 6100) { ArayTmp = new byte[0]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xDA00, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 26, arayTime, 0, 6); HDLUDP.TimeBetwnNext(1); } else { return(false); } } MyRead2UpFlags[0] = true; } if (intActivePage == 0 || intActivePage == 2) { if (CsConst.isRestore) { } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(40); } if (intActivePage == 0 || intActivePage == 3) { if (CsConst.isRestore) { } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(50); } if (intActivePage == 0 || intActivePage == 4) { if (CsConst.isRestore) { } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(60); } if (intActivePage == 0 || intActivePage == 5) { } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(70); } if (intActivePage == 0 || intActivePage == 6) { #region if (intDeviceType == 6100) { Clocks = new List <Clock>(); Scenes = new List <Scene>(); for (int i = 1; i <= 16; i++) { ArayTmp = new byte[1]; ArayTmp[0] = Convert.ToByte(i); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xE46E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { Clock temp = new Clock(); temp.ID = Convert.ToByte(i); temp.Enable = CsConst.myRevBuf[26]; temp.Type = CsConst.myRevBuf[27]; if (temp.Type > 1) { temp.Type = 0; } temp.arayParam = new byte[5]; Array.Copy(CsConst.myRevBuf, 28, temp.arayParam, 0, 5); temp.SceneID = CsConst.myRevBuf[33]; if (temp.SceneID > 16 || temp.SceneID < 1) { temp.SceneID = 1; } Clocks.Add(temp); } else { return(false); } } if (CsConst.isRestore) { for (int i = 1; i <= 8; i++) { Scene temp = new Scene(); temp.ID = Convert.ToByte(i); temp.Targets = new List <UVCMD.ControlTargets>(); ArayTmp = new byte[2]; ArayTmp[0] = Convert.ToByte(i); for (int j = 1; j <= 32; j++) { ArayTmp[1] = Convert.ToByte(j); if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1402, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(intDeviceType)) == true) { UVCMD.ControlTargets tmp = new UVCMD.ControlTargets(); tmp.ID = Convert.ToByte(CsConst.myRevBuf[26]); tmp.Type = CsConst.myRevBuf[27]; //转换为正确的类型 tmp.SubnetID = CsConst.myRevBuf[28]; tmp.DeviceID = CsConst.myRevBuf[29]; tmp.Param1 = CsConst.myRevBuf[30]; tmp.Param2 = CsConst.myRevBuf[31]; tmp.Param3 = CsConst.myRevBuf[32]; tmp.Param4 = CsConst.myRevBuf[33]; temp.Targets.Add(tmp); Scenes.Add(temp); } else { return(false); } } } } } #endregion MyRead2UpFlags[5] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100); } return(true); }
/// <summary> /// 下载所有数据 /// </summary> /// <param name="DevName"></param> /// <returns></returns> public bool DownloadFHInforsFrmDevice(string DevName, int wdDeviceType, int intActivePage, byte num1, byte num2) { string strMainRemark = DevName.Split('\\')[1].Trim(); DevName = DevName.Split('\\')[0].Trim(); byte bytSubID = byte.Parse(DevName.Split('-')[0].ToString()); byte bytDevID = byte.Parse(DevName.Split('-')[1].ToString()); byte[] ArayTmp = new byte[0]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x000E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { byte[] arayRemark = new byte[20]; for (int intI = 0; intI < 20; intI++) { arayRemark[intI] = CsConst.myRevBuf[25 + intI]; } DevName = bytSubID.ToString() + "-" + bytDevID.ToString() + "\\" + HDLPF.Byte2String(arayRemark); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(1); } if (intActivePage == 0 || intActivePage == 1) { #region arayDateTime = new byte[10]; araySummer = new byte[30]; arayOutdoor = new byte[10]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0xD99E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 25, arayDateTime, 0, 7); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(2); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C12, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 25, arayDateTime, 7, 2); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(3); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1D1A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 26, araySummer, 0, 23); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(4); } if (wdDeviceType == 211 || wdDeviceType == 208 || wdDeviceType == 209) { if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1D06, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 25, arayOutdoor, 0, 5); HDLUDP.TimeBetwnNext(1); } else { return(false); } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(5); } #endregion MyRead2UpFlags[0] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10); } //读取6回路状态 if (intActivePage == 0 || intActivePage == 2) { #region myHeating = new List <FHeating>(); for (byte i = 1; i <= 6; i++) { FHeating temp = new FHeating(); temp.ID = i; temp.arayWorkControl = new byte[20]; temp.arayFlush = new byte[20]; temp.araySensorSetting = new byte[30]; temp.arayWorkSetting = new byte[20]; if (CsConst.isRestore || (i >= num1 && i <= num2)) { ArayTmp = new byte[1]; ArayTmp[0] = i; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1D02, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { byte[] arayRemark = new byte[20]; for (int intI = 0; intI < 20; intI++) { arayRemark[intI] = CsConst.myRevBuf[26 + intI]; } temp.strRemark = HDLPF.Byte22String(arayRemark, true); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10 + (i - 1) * 5 + 1); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C5E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 26, temp.arayWorkControl, 0, 13); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10 + (i - 1) * 5 + 2); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C5A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 26, temp.arayWorkSetting, 0, 10); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (wdDeviceType == 211 || wdDeviceType == 208 || wdDeviceType == 209) { if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1D0A, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 26, temp.arayWorkSetting, 10, 1); HDLUDP.TimeBetwnNext(1); } else { return(false); } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10 + (i - 1) * 5 + 3); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C56, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 26, temp.araySensorSetting, 0, 20); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C62, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 26, temp.arayFlush, 0, 11); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10 + (i - 1) * 5 + 4); } myHeating.Add(temp); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(10 + i * 5); } } #endregion MyRead2UpFlags[1] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(40); } //读取主从机功能 if (intActivePage == 0 || intActivePage == 3) { #region araySynChannel = new byte[10]; arayHost = new byte[20]; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1C6E, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 25, araySynChannel, 0, 6); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(41); } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1CE6, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Array.Copy(CsConst.myRevBuf, 25, arayHost, 0, 15); HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(42); } #endregion MyRead2UpFlags[2] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(50); } // 读取额外目标设置 if (intActivePage == 0 || intActivePage == 4 || intActivePage == 6) { #region byte Chn = Convert.ToByte(num1 >> 4); byte Statue = Convert.ToByte(num2 >> 4); myTargets1 = new List <FHTargets>(); for (byte i = 1; i <= 6; i++) { if (CsConst.isRestore || i == Chn) { for (byte j = 0; j < 4; j++) { if (CsConst.isRestore || j == Statue) { FHTargets temp = new FHTargets(); temp.ID = i; temp.StatusIndex = j; temp.Targets = new List <UVCMD.ControlTargets>(); ArayTmp = new byte[3]; ArayTmp[0] = i; ArayTmp[1] = j; for (byte k = 0; k < 5; k++) { ArayTmp[2] = k; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1CE2, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = Convert.ToByte(CsConst.myRevBuf[27]); oCMD.Type = CsConst.myRevBuf[28]; //转换为正确的类型 oCMD.SubnetID = CsConst.myRevBuf[29]; oCMD.DeviceID = CsConst.myRevBuf[30]; oCMD.Param1 = CsConst.myRevBuf[31]; oCMD.Param2 = CsConst.myRevBuf[32]; oCMD.Param3 = CsConst.myRevBuf[33]; oCMD.Param4 = CsConst.myRevBuf[34]; temp.Targets.Add(oCMD); HDLUDP.TimeBetwnNext(1); } else { return(false); } } myTargets1.Add(temp); } } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(50 + i); } } if ((wdDeviceType == 211 || wdDeviceType == 208 || wdDeviceType == 209) && intActivePage != 6) { if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1CEA, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { FHTargetEnable = CsConst.myRevBuf[25]; RelayTargetEnable = CsConst.myRevBuf[26]; } else { return(false); } } #endregion MyRead2UpFlags[5] = true; MyRead2UpFlags[3] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(60); } if (intActivePage == 0 || intActivePage == 5 || intActivePage == 6) { #region if (wdDeviceType == 211 || wdDeviceType == 208 || wdDeviceType == 209) { #region byte Chn = Convert.ToByte(num1 & 0x0F); byte Statue = Convert.ToByte(num2 & 0x0F); myTargets2 = new List <FHTargets>(); for (byte i = 1; i <= 6; i++) { if (CsConst.isRestore || i == Chn) { for (byte j = 0; j < 2; j++) { if (CsConst.isRestore || j == Statue) { FHTargets temp = new FHTargets(); temp.ID = i; temp.StatusIndex = j; temp.Targets = new List <UVCMD.ControlTargets>(); ArayTmp = new byte[3]; ArayTmp[0] = i; ArayTmp[1] = j; for (byte k = 0; k < 5; k++) { ArayTmp[2] = k; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1CEE, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { UVCMD.ControlTargets oCMD = new UVCMD.ControlTargets(); oCMD.ID = Convert.ToByte(CsConst.myRevBuf[27]); oCMD.Type = CsConst.myRevBuf[28]; //转换为正确的类型 oCMD.SubnetID = CsConst.myRevBuf[29]; oCMD.DeviceID = CsConst.myRevBuf[30]; oCMD.Param1 = CsConst.myRevBuf[31]; oCMD.Param2 = CsConst.myRevBuf[32]; oCMD.Param3 = CsConst.myRevBuf[33]; oCMD.Param4 = CsConst.myRevBuf[34]; temp.Targets.Add(oCMD); HDLUDP.TimeBetwnNext(1); } else { return(false); } } myTargets2.Add(temp); } } } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(60 + i); } } if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1CEA, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { FHTargetEnable = CsConst.myRevBuf[25]; RelayTargetEnable = CsConst.myRevBuf[26]; } else { return(false); } #endregion } #endregion MyRead2UpFlags[5] = true; MyRead2UpFlags[4] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(70); } if (intActivePage == 0 || intActivePage == 7) { #region if (wdDeviceType == 208) { myPumps = new List <Pumps>(); if (CsConst.mySends.AddBufToSndList(null, 0x1D22, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { PumpsEnable = CsConst.myRevBuf[25]; HDLUDP.TimeBetwnNext(1); } else { return(false); } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(71); } for (byte i = 0; i <= 6; i++) { ArayTmp = new byte[1]; ArayTmp[0] = i; if (CsConst.mySends.AddBufToSndList(ArayTmp, 0x1D26, bytSubID, bytDevID, false, true, true, CsConst.minAllWirelessDeviceType.Contains(wdDeviceType)) == true) { Pumps temp = new Pumps(); temp.TrueTargets = new List <UVCMD.ControlTargets>(); temp.FalseTargets = new List <UVCMD.ControlTargets>(); temp.ID = i; temp.Enable = CsConst.myRevBuf[26]; temp.ChooseChns = CsConst.myRevBuf[27]; temp.TrueDelay = CsConst.myRevBuf[28] * 256 + CsConst.myRevBuf[29]; temp.FalseDelay = CsConst.myRevBuf[30] * 256 + CsConst.myRevBuf[31]; if (temp.TrueDelay > 600) { temp.TrueDelay = 600; } if (temp.FalseDelay > 600) { temp.FalseDelay = 600; } myPumps.Add(temp); HDLUDP.TimeBetwnNext(1); } else { return(false); } } } #endregion MyRead2UpFlags[6] = true; } if (CsConst.calculationWorker != null && CsConst.calculationWorker.IsBusy) { CsConst.calculationWorker.ReportProgress(100, null); } return(true); }