MySensors Library & Examples  2.3.2
MyCapabilities.h
Go to the documentation of this file.
1 /*
2  * The MySensors Arduino library handles the wireless radio link and protocol
3  * between your home built sensors/actuators and HA controller of choice.
4  * The sensors forms a self healing radio network with optional repeaters. Each
5  * repeater and gateway builds a routing tables in EEPROM which keeps track of the
6  * network topology allowing messages to be routed to nodes.
7  *
8  * Created by Henrik Ekblad <[email protected]>
9  * Copyright (C) 2013-2019 Sensnology AB
10  * Full contributor list: https://github.com/mysensors/MySensors/graphs/contributors
11  *
12  * Documentation: http://www.mysensors.org
13  * Support Forum: http://forum.mysensors.org
14  *
15  * This program is free software; you can redistribute it and/or
16  * modify it under the terms of the GNU General Public License
17  * version 2 as published by the Free Software Foundation.
18  */
24 #ifndef MyCapabilities_h
25 #define MyCapabilities_h
26 
45 // Remote reset
57 #if defined(MY_DISABLE_REMOTE_RESET)
58 #define MY_CAP_RESET "N"
59 #else
60 #define MY_CAP_RESET "R"
61 #endif
62 
63 // OTA firmware update feature
75 #if defined(MY_OTA_FIRMWARE_FEATURE)
76 #define MY_CAP_OTA_FW "O"
77 #else
78 #define MY_CAP_OTA_FW "N"
79 #endif
80 
81 // Transport
97 #if defined(MY_RADIO_RF24) || defined(MY_RADIO_NRF5_ESB)
98 #define MY_CAP_RADIO "N"
99 #elif defined(MY_RADIO_RFM69)
100 #if !defined(MY_RFM69_NEW_DRIVER)
101 // old RFM69 driver
102 #define MY_CAP_RADIO "R"
103 #else
104 // new RFM69 driver
105 #define MY_CAP_RADIO "P"
106 #endif
107 #elif defined(MY_RADIO_RFM95)
108 #define MY_CAP_RADIO "L"
109 #elif defined(MY_RS485)
110 #define MY_CAP_RADIO "S"
111 #else
112 #define MY_CAP_RADIO "-"
113 #endif
114 
115 // Node type
129 #if defined(MY_GATEWAY_FEATURE)
130 #define MY_CAP_TYPE "G"
131 #elif defined(MY_REPEATER_FEATURE)
132 #define MY_CAP_TYPE "R"
133 #elif defined(MY_PASSIVE_NODE)
134 #define MY_CAP_TYPE "P"
135 #else
136 #define MY_CAP_TYPE "N"
137 #endif
138 
139 // Architecture
157 #if defined(ARDUINO_ARCH_SAMD)
158 #define MY_CAP_ARCH "S"
159 #elif defined(ARDUINO_ARCH_NRF5)
160 #define MY_CAP_ARCH "N"
161 #elif defined(ARDUINO_ARCH_ESP8266)
162 #define MY_CAP_ARCH "E"
163 #elif defined(ARDUINO_ARCH_ESP32)
164 #define MY_CAP_ARCH "F"
165 #elif defined(ARDUINO_ARCH_AVR)
166 #define MY_CAP_ARCH "A"
167 #elif defined(ARDUINO_ARCH_STM32F1)
168 #define MY_CAP_ARCH "F"
169 #elif defined(__arm__) && defined(TEENSYDUINO)
170 #define MY_CAP_ARCH "T"
171 #elif defined(__linux__)
172 #define MY_CAP_ARCH "L"
173 #else
174 #define MY_CAP_ARCH "-"
175 #endif
176 
177 // Signing
190 #if defined(MY_SIGNING_ATSHA204)
191 #define MY_CAP_SIGN "A"
192 #elif defined(MY_SIGNING_SOFT)
193 #define MY_CAP_SIGN "S"
194 #else
195 #define MY_CAP_SIGN "-"
196 #endif
197 
198 // RX queue
210 #if defined(MY_RX_MESSAGE_BUFFER_FEATURE)
211 #define MY_CAP_RXBUF "Q"
212 #else
213 #define MY_CAP_RXBUF "-"
214 #endif
215 
216 // Radio encryption
228 #if defined(MY_ENCRYPTION_FEATURE)
229 #define MY_CAP_ENCR "X"
230 #else
231 #define MY_CAP_ENCR "-"
232 #endif
233 
234 
241 #define MY_CAPABILITIES MY_CAP_RESET MY_CAP_RADIO MY_CAP_OTA_FW MY_CAP_TYPE MY_CAP_ARCH MY_CAP_SIGN MY_CAP_RXBUF MY_CAP_ENCR
242  // End of MyCapabilities group
244 #endif /* MyCapabilities_h */