예제 #1
0
        public void TestGetSeatAddr()
        {
            var value = 8;

            Assert.AreEqual(_vbmsDriverAddr.GetSeatAddr(0), 0x0);
            for (var i = 1; i <= 16; i++)
            {
                Assert.AreEqual(_vbmsDriverAddr.GetSeatAddr(i), value++);
            }

            value = 32;
            for (var j = 17; j <= 24; j++)
            {
                Assert.AreEqual(_vbmsDriverAddr.GetSeatAddr(j), value++);
            }

            value = 64;
            for (var z = 25; z <= 26; z++)
            {
                Assert.AreEqual(_vbmsDriverAddr.GetSeatAddr(z), value++);
            }
        }
예제 #2
0
        protected bool SelectSeat(int seat, out string msg)
        {
            msg = "";
            var status = new byte[0x100];

            if (!IsSeatValid(seat, out msg))
            {
                return(false);
            }
            var devAddr  = DriverAddr.GetChipAddr();
            var seatAddr = DriverAddr.GetSeatAddr(seat);

            if (1 == eDriver_IO.Cls_edriverdll.i2c_write(devAddr, 0x01, 1, 0, new[] { seatAddr }, status))
            {
                return(true);
            }
            msg = Encoding.ASCII.GetString(status);
            return(false);
        }