Ejemplo n.º 1
0
        /// <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;
            }
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }
Ejemplo n.º 3
0
        /// <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();
            }
        }