Пример #1
0
        public MasterModbusReader(int sleepTime)
        {
            SleepTime     = sleepTime;
            InitArrays    = new SortedList <string, ModbusInitDataArray>();
            Readers       = new SortedList <string, ModbusDataReader>();
            WritersHH     = new SortedList <string, ModbusDataWriter>();
            WritersMin    = new SortedList <string, ModbusDataWriter>();
            FinishReading = new SortedList <string, bool>();
            foreach (string fileName in Settings.single.InitFiles)
            {
                try {
                    Logger.Info(String.Format("Чтение настроек modbus из файла '{0}'", fileName));
                    ModbusInitDataArray arr = XMLSer <ModbusInitDataArray> .fromXML(fileName);

                    arr.processData();
                    InitArrays.Add(arr.ID, arr);
                    String.Format("===Считано {0} записей", arr.FullData.Count);

                    Logger.Info(String.Format("Создание объекта чтения данных"));
                    ModbusServer     sv     = new ModbusServer(arr.IP, (ushort)arr.Port);
                    ModbusDataReader reader = new ModbusDataReader(sv, arr);
                    reader.OnFinish += new FinishEvent(reader_OnFinish);
                    readers.Add(arr.ID, reader);
                    String.Format("===Объект создан");

                    if (arr.WriteMin)
                    {
                        Logger.Info(String.Format("Создание объекта записи данных в файл (минуты)"));
                        ModbusDataWriter writer = new ModbusDataWriter(arr, RWModeEnum.min);
                        writersMin.Add(arr.ID, writer);
                        String.Format("===Объект создан");
                    }

                    if (arr.WriteHH)
                    {
                        Logger.Info(String.Format("Создание объекта записи данных в файл (получасовки)"));
                        ModbusDataWriter writer = new ModbusDataWriter(arr, RWModeEnum.hh);
                        writersHH.Add(arr.ID, writer);
                        String.Format("===Объект создан");
                    }

                    FinishReading.Add(arr.ID, false);
                } catch (Exception e) {
                    String.Format("===Ошибка при чтении настроек");
                    Logger.Error(e.ToString());
                }
            }
        }
Пример #2
0
        public MasterModbusReader(int sleepTime)
        {
            SleepTime = sleepTime;
            InitArrays = new SortedList<string, ModbusInitDataArray>();
            Readers = new SortedList<string, ModbusDataReader>();
            WritersHH = new SortedList<string, ModbusDataWriter>();
            WritersMin = new SortedList<string, ModbusDataWriter>();
            FinishReading = new SortedList<string, bool>();
            foreach (string fileName in Settings.single.InitFiles) {
                try {
                    Logger.Info(String.Format("Чтение настроек modbus из файла '{0}'", fileName));
                    ModbusInitDataArray arr = XMLSer<ModbusInitDataArray>.fromXML(fileName);
                    arr.processData();
                    InitArrays.Add(arr.ID, arr);
                    String.Format("===Считано {0} записей", arr.FullData.Count);

                    Logger.Info(String.Format("Создание объекта чтения данных"));
                    ModbusServer sv=new ModbusServer(arr.IP, (ushort)arr.Port);
                    ModbusDataReader reader=new ModbusDataReader(sv, arr);
                    reader.OnFinish += new FinishEvent(reader_OnFinish);
                    readers.Add(arr.ID, reader);
                    String.Format("===Объект создан");

                    if (arr.WriteMin) {
                        Logger.Info(String.Format("Создание объекта записи данных в файл (минуты)"));
                        ModbusDataWriter writer=new ModbusDataWriter(arr, RWModeEnum.min);
                        writersMin.Add(arr.ID, writer);
                        String.Format("===Объект создан");
                    }

                    if (arr.WriteHH) {
                        Logger.Info(String.Format("Создание объекта записи данных в файл (получасовки)"));
                        ModbusDataWriter writer=new ModbusDataWriter(arr, RWModeEnum.hh);
                        writersHH.Add(arr.ID, writer);
                        String.Format("===Объект создан");
                    }

                    FinishReading.Add(arr.ID, false);

                } catch (Exception e) {
                    String.Format("===Ошибка при чтении настроек");
                    Logger.Error(e.ToString());
                }
            }
        }