Пример #1
0
        private byte[] GetTimings(CanMCP2515AdapterSettings settings)
        {
            switch (settings.Speed)
            {
            case CanAdapterSettings.CanSpeed.Kbps1000:
                if (settings.Frequency == CanMCP2515AdapterSettings.AdapterFrequency.Mhz16)
                {
                    return(new byte[] { 0x00, 0x91, 0x01 });
                }
                else
                {
                    return(new byte[] { 0x00, 0x80, 0x00 });
                }

            case CanAdapterSettings.CanSpeed.Kbps500:
                if (settings.Frequency == CanMCP2515AdapterSettings.AdapterFrequency.Mhz16)
                {
                    return(new byte[] { 0x00, 0xAC, 0x03 });
                }
                else
                {
                    return(new byte[] { 0x00, 0x91, 0x01 });
                }

            case CanAdapterSettings.CanSpeed.Kbps250:
                if (settings.Frequency == CanMCP2515AdapterSettings.AdapterFrequency.Mhz16)
                {
                    return(new byte[] { 0x01, 0xAC, 0x03 });
                }
                else
                {
                    return(new byte[] { 0x00, 0xAC, 0x03 });
                }

            case CanAdapterSettings.CanSpeed.Kbps125:
                if (settings.Frequency == CanMCP2515AdapterSettings.AdapterFrequency.Mhz16)
                {
                    return(new byte[] { 0x03, 0xAC, 0x03 });
                }
                else
                {
                    return(new byte[] { 0x01, 0xAC, 0x03 });
                }

            case CanAdapterSettings.CanSpeed.Kbps100:
                if (settings.Frequency == CanMCP2515AdapterSettings.AdapterFrequency.Mhz16)
                {
                    return(new byte[] { 0x03, 0xB6, 0x04 });
                }
                else
                {
                    return(new byte[] { 0x01, 0xB6, 0x04 });    // 0x01, 0xB4, 0x06
                }

            default:
                throw new CanException("Specified baudrate isn't supported.");
            }
        }
Пример #2
0
 public CanMCP2515Adapter(CanMCP2515AdapterSettings settings) : base(settings)
 {
     can = new MCP2515();
     can.InitCAN(settings.SPI, settings.ChipSelect, GetTimings(settings));
 }