public CBTSettings()
 {
     DisplayEnabled = false;
     FirstBoot = true;
     DisplayIndex = 0;
     HwSelfTest = true;
     BusConfig = new BusConfig[3];
     for (int b = 0; b < BusConfig.Length; b++) {
         BusConfig[b].BitRate = 125;
         BusConfig[b].Mode = CanMode.Normal;
     }
     Pid = new Pid[8];
     for (int p = 0; p < Pid.Length; p++) Pid[p] = new Pid();
 }
Beispiel #2
0
        public CBTSettings(byte[] eeprom)
        {
            if (eeprom.Length != EEPROM_SIZE)
            {
                throw new Exception("Invalid EEPROM size (expected " + EEPROM_SIZE + "bytes)");
            }

            DisplayEnabled = (eeprom[0] == 1);
            FirstBoot      = (eeprom[1] == 1);
            DisplayIndex   = eeprom[2];
            int pos = 3;

            BusConfig = new BusConfig[3];
            for (int b = 0; b < BusConfig.Length; b++)
            {
                BusConfig[b].BitRate = eeprom[pos] + (eeprom[pos + 1] << 8);
                BusConfig[b].Mode    = (CanMode)eeprom[pos + 2];
                pos += 4;
            }

            HwSelfTest = (eeprom[pos++] == 1);
            pos       += 4; // Skip unused placeholders

            Pid = new Pid[8];
            for (int p = 0; p < Pid.Length; p++)
            {
                Pid[p] = new Pid
                {
                    BusId    = eeprom[pos],
                    Settings = eeprom[pos + 1],
                    Value    = eeprom[pos + 2] + (eeprom[pos + 3] << 8)
                };
                Buffer.BlockCopy(eeprom, pos + 4, Pid[p].TXD, 0, 8);
                Buffer.BlockCopy(eeprom, pos + 12, Pid[p].RXF, 0, 6);
                Buffer.BlockCopy(eeprom, pos + 18, Pid[p].RXD, 0, 2);
                Buffer.BlockCopy(eeprom, pos + 20, Pid[p].MTH, 0, 6);
                var name = "";
                for (var c = 0; c < 8; c++)
                {
                    name += (char)eeprom[pos + 26 + c];
                }
                Pid[p].Name = name.Trim();
                pos        += 34;
            }
        }
Beispiel #3
0
 public CBTSettings()
 {
     DisplayEnabled = false;
     FirstBoot      = true;
     DisplayIndex   = 0;
     HwSelfTest     = true;
     BusConfig      = new BusConfig[3];
     for (int b = 0; b < BusConfig.Length; b++)
     {
         BusConfig[b].BitRate = 125;
         BusConfig[b].Mode    = CanMode.Normal;
     }
     Pid = new Pid[8];
     for (int p = 0; p < Pid.Length; p++)
     {
         Pid[p] = new Pid();
     }
 }
        public CBTSettings(byte[] eeprom)
        {
            if (eeprom.Length != EEPROM_SIZE)
                throw new Exception("Invalid EEPROM size (expected " + EEPROM_SIZE + "bytes)");

            DisplayEnabled = (eeprom[0] == 1);
            FirstBoot = (eeprom[1] == 1);
            DisplayIndex = eeprom[2];
            int pos = 3;

            BusConfig = new BusConfig[3];
            for (int b = 0; b < BusConfig.Length; b++) {
                BusConfig[b].BitRate = eeprom[pos] + (eeprom[pos + 1] << 8);
                BusConfig[b].Mode = (CanMode)eeprom[pos + 2];
                pos += 4;
            }

            HwSelfTest = (eeprom[pos++] == 1);
            pos += 4; // Skip unused placeholders

            Pid = new Pid[8];
            for (int p = 0; p < Pid.Length; p++) {
                Pid[p] = new Pid
                {
                    BusId = eeprom[pos],
                    Settings = eeprom[pos + 1],
                    Value = eeprom[pos + 2] + (eeprom[pos + 3] << 8)
                };
                Buffer.BlockCopy(eeprom, pos + 4, Pid[p].TXD, 0, 8);
                Buffer.BlockCopy(eeprom, pos + 12, Pid[p].RXF, 0, 6);
                Buffer.BlockCopy(eeprom, pos + 18, Pid[p].RXD, 0, 2);
                Buffer.BlockCopy(eeprom, pos + 20, Pid[p].MTH, 0, 6);
                var name = "";
                for (var c = 0; c < 8; c++) name += (char)eeprom[pos + 26 + c];
                Pid[p].Name = name.Trim();
                pos += 34;
            }
        }