public static IModbusSlave CreateSlaveProxy( this IModbusFactory factory, byte unitId, IModbusMaster master) { var dataStore = new ProxyDataStore(unitId, master); return(factory.CreateSlave(unitId, dataStore)); }
private void Start() { try { CompileTags(richTextBoxVar.Text); tagsView1.Load(tags); state = SvrState.Starting; cts = new CancellationTokenSource(); slaveTcpListener = new TcpListener(address, port); slaveTcpListener.Start(); network = factory.CreateSlaveNetwork(slaveTcpListener); var slave1 = factory.CreateSlave(slaveId, store); network.AddSlave(slave1); networkListenerTask = network.ListenAsync(cts.Token); scriptLoopTask = scriptLoop(cts.Token); state = SvrState.Runing; } catch (Exception ex) { jsConsole.error(ex); state = SvrState.Stopped; cts?.Cancel(); network.Dispose(); slaveTcpListener?.Stop(); scriptLoopTask.Wait(100); scriptLoopTask.Dispose(); } }