@@ -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
@@ -352,39 +361,49 @@ MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
352
361
#endif
353
362
#endif
354
363
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
+
355
369
// Transport drivers
356
370
#if defined(MY_RADIO_RF24 )
357
371
#include "hal/transport/RF24/driver/RF24.cpp"
358
372
#include "hal/transport/RF24/MyTransportRF24.cpp"
359
- #elif defined(MY_RADIO_NRF5_ESB )
373
+ #endif
374
+ #if defined(MY_RADIO_NRF5_ESB )
360
375
#if !defined(ARDUINO_ARCH_NRF5 )
361
376
#error No support for nRF5 radio on this platform
362
377
#endif
363
378
#include "hal/transport/NRF5_ESB/driver/Radio.cpp"
364
379
#include "hal/transport/NRF5_ESB/driver/Radio_ESB.cpp"
365
380
#include "hal/transport/NRF5_ESB/MyTransportNRF5_ESB.cpp"
366
- #elif defined(MY_RS485 )
381
+ #endif
382
+ #if defined(MY_RS485 )
367
383
#if !defined(MY_RS485_HWSERIAL )
368
384
#if defined(__linux__ )
369
385
#error You must specify MY_RS485_HWSERIAL for RS485 transport
370
386
#endif
371
387
#include "drivers/AltSoftSerial/AltSoftSerial.cpp"
372
388
#endif
373
389
#include "hal/transport/RS485/MyTransportRS485.cpp"
374
- #elif defined(MY_RADIO_RFM69 )
390
+ #endif
391
+ #if defined(MY_RADIO_RFM69 )
375
392
#if defined(MY_RFM69_NEW_DRIVER )
376
393
#include "hal/transport/RFM69/driver/new/RFM69_new.cpp"
377
394
#else
378
395
#include "hal/transport/RFM69/driver/old/RFM69_old.cpp"
379
396
#endif
380
397
#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
382
404
#include "hal/transport/RFM95/driver/RFM95.cpp"
383
405
#include "hal/transport/RFM95/MyTransportRFM95.cpp"
384
406
#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
388
407
#endif
389
408
390
409
#include "hal/transport/MyTransportHAL.cpp"
0 commit comments