Modify & transmit params via CAN

This commit is contained in:
2023-04-04 22:05:50 +02:00
parent a5f10be4fd
commit 253b10ba15
10 changed files with 199 additions and 24 deletions

View File

@ -13,6 +13,7 @@
#define CAN_ID_AMS_STATUS 0xA
#define CAN_ID_MISSION_SELECTED 0x400
#define CAN_ID_STW_PARAM_SET 0x402
#define CAN_ID_AS_MISSION_FB 0x410
#define CAN_ID_STW_STATUS 0x412
#define CAN_ID_SHUNT_CURRENT 0x521
@ -33,8 +34,6 @@ void vehicle_thread_entry(ULONG hfdcan_addr) {
ftcan_add_filter(CAN_ID_SHUNT_VOLTAGE3, 0x7FF);
while (1) {
uint8_t data[] = {0xFF, 0xEE};
ftcan_transmit(0x456, data, 2);
tx_thread_sleep(10);
}
}
@ -44,6 +43,14 @@ void vehicle_select_mission(Mission mission) {
ftcan_transmit(CAN_ID_MISSION_SELECTED, &mission_int, 1);
}
void vehicle_broadcast_param(ParamType param, int32_t value) {
uint8_t data[5];
uint8_t *ptr = data;
ptr = ftcan_marshal_unsigned(ptr, param, 1);
ptr = ftcan_marshal_signed(ptr, value, 4);
ftcan_transmit(CAN_ID_STW_PARAM_SET, data, 5);
}
void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
switch (id) {
case CAN_ID_AMS_STATUS: