From 382f4f4ba3b033809c31f3d1a06e9bba87589ca4 Mon Sep 17 00:00:00 2001 From: Alexander Entinger Date: Fri, 20 Sep 2024 09:50:50 +0200 Subject: [PATCH] Fix: Arduino_CAN::write return value incompatible with interface specification at ArduinoCore-API/HardwareCAN. This fixes #924. --- libraries/Arduino_CAN/src/Arduino_CAN.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/Arduino_CAN/src/Arduino_CAN.cpp b/libraries/Arduino_CAN/src/Arduino_CAN.cpp index de74c22c5..30690e83f 100644 --- a/libraries/Arduino_CAN/src/Arduino_CAN.cpp +++ b/libraries/Arduino_CAN/src/Arduino_CAN.cpp @@ -57,7 +57,10 @@ int Arduino_CAN::write(CanMsg const & msg) CANData, is_standard_id ? CANStandard : CANExtended); - return _can.write(can_msg); + int const rc = _can.write(can_msg); + if (rc == 0) /* mbed returns 0 in case of failed CAN::write(). */ + return -1; /* Note: provide named constant in ArduinoCore-API/HardwareCAN.h, i.e. CAN_WRITE_GENERIC_ERROR */ + return 1; } size_t Arduino_CAN::available()