Пример #1
0
 public BaseParameterImplementation(string luaName, string name,
                                    string defaultValue = "",
                                    List <DisplayObject> displayObjects = null,
                                    Device.IDeviceManager deviceManager = null) : base(luaName,
                                                                                       name, defaultValue, displayObjects, deviceManager)
 {
 }
Пример #2
0
            public virtual IList <int> ProcessDevices(
                string devicesStr, Device.IDeviceManager deviceManager)
            {
                Match match = Regex.Match(devicesStr,
                                          Device.DeviceManager.DESCRIPTION_PATTERN, RegexOptions.
                                          IgnoreCase);

                var validDevices = new List <int>();

                while (match.Success)
                {
                    string         str    = match.Groups["name"].Value;
                    Device.IDevice device = deviceManager
                                            .GetDeviceByEplanName(str);
                    bool isValid = ValidateDevice(device);
                    if (isValid)
                    {
                        int tmpDeviceIndex = deviceManager.GetDeviceIndex(str);
                        if (tmpDeviceIndex >= 0 &&
                            !validDevices.Contains(tmpDeviceIndex))
                        {
                            validDevices.Add(tmpDeviceIndex);
                        }
                    }

                    match = match.NextMatch();
                }

                return(validDevices);
            }
Пример #3
0
        virtual public void ModifyDevNames(int newTechObjectN,
                                           int oldTechObjectN, string techObjectName)
        {
            List <int> tmpIndex = new List <int>();

            foreach (int index in deviceIndex)
            {
                tmpIndex.Add(index);
            }

            Device.IDeviceManager deviceManager = Device.DeviceManager
                                                  .GetInstance();
            foreach (int index in deviceIndex)
            {
                var            newDevName = string.Empty;
                Device.IDevice device     = deviceManager.GetDeviceByIndex(index);
                int            objNum     = device.ObjectNumber;
                string         objName    = device.ObjectName;

                if (objNum > 0)
                {
                    //Для устройств в пределах объекта меняем номер объекта.
                    if (techObjectName == objName)
                    {
                        // COAG2V1 --> COAG1V1
                        if (objNum == newTechObjectN && oldTechObjectN != -1)
                        {
                            newDevName = objName + oldTechObjectN +
                                         device.DeviceType.ToString() + device.
                                         DeviceNumber;
                        }
                        if (oldTechObjectN == -1 ||
                            oldTechObjectN == objNum)
                        {
                            //COAG1V1 --> COAG2V1
                            newDevName = objName + newTechObjectN +
                                         device.DeviceType.ToString() + device
                                         .DeviceNumber;
                        }
                    }
                }

                if (newDevName != string.Empty)
                {
                    int indexOfDeletingElement = tmpIndex.IndexOf(index);
                    tmpIndex.Remove(index);
                    int tmpDevInd = Device.DeviceManager.GetInstance()
                                    .GetDeviceIndex(newDevName);
                    if (tmpDevInd >= 0)
                    {
                        tmpIndex.Insert(indexOfDeletingElement, tmpDevInd);
                    }
                }
            }

            deviceIndex = tmpIndex;
        }
Пример #4
0
        override public List <DrawInfo> GetObjectToDrawOnEplanPage()
        {
            Device.IDeviceManager deviceManager = Device.DeviceManager
                                                  .GetInstance();

            var devToDraw = new List <DrawInfo>();

            foreach (int index in deviceIndex)
            {
                devToDraw.Add(new DrawInfo(DrawStyle,
                                           deviceManager.GetDeviceByIndex(index)));
            }

            return(devToDraw);
        }
Пример #5
0
        public void ModifyDevNames(int[] devIds, int[] expectedDevIds,
                                   int newTechObjectN, int oldTechObjectN, string techObjectName)
        {
            Device.IDeviceManager deviceManager = DeviceManagerMock
                                                  .DeviceManager;
            var action = new Action(string.Empty, null, string.Empty, null,
                                    null, null, deviceManager);

            action.DeviceIndex.AddRange(devIds);

            action.ModifyDevNames(newTechObjectN, oldTechObjectN,
                                  techObjectName);

            Assert.AreEqual(expectedDevIds, action.DeviceIndex);
        }
Пример #6
0
        // Can't be tested yet, have to make DI
        //[TestCase("Param_Name", BaseParameter.ValueType.Parameter)]
        // Can be tested only for Bool parameters (this one is not bool)
        //[TestCase(true, BaseParameter.ValueType.Boolean)]
        public void CurrentValueType_NewObjectSetNewValue(string setValue,
                                                          BaseParameter.ValueType expectedValueType)
        {
            string name    = "Name";
            string luaName = "LuaName";

            Device.IDeviceManager deviceManager =
                GetMoqForSetValuesAndDisplayTextTest();
            var parameter = new BaseParameterImplementation(luaName, name,
                                                            string.Empty, null, deviceManager);

            parameter.SetNewValue(setValue);

            Assert.AreEqual(expectedValueType, parameter.CurrentValueType);
        }
