Skip to content

Commit 77b804d

Browse files
authored
changes to propagate fault by can (#517)
1 parent 9aba2fe commit 77b804d

2 files changed

Lines changed: 7 additions & 7 deletions

File tree

Src/HALAL/Services/Communication/FDCAN/FDCAN.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,7 @@ bool FDCAN::transmit(uint8_t id, uint32_t message_id, const char* data, FDCAN::D
7676
return true;
7777
}
7878

79-
void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs){
80-
// FDCAN::read(FDCAN::handle_to_id[hfdcan],&packet);
81-
// if(packet.identifier == FDCAN::ID::FAULT_ID){
82-
// ErrorHandler("FAULT PROPAGATED via CAN");
83-
// }
84-
}
79+
void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs){}
8580

8681
bool FDCAN::read(uint8_t id, FDCAN::Packet* data){
8782
if (not FDCAN::registered_fdcan.contains(id)) {
@@ -94,7 +89,9 @@ bool FDCAN::read(uint8_t id, FDCAN::Packet* data){
9489
}
9590
FDCAN_RxHeaderTypeDef header_buffer = FDCAN_RxHeaderTypeDef();
9691
HAL_FDCAN_GetRxMessage(FDCAN::registered_fdcan.at(id)->hfdcan, FDCAN::registered_fdcan.at(id)->rx_location, &header_buffer, data->rx_data.data());
97-
92+
if(data->identifier == FDCAN::ID::FAULT_ID){
93+
ErrorHandler("FAULT PROPAGATED via CAN");
94+
}
9895
data->identifier = header_buffer.Identifier;
9996
data->data_length = static_cast<FDCAN::DLC>(header_buffer.DataLength);
10097

Src/ST-LIB_HIGH/Protections/ProtectionManager.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ void ProtectionManager::propagate_fault() {
143143
for (OrderProtocol* socket : OrderProtocol::sockets) {
144144
socket->send_order(ProtectionManager::fault_order);
145145
}
146+
for(const auto& [key,value] : FDCAN::registered_fdcan){
147+
FDCAN::transmit(key,FDCAN::ID::FAULT_ID,NULL);
148+
}
146149
}
147150

148151
Boards::ID ProtectionManager::board_id = Boards::ID::NOBOARD;

0 commit comments

Comments
 (0)