Skip to content

Commit 492aa63

Browse files
committed
Add CAN support
1 parent 2e00bf6 commit 492aa63

File tree

5 files changed

+375
-4
lines changed

5 files changed

+375
-4
lines changed

MyConfig.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,12 @@
267267
*/
268268
//#define MY_RS485
269269

270+
/**
271+
* @def MY_CAN
272+
* @brief Define this to use the CAN wired transport for sensor network communication.
273+
*/
274+
//#define MY_CAN
275+
270276
/**
271277
* @def MY_RS485_BAUD_RATE
272278
* @brief The RS485 BAUD rate.
@@ -2275,7 +2281,7 @@
22752281
#endif
22762282

22772283
// Enable sensor network "feature" if one of the transport types was enabled
2278-
#if defined(MY_RADIO_RF24) || defined(MY_RADIO_NRF5_ESB) || defined(MY_RADIO_RFM69) || defined(MY_RADIO_RFM95) || defined(MY_RS485) || defined(MY_PJON)
2284+
#if defined(MY_RADIO_RF24) || defined(MY_RADIO_NRF5_ESB) || defined(MY_RADIO_RFM69) || defined(MY_RADIO_RFM95) || defined(MY_RS485) || defined(MY_PJON) || defined(MY_CAN)
22792285
#define MY_SENSOR_NETWORK
22802286
#endif
22812287

@@ -2443,6 +2449,9 @@
24432449
// PJON
24442450
#define MY_PJON
24452451
#define MY_DEBUG_VERBOSE_PJON
2452+
// CAN
2453+
//TODO add more.
2454+
#define MY_CAN
24462455
// RF24
24472456
#define MY_RADIO_RF24
24482457
#define MY_RADIO_NRF24 //deprecated

MySensors.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,13 @@ MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
290290
#else
291291
#define _PJONCNT 0 //!< _PJONCNT
292292
#endif
293+
#if defined(MY_CAN)
294+
#define __CANCNT 1 //!< __CANCNT
295+
#else
296+
#define __CANCNT 0 //!< __CANCNT
297+
#endif
293298

294-
#if (__RF24CNT + __NRF5ESBCNT + __RFM69CNT + __RFM95CNT + __RS485CNT + _PJONCNT > 1)
299+
#if (__RF24CNT + __NRF5ESBCNT + __RFM69CNT + __RFM95CNT + __RS485CNT + _PJONCNT + __CANCNT> 1)
295300
#error Only one forward link driver can be activated
296301
#endif
297302
#endif //DOXYGEN
@@ -302,7 +307,7 @@ MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
302307
#endif
303308

304309
// TRANSPORT INCLUDES
305-
#if defined(MY_RADIO_RF24) || defined(MY_RADIO_NRF5_ESB) || defined(MY_RADIO_RFM69) || defined(MY_RADIO_RFM95) || defined(MY_RS485) || defined (MY_PJON)
310+
#if defined(MY_RADIO_RF24) || defined(MY_RADIO_NRF5_ESB) || defined(MY_RADIO_RFM69) || defined(MY_RADIO_RFM95) || defined(MY_RS485) || defined (MY_PJON) || defined(MY_CAN)
306311
#include "hal/transport/MyTransportHAL.h"
307312
#include "core/MyTransport.h"
308313

@@ -389,6 +394,9 @@ MY_DEFAULT_RX_LED_PIN in your sketch instead to enable LEDs
389394
#elif defined(MY_PJON)
390395
#include "hal/transport/PJON/driver/PJON.h"
391396
#include "hal/transport/PJON/driver/PJONSoftwareBitBang.h"
397+
#elif defined(MY_CAN)
398+
#include "hal/transport/CAN/MyTransportCAN.cpp"
399+
#endif
392400
#if (PJON_BROADCAST == 0)
393401
#error "You must change PJON_BROADCAST to BROADCAST_ADDRESS (255u) and PJON_NOT_ASSIGNED to other one."
394402
#endif

configure

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ MySensors options:
6262
MQTT publish topic prefix.
6363
--my-mqtt-subscribe-topic-prefix=<PREFIX>
6464
MQTT subscribe topic prefix.
65-
--my-transport=[none|rf24|rfm69|rfm95|rs485]
65+
--my-transport=[none|rf24|rfm69|rfm95|rs485|can]
6666
Set the transport to be used to communicate with other nodes. [rf24]
6767
--my-rf24-channel=<0-125> RF channel for the sensor net. [76]
6868
--my-rf24-pa-level=[RF24_PA_MAX|RF24_PA_HIGH|RF24_PA_LOW|RF24_PA_MIN]
@@ -637,6 +637,8 @@ elif [[ ${transport_type} == "rfm95" ]]; then
637637
CPPFLAGS="-DMY_RADIO_RFM95 $CPPFLAGS"
638638
elif [[ ${transport_type} == "rs485" ]]; then
639639
CPPFLAGS="-DMY_RS485 $CPPFLAGS"
640+
elif [[ ${transport_type} == "can" ]]; then
641+
CPPFLAGS="-DMY_CAN $CPPFLAGS"
640642
else
641643
die "Invalid transport type." 3
642644
fi

0 commit comments

Comments
 (0)