#######################################
# Datatypes (KEYWORD1)
#######################################
MyMessage	KEYWORD1

#######################################
# Methods and Functions (KEYWORD2)
#######################################
present	KEYWORD2
send	KEYWORD2
sendSketchInfo	KEYWORD2
sendBatteryLevel	KEYWORD2
sendHeartbeat	KEYWORD2
getNodeId	KEYWORD2
request	KEYWORD2
requestTime	KEYWORD2
saveState	KEYWORD2
loadState	KEYWORD2
wait	KEYWORD2
receive	KEYWORD2
receiveTime	KEYWORD2
loop	KEYWORD2
before	KEYWORD2
setup	KEYWORD2
presentation	KEYWORD2
sleep	KEYWORD2
smartSleep	KEYWORD2

######################################
# Constants (LITERAL1)
#######################################
# General
MY_BAUD_RATE	LITERAL1
MY_CORE_ONLY	LITERAL1
MY_CORE_MIN_VERSION	LITERAL1
MY_CORE_VERSION	LITERAL1
MY_CRITICAL_SECTION	LITERAL1
MY_DISABLE_RAM_ROUTING_TABLE_FEATURE	LITERAL1
MY_DISABLE_REMOTE_RESET	LITERAL1
MY_DISABLED_SERIAL	LITERAL1
MY_INDICATION_HANDLER	LITERAL1
MY_RX_MESSAGE_BUFFER_SIZE	LITERAL1
MY_RX_MESSAGE_BUFFER_FEATURE	LITERAL1
MY_SERIAL_OUTPUT_SIZE	LITERAL1
MY_SLEEP_NOT_POSSIBLE	LITERAL1
MY_SPLASH_SCREEN_DISABLED	LITERAL1
MY_WAKE_UP_BY_TIMER	LITERAL1

# transport
AUTO	LITERAL1
MY_CORE_COMPATIBILITY_CHECK	LITERAL1
MY_DEBUG_VERBOSE_TRANSPORT	LITERAL1
MY_NODE_ID	LITERAL1
MY_PARENT_NODE_ID	LITERAL1
MY_PARENT_NODE_IS_STATIC	LITERAL1
MY_PASSIVE_NODE	LITERAL1
MY_RAM_ROUTING_TABLE_FEATURE	LITERAL1
MY_REGISTRATION_CONTROLLER	LITERAL1
MY_REGISTRATION_DEFAULT	LITERAL1
MY_REGISTRATION_FEATURE	LITERAL1
MY_REGISTRATION_RETRIES	LITERAL1
MY_REPEATER_FEATURE	LITERAL1
MY_ROUTING_TABLE_SAVE_INTERVAL_MS	LITERAL1
MY_SIGNAL_REPORT_ENABLED	LITERAL1
MY_SLEEP_TRANSPORT_RECONNECT_TIMEOUT_MS	LITERAL1
MY_SMART_SLEEP_WAIT_DURATION_MS	LITERAL1
MY_TRANSPORT_CHKUPL_INTERVAL_MS	LITERAL1
MY_TRANSPORT_DISCOVERY_INTERVAL_MS	LITERAL1
MY_TRANSPORT_MAX_TSM_FAILURES	LITERAL1
MY_TRANSPORT_MAX_TX_FAILURES	LITERAL1
MY_TRANSPORT_SANITY_CHECK	LITERAL1
MY_TRANSPORT_SANITY_CHECK_INTERVAL	LITERAL1
MY_TRANSPORT_SANITY_CHECK_INTERVAL_MS	LITERAL1
MY_TRANSPORT_STATE_RETRIES	LITERAL1
MY_TRANSPORT_STATE_TIMEOUT_MS	LITERAL1
MY_TRANSPORT_TIMEOUT_EXT_FAILURE_STATE_MS	LITERAL1
MY_TRANSPORT_TIMEOUT_FAILURE_STATE_MS	LITERAL1
MY_TRANSPORT_UPLINK_CHECK_DISABLED	LITERAL1
MY_TRANSPORT_WAIT_READY_MS	LITERAL1

