ModbusLib.ModbusInitDataArray.processData C# (CSharp) Method

processData() public method

public processData ( ) : void
return void
        public void processData()
        {
            FullData = new SortedList<int, ModbusInitData>();
            MaxAddr = 0;
            foreach (ModbusInitData init in Data) {
                init.ParNumberHH=init.ParNumberHH==-1?ParNumberHH:init.ParNumberHH;
                init.ParNumberMin = init.ParNumberMin == -1 ? ParNumberMin : init.ParNumberMin;
                init.Obj = init.Obj == -1 ? Obj : init.Obj;
                init.ObjType = init.ObjType == -1 ? ObjType : init.ObjType;
                init.Item = init.Item == -1 ? init.ID : init.Item;
                init.DBNameHH = init.DBNameHH == null ? DBNameHH : init.DBNameHH;
                init.DBNameMin = init.DBNameMin == null ? DBNameMin : init.DBNameMin;

                FullData.Add(init.Addr, init);
                if (MaxAddr < init.Addr) {
                    MaxAddr = init.Addr;
                }
            }
        }

Usage Example

示例#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());
                }
            }
        }
All Usage Examples Of ModbusLib.ModbusInitDataArray::processData
ModbusInitDataArray