예제 #1
0
        public void ReadWriteRegTest()
        {
            byte func      = 0x03;
            byte byteCount = 0x04;
            byte reg1ValHi = 0xAA;
            byte reg1ValLo = 0xBB;
            byte reg2ValHi = 0xCC;
            byte reg2ValLo = 0xDD;

            List <byte> response;
            List <byte> expected = new List <byte>();

            expected.Add(func);
            expected.Add(byteCount);
            expected.Add(reg1ValHi);
            expected.Add(reg1ValLo);
            expected.Add(reg2ValHi);
            expected.Add(reg2ValLo);

            MemoryMap memory = new MemoryMap();

            memory.AddHoldingRegister(new Register(0)
            {
                Value = 100
            });
            memory.AddHoldingRegister(new Register(1)
            {
                Value = 100
            });
            FunctionsImplementation imp = new FunctionsImplementation(memory);

            imp.FuncWriteSingleRegister(0, 0xAABB);
            imp.FuncWriteSingleRegister(1, 0xCCDD);
            response = imp.FuncReadHoldingRegisters(0, 2);
            for (int i = 0; i < response.Count; i++)
            {
                Assert.AreEqual(expected[i], response[i]);
            }
        }
예제 #2
0
        public void FuncWriteSingleRegisterResponseTest()
        {
            List <byte> expected = new List <byte>();

            expected.Add(0x06);
            expected.Add(0x00);
            expected.Add(0x00);
            expected.Add(0xAA);
            expected.Add(0xBB);
            MemoryMap memory = new MemoryMap();

            memory.AddHoldingRegister(new Register(0)
            {
                Value = 100
            });
            FunctionsImplementation imp      = new FunctionsImplementation(memory);
            List <byte>             response = imp.FuncWriteSingleRegister(0, 0xAABB);

            for (int i = 0; i < response.Count; i++)
            {
                Assert.AreEqual(expected[i], response[i]);
            }
        }
예제 #3
0
        public void FuncWriteSingleRegisterTest()
        {
            UInt16      index       = 0;
            UInt16      register    = 0;
            List <byte> expected    = new List <byte>();
            List <byte> writedValue = new List <byte>();

            expected.Add(0xAA);
            expected.Add(0xBB);
            MemoryMap memory = new MemoryMap();

            memory.AddHoldingRegister(new Register(0)
            {
                Value = 100
            });
            FunctionsImplementation imp = new FunctionsImplementation(memory);

            imp.FuncWriteSingleRegister(index, 0xAABB);
            register = memory.GetHoldingRegister(0);
            writedValue.AddRange(Utility.GetBytesFromReg(register));
            Assert.AreEqual(expected[0], writedValue[0]);
            Assert.AreEqual(expected[1], writedValue[1]);
        }