# debug
MY_DEBUG	LITERAL1
MY_DEBUGDEVICE	LITERAL1
MY_DEBUG_VERBOSE_GATEWAY	LITERAL1
MY_SPECIAL_DEBUG	LITERAL1

# OTA
MY_DEBUG_OTA 	LITERAL1
MY_DEBUG_OTA_DISABLE_ECHO 	LITERAL1
MY_DEBUG_VERBOSE_OTA_UPDATE	LITERAL1
MY_DEFAULT_ERR_LED_PIN	LITERAL1
MY_DEFAULT_LED_BLINK_PERIOD	LITERAL1
MY_DEFAULT_RX_LED_PIN	LITERAL1
MY_DEFAULT_TX_LED_PIN	LITERAL1
MY_INCLUSION_MODE_FEATURE	LITERAL1
MY_INCLUSION_BUTTON_FEATURE	LITERAL1
MY_INCLUSION_MODE_BUTTON_PIN	LITERAL1
MY_INCLUSION_MODE_DURATION	LITERAL1
MY_INCLUSION_LED_PIN	LITERAL1
MY_OTA_FIRMWARE_FEATURE	LITERAL1
MY_OTA_FLASH_SS	LITERAL1
MY_OTA_FLASH_JDECID	LITERAL1
MY_OTA_LOG_RECEIVER_FEATURE	LITERAL1
MY_OTA_LOG_SENDER_FEATURE	LITERAL1
MY_OTA_USE_I2C_EEPROM	LITERAL1
MY_SPIFLASH_SST25TYPE	LITERAL1
MY_WITH_LEDS_BLINKING_INVERSE	LITERAL1
MY_OTA_RETRY			LITERAL1
MY_OTA_RETRY_DELAY		LITERAL1

# Signing
MY_DEBUG_VERBOSE_SIGNING	LITERAL1
MY_ENCRYPTION_SIMPLE_PASSWD	LITERAL1
MY_NODE_LOCK_FEATURE	LITERAL1
MY_NODE_UNLOCK_PIN	LITERAL1
MY_NODE_LOCK_COUNTER_MAX	LITERAL1
MY_SECURITY_SIMPLE_PASSWD	LITERAL1
MY_SIGNING_ATSHA204	LITERAL1
MY_SIGNING_ATSHA204_PIN	LITERAL1
MY_SIGNING_NODE_WHITELISTING	LITERAL1
MY_SIGNING_SIMPLE_PASSWD	LITERAL1
MY_SIGNING_SOFT	LITERAL1
MY_SIGNING_SOFT_RANDOMSEED_PIN	LITERAL1
MY_SIGNING_REQUEST_SIGNATURES	LITERAL1
MY_SIGNING_WEAK_SECURITY	LITERAL1
MY_VERIFICATION_TIMEOUT_MS	LITERAL1

# Random
MY_HW_HAS_GETENTROPY	LITERAL1
hwGetentropy	KEYWORD2

# TinyGSM
MY_GATEWAY_TINYGSM	LITERAL1
MY_GSM_APN	LITERAL1
MY_GSM_BAUDRATE	LITERAL1
MY_GSM_PIN	LITERAL1
MY_GSM_PSW	LITERAL1
MY_GSM_RX	LITERAL1
MY_GSM_SSID	LITERAL1
MY_GSM_TX	LITERAL1
MY_GSM_USR	LITERAL1

# SoftSPI
MY_SOFTSPI	LITERAL1
MY_SOFT_SPI_MISO_PIN	LITERAL1
MY_SOFT_SPI_MOSI_PIN	LITERAL1
MY_SOFT_SPI_SCK_PIN	LITERAL1

# TransportHAL
MY_DEBUG_VERBOSE_TRANSPORT_HAL	LITERAL1

