/// <summary> /// 下传标准组态信息 /// 2017-04-14 调整至基类中 /// </summary> public virtual void SendStandardLinkageConfigInfo() { if (StandardLinkageConfigList != null) { if (StandardLinkageConfigList.Count > 0) { byte[] sendingData = AssemblePackageBC(StandardLinkageConfigList[0]); if (SendingCMD == "BC" && ReceivedBCConfirmCommand) //如果先前发送的BC命令,已收到66确认命令,则发送下一条数据 { //if (lstPackagesByteses.Count > 0) if (StandardLinkageConfigList.Count > 0) //移除已发送的数据 { StandardLinkageConfigList.RemoveAt(0); } if (StandardLinkageConfigList.Count > 0) //##edit { sendingData = AssemblePackageBC(StandardLinkageConfigList[0]); SendingCMD = "BC"; // log.Info("Send BC Message && 66:"); ReceivedBCConfirmCommand = false; SerialManager.WriteData(sendingData); } else { SetStatusForStandardLinkageConfigDownloaded(); SendingCMD = "BA"; //需要发送设置完成 SerialManager.WriteData(AssemblePackageBA()); ReceivedBAConfirmCommand = false; } } else //否则重发本条数据 { if (sendingData != null) { SendingCMD = "BC"; // log.Info("Send BC Message && Without 66:"); SerialManager.WriteData(sendingData); } } } else { Status = ControllerStatus.DataSended; StandardLinkageConfigDownloaded = true; } } else { Status = ControllerStatus.DataSended; StandardLinkageConfigDownloaded = 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(); } }