Ejemplo n.º 1
0
        protected bool IsVoltageAdd(int seat, out bool enable, out string msg)
        {
            var status = new byte[0x100];

            enable = false;
            if (!IsSeatValid(seat, out msg))
            {
                return(false);
            }

            var chipAddr    = DriverAddr.GetChipAddr();
            var subChipAddr = DriverAddr.GetSubChipAddr(seat);
            var ctrlAddr    = DriverAddr.GetCtrlAddr(seat);
            var volAddr     = DriverAddr.GetAddVolAddr();
            var ctrlByte    = DriverAddr.GetCtrlByte(seat);

            //Select Chip
            if (1 != eDriver_IO.Cls_edriverdll.i2c_write(chipAddr, 0x01, 1, 0, new[] { subChipAddr }, status))
            {
                msg = Encoding.ASCII.GetString(status);
                return(false);
            }
            //Set Control Bit
            var data = new byte[1];

            if (1 == eDriver_IO.Cls_edriverdll.i2c_read(volAddr, ctrlAddr, 1, 0, data, status))
            {
                enable = (0 != (byte)((~data[0]) & ctrlByte));
                return(true);
            }
            msg = Encoding.ASCII.GetString(status);
            return(false);
        }
Ejemplo n.º 2
0
        public void TestGetCtrlAddr()
        {
            Assert.AreEqual(_vbmsDriverAddr.GetCtrlAddr(0), 0x0);
            for (var i = 1; i <= 8; i++)
            {
                Assert.AreEqual(_vbmsDriverAddr.GetCtrlAddr(i), 0x06);
            }

            for (var j = 9; j <= 16; j++)
            {
                Assert.AreEqual(_vbmsDriverAddr.GetCtrlAddr(j), 0x07);
            }

            for (var z = 17; z <= 24; z++)
            {
                Assert.AreEqual(_vbmsDriverAddr.GetCtrlAddr(z), 0x06);
            }
        }