*\r
* Defined in commands.c */\r
extern xSemaphoreHandle canMsgReceived;\r
+extern xSemaphoreHandle canMsgSent;\r
/** @brief Semaphore blocking task when it waits for interrupt signaling end of the conversion\r
*\r
* Defined in commands.c */\r
* Defined in commands.c */\r
extern ADCData_t adcData;\r
extern canBASE_t *canDst;\r
+extern canBASE_t *canSrc;\r
extern uint32_t canMsgBox;\r
/* USER CODE END */\r
\r
void canErrorNotification(canBASE_t *node, uint32_t notification)\r
{\r
/* USER CODE BEGIN (13) */\r
- if (notification != canERROR_OK) while(1) ; // Critical error during CAN transaction\r
+ if (node == canSrc) {\r
+ xSemaphoreGiveFromISR(canMsgSent, NULL);\r
+ }\r
+ if (node == canDst) {\r
+ xSemaphoreGiveFromISR(canMsgReceived, NULL);\r
+ }\r
/* USER CODE END */\r
\r
}\r
{\r
if (node == canDst) {\r
/* node 2 - receive testloopback message complete */\r
- while(!canIsRxMessageArrived(node, canMsgBox));\r
+ while(!canIsRxMessageArrived(node, canMsgBox))\r
+ ;\r
xSemaphoreGiveFromISR(canMsgReceived, NULL);\r
}\r
+ if (node == canSrc) {\r
+ xSemaphoreGiveFromISR(canMsgSent, NULL);\r
+ }\r
}\r
\r
/* USER CODE END */\r