From 29781d74a8c8ba2d4306d16101cdd2388c3d9c2f Mon Sep 17 00:00:00 2001 From: Gabriel Zerbib Date: Wed, 22 Apr 2026 16:23:00 +0200 Subject: [PATCH 1/2] Make CANCommander compile only when SimpleCANio.h exists --- src/comms/can/CANCommander.cpp | 3 +++ src/comms/can/CANCommander.h | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/comms/can/CANCommander.cpp b/src/comms/can/CANCommander.cpp index 9ad6cbe..7f0a03d 100644 --- a/src/comms/can/CANCommander.cpp +++ b/src/comms/can/CANCommander.cpp @@ -1,3 +1,4 @@ +#if __has_include("SimpleCANio.h") #include "CANCommander.h" CANCommander::CANCommander(HardwareCAN& can, uint8_t addr, bool echo_enabled, int baudrate, bool no_filter) @@ -191,3 +192,5 @@ RegisterIO& CANCommander::operator>>(float& value) { } return *this; } + +#endif \ No newline at end of file diff --git a/src/comms/can/CANCommander.h b/src/comms/can/CANCommander.h index 7ebcd5a..e4636dc 100644 --- a/src/comms/can/CANCommander.h +++ b/src/comms/can/CANCommander.h @@ -1,5 +1,6 @@ #ifndef CANCOMMANDER_H #define CANCOMMANDER_H +#if __has_include("SimpleCANio.h") #include "SimpleFOC.h" #include "../SimpleFOCRegisters.h" @@ -82,4 +83,5 @@ class CANCommander : public RegisterIO uint8_t rx_available = 0; }; +#endif #endif \ No newline at end of file From 9f8c767372056d3085881f3a5eba10730ffa9738 Mon Sep 17 00:00:00 2001 From: Gabriel Zerbib Date: Wed, 22 Apr 2026 16:30:33 +0200 Subject: [PATCH 2/2] Check for C++17 before __has_include for SimpleCANio --- src/comms/can/CANCommander.cpp | 2 +- src/comms/can/CANCommander.h | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/comms/can/CANCommander.cpp b/src/comms/can/CANCommander.cpp index 7f0a03d..3bec371 100644 --- a/src/comms/can/CANCommander.cpp +++ b/src/comms/can/CANCommander.cpp @@ -1,4 +1,4 @@ -#if __has_include("SimpleCANio.h") +#if has_SimpleCANio #include "CANCommander.h" CANCommander::CANCommander(HardwareCAN& can, uint8_t addr, bool echo_enabled, int baudrate, bool no_filter) diff --git a/src/comms/can/CANCommander.h b/src/comms/can/CANCommander.h index e4636dc..e634731 100644 --- a/src/comms/can/CANCommander.h +++ b/src/comms/can/CANCommander.h @@ -1,7 +1,12 @@ #ifndef CANCOMMANDER_H #define CANCOMMANDER_H -#if __has_include("SimpleCANio.h") +#if __cplusplus >= 201703L //Check for C++17 or later + #if __has_include("SimpleCANio.h") //C++17 required for __has_include + #define has_SimpleCANio 1 + #endif +#endif +#ifdef has_SimpleCANio #include "SimpleFOC.h" #include "../SimpleFOCRegisters.h" #include "../RegisterIO.h"