#######################################
# Syntax Coloring Map For Lighthouse Reckoning
#######################################

#######################################
# Class (KEYWORD1)
#######################################

LighthouseReckoning	KEYWORD1

#######################################
# Datatypes / Enums / Structs (KEYWORD1)
#######################################

lhr_init_result_t	KEYWORD1
lhr_err_t	KEYWORD1
lhr_tx_result_t	KEYWORD1
lhr_update_result_t	KEYWORD1
lhr_node_role_t	KEYWORD1
lhr_neighbor_t	KEYWORD1
lhr_pkt_type_t	KEYWORD1
LHR_DataReceivedCallback	KEYWORD1

#######################################
# Methods and Functions (KEYWORD2)
#######################################

library_version	KEYWORD2
getVersionString	KEYWORD2

beginAsHome	KEYWORD2
beginAsNode	KEYWORD2

setTTL	KEYWORD2
setRetryDelays	KEYWORD2
setBeaconInterval	KEYWORD2
setTxWatchdogTimeout	KEYWORD2
setMaxLocalRetries	KEYWORD2

update	KEYWORD2
handleDio1Rise	KEYWORD2

sendData	KEYWORD2

toggleDutyCycleLimit	KEYWORD2
setDutyCycleLimit	KEYWORD2
setDutyCycleLimitMs	KEYWORD2
getDutyCycleUsage	KEYWORD2
getDutyCycleUsedMs	KEYWORD2
getDutyCycleRemainingMs	KEYWORD2
getDutyCycleLimitMs	KEYWORD2

getRole	KEYWORD2
getHopsToHome	KEYWORD2
getNeighborCount	KEYWORD2
getBestNeighborId	KEYWORD2
getSecondBestNeighborId	KEYWORD2
isBusy	KEYWORD2

onDataReceived	KEYWORD2
getLastRadioError	KEYWORD2
printNeighborTable	KEYWORD2
setRoutingDataEnabled	KEYWORD2
setMinimumAcceptedHops	KEYWORD2

#######################################
# Instances / Constants (LITERAL1)
#######################################

LHR_VERSION_MAJOR	LITERAL1
LHR_VERSION_MINOR	LITERAL1
LHR_VERSION_PATCH	LITERAL1

LHR_START_BYTE	LITERAL1
LHR_FORBIDDEN_NODE_ID	LITERAL1

LHR_DEFAULT_BEACON_INTERVAL_MS	LITERAL1
LHR_DEFAULT_TTL	LITERAL1
LHR_DEFAULT_RESEND_DELAY_MS	LITERAL1
LHR_DEFAULT_RFCN_WAIT_MS	LITERAL1
LHR_DEFAULT_MAX_LOCAL_RETRIES	LITERAL1
LHR_DEFAULT_DUTY_CYCLE_PERCENT	LITERAL1

LHR_HOPS_AS_HOME	LITERAL1
LHR_HOPS_NO_ROUTE	LITERAL1
LHR_HOPS_AS_RELAY_INIT	LITERAL1
LHR_RSSI_UNKNOWN	LITERAL1

LHR_SEEN_CACHE_SIZE	LITERAL1
LHR_MAX_NEIGHBORS	LITERAL1
LHR_NEIGHBOR_TIMEOUT_BEACONS	LITERAL1
LHR_MAX_PAYLOAD	LITERAL1

LHR_DUTY_CYCLE_WINDOW_MS	LITERAL1
LORA_PHY_MAX_PACKET_SIZE	LITERAL1

LHR_PKT_DATA	LITERAL1
LHR_PKT_NDAT	LITERAL1
LHR_PKT_RFCN	LITERAL1
LHR_PKT_DATA_RES	LITERAL1

#######################################
# Packet Offsets & Lengths (LITERAL1)
#######################################

LHR_MIN_VALID_PACKET_SIZE	LITERAL1

