protected virtual byte[] AssemblePackageBC(Model.LinkageConfigStandard standardConfig) { byte[] sendData = new byte[24]; sendData[0] = 0xAA; sendData[1] = 0x55; sendData[2] = 0xDA; sendData[3] = 0x00; //异或值校验 sendData[4] = 0x00; //累加和校验 //?? sendData[5] = 0x12; //固定值 sendData[6] = 0xBC; //发送标准组态命令 //sendData[7] = Convert.ToByte(deviceInfo.Count); //器件总数 sendData[7] = Convert.ToByte(standardConfig.Code); //输出组编号 //遍历所有的联动模块信息 int intDeviceInfoIndex = 0; foreach (string deviceInfo in standardConfig.GetDeviceNoList) { if (deviceInfo.Length >= 7) { byte[] byteTempValue = SplitDeviceCode(deviceInfo); sendData[8 + intDeviceInfoIndex * 3] = byteTempValue[0]; //控制器号 sendData[9 + intDeviceInfoIndex * 3] = byteTempValue[1]; //控制器号 sendData[10 + intDeviceInfoIndex * 3] = byteTempValue[2]; //回路号 } else { sendData[8 + intDeviceInfoIndex * 3] = 0x0; //控制器号 sendData[9 + intDeviceInfoIndex * 3] = 0x0; //控制器号 sendData[10 + intDeviceInfoIndex * 3] = 0x0; //回路号 } intDeviceInfoIndex++; } //动作常数 sendData[20] = Convert.ToByte(standardConfig.ActionCoefficient);//;(standardConfig.ActionCoefficient == "" || standardConfig.ActionCoefficient == null) ? "0" : standardConfig.ActionCoefficient); // If liandong = "" Then liandong = "0000" //dsent2(34) = CInt(liandong) \ 256 //dsent2(35) = liandong Mod 256 //输出组1 sendData[21] = Convert.ToByte(standardConfig.LinkageNo1); //输出组2 sendData[22] = Convert.ToByte(standardConfig.LinkageNo2); //输出组3 sendData[23] = Convert.ToByte(standardConfig.LinkageNo3); byte[] checkValue = m_ProtocolDriver.CheckValue(sendData, 6, 24); sendData[3] = checkValue[0]; sendData[4] = checkValue[1]; return(sendData); }
public bool Update(Model.LinkageConfigStandard linkageConfigStandard) { try { LinkageConfigStandard result = _controller.StandardConfig.Find( delegate(LinkageConfigStandard x) { return(x.ID == linkageConfigStandard.ID); } ); if (result != null) { result.Code = linkageConfigStandard.Code; //result.ID = linkageConfigStandard.ID; result.Controller = linkageConfigStandard.Controller; result.ControllerID = linkageConfigStandard.ControllerID; result.ActionCoefficient = linkageConfigStandard.ActionCoefficient; result.DeviceNo1 = linkageConfigStandard.DeviceNo1; result.DeviceNo2 = linkageConfigStandard.DeviceNo2; result.DeviceNo3 = linkageConfigStandard.DeviceNo3; result.DeviceNo4 = linkageConfigStandard.DeviceNo4; result.DeviceNo5 = linkageConfigStandard.DeviceNo5; result.DeviceNo6 = linkageConfigStandard.DeviceNo6; result.DeviceNo7 = linkageConfigStandard.DeviceNo7; result.DeviceNo8 = linkageConfigStandard.DeviceNo8; result.DeviceNo9 = linkageConfigStandard.DeviceNo9; result.DeviceNo10 = linkageConfigStandard.DeviceNo10; result.DeviceNo11 = linkageConfigStandard.DeviceNo11; result.DeviceNo12 = linkageConfigStandard.DeviceNo12; result.OutputDevice1 = linkageConfigStandard.OutputDevice1; result.OutputDevice2 = linkageConfigStandard.OutputDevice2; result.LinkageNo1 = linkageConfigStandard.LinkageNo1; result.LinkageNo2 = linkageConfigStandard.LinkageNo2; result.LinkageNo3 = linkageConfigStandard.LinkageNo3; result.Memo = linkageConfigStandard.Memo; } else { _controller.StandardConfig.Add(linkageConfigStandard); DataRecordAlreadySet = true; if (linkageConfigStandard.ID > ProjectManager.GetInstance.MaxIDForStandardLinkageConfig) { ProjectManager.GetInstance.MaxIDForStandardLinkageConfig = linkageConfigStandard.ID; } else { ProjectManager.GetInstance.MaxIDForStandardLinkageConfig++; } } } catch { return(false); } return(true); }
/// <summary> /// 接收标准组态信息 /// </summary> public override void ReceiveStandardLinkageInfo() { byte[] receivedData = CurrentPackage; IEqualityComparer <Model.LinkageConfigStandard> c = new StandardLinkageInfoCompare(); Model.LinkageConfigStandard linkageInfo = ParsePackageCD(receivedData); if (!StandardLinkageConfigList.Contains(linkageInfo, c)) { StandardLinkageConfigList.Add(linkageInfo); } }
/// <summary> /// 接收控制器上传的标准组态信息 /// Revision: 由abstract改为virtual,除8001外其余控制器的标准组态信息都相同 /// </summary> public virtual void ReceiveStandardLinkageInfo() { byte[] receivedData = CurrentPackage; IEqualityComparer <Model.LinkageConfigStandard> c = new StandardLinkageInfoCompare(); Model.LinkageConfigStandard linkageInfo = ParsePackageCD(receivedData); if (!StandardLinkageConfigList.Contains(linkageInfo, c)) { StandardLinkageConfigList.Add(linkageInfo); UploadedStandardLinkageConfigAccumulatedAmount++; UpdateProcessBarStatusForUploadedStandardLinkageConfig(); } }
protected override byte[] AssemblePackageBC(Model.LinkageConfigStandard standardConfig) { byte[] sendData = new byte[40]; sendData[0] = 0xAA; sendData[1] = 0x55; sendData[2] = 0xDA; sendData[3] = 0x00; //异或值校验 sendData[4] = 0x00; //累加和校验 //?? sendData[5] = 0x22; //固定值 sendData[6] = 0xBC; //发送标准组态命令 //sendData[7] = Convert.ToByte(deviceInfo.Count); //器件总数 sendData[7] = 0x00; //输出组编号(高位) //!!!! sendData[8] = Convert.ToByte(standardConfig.Code); //输出组编号(低位) //遍历所有的联动模块信息 int intDeviceInfoIndex = 0; foreach (string deviceInfo in standardConfig.GetDeviceNoList) { byte[] byteTempValue = SplitDeviceCode(deviceInfo); sendData[9 + intDeviceInfoIndex * 3] = byteTempValue[0]; //控制器号 sendData[10 + intDeviceInfoIndex * 3] = byteTempValue[1]; //控制器号 sendData[11 + intDeviceInfoIndex * 3] = byteTempValue[2]; //回路号 intDeviceInfoIndex++; } //动作常数 sendData[33] = Convert.ToByte(standardConfig.ActionCoefficient);//(standardConfig.ActionCoefficient == "" || standardConfig.ActionCoefficient == null) ? "0" : standardConfig.ActionCoefficient); // If liandong = "" Then liandong = "0000" //dsent2(34) = CInt(liandong) \ 256 //dsent2(35) = liandong Mod 256 //输出组1 sendData[34] = 0x00;//高位在前 sendData[35] = Convert.ToByte(standardConfig.LinkageNo1); //输出组2 sendData[36] = 0x00;//高位在前 sendData[37] = Convert.ToByte(standardConfig.LinkageNo2); //输出组3 sendData[38] = 0x00;//高位在前 sendData[39] = Convert.ToByte(standardConfig.LinkageNo3); byte[] checkValue = base.m_ProtocolDriver.CheckValue(sendData, 6, 40); sendData[3] = checkValue[0]; sendData[4] = checkValue[1]; return(sendData); }
public bool AddStandardLinkageConfigInfo(Model.LinkageConfigStandard linkageConfigStandard) { int intEffectiveRows = 0; try { //StringBuilder sbSQL = new StringBuilder("REPLACE INTO LinkageConfigStandard(ID,Code,DeviceNo1,DeviceNo2 , DeviceNo3 , DeviceNo4, DeviceNo5,DeviceNo6,DeviceNo7,DeviceNo8,DeviceNo9,DeviceNo10, ActionCoefficient , LinkageNo1 ,LinkageNo2 ,LinkageNo3,controllerID) "); //sbSQL.Append("VALUES("); //sbSQL.Append(linkageConfigStandard.ID + ",'"); //sbSQL.Append(linkageConfigStandard.Code+"','"); //sbSQL.Append(linkageConfigStandard.DeviceNo1 + "','"); //sbSQL.Append(linkageConfigStandard.DeviceNo2 + "','"); //sbSQL.Append(linkageConfigStandard.DeviceNo3 + "','"); //sbSQL.Append(linkageConfigStandard.DeviceNo4 + "','"); //sbSQL.Append(linkageConfigStandard.DeviceNo5 + "','"); //sbSQL.Append(linkageConfigStandard.DeviceNo6 + "','"); //sbSQL.Append(linkageConfigStandard.DeviceNo7 + "','"); //sbSQL.Append(linkageConfigStandard.DeviceNo8 + "','"); //sbSQL.Append(linkageConfigStandard.DeviceNo9 + "','"); //sbSQL.Append(linkageConfigStandard.DeviceNo10 + "','"); //sbSQL.Append(linkageConfigStandard.ActionCoefficient + "','"); //sbSQL.Append(linkageConfigStandard.LinkageNo1 + "','"); //sbSQL.Append(linkageConfigStandard.LinkageNo2 + "','"); //sbSQL.Append(linkageConfigStandard.LinkageNo3 + "',"); //sbSQL.Append(linkageConfigStandard.ControllerID + ");"); //intEffectiveRows = _databaseService.ExecuteBySql(sbSQL); intEffectiveRows = _dbFileVersionService.AddStandardLinkageConfigInfo(linkageConfigStandard); } catch { intEffectiveRows = 0; } if (intEffectiveRows > 0) { return(true); } else { return(false); } }
public int UpdateStandardLinkageConfigInfo(Model.LinkageConfigStandard lstLinkageConfigStandard) { throw new System.NotImplementedException(); }
public Model.LinkageConfigStandard GetStandardLinkageConfigInfo(Model.LinkageConfigStandard linkageConfigStandard) { throw new System.NotImplementedException(); }