string LoadXMLDefinition(string pFile) { string path = TheCommonUtils.cdeFixupFileName(pFile); TheBaseAssets.MySYSLOG.WriteToLog(500, new TSM(MyBaseEngine.GetEngineName(), $"Trying to open Modbus configuration file: {pFile}")); ModbusConfiguration config = null; try { config = ModbusConfiguration.ReadFromFile(path); } catch (IOException) { return("File not found or parsing failed"); } List <TheThing> tDevList = TheThingRegistry.GetThingsOfEngine(MyBaseThing.EngineName); foreach (var dd in config.Devices) { var tDev = tDevList.Find((t) => t.FriendlyName == dd.Name); if (tDev == null || !tDev.HasLiveObject) { TheBaseAssets.MySYSLOG.WriteToLog(500, new TSM(MyBaseEngine.GetEngineName(), $"Adding Modbus Device {dd.Name}")); var pm = new ModbusTCPDevice(tDev, this, dd); TheThingRegistry.RegisterThing(pm); } } return("XML Definition loaded correctly."); }
public TcpDeviceService( ILogger <TcpDeviceService> logger, IModbusFactory factory, ModbusConfiguration configuration, IObservable <PwsObservationsResponse> source) : base(logger, factory, configuration, source) { }
protected DeviceService( ILogger logger, IModbusFactory factory, ModbusConfiguration configuration, IObservable <PwsObservationsResponse> source) { Logger = logger; Factory = factory; Configuration = configuration; _source = source; }
public void InitializeModbusRtu(ModbusConfiguration modbusConfiguration) { _modbusSerial = ModbusSerialMaster.CreateRtu(modbusConfiguration.SerialPort); _modbusSerial.Transport.ReadTimeout = modbusConfiguration.TimeOut; }