public InputOutputItem(string name, DIStruct signal)
 {
     this.Name          = name;
     _index             = signal.indxArrDI;
     signalType         = ESignalType.DI;
     AssignedSignalName = signal.NameDI;
 }
示例#2
0
        public WatchItem(int index, ESignalType type)
        {
            this.index      = index;
            this.signalType = type;
            switch (type)
            {
            case ESignalType.DI:
                DIStruct signaldi = DIStruct.FindByIndex(index);
                signaldi.PropertyChanged += Signal_PropertyChanged;
                break;

            case ESignalType.AI:
                AIStruct signalai = AIStruct.FindByIndex(index);
                signalai.PropertyChanged += Signal_PropertyChanged;
                break;

            case ESignalType.DO:
                DOStruct signaldo = DOStruct.FindByIndex(index);
                signaldo.PropertyChanged += Signal_PropertyChanged;
                break;

            case ESignalType.AO:
                AOStruct signalao = AOStruct.FindByIndex(index);
                signalao.PropertyChanged += Signal_PropertyChanged;
                break;
            }
        }
示例#3
0
        /// <summary>
        /// актуализировать привязку
        /// </summary>
        public void RefreshLink()
        {
            if (index > -1)
            {
                switch (signalType)
                {
                case ESignalType.DI:
                    DIStruct signaldi = DIStruct.FindByIndex(index);
                    signaldi.PropertyChanged += Signal_PropertyChanged;
                    break;

                case ESignalType.AI:
                    AIStruct signalai = AIStruct.FindByIndex(index);
                    signalai.PropertyChanged += Signal_PropertyChanged;
                    break;

                case ESignalType.DO:
                    DOStruct signaldo = DOStruct.FindByIndex(index);
                    signaldo.PropertyChanged += Signal_PropertyChanged;
                    break;

                case ESignalType.AO:
                    AOStruct signalao = AOStruct.FindByIndex(index);
                    signalao.PropertyChanged += Signal_PropertyChanged;
                    break;
                }
            }
        }
 public DITableViewModel(DIStruct[] table)
 {
     DIStruct[] DIViewModels = new DIStruct[table.Length];
     for (int i = 0; i < table.Length; i++)
     {
         DIViewModels[i] = table[i];
     }
     DIs = DIViewModels;
 }
示例#5
0
 /// <summary>
 /// Установить/снять напряжение на скеции шин извне
 /// </summary>
 /// <param name="value"></param>
 public void SetBusState(bool value)
 {
     if (bs == null)
     {
         bs = new DIStruct();
     }
     if (BusSecIndex == -1)
     {
         bs.ValDI = value;
     }
 }
        private void Filter_Func(object sender, FilterEventArgs e)
        {
            DIStruct item = e.Item as DIStruct;

            if (item != null)
            {
                if (item.NameDI.ToLower().Contains(nameFilter.ToLower()))
                {
                    e.Accepted = true;
                }
                else
                {
                    e.Accepted = false;
                }
            }
        }