# RF24
MY_DEBUG_VERBOSE_RF24	LITERAL1
MY_RADIO_RF24	LITERAL1
MY_RF24_ADDR_WIDTH	LITERAL1
MY_RF24_BASE_RADIO_ID	LITERAL1
MY_RF24_ENABLE_ENCRYPTION	LITERAL1
MY_RF24_CE_PIN	LITERAL1
MY_RF24_CHANNEL	LITERAL1
MY_RF24_CS_PIN	LITERAL1
MY_RF24_DATARATE	LITERAL1
MY_RF24_IRQ_PIN	LITERAL1
MY_RF24_PA_LEVEL	LITERAL1
MY_RF24_POWER_PIN	LITERAL1
MY_RF24_SPI_SPEED	LITERAL1

# NRF5
MY_DEBUG_VERBOSE_NRF5_ESB	LITERAL1
MY_NRF5_ESB_ADDR_WIDTH	LITERAL1
MY_NRF5_ESB_BASE_RADIO_ID	LITERAL1
MY_NRF5_ESB_CHANNEL	LITERAL1
MY_NRF5_ESB_ENABLE_ENCRYPTION	LITERAL1
MY_NRF5_ESB_MODE	LITERAL1
MY_NRF5_ESB_PA_LEVEL	LITERAL1
MY_NRF5_ESB_RX_BUFFER_SIZE	LITERAL1
MY_NRF5_ESB_REVERSE_ACK_RX	LITERAL1
MY_NRF5_ESB_REVERSE_ACK_TX	LITERAL1
MY_RADIO_NRF5_ESB	LITERAL1

# RFM95
MY_DEBUG_VERBOSE_RFM95	LITERAL1
MY_RADIO_RFM95	LITERAL1
MY_RFM95_ATC_MODE_DISABLED	LITERAL1
MY_RFM95_ATC_TARGET_RSSI	LITERAL1
MY_RFM95_ATC_TARGET_RSSI_DBM	LITERAL1
MY_RFM95_CS_PIN	LITERAL1
MY_RFM95_FREQUENCY	LITERAL1
MY_RFM95_IRQ_NUM	LITERAL1
MY_RFM95_IRQ_PIN	LITERAL1
MY_RFM95_MAX_POWER_LEVEL_DBM	LITERAL1
MY_RFM95_MODEM_CONFIGRUATION	LITERAL1
MY_RFM95_POWER_PIN	LITERAL1
MY_RFM95_RST_PIN	LITERAL1
MY_RFM95_SPI_SPEED	LITERAL1
MY_RFM95_TCXO	LITERAL1
MY_RFM95_TX_POWER	LITERAL1
MY_RFM95_TX_POWER_DBM	LITERAL1
MY_RFM95_TX_TIMEOUT_MS	LITERAL1
MY_RFM95_ENABLE_ENCRYPTION	LITERAL1

# RFM69
MY_DEBUG_VERBOSE_RFM69	LITERAL1
MY_DEBUG_VERBOSE_RFM69_REGISTERS	LITERAL1
MY_IS_RFM69HW	LITERAL1
MY_RADIO_RFM69	LITERAL1
MY_RFM69_ATC_MODE_DISABLED	LITERAL1
MY_RFM69_ATC_TARGET_RSSI_DBM	LITERAL1
MY_RFM69_BITRATE_LSB	LITERAL1
MY_RFM69_BITRATE_MSB	LITERAL1
MY_RFM69_CS_PIN	LITERAL1
MY_RFM69_CSMA_ADD_DELAY_BASE	LITERAL1
MY_RFM69_CSMA_ADD_DELAY_COUNT	LITERAL1
MY_RFM69_CSMA_LIMIT_DBM	LITERAL1
MY_RFM69_CSMA_TIMEOUT_MS	LITERAL1
MY_RFM69_DEFAULT_LISTEN_IDLE_US	LITERAL1
MY_RFM69_DEFAULT_LISTEN_RX_US	LITERAL1
MY_RFM69_ENABLE_ENCRYPTION	LITERAL1
MY_RFM69_ENABLE_LISTENMODE	LITERAL1
MY_RFM69_FREQUENCY	LITERAL1
MY_RFM69_IRQ_NUM	LITERAL1
MY_RFM69_IRQ_PIN	LITERAL1
MY_RFM69_MAX_POWER_LEVEL_DBM	LITERAL1
MY_RFM69_MODEM_CONFIGURATION	LITERAL1
MY_RFM69_NETWORKID	LITERAL1
MY_RFM69_NEW_DRIVER	LITERAL1
MY_RFM69_POWER_PIN	LITERAL1
MY_RFM69_RST_PIN	LITERAL1
MY_RFM69_SPI_SPEED	LITERAL1
MY_RFM69_TX_TIMEOUT_MS	LITERAL1
MY_RFM69_TX_POWER_DBM	LITERAL1

