コード例 #1
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void PresetMultipleRegsRequest()
        {
            byte     slaveAddress = 1;
            Function function     = Function.PresetMultipleRegs;
            ushort   address      = 0x0002;

            ushort[] values  = { TestClass.CoilOn, TestClass.CoilOff, 0x7777 };
            byte[]   ethalon =
            { slaveAddress
              , (byte)function
              , Helper.Hi(address)
              , Helper.Lo(address)
              , Helper.Hi((ushort)values.Length)
              , Helper.Lo((ushort)values.Length)
              , (byte)(values.Length * 2)
              , Helper.Hi(values[0])
              , Helper.Lo(values[0])
              , Helper.Hi(values[1])
              , Helper.Lo(values[1])
              , Helper.Hi(values[2])
              , Helper.Lo(values[2]) };
            TestClass test = TestClass.CreateWriteRequest(slaveAddress, function, address, values);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #2
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void ReadExceptionStatusRequest()
        {
            byte     slaveAddress = 1;
            Function function     = Function.ReadExceptionStatus;

            byte[]    ethalon = { slaveAddress, (byte)function };
            TestClass test    = TestClass.CreateReadRequest(slaveAddress, function);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #3
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void FetchCommEventLogRequest()
        {
            byte     slaveAddress = 1;
            Function function     = Function.FetchCommEventLog;

            byte[]    ethalon = { slaveAddress, (byte)function };
            TestClass test    = TestClass.CreateReadRequest(slaveAddress, function);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #4
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void BadResponse()
        {
            byte          slaveAddress = 1;
            Function      function     = Function.ReadCoilStatus;
            ExceptionCode code         = ExceptionCode.IllegalFunction;

            byte[] ethalon =
            { slaveAddress
              , (byte)(0x80 | (byte)function)
              , (byte)code };
            TestClass test = TestClass.CreateBadResponse(slaveAddress, function, code);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #5
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void FetchCommEventCtrResponse()
        {
            byte     slaveAddress = 1;
            Function function     = Function.FetchCommEventCtr;

            ushort[] data    = { 0x2233, 0x4455 };
            byte[]   ethalon =
            { slaveAddress
              , (byte)function
              , 0x22, 0x33, 0x44, 0x55 };
            TestClass test = TestClass.CreateResponse(slaveAddress, function, data);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #6
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void ReadExceptionStatusResponse()
        {
            byte     slaveAddress = 1;
            Function function     = Function.ReadExceptionStatus;
            ushort   data         = 0x2233;

            byte[] ethalon =
            { slaveAddress
              , (byte)function
              , 0x22, 0x33 };
            TestClass test = TestClass.CreateResponse(slaveAddress, function, data);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #7
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void ReadCoilStatusResponse()
        {
            byte     slaveAddress = 1;
            Function function     = Function.ReadCoilStatus;

            ushort[] data    = { TestClass.CoilOn, TestClass.CoilOff, 0x7777 };
            byte[]   ethalon =
            { slaveAddress
              , (byte)function
              , 1
              , 5 };
            TestClass test = TestClass.CreateResponse(slaveAddress, function, data);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #8
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void ReadInputRegistersResponse()
        {
            byte     slaveAddress = 1;
            Function function     = Function.ReadInputRegisters;

            ushort[] data    = { 0x2233, 0x4455, 0x6677 };
            byte[]   ethalon =
            { slaveAddress
              , (byte)function
              , 6
              , 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 };
            TestClass test = TestClass.CreateResponse(slaveAddress, function, data);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #9
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void ReadCoilStatusRequest()
        {
            byte     slaveAddress = 1;
            Function function     = Function.ReadCoilStatus;
            ushort   address      = 0x0002;
            ushort   coilCount    = 0x0004;

            byte[] ethalon =
            { slaveAddress
              , (byte)function
              , Helper.Hi(address)
              , Helper.Lo(address)
              , Helper.Hi(coilCount)
              , Helper.Lo(coilCount) };
            TestClass test = TestClass.CreateReadRequest(slaveAddress, function, address, coilCount);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #10
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void PresetSingleRegisterResponse()
        {
            byte     slaveAddress = 1;
            Function function     = Function.PresetSingleRegister;
            ushort   address      = 0x2233;
            ushort   count        = 0x4455;

            byte[] ethalon =
            { slaveAddress
              , (byte)function
              , Helper.Hi(address)
              , Helper.Lo(address)
              , Helper.Hi(count)
              , Helper.Lo(count) };
            TestClass test = TestClass.CreateResponse(slaveAddress, function, address, count);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #11
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void PresetSingleRegisterRequest()
        {
            byte     slaveAddress = 1;
            Function function     = Function.PresetSingleRegister;
            ushort   address      = 0x0002;
            ushort   value        = 0x0003;

            byte[] ethalon =
            { slaveAddress
              , (byte)function
              , Helper.Hi(address)
              , Helper.Lo(address)
              , Helper.Hi(value)
              , Helper.Lo(value) };
            TestClass test = TestClass.CreateWriteRequest(slaveAddress, function, address, value);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #12
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void DiagnosticRequest()
        {
            byte     slaveAddress = 1;
            Function function     = Function.Diagnostic;
            ushort   subfunction  = 0x0002;
            ushort   data         = 0x0004;

            byte[] ethalon =
            { slaveAddress
              , (byte)function
              , Helper.Hi(subfunction)
              , Helper.Lo(subfunction)
              , Helper.Hi(data)
              , Helper.Lo(data) };
            TestClass test = TestClass.CreateReadRequest(slaveAddress, function, subfunction, data);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #13
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void ReadHoldingRegistersRequest()
        {
            byte     slaveAddress = 1;
            Function function     = Function.ReadHoldingRegisters;
            ushort   address      = 0x0002;
            ushort   regCount     = 0x0004;

            byte[] ethalon =
            { slaveAddress
              , (byte)function
              , Helper.Hi(address)
              , Helper.Lo(address)
              , Helper.Hi(regCount)
              , Helper.Lo(regCount) };
            TestClass test = TestClass.CreateReadRequest(slaveAddress, function, address, regCount);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #14
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void ForceMultipleCoilsResponse()
        {
            byte     slaveAddress = 1;
            Function function     = Function.ForceMultipleCoils;
            ushort   address      = 0x2233;
            // no check for coil count
            ushort count = 0x4455;

            byte[] ethalon =
            { slaveAddress
              , (byte)function
              , Helper.Hi(address)
              , Helper.Lo(address)
              , Helper.Hi(count)
              , Helper.Lo(count) };
            TestClass test = TestClass.CreateResponse(slaveAddress, function, address, count);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #15
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void ForceMultipleCoilsRequest()
        {
            byte     slaveAddress = 1;
            Function function     = Function.ForceMultipleCoils;
            ushort   address      = 0x0002;

            ushort[] values  = { TestClass.CoilOn, TestClass.CoilOff, 0x7777 };
            byte[]   ethalon =
            { slaveAddress
              , (byte)function
              , Helper.Hi(address)
              , Helper.Lo(address)
              , Helper.Hi(3)
              , Helper.Lo(3)
              , 1
              , 0x05 };
            TestClass test = TestClass.CreateWriteRequest(slaveAddress, function, address, values);

            Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
        }
コード例 #16
0
ファイル: PacketTest.cs プロジェクト: yobisoft/yobisoft
        public void ForceSingleCoilRequest()
        {
            byte     slaveAddress = 1;
            Function function     = Function.ForceSingleCoil;
            ushort   address      = 0x0002;

            /// no check for coil value
            ushort[] values = { TestClass.CoilOn, TestClass.CoilOff, 0x7777 };
            foreach (var value in values)
            {
                byte[] ethalon =
                { slaveAddress
                  , (byte)function
                  , Helper.Hi(address)
                  , Helper.Lo(address)
                  , Helper.Hi(value)
                  , Helper.Lo(value) };
                TestClass test = TestClass.CreateWriteRequest(slaveAddress, function, address, value);
                Assert.IsTrue(ethalon.SequenceEqual(test.Bytes));
            }
        }