Beispiel #1
0
        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)
 {
 }
Beispiel #3
0
 protected DeviceService(
     ILogger logger,
     IModbusFactory factory,
     ModbusConfiguration configuration,
     IObservable <PwsObservationsResponse> source)
 {
     Logger        = logger;
     Factory       = factory;
     Configuration = configuration;
     _source       = source;
 }
Beispiel #4
0
 public void InitializeModbusRtu(ModbusConfiguration modbusConfiguration)
 {
     _modbusSerial = ModbusSerialMaster.CreateRtu(modbusConfiguration.SerialPort);
     _modbusSerial.Transport.ReadTimeout = modbusConfiguration.TimeOut;
 }