示例#7
0
        /// <summary>
        /// Обновление ссылок
        /// </summary>
        public void UpdateRefs()
        {
            ABB  = DOStruct.FindByIndex(_ABBindxArrDO);
            ABO  = DOStruct.FindByIndex(_ABOindxArrDO);
            ABO2 = DOStruct.FindByIndex(_ABO2indxArrDO);

            MBC12 = DIStruct.FindByIndex(_MBC12indxArrDI);
            MBC22 = DIStruct.FindByIndex(_MBC22indxArrDI);
            ECB   = DIStruct.FindByIndex(_ECBindxArrDI);
            ECO   = DIStruct.FindByIndex(_ECO12indxArrDI);
            CT_AI = AIStruct.FindByIndex(_CTindxArrDI);
            MBC11 = DIStruct.FindByIndex(_MBC11indxArrDI);
            MBC21 = DIStruct.FindByIndex(_MBC21indxArrDI);
            ECx   = DIStruct.FindByIndex(_ECxindxArrDI);
            ECO11 = DIStruct.FindByIndex(_ECO11indxArrDI);
            EC    = DIStruct.FindByIndex(_ECindxArrDI);

            /*current = AIStruct.FindByIndex(_current_indexArrAi);
             * RPM = AIStruct.FindByIndex(_RPMindxArrAI);*/
        }
        private void Filter_Func(object sender, FilterEventArgs e)
        {
            DIStruct item = e.Item as DIStruct;

            if (item != null)
            {
                if (item.NameDI == "")
                {
                    e.Accepted = !_hideEmpty;
                }
                else
                {
                    if ((item.NameDI.ToLower().Contains(_nameFilter.ToLower())) && (item.TegDI.ToLower().Contains(_tagFilter.ToLower())))
                    {
                        e.Accepted = true;
                    }
                    else
                    {
                        e.Accepted = false;
                    }
                }
            }
        }
        private static void ReadSignals(OleDbConnection conn)
        {
            OleDbCommand cmd = new OleDbCommand
            {
                Connection = conn
            };

            // Get all Sheets in Excel File
            DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

            // Loop through all Sheets to get data
            string sheetName = "";

            //==================================================== ЧТЕНИЕ ТАБЛИЦЫ СИГНАЛОВ ==========================================================
            foreach (DataRow dr in dtSheet.Rows)
            {
                sheetName = dr["TABLE_NAME"].ToString();
                if (sheetName.Contains("Таблица сигналов"))
                {
                    //LogViewModel.WriteLine("Таблица сигналов найдена, чтение данных...");
                    LogWriter.AppendLog("Таблица сигналов найдена, чтение данных...");
                    break;
                }
            }

            // Get all rows from the Sheet
            cmd.CommandText = "SELECT * FROM [" + sheetName + "]";

            DataTable dt = new DataTable
            {
                TableName = sheetName
            };

            OleDbDataAdapter da = new OleDbDataAdapter(cmd);

            da.Fill(dt);

            //       ds.Tables.Add(dt);

            foreach (DataColumn col in dt.Columns)
            {
                LogWriter.AppendLog(col.ColumnName);
            }
            //LogViewModel.WriteLine(col.ColumnName);

            //--- тип сигнала ai,di,do ---
            string signalType = "";
            //---адрес сигнала ---
            double currentAddr = 0;
            //---- номер бита если попадется
            int bit = 0;
            //----
            string tagName    = "";
            string signalName = "";

            //--- номер сигнала, пригодится---
            int NSign = 0;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                //  mod =(string)dt.Rows[i].ItemArray[1];
                if (!(dt.Rows[i].ItemArray[1] is DBNull))
                {
                    signalType = (string)dt.Rows[i].ItemArray[1];
                }

                // addr = (string)dt.Rows[i].ItemArray[6];
                // if (!(dt.Rows[i].ItemArray[6] is DBNull))
                if (dt.Rows[i].ItemArray[6] is double)
                {
                    currentAddr = (double)dt.Rows[i].ItemArray[6];
                }
                else if (dt.Rows[i].ItemArray[6] is string)
                {
                    currentAddr = double.Parse((string)dt.Rows[i].ItemArray[6]);
                }

                try
                {
                    if (dt.Rows[i].ItemArray[7] is string)
                    {
                        bit = int.Parse((string)dt.Rows[i].ItemArray[7]);
                    }
                    else if (dt.Rows[i].ItemArray[7] is double)
                    {
                        bit = (int)((double)dt.Rows[i].ItemArray[7]);
                    }
                    else
                    {
                        bit = 0;
                    }

                    if (dt.Rows[i].ItemArray[8] is string)
                    {
                        NSign = int.Parse((string)dt.Rows[i].ItemArray[8]);
                    }
                    else if (dt.Rows[i].ItemArray[8] is double)
                    {
                        NSign = (int)((double)dt.Rows[i].ItemArray[8]);
                    }
                    else
                    {
                        NSign = 0;
                    }
                }
                catch (Exception ex)
                {
                    LogWriter.AppendLog(ex.Message);
                }

                try
                {
                    tagName = (string)dt.Rows[i].ItemArray[4];
                }
                catch
                {
                    tagName = "";
                }

                try
                {
                    signalName = (string)dt.Rows[i].ItemArray[5];
                }
                catch
                {
                    signalName = "";
                }

                if (signalType.ToLower() == "ai" && signalName != "")
                {
                    AIStruct ai = new AIStruct
                    {
                        En      = true,
                        NameAI  = signalName,
                        TegAI   = tagName,
                        PLCAddr = (int)currentAddr - 300000 + 40000
                    };
                    AIStruct.items.Add(ai);
                    //LogViewModel.WriteLine("прочитан сигнал AI: " + ai.NameAI);
                }

                if (signalType.ToLower() == "di" && signalName != "")
                {
                    DIStruct di = new DIStruct
                    {
                        En = true,

                        NameDI = signalName,
                        TegDI  = tagName,

                        PLCAddr = (int)currentAddr - 300000 + 40000,

                        indxBitDI = bit,

                        Nsign = NSign
                    };
                    DIStruct.items.Add(di);
                }

                if (signalType.ToLower() == "do" && signalName != "")
                {
                    DOStruct _do = new DOStruct
                    {
                        En     = true,
                        TegDO  = tagName,
                        NameDO = signalName,

                        PLCAddr   = (int)currentAddr - 400000,
                        indxBitDO = bit,
                        Nsign     = NSign
                    };
                    DOStruct.items.Add(_do);
                }
            }
            cmd = null;
        }
