26#ifndef ACTUATORS_ESC32_H
27#define ACTUATORS_ESC32_H
30#include "generated/airframe.h"
32#define ESC32_RESPONSE_CNT 12
36#define ESC32_CAN_LCC_MASK ((uint32_t)0x3<<30)
37#define ESC32_CAN_LCC_EXCEPTION ((uint32_t)0x0<<30)
38#define ESC32_CAN_LCC_HIGH ((uint32_t)0x1<<30)
39#define ESC32_CAN_LCC_NORMAL ((uint32_t)0x2<<30)
40#define ESC32_CAN_LCC_INFO ((uint32_t)0x3<<30)
44#define ESC32_CAN_TT_MASK ((uint32_t)0x1<<29)
45#define ESC32_CAN_TT_GROUP ((uint32_t)0x0<<29)
46#define ESC32_CAN_TT_NODE ((uint32_t)0x1<<29)
50#define ESC32_CAN_FID_MASK ((uint32_t)0xf<<25)
51#define ESC32_CAN_FID_RESET_BUS ((uint32_t)0x0<<25)
52#define ESC32_CAN_FID_ACK ((uint32_t)0x1<<25)
53#define ESC32_CAN_FID_NACK ((uint32_t)0x2<<25)
54#define ESC32_CAN_FID_CMD ((uint32_t)0x3<<25)
55#define ESC32_CAN_FID_GET ((uint32_t)0x4<<25)
56#define ESC32_CAN_FID_SET ((uint32_t)0x5<<25)
57#define ESC32_CAN_FID_REPLY ((uint32_t)0x6<<25)
58#define ESC32_CAN_FID_REQ_ADDR ((uint32_t)0x7<<25)
59#define ESC32_CAN_FID_GRANT_ADDR ((uint32_t)0x8<<25)
60#define ESC32_CAN_FID_ERROR ((uint32_t)0x9<<25)
61#define ESC32_CAN_FID_PING ((uint32_t)0xa<<25)
62#define ESC32_CAN_FID_TELEM ((uint32_t)0xb<<25)
66#define ESC32_CAN_DOC_MASK ((uint32_t)0x3f<<19)
70#define ESC32_CAN_SID_MASK ((uint32_t)0x1f<<14)
74#define ESC32_CAN_TID_MASK ((uint32_t)0x1f<<9)
78#define ESC32_CAN_SEQ_MASK ((uint32_t)0x3f<<3)
205#define ActuatorESC32Set(_i, _v) { actuators_esc32_set(_i, _v); }
206#define ActuatorsESC32Init() actuators_esc32_init()
207#define ActuatorsESC32Commit() actuators_esc32_commit()
uint8_t config_idx
Selected ESC.
uint16_t cmds[SERVOS_ESC32_NB]
Commands which need to be committed.
struct ESC32_com escs[SERVOS_ESC32_NB]
The ESCs connected via CAN.
uint8_t type
The type of ESC.
@ ESC32_CAN_DATA_RUN_MODE
@ ESC32_CAN_DATA_PARAM_NAME2
@ ESC32_CAN_DATA_PARAM_NAME1
@ ESC32_CAN_DATA_INPUT_MODE
@ ESC32_CAN_DATA_PARAM_ID
void actuators_esc32_commit(void)
Commits the commands and sends them to the ESCs.
#define ESC32_RESPONSE_CNT
struct ESC32 actuators_esc32
enum ESC32_esc_status status
The current status of the esc.
uint8_t data[8]
The data of the response.
uint8_t network_id
Index in the array +1.
@ ESC32_CAN_CMD_TELEM_VALUE
@ ESC32_CAN_CMD_SETPOINT12
@ ESC32_CAN_CMD_CFG_WRITE
@ ESC32_CAN_CMD_CFG_DEFAULT
@ ESC32_CAN_CMD_SETPOINT16
@ ESC32_CAN_CMD_USER_DEFINED
@ ESC32_CAN_CMD_SETPOINT10
@ ESC32_CAN_CMD_TELEM_RATE
void actuators_esc32_config_cmd(uint8_t i)
When receiving a configuration setting command.
uint32_t uuid
The UUID of the ESC.
uint8_t can_seq_idx
CAN seq ID used for communicating.
enum ESC32_status status
The current status of all actuators.
uint8_t escs_sorted[SERVOS_ESC32_NB]
The ESCs sorted by uuid.
uint8_t can_id
The CAN identifier.
enum ESC32_config_cmd config_cmd
The command.
void actuators_esc32_init(void)
Initializes the ESCs.
struct ESC32_response responses[ESC32_RESPONSE_CNT]
Responses of CAN messages.
uint32_t melody_status
The status of the melody.
void actuators_esc32_set(uint8_t i, uint16_t v)
Set the commands (either RPM or duty cycle)
uint8_t fid
The FID of the response.
unsigned short uint16_t
Typedef defining 16 bit unsigned short type.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.