# RS485
MY_RS485	LITERAL1
MY_RS485_BAUD_RATE	LITERAL1
MY_RS485_DE_PIN	LITERAL1
MY_RS485_DE_INVERSE	LITERAL1
MY_RS485_HWSERIAL	LITERAL1
MY_RS485_MAX_MESSAGE_LENGTH	LITERAL1
MY_RS485_SOH_COUNT	LITERAL1

# Gateway / MQTT
MY_GATEWAY_CLIENT_MODE	LITERAL1
MY_GATEWAY_ENC28J60	LITERAL1
MY_GATEWAY_ESP32	LITERAL1
MY_GATEWAY_ESP8266	LITERAL1
MY_GATEWAY_MQTT_CLIENT	LITERAL1
MY_GATEWAY_SERIAL	LITERAL1
MY_GATEWAY_W5100	LITERAL1
MY_HOSTNAME	LITERAL1
MY_INCLUSION_BUTTON_EXTERNAL_PULLUP	LITERAL1
MY_MQTT_CLIENT_ID	LITERAL1
MY_MQTT_CLIENT_PUBLISH_RETAIN	LITERAL1
MY_MQTT_PASSWORD	LITERAL1
MY_MQTT_PUBLISH_TOPIC_PREFIX	LITERAL1
MY_MQTT_SUBSCRIBE_TOPIC_PREFIX	LITERAL1
MY_MQTT_USER	LITERAL1
MY_W5100_SPI_EN	LITERAL1
MY_WIFI_SSID	LITERAL1
MY_WIFI_BSSID	LITERAL1
MY_WIFI_PASSWORD	LITERAL1

# Ethernet
MY_CONTROLLER_IP_ADDRESS	LITERAL1
MY_CONTROLLER_URL_ADDRESS	LITERAL1
MY_GATEWAY_MAX_CLIENTS	LITERAL1
MY_GATEWAY_MAX_RECEIVE_LENGTH	LITERAL1
MY_GATEWAY_MAX_SEND_LENGTH	LITERAL1
MY_IP_ADDRESS	LITERAL1
MY_IP_GATEWAY_ADDRESS	LITERAL1
MY_IP_RENEWAL_INTERVAL	LITERAL1
MY_IP_RENEWAL_INTERVAL_MS	LITERAL1
MY_IP_SUBNET_ADDRESS	LITERAL1
MY_MAC_ADDRESS	LITERAL1
MY_PORT	LITERAL1
MY_USE_UDP	LITERAL1

# ESP32

# ESP8266
MY_ESP8266_SERIAL_MODE	LITERAL1

# Blacklist - autodefines that are used internally and should not be highlighted, hence commented.
# MY_CAP_ARCH
# MY_CAP_ENCR
# MY_CAP_OTA_FW
# MY_CAP_RADIO
# MY_CAP_RESET
# MY_CAP_RXBUF
# MY_CAP_SIGN
# MY_CAP_TYPE
# MY_CAPABILITIES
# MY_DEBUG_VERBOSE_CORE
# MY_GATEWAY_FEATURE
# MY_RAM_ROUTING_TABLE_ENABLED
# MY_RF24_CONFIGURATION
# MY_RFM69HW
# MY_SENSOR_NETWORK

