Haptic Controller
Loading...
Searching...
No Matches
odrive_callbacks.hpp
Go to the documentation of this file.
1#pragma once
2#include <Arduino.h>
3#include "ODriveCAN.h"
4#include <FlexCAN_T4.h>
5#include "ODriveFlexCAN.hpp"
6#include "teensy_can.h"
7#include "defines.h"
10
14void onFeedback(Get_Encoder_Estimates_msg_t & msg, void * user_data)
15{
16 ODriveUserData * odrv_user_data = static_cast<ODriveUserData *>(user_data);
17 odrv_user_data->last_feedback = msg;
18 odrv_user_data->received_feedback = true;
19}
20
24void onHeartbeat(Heartbeat_msg_t & msg, void * user_data)
25{
26 ODriveUserData * odrv_user_data = static_cast<ODriveUserData *>(user_data);
27 odrv_user_data->last_heartbeat = msg;
28 odrv_user_data->received_heartbeat = true;
29 odrv_user_data->last_heartbeat_time = millis();
30 if (odrv_user_data->last_error != odrv_user_data->last_heartbeat.Axis_Error) {
31 odrv_user_data->last_error = odrv_user_data->last_heartbeat.Axis_Error;
32 odrive_print_error(odrv_user_data->last_error);
33 }
34}
35
39void onTemperature(Get_Temperature_msg_t & msg, void * user_data)
40{
41 ODriveUserData * odrv_user_data = static_cast<ODriveUserData *>(user_data);
42 odrv_user_data->last_temperature = msg;
43 odrv_user_data->received_temperature = true;
44}
void onTemperature(Get_Temperature_msg_t &msg, void *user_data)
: Called every time a temperature message arrives from the ODrive
void onFeedback(Get_Encoder_Estimates_msg_t &msg, void *user_data)
: Called every time a feedback message arrives from the ODrive
void onHeartbeat(Heartbeat_msg_t &msg, void *user_data)
: Called every time a heartbeat message arrives from the ODrive
void odrive_print_error(uint32_t error)
Print Odrive Error Code.
: The Struct to contain feedback from the ODrive
Get_Encoder_Estimates_msg_t last_feedback
bool received_temperature
uint32_t last_heartbeat_time
uint32_t last_error
Get_Temperature_msg_t last_temperature
Heartbeat_msg_t last_heartbeat