示例#1
0
        public static IModbusSlave CreateSlaveProxy(
            this IModbusFactory factory,
            byte unitId,
            IModbusMaster master)
        {
            var dataStore = new ProxyDataStore(unitId, master);

            return(factory.CreateSlave(unitId, dataStore));
        }
示例#2
0
        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();
            }
        }