001 /*----------------------------------------------------------------------------*/
002 /* Copyright (c) FIRST 2008-2012. All Rights Reserved. */
003 /* Open Source Software - may be modified and shared by FRC teams. The code */
004 /* must be accompanied by the FIRST BSD license file in the root directory of */
005 /* the project. */
006 /*----------------------------------------------------------------------------*/
007
008 package edu.wpi.first.wpilibj.can;
009
010 /**
011 * Exception indicating that the CAN driver layer has not been initialized.
012 * This happens when an entry-point is called before a CAN driver plugin
013 * has been installed.
014 */
015 public class CANJaguarVersionException extends RuntimeException {
016
017 public static final int kMinLegalFIRSTFirmwareVersion = 101;
018 // 3330 was the first shipping RDK firmware version for the Jaguar
019 public static final int kMinRDKFirmwareVersion = 3330;
020
021 public CANJaguarVersionException(int deviceNumber, int fwVersion) {
022 super(getString(deviceNumber, fwVersion));
023 System.out.println("fwVersion[" + deviceNumber + "]: " + fwVersion);
024 }
025
026 static String getString(int deviceNumber, int fwVersion) {
027 String msg;
028 if (fwVersion < kMinRDKFirmwareVersion) {
029 msg = "Jaguar " + deviceNumber +
030 " firmware is too old. It must be updated to at least version " +
031 Integer.toString(kMinLegalFIRSTFirmwareVersion) +
032 " of the FIRST approved firmware!";
033 } else {
034 msg = "Jaguar " + deviceNumber +
035 " firmware is not FIRST approved. It must be updated to at least version " +
036 Integer.toString(kMinLegalFIRSTFirmwareVersion) +
037 " of the FIRST approved firmware!";
038 }
039 return msg;
040 }
041 }