@@ -286,9 +286,18 @@ MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
286
286
#define __RS485CNT 0 //!< __RS485CNT
287
287
#endif
288
288
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
291
299
#endif
300
+
292
301
#endif //DOXYGEN
293
302
294
303
// SANITY CHECK
@@ -297,7 +306,7 @@ MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
297
306
#endif
298
307
299
308
// 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 )
301
310
#include "hal/transport/MyTransportHAL.h"
302
311
#include "core/MyTransport.h"
303
312
@@ -353,39 +362,49 @@ MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
353
362
#endif
354
363
#endif
355
364
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
+
356
370
// Transport drivers
357
371
#if defined(MY_RADIO_RF24 )
358
372
#include "hal/transport/RF24/driver/RF24.cpp"
359
373
#include "hal/transport/RF24/MyTransportRF24.cpp"
360
- #elif defined(MY_RADIO_NRF5_ESB )
374
+ #endif
375
+ #if defined(MY_RADIO_NRF5_ESB )
361
376
#if !defined(ARDUINO_ARCH_NRF5 )
362
377
#error No support for nRF5 radio on this platform
363
378
#endif
364
379
#include "hal/transport/NRF5_ESB/driver/Radio.cpp"
365
380
#include "hal/transport/NRF5_ESB/driver/Radio_ESB.cpp"
366
381
#include "hal/transport/NRF5_ESB/MyTransportNRF5_ESB.cpp"
367
- #elif defined(MY_RS485 )
382
+ #endif
383
+ #if defined(MY_RS485 )
368
384
#if !defined(MY_RS485_HWSERIAL )
369
385
#if defined(__linux__ )
370
386
#error You must specify MY_RS485_HWSERIAL for RS485 transport
371
387
#endif
372
388
#include "drivers/AltSoftSerial/AltSoftSerial.cpp"
373
389
#endif
374
390
#include "hal/transport/RS485/MyTransportRS485.cpp"
375
- #elif defined(MY_RADIO_RFM69 )
391
+ #endif
392
+ #if defined(MY_RADIO_RFM69 )
376
393
#if defined(MY_RFM69_NEW_DRIVER )
377
394
#include "hal/transport/RFM69/driver/new/RFM69_new.cpp"
378
395
#else
379
396
#include "hal/transport/RFM69/driver/old/RFM69_old.cpp"
380
397
#endif
381
398
#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
383
405
#include "hal/transport/RFM95/driver/RFM95.cpp"
384
406
#include "hal/transport/RFM95/MyTransportRFM95.cpp"
385
407
#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
389
408
#endif
390
409
391
410
#include "hal/transport/MyTransportHAL.cpp"
0 commit comments