示例#10
0
        }//readvs

        /// <summary>
        /// чтение настроек клапанов
        /// </summary>
        /// <param name="conn"></param>
        private static void ReadKL(OleDbConnection conn)
        {
            //---------- настройки чтения ------
            int skipLines = 4;      //количество пропускаемых строк заголовка
            int nNameCol  = 0;      //номер столбца с именем

            int nDICol      = 8;    //номер столбца со ссылками на DI
            int strideDI    = 2;    //количество строк на однин клапан
            int shiftDIlink = 1000; //ссылки на DI имеют смещение на 1000

            int nDOCol      = 5;    //номер столбца со ссылками на DO
            int strideDO    = 2;    //количество строк на однин клпан
            int shiftDOlink = 4000; //ссылки на DO смещаются на 4000

            //наименования используемых таблиц
            //  string tableName = "Настр. клапанов";
            string DITableName = "DI клапанов";
            string DOTableName = "DO клапанов";

            OleDbCommand cmd = new OleDbCommand
            {
                Connection = conn
            };

            // Get all Sheets in Excel File
            DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);


            //======================================================================= чтение таблицы DI задвижек =====================================
            string sheetName = "";

            foreach (DataRow dr in dtSheet.Rows)
            {
                sheetName = dr["TABLE_NAME"].ToString();
                if (sheetName.Contains(DITableName))
                {
                    //LogViewModel.WriteLine("Таблица DI вспомсистем найдена, чтение данных...");
                    LogWriter.AppendLog("Таблица DI вспомсистем найдена, чтение данных...");
                    break;
                }
            }
            // Get all rows from the Sheet
            cmd.CommandText = "SELECT * FROM [" + sheetName + "]";

            DataTable dataTable = new DataTable
            {
                TableName = sheetName
            };

            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmd);

            dataAdapter.Fill(dataTable);

            KLTableViewModel.KL.Clear();
            //=================
            for (int i = 0; i < dataTable.Rows.Count / strideDI; i++)
            {
                int      rowindex = i * strideDI + skipLines;
                KLStruct kl;
                if (dataTable.Rows[rowindex].ItemArray[nNameCol] is DBNull) //название пустое, прекращаем чтение
                {
                    break;
                }
                else
                {
                    kl = new KLStruct
                    {
                        Description = (string)dataTable.Rows[rowindex].ItemArray[0]
                    };
                    if (kl.Description.Length < 2)
                    {
                        break;
                    }
                    kl.En = true;
                    KLTableViewModel.KL.Add(kl);
                }

                for (int j = 0; j < strideDI; j++)
                {
                    object param  = dataTable.Rows[rowindex + j].ItemArray[nDICol];
                    int    iParam = 0;

                    if (param is string)
                    {
                        iParam = int.Parse((string)(param));
                    }
                    else if (param is double)
                    {
                        iParam = (int)((double)param);
                    }


                    if (iParam == 0)
                    {
                        continue;
                    }
                    int refValue = DIStruct.FindByNsign(iParam + shiftDIlink);
                    switch (j)
                    {
                    case 0: kl.OKCindxArrDI = refValue;  break;    //клапан открыт

                    case 1: kl.CKCindxArrDI = refValue; break;     //клапан закрыт
                    }
                }
            }


            foreach (DataRow dr in dtSheet.Rows)
            {
                sheetName = dr["TABLE_NAME"].ToString();
                if (sheetName.Contains(DOTableName))
                {
                    //LogViewModel.WriteLine("Таблица DO вспомсистем найдена, чтение данных...");
                    LogWriter.AppendLog("Таблица DO вспомсистем найдена, чтение данных...");
                    break;
                }
            }

            // Get all rows from the Sheet
            cmd.CommandText = "SELECT * FROM [" + sheetName + "]";

            dataTable = new DataTable
            {
                TableName = sheetName
            };
            dataAdapter.Fill(dataTable);



            for (int i = 0; i < KLTableViewModel.KL.Count; i++)
            {
                int rowindex = i * strideDO + skipLines;

                for (int j = 0; j < strideDO; j++)
                {
                    object param  = dataTable.Rows[rowindex + j].ItemArray[nDOCol];
                    int    iParam = 0;

                    if (param is string)
                    {
                        iParam = int.Parse((string)(param));
                    }
                    else if (param is double)
                    {
                        iParam = (int)((double)param);
                    }


                    if (iParam == 0)
                    {
                        continue;
                    }
                    int refValue = DOStruct.FindByNsign(iParam + shiftDOlink);
                    switch (j)
                    {
                    case 0: KLTableViewModel.KL[i].DOBindxArrDO = refValue;  break;    //открыть

                    case 1: KLTableViewModel.KL[i].DKBindxArrDO = refValue; break;     //закрыть
                    }
                }
            }
        }//readkl
