Exemple #1
0
        public void SetLoopsAmountBySpecifiedController()
        {
            List <string> lstLoopsCode = new List <string>();

            if (ProjectManager.GetInstance.Project != null && TheController != null)
            {
                SCA.Interface.IControllerConfig controllerConfig = ControllerConfigManager.GetConfigObject(TheController.Type);
                short maxLoopAmount = controllerConfig.GetMaxLoopAmountValue();
                for (int i = 1; i <= maxLoopAmount; i++)
                {
                    lstLoopsCode.Add(i.ToString().PadLeft(TheController.LoopAddressLength, '0'));
                }
            }
            LoopsCode = lstLoopsCode;
        }
Exemple #2
0
        public List <string> GetPrimaryControllerLoopsAmount()
        {
            List <string> lstLoopsCode = new List <string>();

            if (ProjectManager.GetInstance.Project != null)
            {
                SCA.Model.ControllerModel       controller       = ProjectManager.GetInstance.GetPrimaryController();
                SCA.Interface.IControllerConfig controllerConfig = ControllerConfigManager.GetConfigObject(controller.Type);
                short maxLoopAmount = controllerConfig.GetMaxLoopAmountValue();

                for (int i = 1; i <= maxLoopAmount; i++)
                {
                    lstLoopsCode.Add(i.ToString().PadLeft(controller.LoopAddressLength, '0'));
                }
            }
            LoopsCode = lstLoopsCode;
            return(lstLoopsCode);
        }
 public List <int> GetDeviceCodeLength(Model.ControllerType type)
 {
     SCA.Interface.IControllerConfig controllerConfig = ControllerConfigManager.GetConfigObject(type);
     DeviceCodeLength = controllerConfig.GetDeviceCodeLength();
     return(DeviceCodeLength);
 }
Exemple #4
0
        public List <ManualControlBoard> Create(int boardNo, int subBoardStartNo, int subBoardEndNo, int amount)
        {
            List <ManualControlBoard> lstMCB = new List <ManualControlBoard>();

            if (DataRecordAlreadySet) //如果数据已经填写完成,则可获取最大编号
            {
                _maxCode = GetMaxCode();
                _maxID   = GetMaxID();
            }
            int tempCode = _maxCode;

            if (tempCode >= MaxManualControlBoardAmount) //如果已经达到上限,则不添加任何行
            {
                amount = 0;
            }

            if ((tempCode + amount) > MaxManualControlBoardAmount) //如果需要添加的行数将达上限,则增加剩余的行数
            {
                amount = MaxManualControlBoardAmount - tempCode;
            }


            for (int j = subBoardStartNo; j <= subBoardEndNo; j++)
            {
                SCA.Interface.IControllerConfig config = ControllerConfigManager.GetConfigObject(this.TheController.Type);
                int totalMaxKeyNo = config.GetMaxAmountForKeyNoInManualControlBoardConfig();

                int maxKeyNo = 0;
                //获取当前板卡及回路下的最大"手键号"
                if (TheController.ControlBoard.Count == 0)
                {
                    maxKeyNo = 0;
                }
                else
                {
                    var result = TheController.ControlBoard.Where(mcb => mcb.SubBoardNo == j && mcb.BoardNo == boardNo);
                    if (result.Count() != 0)
                    {
                        maxKeyNo = TheController.ControlBoard.Where(mcb => mcb.SubBoardNo == j && mcb.BoardNo == boardNo).Max(mcb => mcb.KeyNo);
                    }
                }
                if (maxKeyNo < totalMaxKeyNo)
                {
                    for (int i = 1; i <= amount; i++)
                    {
                        tempCode++;
                        _maxID++;
                        maxKeyNo++;
                        ManualControlBoard mcb = new ManualControlBoard();
                        mcb.BoardNo      = boardNo;
                        mcb.SubBoardNo   = j;
                        mcb.KeyNo        = maxKeyNo;
                        mcb.Controller   = _controller;
                        mcb.ControllerID = _controller.ID;
                        mcb.Code         = tempCode;//.ToString().PadLeft(MaxManualControlBoardAmount.ToString().Length, '0');
                        mcb.ID           = _maxID;
                        mcb.IsDirty      = true;
                        lstMCB.Add(mcb);
                    }
                }
            }
            _maxCode             = tempCode;
            DataRecordAlreadySet = false;
            foreach (var singleItem in lstMCB)
            {
                Update(singleItem);
            }
            return(lstMCB);
        }
        /// <summary>
        /// 根据控制器的配置信息决定是否显示其它配置项
        /// </summary>
        /// <param name="type"></param>
        private void ToggleOtherSettingsVisibility(Model.ControllerType type)
        {
            SCA.Interface.IControllerConfig controllerConfig = ControllerConfigManager.GetConfigObject(type);
            ControllerNodeModel[]           nodes            = controllerConfig.GetNodes();
            bool blnStandardFlag = false;
            bool blnMixedFlag    = false;
            bool blnGeneralFlag  = false;
            bool blnMCBFlag      = false;

            if (nodes.Length > 1)
            {
                OtherSettingsPanelVisibility = Visibility.Visible;
            }
            else
            {
                OtherSettingsPanelVisibility = Visibility.Collapsed;
            }
            for (int i = 0; i < nodes.Length; i++)
            {
                switch (nodes[i].Type)
                {
                case ControllerNodeType.Standard:
                    blnStandardFlag = true;
                    break;

                case ControllerNodeType.General:
                    blnGeneralFlag = true;
                    break;

                case ControllerNodeType.Mixed:
                    blnMixedFlag = true;
                    break;

                case ControllerNodeType.Board:
                    blnMCBFlag = true;
                    break;
                }
            }
            if (blnStandardFlag)
            {
                StandardLinkageCheckBoxVisibility = Visibility.Visible;
                StandardLinkageFlag = true;
            }
            else
            {
                StandardLinkageCheckBoxVisibility = Visibility.Collapsed;
                StandardLinkageFlag = false;
            }
            if (blnGeneralFlag)
            {
                GeneralLinkageCheckBoxVisibility = Visibility.Visible;
                GeneralLinkageFlag = true;
            }
            else
            {
                GeneralLinkageCheckBoxVisibility = Visibility.Collapsed;
                GeneralLinkageFlag = false;
            }
            if (blnMixedFlag)
            {
                MixedLinkageCheckBoxVisibility = Visibility.Visible;
                MixedLinkageFlag = true;
            }
            else
            {
                MixedLinkageCheckBoxVisibility = Visibility.Collapsed;
                MixedLinkageFlag = false;
            }
            if (blnMCBFlag)
            {
                ManualControlBoardCheckBoxVisibility = Visibility.Visible;
                ManualControlBoardFlag = true;
            }
            else
            {
                ManualControlBoardCheckBoxVisibility = Visibility.Collapsed;
                ManualControlBoardFlag = false;
            }

            return;
        }
 public void SetSelectedDeviceTypeCode(ControllerType type)
 {
     SCA.Interface.IControllerConfig controllerConfig = ControllerConfigManager.GetConfigObject(type);
     SelectedDeviceTypeCode = Convert.ToInt16(controllerConfig.DefaultDeviceTypeCode);
 }
 public List <DeviceType> GetValidDeviceType(ControllerType type)
 {
     SCA.Interface.IControllerConfig controllerConfig = ControllerConfigManager.GetConfigObject(type);
     ValidDeviceType = controllerConfig.GetDeviceTypeInfo();
     return(ValidDeviceType);
 }