コード例 #1
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;
        }
コード例 #2
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);
        }
コード例 #3
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;
        }
コード例 #4
0
ファイル: Action.cs プロジェクト: PacmanSun/EasyEPLANner
            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);
            }