示例#11
0
        }//readzd

        /// <summary>
        /// чтение настроек вспомсистем
        /// </summary>
        /// <param name="conn"></param>
        private static void ReadVS(OleDbConnection conn)
        {
            //---------- настройки чтения ------
            int skipLines = 4;      //количество пропускаемых строк заголовка
            int nNameCol  = 0;      //номер столбца с именем

            int nDICol      = 8;    //номер столбца со ссылками на DI
            int strideDI    = 3;    //количество строк на одну вспомку
            int shiftDIlink = 1000; //ссылки на DI имеют смещение на 1000

            int nDOCol      = 5;    //номер столбца со ссылками на DO
            int strideDO    = 2;    //количество строк на одну вспомку
            int shiftDOlink = 4000; //ссылки на DO смещаются на 4000

            //наименования используемых таблиц
            string vsDITableName = "DI вспомсистем";
            string vsDOTableName = "DO вспомсистем";

            OleDbCommand cmd = new OleDbCommand
            {
                Connection = conn
            };

            // Get all Sheets in Excel File
            DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);


            //======================================================================= чтение таблицы DI задвижек =====================================
            string sheetName = "";

            foreach (DataRow dr in dtSheet.Rows)
            {
                sheetName = dr["TABLE_NAME"].ToString();
                if (sheetName.Contains(vsDITableName))
                {
                    //LogViewModel.WriteLine("Таблица DI вспомсистем найдена, чтение данных...");
                    LogWriter.AppendLog("Таблица DI вспомсистем найдена, чтение данных...");
                    break;
                }
            }
            // Get all rows from the Sheet
            cmd.CommandText = "SELECT * FROM [" + sheetName + "]";

            DataTable dataTable = new DataTable
            {
                TableName = sheetName
            };

            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmd);

            dataAdapter.Fill(dataTable);

            VSTableViewModel.VS.Clear();
            //=================
            for (int i = 0; i < dataTable.Rows.Count / strideDI; i++)
            {
                int      rowindex = i * strideDI + skipLines;
                VSStruct vs;
                if (dataTable.Rows[rowindex].ItemArray[nNameCol] is DBNull) //название пустое, прекращаем чтение
                {
                    break;
                }
                else
                {
                    vs = new VSStruct
                    {
                        Description = (string)dataTable.Rows[rowindex].ItemArray[0]
                    };
                    if (vs.Description.Length < 2)
                    {
                        break;
                    }
                    vs.En = true;
                    VSTableViewModel.VS.Add(vs);
                }

                for (int j = 0; j < strideDI; j++)
                {
                    object param  = dataTable.Rows[rowindex + j].ItemArray[nDICol];
                    int    iParam = 0;

                    if (param is string)
                    {
                        iParam = int.Parse((string)(param));
                    }
                    else if (param is double)
                    {
                        iParam = (int)((double)param);
                    }


                    if (iParam == 0)
                    {
                        continue;
                    }

                    switch (j)
                    {
                    case 0: vs.ECindxArrDI = DIStruct.FindByNsign(iParam + shiftDIlink); break;     //EC

                    case 1: vs.MPCindxArrDI = DIStruct.FindByNsign(iParam + shiftDIlink); break;    //MPC

                    case 2: vs.PCindxArrDI = DIStruct.FindByNsign(iParam + shiftDIlink); break;     //PC
                    }
                }
            }


            foreach (DataRow dr in dtSheet.Rows)
            {
                sheetName = dr["TABLE_NAME"].ToString();
                if (sheetName.Contains(vsDOTableName))
                {
                    //LogViewModel.WriteLine("Таблица DO вспомсистем найдена, чтение данных...");
                    LogWriter.AppendLog("Таблица DO вспомсистем найдена, чтение данных...");
                    break;
                }
            }

            // Get all rows from the Sheet
            cmd.CommandText = "SELECT * FROM [" + sheetName + "]";

            dataTable = new DataTable
            {
                TableName = sheetName
            };
            dataAdapter.Fill(dataTable);



            for (int i = 0; i < VSTableViewModel.VS.Count; i++)
            {
                int rowindex = i * strideDO + skipLines;

                for (int j = 0; j < strideDO; j++)
                {
                    object param  = dataTable.Rows[rowindex + j].ItemArray[nDOCol];
                    int    iParam = 0;

                    if (param is string)
                    {
                        iParam = int.Parse((string)(param));
                    }
                    else if (param is double)
                    {
                        iParam = (int)((double)param);
                    }


                    if (iParam == 0)
                    {
                        continue;
                    }

                    switch (j)
                    {
                    case 0: VSTableViewModel.VS[i].ABBindxArrDO = DOStruct.FindByNsign(iParam + shiftDOlink); break;     //вкл

                    case 1: VSTableViewModel.VS[i].ABOindxArrDO = DOStruct.FindByNsign(iParam + shiftDOlink); break;     //выкл
                    }
                }
            }
        }//readvs
