message: Create initial list of CAN commands
diff: class CANSimple {
  public:
  + enum {
  + MSG_NMT_CTRL = 0x000, // CANOpen NMT Message
  + MSG_SYNC_CTRL = 0x080, // CANOpen SYNC message
  + MSG_HEARTBEAT_CMD = 0x700, // CANOpen NMT Heartbeat
  + MSG_EMERGENCY = 0x080, // CANOpen Emergency Message
  + MSG_GET_MOTOR_ERROR = 0x001, // Errors
  + MSG_GET_ENCODER_ERROR,
  + MSG_GET_CONTROLLER_ERROR,
  + MSG_GET_SENSORLESS_ERROR,
  + MSG_GET_VBUS_VOLTAGE, // ODrive-level properties
  + MSG_GET_SERIAL_NUMBER,
  + MSG_GET_HW_VERSION,
  + MSG_GET_FW_VERSION,
  + MSG_REBOOT_ODRIVE,
  + MSG_SAVE_CONFIG,
  + MSG_ERASE_CONFIG,
  + MSG_SET_AXIS_NODE_ID, // Axis properties
  + MSG_SET_AXIS_REQUESTED_STATE,
  + MSG_SET_STARTUP_CONFIG,
  + MSG_SET_MOTOR_PRECALIBRATED, // Motor properties
  + MSG_GET_MOTOR_CURRENT_LIM,
  + MSG_SET_MOTOR_CURRENT_LIM,
  + MSG_SET_MOTOR_POLE_PAIRS,
  + MSG_GET_ENCODER_CPR, // Encoder Properties
  + MSG_SET_ENCODER_CPR,
  + MSG_GET_ENCODER_INDEX_FOUND,
  + MSG_GET_ENCODER_POS_ESTIMATE,
  + MSG_GET_ENCODER_VEL_ESTIMATE,
  + MSG_SET_ENCODER_USE_INDEX,
  + MSG_SET_ENCODER_PRECALIBRATED,
  + MSG_MOVE_TO_POS, // Controller properties
  + MSG_SET_POS_SETPOINT,
  + MSG_SET_VEL_SETPOINT,
  + MSG_SET_CUR_SETPOINT,
  + MSG_SET_VEL_LIMIT,
  + MSG_START_ANTICOGGING
  + };
  +
  static void handle_can_message(CAN_message_t& msg);
  static void send_heartbeat(Axis* axis);
  