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());
}
}
}