# Blacklist - defined in ArduinoHwSAMD and therefore not responsibility of the MySensors library
# MY_BAT_DETECT
# MY_SWC1
# MY_SWC2

# Blacklist - used by the Security Personalizer, not meant to be used in any other sketch
# MY_AES_KEY
# MY_ENCRYPTION_FEATURE
# MY_HMAC_KEY
# MY_LOCK_DEVICE
# MY_LOCK_MCU
# MY_SIGNING_FEATURE
# MY_SOFT_SERIAL

# Blacklist - internal, not meant to be used by users
# MY_EEPROM_SIZE
# MY_EXT_EEPROM_I2C_ADDRESS
# MY_EXT_EEPROM_PAGE_SIZE
# MY_EXT_EEPROM_SIZE
# MY_EXT_EEPROM_TWI_CLOCK
# MY_HW_ERR_LED_PIN
# MY_HW_RTC
# MY_HW_RTC_IRQ_HANDLER
# MY_HW_RTC_IRQN
# MY_HW_TX_LED_PIN
# MY_HWID_PADDING_BYTE
# MY_INCLUSION_BUTTON_PRESSED
# MY_IS_GATEWAY
# MY_NODE_TYPE
# MY_OTA_BOOTLOADER_MAJOR_VERSION
# MY_OTA_BOOTLOADER_MINOR_VERSION
# MY_OTA_BOOTLOADER_VERSION
# MY_SDCARD_CS

# Blacklist - used by the Raspberry Pi gateway and not meant to be used by users
# MY_GATEWAY_LINUX
# MY_LINUX_CONFIG_FILE
# MY_LINUX_IS_SERIAL_PTY
# MY_LINUX_SERIAL_GROUPNAME
# MY_LINUX_SERIAL_IS_PTY
# MY_LINUX_SERIAL_PORT
# MY_LINUX_SERIAL_PTY

# Blacklist - deprecated and should therefore not be highlighted anymore
# MY_LEDS_BLINKING_FEATURE
# MY_RADIO_NRF24
# MY_RF69_IRQ_NUM
# MY_RF69_IRQ_PIN
# MY_RF69_RESET
# MY_RF69_SPI_CS
# MY_TRANSPORT_DONT_CARE_MODE
# MY_ESP8266_BSSID	LITERAL1
# MY_ESP8266_HOSTNAME	LITERAL1
# MY_ESP8266_PASSWORD	LITERAL1
# MY_ESP8266_SSID	LITERAL1
# MY_DEBUG_OTA_DISABLE_ACK

# Blacklist - descriptional only
# MY_XYZ_POWER_PIN
# MY_MQTT_TOPIC_PREFIX

# Blacklist - listed in https://github.com/mysensors/MySensors/issues/1107
# Since no-one can take responsibility for them, we blacklist them so
# we can get warnings when new items are added.
# MY_AVR_TEMPERATURE_GAIN
# MY_AVR_TEMPERATURE_OFFSET
# MY_CRYPTO_SHA256_ASM
# MY_ESP32_TEMPERATURE_GAIN
# MY_ESP32_TEMPERATURE_OFFSET
# MY_NRF5_RX_BUFFER_SIZE
# MY_SAMD_TEMPERATURE_GAIN
# MY_SAMD_TEMPERATURE_OFFSET
# MY_STM32F1_TEMPERATURE_GAIN
# MY_STM32F1_TEMPERATURE_OFFSET
# MY_TRANSPORT_ENCRYPTION
# MY_OTA_I2C_ADDR
# MY_RF69_DIO5
# MY_SERIALDEVICE
