PER Firmware
Loading...
Searching...
No Matches
amk.h
Go to the documentation of this file.
1
10#ifndef AMK_H
11#define AMK_H
12
13#include "can_library/generated/MCAN.h"
14#include <stdint.h>
15
16typedef struct {
17 void (*set_function)(void);
18 INVA_CRIT_data_t *crit;
19 INVA_INFO_data_t *info;
20 INVA_TEMPS_data_t *temps;
21 INVA_ERR_1_data_t *err1;
22 INVA_ERR_2_data_t *err2;
24
25typedef struct {
26 void (*set_function)(void);
27
28 // Outbound command data
29 INVA_SET_data_t set;
30
31 // Direct pointers to received CAN library data structures
32 // ! cast all motor objects to INVA
33 INVA_CRIT_data_t *crit;
34 INVA_INFO_data_t *info;
35 INVA_TEMPS_data_t *temps;
36 INVA_ERR_1_data_t *err1;
37 INVA_ERR_2_data_t *err2;
38
39 // Internal state
40 AMK_state_t state;
41 AMK_state_t next_state;
42} AMK_t;
43
44void AMK_init(AMK_t *amk, const AMK_config_t *config);
45
46void AMK_reset(AMK_t* amk);
47void AMK_set_torque(AMK_t* amk, int16_t torque_percent);
48void AMK_periodic(AMK_t* amk, bool is_precharge_complete);
49
50#endif // AMK_H
void AMK_init(AMK_t *amk, const AMK_config_t *config)
Definition amk.c:20
void AMK_set_torque(AMK_t *amk, int16_t torque_percent)
Definition amk.c:46
void AMK_periodic(AMK_t *amk, bool is_precharge_complete)
Definition amk.c:67
void AMK_reset(AMK_t *amk)
Definition amk.c:40
static ethernet_config_t config
Definition ethernet.c:22
Definition amk.h:16
INVA_ERR_2_data_t * err2
Definition amk.h:22
INVA_INFO_data_t * info
Definition amk.h:19
INVA_ERR_1_data_t * err1
Definition amk.h:21
INVA_TEMPS_data_t * temps
Definition amk.h:20
INVA_CRIT_data_t * crit
Definition amk.h:18
Definition amk.h:25
INVA_INFO_data_t * info
Definition amk.h:34
AMK_state_t state
Definition amk.h:40
INVA_CRIT_data_t * crit
Definition amk.h:33
INVA_ERR_1_data_t * err1
Definition amk.h:36
AMK_state_t next_state
Definition amk.h:41
INVA_SET_data_t set
Definition amk.h:29
INVA_TEMPS_data_t * temps
Definition amk.h:35
INVA_ERR_2_data_t * err2
Definition amk.h:37