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."); } }
public CanMCP2515Adapter(CanMCP2515AdapterSettings settings) : base(settings) { can = new MCP2515(); can.InitCAN(settings.SPI, settings.ChipSelect, GetTimings(settings)); }