@@ -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
@@ -352,39 +361,49 @@ MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
352361#endif
353362#endif
354363
364+ #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 ))
365+ #define MY_TRANSPORT_ENCRYPTION //!< internal flag
366+ #include "hal/transport/MyTransportEncryption.cpp"
367+ #endif
368+
355369// Transport drivers
356370#if defined(MY_RADIO_RF24 )
357371#include "hal/transport/RF24/driver/RF24.cpp"
358372#include "hal/transport/RF24/MyTransportRF24.cpp"
359- #elif defined(MY_RADIO_NRF5_ESB )
373+ #endif
374+ #if defined(MY_RADIO_NRF5_ESB )
360375#if !defined(ARDUINO_ARCH_NRF5 )
361376#error No support for nRF5 radio on this platform
362377#endif
363378#include "hal/transport/NRF5_ESB/driver/Radio.cpp"
364379#include "hal/transport/NRF5_ESB/driver/Radio_ESB.cpp"
365380#include "hal/transport/NRF5_ESB/MyTransportNRF5_ESB.cpp"
366- #elif defined(MY_RS485 )
381+ #endif
382+ #if defined(MY_RS485 )
367383#if !defined(MY_RS485_HWSERIAL )
368384#if defined(__linux__ )
369385#error You must specify MY_RS485_HWSERIAL for RS485 transport
370386#endif
371387#include "drivers/AltSoftSerial/AltSoftSerial.cpp"
372388#endif
373389#include "hal/transport/RS485/MyTransportRS485.cpp"
374- #elif defined(MY_RADIO_RFM69 )
390+ #endif
391+ #if defined(MY_RADIO_RFM69 )
375392#if defined(MY_RFM69_NEW_DRIVER )
376393#include "hal/transport/RFM69/driver/new/RFM69_new.cpp"
377394#else
378395#include "hal/transport/RFM69/driver/old/RFM69_old.cpp"
379396#endif
380397#include "hal/transport/RFM69/MyTransportRFM69.cpp"
381- #elif defined(MY_RADIO_RFM95 )
398+ #endif
399+ #if defined(MY_RADIO_RFM95 )
400+ #if defined(MY_RFM95_RFM69_COMPATIBILITY )
401+ #include "hal/transport/RFM95/driver/RFM95_RFM69.cpp"
402+ #include "hal/transport/RFM95/MyTransportRFM95_RFM69.cpp"
403+ #else
382404#include "hal/transport/RFM95/driver/RFM95.cpp"
383405#include "hal/transport/RFM95/MyTransportRFM95.cpp"
384406#endif
385-
386- #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 ))
387- #define MY_TRANSPORT_ENCRYPTION //!< ïnternal flag
388407#endif
389408
390409#include "hal/transport/MyTransportHAL.cpp"
0 commit comments