示例#12
0
        /// <summary>
        /// чтение настроек задвижек
        /// </summary>
        /// <param name="conn"></param>
        private static void ReadZD(OleDbConnection conn)
        {
            OleDbCommand cmd = new OleDbCommand
            {
                Connection = conn
            };

            // Get all Sheets in Excel File
            DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);


            //======================================================================= чтение таблицы DI задвижек =====================================
            string sheetName = "";

            foreach (DataRow dr in dtSheet.Rows)
            {
                sheetName = dr["TABLE_NAME"].ToString();
                if (sheetName.Contains("DI задвижек"))
                {
                    //LogViewModel.WriteLine("Таблица задвижек найдена, чтение данных...");
                    LogWriter.AppendLog("Таблица задвижек найдена, чтение данных...");
                    break;
                }
            }
            // Get all rows from the Sheet
            cmd.CommandText = "SELECT * FROM [" + sheetName + "]";

            DataTable dt = new DataTable
            {
                TableName = sheetName
            };

            OleDbDataAdapter da = new OleDbDataAdapter(cmd);

            ZDTableViewModel.ZDs.Clear();
            da.Fill(dt);
            object[] zdparams = new object[7];
            //=================
            for (int i = 0; i < dt.Rows.Count / 8; i++)
            {
                int      rowindex = i * 8 + 4;
                ZDStruct zd;
                if (dt.Rows[rowindex].ItemArray[0] is DBNull) //название задвижки пустое, прекращаем чтение
                {
                    break;
                }
                else
                {
                    zd = new ZDStruct
                    {
                        Description = (string)dt.Rows[rowindex].ItemArray[0]
                    };
                    if (zd.Description.Length < 2)
                    {
                        break;
                    }
                    zd.En = true;
                    ZDTableViewModel.ZDs.Add(zd);
                }

                for (int j = 0; j < 8; j++)
                {
                    object zdParam = dt.Rows[rowindex + j].ItemArray[8];
                    int    iParam  = 0;

                    if (zdParam is string)
                    {
                        iParam = int.Parse((string)(zdParam));
                    }
                    else if (zdParam is double)
                    {
                        iParam = (int)((double)zdParam);
                    }


                    if (iParam == 0)
                    {
                        continue;
                    }

                    switch (j)
                    {
                    case 0: zd.OKCindxArrDI = DIStruct.FindByNsign(iParam + 1000); break;    //КВО

                    case 1: zd.CKCindxArrDI = DIStruct.FindByNsign(iParam + 1000); break;    //КВЗ

                    case 2: zd.ODCindxArrDI = DIStruct.FindByNsign(iParam + 1000); break;    //МПО

                    case 3: zd.CDCindxArrDI = DIStruct.FindByNsign(iParam + 1000); break;    //МПЗ

                    case 4: zd.DCindxArrDI = DIStruct.FindByNsign(iParam + 1000); break;     //Дист

                    case 5: zd.VoltindxArrDI = DIStruct.FindByNsign(iParam + 1000); break;   //напряж

                    case 6: zd.MCindxArrDI = DIStruct.FindByNsign(iParam + 1000); break;     //муфта

                    case 7: zd.OPCindxArrDI = DIStruct.FindByNsign(iParam + 1000); break;    //авария
                    }
                }
            }


            foreach (DataRow dr in dtSheet.Rows)
            {
                sheetName = dr["TABLE_NAME"].ToString();
                if (sheetName.Contains("DO задвижек"))
                {
                    //LogViewModel.WriteLine("Таблица DO задвижек найдена, чтение данных...");
                    LogWriter.AppendLog("Таблица DO задвижек найдена, чтение данных...");
                    break;
                }
            }

            // Get all rows from the Sheet
            cmd.CommandText = "SELECT * FROM [" + sheetName + "]";

            dt = new DataTable
            {
                TableName = sheetName
            };

            //OleDbDataAdapter da = new OleDbDataAdapter(cmd);

            da.Fill(dt);

            for (int i = 0; i < ZDTableViewModel.ZDs.Count; i++)
            {
                int rowindex = i * 4 + 4;

                for (int j = 0; j < 4; j++)
                {
                    object zdParam = dt.Rows[rowindex + j].ItemArray[5];
                    int    iParam  = 0;

                    if (zdParam is string)
                    {
                        iParam = int.Parse((string)(zdParam));
                    }
                    else if (zdParam is double)
                    {
                        iParam = (int)((double)zdParam);
                    }


                    if (iParam == 0)
                    {
                        continue;
                    }

                    switch (j)
                    {
                    case 0: ZDTableViewModel.ZDs[i].DOBindxArrDO = DOStruct.FindByNsign(iParam + 4000); break;     //открыть

                    case 1: ZDTableViewModel.ZDs[i].DKBindxArrDO = DOStruct.FindByNsign(iParam + 4000); break;     //закрыть

                    case 2: ZDTableViewModel.ZDs[i].DCBindxArrDO = DOStruct.FindByNsign(iParam + 4000); break;     //стоп

                    case 3: ZDTableViewModel.ZDs[i].DCBZindxArrDO = DOStruct.FindByNsign(iParam + 4000); break;    //стоп закрытия
                    }
                }
            }
        }//readzd
 public DITableViewModel()
 {
     DIs            = new DIStruct[1];
     _DIs[0]        = new DIStruct();
     _DIs[0].NameDI = "reserved";
 }
