mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-03 17:59:27 +02:00
Refactor CAN sending to interface agnostic
This commit is contained in:
parent
28703453f9
commit
4f508dba86
8 changed files with 78 additions and 57 deletions
|
@ -878,3 +878,41 @@ void check_reset_reason() {
|
|||
break;
|
||||
}
|
||||
}
|
||||
void transmit_can(CAN_frame_t* tx_frame, int interface) {
|
||||
switch (interface) {
|
||||
case CAN_NATIVE:
|
||||
ESP32Can.CANWriteFrame(tx_frame);
|
||||
break;
|
||||
case CANFD_NATIVE:
|
||||
//TODO for stark
|
||||
break;
|
||||
case CAN_ADDON_MCP2515: {
|
||||
#ifdef DUAL_CAN
|
||||
//Struct with ACAN2515 library format, needed to use the MCP2515 library for CAN2
|
||||
CANMessage MCP2515Frame;
|
||||
MCP2515Frame.id = tx_frame->MsgID;
|
||||
//MCP2515Frame.ext = false; //TODO: Howto handle this?
|
||||
MCP2515Frame.len = tx_frame->FIR.B.DLC;
|
||||
for (uint8_t i = 0; i < MCP2515Frame.len; i++) {
|
||||
MCP2515Frame.data[i] = tx_frame->data.u8[i];
|
||||
}
|
||||
can.tryToSend(MCP2515Frame);
|
||||
#endif
|
||||
} break;
|
||||
case CAN_ADDON_FD_MCP2518:
|
||||
#ifdef CAN_FD
|
||||
CANFDMessage MCP2518Frame;
|
||||
MCP2518Frame.id = tx_frame->MsgID;
|
||||
//MCP2518Frame.ext = false; //TODO: Howto handle this?
|
||||
MCP2518Frame.len = tx_frame->FIR.B.DLC;
|
||||
for (uint8_t i = 0; i < MCP2518Frame.len; i++) {
|
||||
MCP2518Frame.data[i] = tx_frame->data.u8[i];
|
||||
}
|
||||
canfd.tryToSend(MCP2518Frame);
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
// Invalid interface sent with function call. TODO: Raise event that coders messed up
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue