MySensors Library & Examples  2.3.2-36-g2e00bf6
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-2020 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
158 #if defined(ARDUINO_ARCH_SAMD)
159 #define MY_CAP_ARCH "S"
160 #elif defined(ARDUINO_ARCH_NRF5)
161 #define MY_CAP_ARCH "N"
162 #elif defined(ARDUINO_ARCH_ESP8266)
163 #define MY_CAP_ARCH "E"
164 #elif defined(ARDUINO_ARCH_ESP32)
165 #define MY_CAP_ARCH "F"
166 #elif defined(ARDUINO_ARCH_AVR)
167 #define MY_CAP_ARCH "A"
168 #elif defined(ARDUINO_ARCH_STM32F1)
169 #define MY_CAP_ARCH "M"
170 #elif defined(__arm__) && defined(TEENSYDUINO)
171 #define MY_CAP_ARCH "T"
172 #elif defined(__linux__)
173 #define MY_CAP_ARCH "L"
174 #else
175 #define MY_CAP_ARCH "-"
176 #endif
177 
178 // Signing
191 #if defined(MY_SIGNING_ATSHA204)
192 #define MY_CAP_SIGN "A"
193 #elif defined(MY_SIGNING_SOFT)
194 #define MY_CAP_SIGN "S"
195 #else
196 #define MY_CAP_SIGN "-"
197 #endif
198 
199 // RX queue
211 #if defined(MY_RX_MESSAGE_BUFFER_FEATURE)
212 #define MY_CAP_RXBUF "Q"
213 #else
214 #define MY_CAP_RXBUF "-"
215 #endif
216 
217 // Radio encryption
229 #if defined(MY_ENCRYPTION_FEATURE)
230 #define MY_CAP_ENCR "X"
231 #else
232 #define MY_CAP_ENCR "-"
233 #endif
234 
235 
242 #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
243  // End of MyCapabilities group
245 #endif /* MyCapabilities_h */