@@ -286,9 +286,18 @@ MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
286286#define __RS485CNT 0 //!< __RS485CNT
287287#endif
288288
289- #if (__RF24CNT + __NRF5ESBCNT + __RFM69CNT + __RFM95CNT + __RS485CNT > 1 )
290- #error Only one forward link driver can be activated
289+ #define MY_TRANSPORT_COUNT (__RF24CNT + __NRF5ESBCNT + __RFM69CNT + __RFM95CNT + __RS485CNT)
290+
291+ #if (MY_TRANSPORT_COUNT > 1 )
292+ // more than 1 transport requires RX queue
293+ #define MY_TRANSPORT_RX_QUEUE
294+ #else
295+ // RF24 + IRQ requires RX queue
296+ #if defined(MY_RADIO_RF24 ) && defined(MY_RF24_USE_INTERRUPTS )
297+ #define MY_TRANSPORT_RX_QUEUE
298+ #endif
291299#endif
300+
292301#endif //DOXYGEN
293302
294303// SANITY CHECK
@@ -297,7 +306,7 @@ MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
297306#endif
298307
299308// TRANSPORT INCLUDES
300- #if defined( MY_RADIO_RF24 ) || defined( MY_RADIO_NRF5_ESB ) || defined( MY_RADIO_RFM69 ) || defined( MY_RADIO_RFM95 ) || defined( MY_RS485 )
309+ #if ( MY_TRANSPORT_COUNT > 0 )
301310#include "hal/transport/MyTransportHAL.h"
302311#include "core/MyTransport.h"
303312
@@ -353,39 +362,49 @@ MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
353362#endif
354363#endif
355364
365+ #if (defined(MY_RF24_ENABLE_ENCRYPTION ) && defined(MY_RADIO_RF24 )) || (defined(MY_NRF5_ESB_ENABLE_ENCRYPTION ) && defined(MY_RADIO_NRF5_ESB )) || (defined(MY_RFM69_ENABLE_ENCRYPTION ) && defined(MY_RADIO_RFM69 )) || (defined(MY_RFM95_ENABLE_ENCRYPTION ) && defined(MY_RADIO_RFM95 ))
366+ #define MY_TRANSPORT_ENCRYPTION //!< internal flag
367+ #include "hal/transport/MyTransportEncryption.cpp"
368+ #endif
369+
356370// Transport drivers
357371#if defined(MY_RADIO_RF24 )
358372#include "hal/transport/RF24/driver/RF24.cpp"
359373#include "hal/transport/RF24/MyTransportRF24.cpp"
360- #elif defined(MY_RADIO_NRF5_ESB )
374+ #endif
375+ #if defined(MY_RADIO_NRF5_ESB )
361376#if !defined(ARDUINO_ARCH_NRF5 )
362377#error No support for nRF5 radio on this platform
363378#endif
364379#include "hal/transport/NRF5_ESB/driver/Radio.cpp"
365380#include "hal/transport/NRF5_ESB/driver/Radio_ESB.cpp"
366381#include "hal/transport/NRF5_ESB/MyTransportNRF5_ESB.cpp"
367- #elif defined(MY_RS485 )
382+ #endif
383+ #if defined(MY_RS485 )
368384#if !defined(MY_RS485_HWSERIAL )
369385#if defined(__linux__ )
370386#error You must specify MY_RS485_HWSERIAL for RS485 transport
371387#endif
372388#include "drivers/AltSoftSerial/AltSoftSerial.cpp"
373389#endif
374390#include "hal/transport/RS485/MyTransportRS485.cpp"
375- #elif defined(MY_RADIO_RFM69 )
391+ #endif
392+ #if defined(MY_RADIO_RFM69 )
376393#if defined(MY_RFM69_NEW_DRIVER )
377394#include "hal/transport/RFM69/driver/new/RFM69_new.cpp"
378395#else
379396#include "hal/transport/RFM69/driver/old/RFM69_old.cpp"
380397#endif
381398#include "hal/transport/RFM69/MyTransportRFM69.cpp"
382- #elif defined(MY_RADIO_RFM95 )
399+ #endif
400+ #if defined(MY_RADIO_RFM95 )
401+ #if defined(MY_RFM95_RFM69_COMPATIBILITY )
402+ #include "hal/transport/RFM95/driver/RFM95_RFM69.cpp"
403+ #include "hal/transport/RFM95/MyTransportRFM95_RFM69.cpp"
404+ #else
383405#include "hal/transport/RFM95/driver/RFM95.cpp"
384406#include "hal/transport/RFM95/MyTransportRFM95.cpp"
385407#endif
386-
387- #if (defined(MY_RF24_ENABLE_ENCRYPTION ) && defined(MY_RADIO_RF24 )) || (defined(MY_NRF5_ESB_ENABLE_ENCRYPTION ) && defined(MY_RADIO_NRF5_ESB )) || (defined(MY_RFM69_ENABLE_ENCRYPTION ) && defined(MY_RADIO_RFM69 )) || (defined(MY_RFM95_ENABLE_ENCRYPTION ) && defined(MY_RADIO_RFM95 ))
388- #define MY_TRANSPORT_ENCRYPTION //!< ïnternal flag
389408#endif
390409
391410#include "hal/transport/MyTransportHAL.cpp"
0 commit comments