示例#1
0
        public SetupTableModel(KLStruct klapan)
        {
            showAO = false;
            type   = typeof(KLStruct);
            obj    = klapan;

            En    = klapan.En;
            Name  = klapan.Description;
            Group = klapan.Group;

            Outputs = new ObservableCollection <InputOutputItem>
            {
                new InputOutputItem("Открыт", klapan.OKCindxArrDI, klapan.OKCName, ESignalType.DI),
                new InputOutputItem("Закрыт", klapan.CKCindxArrDI, klapan.CKCName, ESignalType.DI)
            };

            Inputs = new ObservableCollection <InputOutputItem>
            {
                new InputOutputItem("Команда - открыть", klapan.DOBindxArrDO, klapan.DOBName, ESignalType.DO),
                new InputOutputItem("Команда - закрыть", klapan.DKBindxArrDO, klapan.DKBName, ESignalType.DO)
            };
            AddDICommand = new AddDICommand(Outputs);
            RemDICommand = new RemoveDICommand(Outputs, 2);

            InitSelectMenu();
        }
示例#2
0
        public void ApplyChanges()
        {
            if (type == typeof(VSStruct))
            {
                VSStruct temp = obj as VSStruct;
                temp.ECindxArrDI  = Outputs[0]._index;
                temp.MPCindxArrDI = Outputs[1]._index;
                temp.PCindxArrDI  = Outputs[2]._index;
                temp.BusSecIndex  = Outputs[3]._index;
                //   temp.PCindxArrAI = Analogs[0].Index;

                /*  temp.valuePC = Analogs[0].ValueNom;
                 * temp.valuePCspd = Analogs[0].ValueSpd;
                 */
                temp.Description = Name;
                temp.Group       = Group;
                temp.En          = En;

                temp.ABBindxArrDO = inputs[0]._index;
                temp.ABOindxArrDO = inputs[1]._index;

                if (_analogs.Count > 0)
                {
                    temp.controledAIs = _analogs.ToArray();
                }
                else
                {
                    temp.controledAIs = null;
                }

                /* if (ANInputs != null && ANInputs.Count > 0)
                 * {
                 *   temp.SetRPM_Addr = ANInputs[0].PLCAddr;
                 *   temp.ADCtoRPM = ANInputs[0].ADCtoRPM;
                 * }*/
                temp.AnCmdIndex = AnalogCommands[0]._index;

                for (int i = 4; i < Outputs.Count; i++)
                {
                    if (Outputs[i].Index != null)
                    {
                        temp.CustomDIs.Add(new DIItem(Outputs[i].Name, Outputs[i]._index));
                    }
                }
            }
            if (type == typeof(KLStruct))
            {
                KLStruct temp = obj as KLStruct;
                temp.DOBindxArrDO = inputs[0]._index;
                temp.DKBindxArrDO = inputs[1]._index;

                temp.OKCindxArrDI = Outputs[0]._index;
                temp.CKCindxArrDI = Outputs[1]._index;

                temp.Description = Name;
                temp.Group       = Group;
                temp.En          = En;
            }
            if (type == typeof(ZDStruct))
            {
                ZDStruct temp = obj as ZDStruct;

                temp.Description   = Name;
                temp.Group         = Group;
                temp.En            = En;
                temp.OKCindxArrDI  = Outputs[0]._index;
                temp.CKCindxArrDI  = Outputs[1]._index;
                temp.VoltindxArrDI = Outputs[2]._index;
                temp.ODCindxArrDI  = Outputs[3]._index;
                temp.CDCindxArrDI  = Outputs[4]._index;
                temp.MCindxArrDI   = Outputs[5]._index;
                temp.DCindxArrDI   = Outputs[6]._index;
                temp.BSIndex       = Outputs[7]._index;

                temp.DOBindxArrDO  = inputs[0]._index;
                temp.DCBindxArrDO  = inputs[1]._index;
                temp.DKBindxArrDO  = inputs[2]._index;
                temp.DCBZindxArrDO = inputs[3]._index;

                temp.ZD_Pos_index = _analogs[0]._index;

                if (Outputs.Count > 8)
                {
                    temp.CustomDIs = new List <DIItem>();
                    for (int i = 8; i < Outputs.Count; i++)
                    {
                        temp.CustomDIs.Add(new DIItem(Outputs[i].Name, Outputs[i]._index));
                    }
                }
                //TODO: добавить запись настроек аналогов
            }
            if (type == typeof(MPNAStruct))
            {
                MPNAStruct agr = obj as MPNAStruct;

                agr.Description    = Name;
                agr.Group          = Group;
                agr.En             = En;
                agr.MBC11indxArrDI = Outputs[0]._index;
                agr.MBC12indxArrDI = Outputs[1]._index;
                agr.MBC21indxArrDI = Outputs[2]._index;
                agr.MBC22indxArrDI = Outputs[3]._index;

                agr.ECBindxArrDI   = Outputs[4]._index;
                agr.ECO11indxArrDI = Outputs[5]._index;
                agr.ECO12indxArrDI = Outputs[6]._index;
                //      agr.ECxindxArrDI = Outputs[7]._index;

                agr.ABBindxArrDO  = inputs[0]._index;
                agr.ABOindxArrDO  = inputs[1]._index;
                agr.ABO2indxArrDO = inputs[2]._index;

                /*  agr.CurrentIndx = Analogs[0].Index;
                 * agr.Current_nominal = Analogs[0].ValueNom;
                 * agr.Current_spd = Analogs[0].ValueSpd;
                 *
                 * agr.RPMindxArrAI = Analogs[1].Index;
                 * agr.RPM_nominal = Analogs[1].ValueNom;
                 * agr.RPM_spd = Analogs[1].ValueSpd;*/
                if (Analogs.Count > 0)
                {
                    agr.controledAIs = Analogs.ToArray();
                }
                else
                {
                    agr.controledAIs = null;
                }

                agr.CustomDIs = new List <DIItem>();
                for (int i = 7; i < Outputs.Count; i++)
                {
                    if (Outputs[i].Index != null)
                    {
                        agr.CustomDIs.Add(new DIItem(Outputs[i].Name, Outputs[i]._index));
                    }
                }
            }
        }
 public static KLStruct[] GetArray()
 {
     KLStruct[] temp = new KLStruct[KL.Count];
     _kl.CopyTo(temp, 0);
     return(temp);
 }