Пример #7
0
        public void SetValue_NewObject_ProcessValueReturnsCorrect(
            string setValue, string expectedValue)
        {
            string name    = "Name";
            string luaName = "LuaName";

            Device.IDeviceManager deviceManager =
                GetMoqForSetValuesAndDisplayTextTest();
            var parameter = new BaseParameterImplementation(luaName, name,
                                                            stub, null, deviceManager);

            parameter.SetValue(setValue);

            Assert.AreEqual(expectedValue, parameter.Value);
        }
Пример #8
0
        virtual public void ModifyDevNames(string newTechObjectName,
                                           int newTechObjectNumber, string oldTechObjectName,
                                           int oldTechObjNumber)
        {
            List <int> tmpIndex = new List <int>();

            foreach (int index in deviceIndex)
            {
                tmpIndex.Add(index);
            }

            Device.IDeviceManager deviceManager = Device.DeviceManager
                                                  .GetInstance();
            foreach (int index in deviceIndex)
            {
                string         newDevName = string.Empty;
                Device.IDevice device     = deviceManager.GetDeviceByIndex(index);
                int            objNum     = newTechObjectNumber;
                string         objName    = device.ObjectName;

                if (objName == oldTechObjectName &&
                    device.ObjectNumber == oldTechObjNumber)
                {
                    newDevName = newTechObjectName + objNum +
                                 device.DeviceType.ToString() + device.DeviceNumber;
                }

                if (newDevName != string.Empty)
                {
                    int indexOfDeletingElement = tmpIndex.IndexOf(index);
                    tmpIndex.Remove(index);
                    int tmpDevInd = Device.DeviceManager.GetInstance()
                                    .GetDeviceIndex(newDevName);
                    if (tmpDevInd >= 0)
                    {
                        tmpIndex.Insert(indexOfDeletingElement, tmpDevInd);
                    }
                }
            }

            deviceIndex = tmpIndex;
        }
Пример #9
0
        /// <summary>
        /// Создание нового действия.
        /// </summary>
        /// <param name="name">Имя действия.</param>
        /// <param name="luaName">Имя действия - как оно будет называться
        /// в таблице Lua.</param>
        /// <param name="devTypes">Типы устройств, допустимые для
        /// редактирования.</param>
        /// <param name="devSubTypes">Подтипы устройств, допустимые
        /// для редактирования.</param>
        /// <param name="owner">Владелец действия (Шаг)</param>
        /// <param name="actionProcessorStrategy">Стратегия обработки
        /// устройств в действии</param>
        /// <param name="deviceManager">Менеджер устройств</param>
        public Action(string name, Step owner, string luaName          = "",
                      Device.DeviceType[] devTypes                     = null,
                      Device.DeviceSubType[] devSubTypes               = null,
                      IActionProcessorStrategy actionProcessorStrategy = null,
                      Device.IDeviceManager deviceManager              = null)
        {
            this.name        = name;
            this.luaName     = luaName;
            this.devTypes    = devTypes;
            this.devSubTypes = devSubTypes;
            deviceIndex      = new List <int>();
            this.owner       = owner;

            DrawStyle = DrawInfo.Style.GREEN_BOX;

            this.deviceManager = deviceManager ?? Device.DeviceManager
                                 .GetInstance();

            SetActionProcessingStrategy(actionProcessorStrategy);
        }
Пример #10
0
        public void DisplayText_NewObjectSetNewvalue_ReturnsCorrectDisplayText(
            string setValue, string expectedParameterValue)
        {
            string name    = "Name";
            string luaName = "LuaName";

            Device.IDeviceManager deviceManager =
                GetMoqForSetValuesAndDisplayTextTest();
            var parameter = new BaseParameterImplementation(luaName, name,
                                                            stub, null, deviceManager);

            parameter.SetNewValue(setValue);

            var expectedDisplayText = new string[]
            {
                name,
                expectedParameterValue
            };

            Assert.AreEqual(expectedDisplayText, parameter.DisplayText);
        }
Пример #11
0
            public override IList <int> ProcessDevices(string devicesStr,
                                                       Device.IDeviceManager deviceManager)
            {
                IList <int> validatedDevicesId =
                    base.ProcessDevices(devicesStr, deviceManager);

                var idDevDict = new Dictionary <int, Device.IDevice>();

                foreach (var devId in validatedDevicesId)
                {
                    var dev = deviceManager.GetDeviceByIndex(devId);
                    idDevDict.Add(devId, dev);
                }

                var newInputDevs = idDevDict
                                   .Where(x => x.Value.DeviceType == Device.DeviceType.AI ||
                                          x.Value.DeviceType == Device.DeviceType.DI)
                                   .ToList();

                if (newInputDevs.Count > 1)
                {
                    foreach (var newInputDevPair in newInputDevs)
                    {
                        var newInputDevId = newInputDevPair.Key;
                        if (Action.DeviceIndex.Contains(newInputDevId))
                        {
                            idDevDict.Remove(newInputDevId);
                        }
                    }
                }

                var devList = idDevDict
                              .ToList()
                              .OrderBy(x => x.Value.DeviceType.ToString())
                              .Select(x => x.Key)
                              .ToList();

                return(devList);
            }