コード例 #1
0
        public void Connect_and_disconnect()
        {
            MBTCPClient client = new MBTCPClient(testIp);

            Assert.True(client.Status == ClientStatus.Connected);

            client.Disconnect();
            Assert.True(client.Status == ClientStatus.Disconnected);
        }
コード例 #2
0
        public void Bad_response_throws_exception()
        {
            serverFixture.MBServer.RespondWithError = true;
            MBTCPClient  client    = new MBTCPClient(testIp);
            List <Int16> writeData = new List <Int16> {
                123, 456, 789, 1234
            };

            Assert.ThrowsAny <Exception>(() => client.WriteMultipleRegisters(500, writeData));
        }
コード例 #3
0
ファイル: ServerTest.cs プロジェクト: JosephMartell/ModbusTCP
        public void Server_responds_to_client_connection_request()
        {
            MBTCPServer server = new MBTCPServer(IPAddress.Any, 502, new DictMemoryModel());
            MBTCPClient client = new MBTCPClient(IPAddress.Parse("127.0.0.1"));

            Assert.True(client.Status == ClientStatus.Connected);
            client.Disconnect();
            server.Stop();

            Assert.True(client.Status == ClientStatus.Disconnected);
        }
コード例 #4
0
        public void Read_register()
        {
            MBTCPClient client = new MBTCPClient(testIp);

            serverFixture.MemoryModel.Write4x(1000, new short[] { (Int16)2564 });
            var values = serverFixture.MemoryModel.Read4x(1000, 1);

            var regs = client.ReadHoldingRegisters(1000, 1);

            Assert.Equal(2564, regs.First());
            client.Disconnect();
        }
コード例 #5
0
        public void Read_multiple_registers()
        {
            serverFixture.MemoryModel.Write4x(1000, new short[] { 2564, 9999, 9876 });
            serverFixture.MBServer.RespondWithError = false;
            MBTCPClient client = new MBTCPClient(testIp);
            var         regs   = client.ReadHoldingRegisters(1000, 3).ToList();

            client.Disconnect();
            Assert.Equal(3, regs.Count);
            Assert.Equal(2564, regs[0]);
            Assert.Equal(9999, regs[1]);
            Assert.Equal(9876, regs[2]);
        }
コード例 #6
0
        public void Write_register()
        {
            MBTCPClient         client    = new MBTCPClient(testIp);
            Int16               testValue = 9999;
            IEnumerable <Int16> writeData = new List <Int16>()
            {
                testValue
            };

            client.WriteMultipleRegisters(1001, writeData);
            client.Disconnect();
            var values = serverFixture.MemoryModel.Read4x(1001, 1);

            Assert.Equal(testValue, values.First());
        }
コード例 #7
0
        public void Write_multiple_registers()
        {
            MBTCPClient  client    = new MBTCPClient(testIp);
            List <Int16> writeData = new List <Int16>()
            {
                5555, 6666, 7777, 8888
            };

            client.WriteMultipleRegisters(1005, writeData);
            client.Disconnect();

            var regs = serverFixture.MemoryModel.Read4x(1005, 4).ToList();

            Assert.Equal(writeData.Count, regs.Count);
            Assert.Equal(writeData[0], regs[0]);
            Assert.Equal(writeData[1], regs[1]);
            Assert.Equal(writeData[2], regs[2]);
            Assert.Equal(writeData[3], regs[3]);
        }