Beispiel #1
0
        /// <summary>
        /// Creates an ASCII slave network.
        /// </summary>
        /// <param name="factory"></param>
        /// <param name="streamResource"></param>
        /// <returns></returns>
        public static IModbusSlaveNetwork CreateAsciiSlaveNetwork(this IModbusFactory factory,
                                                                  IStreamResource streamResource)
        {
            IModbusAsciiTransport transport = factory.CreateAsciiTransport(streamResource);

            return(factory.CreateSlaveNetwork(transport));
        }
Beispiel #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();
            }
        }
Beispiel #3
0
        public IModbusSlaveNetwork CreateSlaveNetwork()
        {
            IModbusRtuTransport transport = CreateTransport();

            return(ModbusFactory.CreateSlaveNetwork(transport));
        }