示例#14
0
        void ReadTableDI(StreamReader reader, out int count)
        {
            count = 0;
            string line;
            // CultureInfo culture = new CultureInfo("ru-RU");
            CultureInfo culture = new CultureInfo("en-US");

            //считываем страницу DI
            try
            {
                reader.ReadLine();//пропускаем строку с заголовками
                List <DIStruct> listDI = new List <DIStruct>();
                while (!reader.EndOfStream)
                {
                    line = reader.ReadLine();

                    //   if (!line.Contains(pageSeparator))
                    //     {
                    string[] values = line.Split('\t');
                    if (values.Count() < 11)
                    {
                        System.Windows.Forms.MessageBox.Show("Ошибка чтения файла");
                    }
                    DIStruct di = new DIStruct();
                    di.En        = bool.Parse(values[0]);
                    di.indxArrDI = int.Parse(values[1]);
                    di.OPCtag    = values[2];
                    di.PLCAddr   = int.Parse(values[3]);
                    di.indxBitDI = int.Parse(values[4]);

                    di.Forced      = bool.Parse(values[5]);
                    di.ForcedValue = bool.Parse(values[6]);
                    di.ValDI       = bool.Parse(values[7]);
                    di.InvertDI    = bool.Parse(values[8]);

                    if (values.Length > 9)
                    {
                        di.TegDI = values[9];
                    }

                    if (values.Length > 10)
                    {
                        di.NameDI = values[10];
                    }

                    listDI.Add(di);
                    //     }
                    //     else
                    //     {
                    //           break;
                    //     }
                }

                count = listDI.Count;

                ///  DIStruct.items.Clear();
                foreach (DIStruct di in listDI)
                {
                    DIStruct.items.Add(di);
                }

                //DITableViewModel.Instance.Init(DIStruct.items);
                //    dataGridDI.ItemsSource = DITableViewModel.Instance.viewSource.View;
                //обновление ссылок
                foreach (KLStruct kl in KLTableViewModel.KL)
                {
                    kl.UpdateRefs();
                }

                foreach (ZDStruct zd in ZDTableViewModel.ZDs)
                {
                    zd.UpdateRefs();
                }

                foreach (VSStruct vs in VSTableViewModel.VS)
                {
                    vs.UpdateRefs();
                }

                foreach (MPNAStruct mpna in MPNATableViewModel.MPNAs)
                {
                    mpna.UpdateRefs();
                }

                foreach (USOCounter counter in CountersTableViewModel.Counters)
                {
                    counter.Refresh();
                }

                foreach (WatchItem item in WatchItem.Items)
                {
                    item.RefreshLink();
                }
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("Ошибка импорта таблицы DI:\n\r" + ex.Message);
            }
        }
示例#15
0
 public WatchItem(DIStruct signal)
 {
     index                   = signal.indxArrDI;
     signalType              = ESignalType.DI;
     signal.PropertyChanged += Signal_PropertyChanged;
 }