LHR_DATA_OFFSET_MAGIC	LITERAL1
LHR_DATA_OFFSET_TYPE	LITERAL1
LHR_DATA_OFFSET_SOURCE	LITERAL1
LHR_DATA_OFFSET_SENDER	LITERAL1
LHR_DATA_OFFSET_RECEIVER	LITERAL1
LHR_DATA_OFFSET_SEQ_NUM	LITERAL1
LHR_DATA_OFFSET_TTL	LITERAL1
LHR_DATA_OFFSET_PAYLOAD	LITERAL1
LHR_DATA_HEADER_LEN	LITERAL1

LHR_NDAT_OFFSET_MAGIC	LITERAL1
LHR_NDAT_OFFSET_TYPE	LITERAL1
LHR_NDAT_OFFSET_SENDER	LITERAL1
LHR_NDAT_OFFSET_HOPS	LITERAL1
LHR_NDAT_LEN	LITERAL1

LHR_RFCN_OFFSET_MAGIC	LITERAL1
LHR_RFCN_OFFSET_TYPE	LITERAL1
LHR_RFCN_LEN	LITERAL1

LHR_DATARES_OFFSET_MAGIC	LITERAL1
LHR_DATARES_OFFSET_TYPE	LITERAL1
LHR_DATARES_OFFSET_SENDER	LITERAL1
LHR_DATARES_OFFSET_RECEIVER	LITERAL1
LHR_DATARES_OFFSET_SEQ_NUM	LITERAL1
LHR_DATA_RES_LEN	LITERAL1

#######################################
# Init / Error / Result Codes (LITERAL1)
#######################################

LHR_INIT_OK	LITERAL1
LHR_INIT_ERR_RADIO_NULL	LITERAL1
LHR_INIT_ERR_INVALID_ARGS	LITERAL1

LHR_OK	LITERAL1
LHR_ERR_TOO_LONG	LITERAL1
LHR_ERR_NO_ROUTE	LITERAL1
LHR_ERR_BUSY	LITERAL1
LHR_ERR_ARGS	LITERAL1
LHR_ERR_EXTERNAL	LITERAL1
LHR_ERR_FULL_NEIGHBORS	LITERAL1
LHR_ERR_RADIO_NOT_INIT	LITERAL1
LHR_ERR_ZERO_TTL	LITERAL1
LHR_ERR_WRONG_ROLE	LITERAL1
LHR_ERR_NOT_CONFIGURED	LITERAL1
LHR_ERR_DUTY_CYCLE_EXHAUSTED	LITERAL1

LHR_TX_OK	LITERAL1
LHR_TX_CHANNEL_BUSY	LITERAL1
LHR_TX_DUTY_CYCLE	LITERAL1
LHR_TX_RADIO_ERROR	LITERAL1
LHR_TX_RADIO_WORKING	LITERAL1

LHR_UPDATE_IDLE	LITERAL1
LHR_UPDATE_RX_DATA	LITERAL1
LHR_UPDATE_RX_NDAT	LITERAL1
LHR_UPDATE_RX_RFCN	LITERAL1
LHR_UPDATE_RX_DATARES	LITERAL1
LHR_UPDATE_RX_ERROR	LITERAL1
LHR_UPDATE_TX_COMPLETE	LITERAL1
LHR_UPDATE_TX_BEACON_SCHEDULED	LITERAL1
LHR_UPDATE_TX_BEACON_SEND	LITERAL1
LHR_UPDATE_TX_RESEND	LITERAL1
LHR_UPDATE_TX_NDAT	LITERAL1
LHR_UPDATE_TX_ERROR	LITERAL1
LHR_UPDATE_NOT_CONFIGURED	LITERAL1
LHR_UPDATE_TX_DATA_CONFIRMED	LITERAL1
LHR_UPDATE_TX_DATA_FAILED	LITERAL1

LHR_ROLE_NONE	LITERAL1
LHR_ROLE_HOME	LITERAL1
LHR_ROLE_NODE	LITERAL1

#######################################
# Experimental (LITERAL1)
#######################################

LHR_HOP_META_TAG	LITERAL1
LHR_HOP_META_VLEN	LITERAL1
LHR_HOP_META_LEN	LITERAL1