RadioLibSmol/src/TypeDef.h
Bernd Giesecke 23b0b9b25a Moved setDio2AsRfSwitch() from module to SX126x
Added new error code
Removed memory leak

Signed-off-by: Bernd Giesecke <bernd@giesecke.tk>
2019-06-04 14:28:33 +08:00

473 lines
10 KiB
C

#ifndef _RADIOLIB_TYPES_H
#define _RADIOLIB_TYPES_H
#if ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
//#define RADIOLIB_DEBUG
#ifdef RADIOLIB_DEBUG
#define DEBUG_PRINT(...) { Serial.print(__VA_ARGS__); }
#define DEBUG_PRINTLN(...) { Serial.println(__VA_ARGS__); }
#else
#define DEBUG_PRINT(...) {}
#define DEBUG_PRINTLN(...) {}
#endif
/*!
\defgroup shield_config Shield Configuration
\{
*/
/*!
\brief Use SPI interface.
*/
#define USE_SPI 0x00
/*!
\brief Use UART interface.
*/
#define USE_UART 0x01
/*!
\brief Use I2C interface.
*/
#define USE_I2C 0x02
/*!
\brief Do not use any interrupts/GPIOs.
*/
#define INT_NONE 0x00
/*!
\brief Use interrupt/GPIO 0.
*/
#define INT_0 0x01
/*!
\brief Use interrupt/GPIO 1.
*/
#define INT_1 0x02
/*!
\brief Use both interrupts/GPIOs.
*/
#define INT_BOTH 0x03
/*!
\}
*/
/*!
\defgroup uart_config UART Configuration
\{
*/
/*!
\brief Use 1 bit stop.
*/
#define UART_STOPBIT_1 0x01
/*!
\brief Use 1.5 bit stop.
*/
#define UART_STOPBIT_1_5 0x02
/*!
\brief Use 2 bit stop.
*/
#define UART_STOPBIT_2 0x03
/*!
\brief No parity.
*/
#define UART_PARITY_NONE 0x00
/*!
\brief Odd parity.
*/
#define UART_PARITY_ODD 0x01
/*!
\brief Even parity.
*/
#define UART_PARITY_EVEN 0x02
/*!
\brief No flow control.
*/
#define UART_FLOW_NONE 0x00
/*!
\brief RTS only.
*/
#define UART_FLOW_RTS 0x01
/*!
\brief CTS only.
*/
#define UART_FLOW_CTS 0x02
/*!
\brief Both RTS and CTS.
*/
#define UART_FLOW_BOTH 0x03
/*!
\}
*/
/*!
\defgroup status_codes Status Codes
\{
*/
// common status codes
/*!
\brief No error, method executed successfully.
*/
#define ERR_NONE 0
/*!
\brief There was an unexpected, unknown error. If you see this, something went incredibly wrong.
Your Arduino may be possessed, contact your local exorcist to resolve this error.
*/
#define ERR_UNKNOWN -1
// SX127x/RFM9x status codes
/*!
\brief Radio chip was not found during initialization. This can be caused by specifying wrong chip type in the constructor
(i.e. calling SX1272 constructor for SX1278 chip) or by a fault in your wiring (incorrect slave select pin).
*/
#define ERR_CHIP_NOT_FOUND -2
/*!
\brief Deprecated.
*/
#define ERR_EEPROM_NOT_INITIALIZED -3
/*!
\brief Packet supplied to transmission method was longer than limit.
*/
#define ERR_PACKET_TOO_LONG -4
/*!
\brief Timed out waiting for transmission finish.
*/
#define ERR_TX_TIMEOUT -5
/*!
\brief Timed out waiting for incoming transmission.
*/
#define ERR_RX_TIMEOUT -6
/*!
\brief The calculated and expected CRCs of received packet do not match.
This means that the packet was damaged during transmission and should be sent again.
*/
#define ERR_CRC_MISMATCH -7
/*!
\brief The supplied bandwidth value is invalid for this module.
*/
#define ERR_INVALID_BANDWIDTH -8
/*!
\brief The supplied spreading factor value is invalid for this module.
*/
#define ERR_INVALID_SPREADING_FACTOR -9
/*!
\brief The supplied coding rate value is invalid for this module.
*/
#define ERR_INVALID_CODING_RATE -10
/*!
\brief Internal only.
*/
#define ERR_INVALID_BIT_RANGE -11
/*!
\brief The supplied frequency value is invalid for this module.
*/
#define ERR_INVALID_FREQUENCY -12
/*!
\brief The supplied output power value is invalid for this module.
*/
#define ERR_INVALID_OUTPUT_POWER -13
/*!
\brief LoRa preamble was detected during channel activity detection.
This means that there is some LoRa device currently transmitting in your channel.
*/
#define PREAMBLE_DETECTED -14
/*!
\brief No LoRa preambles were detected during channel activity detection. Your channel is free.
*/
#define CHANNEL_FREE -15
/*!
\brief Real value in SPI register does not match the expected one. This can be caused by faulty SPI wiring.
*/
#define ERR_SPI_WRITE_FAILED -16
/*!
\brief The supplied current limit value is invalid.
*/
#define ERR_INVALID_CURRENT_LIMIT -17
/*!
\brief The supplied preamble length is invalid.
*/
#define ERR_INVALID_PREAMBLE_LENGTH -18
/*!
\brief The supplied gain value is invalid.
*/
#define ERR_INVALID_GAIN -19
/*!
\brief User tried to execute modem-exclusive method on a wrong modem.
For example, this can happen when you try to change LoRa configuration when FSK modem is active.
*/
#define ERR_WRONG_MODEM -20
// RF69-specific status codes
/*!
\brief The supplied bit rate value is invalid.
*/
#define ERR_INVALID_BIT_RATE -101
/*!
\brief The supplied frequency deviation value is invalid.
*/
#define ERR_INVALID_FREQUENCY_DEVIATION -102
/*!
\brief The supplied bit rate to bandwidth ratio is invalid. See the module datasheet for more information.
*/
#define ERR_INVALID_BIT_RATE_BW_RATIO -103
/*!
\brief The supplied receiver bandwidth value is invalid.
*/
#define ERR_INVALID_RX_BANDWIDTH -104
/*!
\brief The supplied FSK sync word is invalid.
*/
#define ERR_INVALID_SYNC_WORD -105
/*!
\brief The supplied FSK data shaping option is invalid.
*/
#define ERR_INVALID_DATA_SHAPING -106
/*!
\brief The current modulation is invalid for the requested operation.
*/
#define ERR_INVALID_MODULATION -107
// ESP8266 status codes
/*!
\brief AT command failed to execute, or timed out.
*/
#define ERR_AT_FAILED -201
/*!
\brief Supplied URL is malformed or invalid.
*/
#define ERR_URL_MALFORMED -202
/*!
\brief AT command response was malformed.
*/
#define ERR_RESPONSE_MALFORMED_AT -203
/*!
\brief Data response was malformed.
*/
#define ERR_RESPONSE_MALFORMED -204
/*!
\brief MQTT broker rejected connection due to version mismatch.
*/
#define ERR_MQTT_CONN_VERSION_REJECTED -205
/*!
\brief MQTT broker rejected connection due to unknown ID.
*/
#define ERR_MQTT_CONN_ID_REJECTED -206
/*!
\brief Failed to establish connection with MQTT broker.
*/
#define ERR_MQTT_CONN_SERVER_UNAVAILABLE -207
/*!
\brief Supplied username/password combination is incorrect.
*/
#define ERR_MQTT_CONN_BAD_USERNAME_PASSWORD -208
/*!
\brief Unauthorized connection to MQTT broker.
*/
#define ERR_MQTT_CONN_NOT_AUTHORIZED -208
/*!
\brief Received packet ID does not match the expected ID.
*/
#define ERR_MQTT_UNEXPECTED_PACKET_ID -209
/*!
\brief No new packet was received since the last check.
*/
#define ERR_MQTT_NO_NEW_PACKET_AVAILABLE -210
/*!
\brief Successfully subscribed to MQTT topic with QoS 0.
*/
#define MQTT_SUBS_SUCCESS_QOS_0 0x00
/*!
\brief Successfully subscribed to MQTT topic with QoS 1.
*/
#define MQTT_SUBS_SUCCESS_QOS_1 0x01
/*!
\brief Successfully subscribed to MQTT topic with QoS 2.
*/
#define MQTT_SUBS_SUCCESS_QOS_2 0x02
/*!
\brief Failed to subscribe to MQTT topic.
*/
#define ERR_MQTT_SUBS_FAILED 0x80
// XBee status codes
/*!
\brief Failed to enter command mode.
*/
#define ERR_CMD_MODE_FAILED -301
/*!
\brief Received ZigBee frame is malformed.
*/
#define ERR_FRAME_MALFORMED -302
/*!
\brief Received ZigBee frame checksum does not match the calculated.
*/
#define ERR_FRAME_INCORRECT_CHECKSUM -303
/*!
\brief Received ZigBee frame with unexpected ID.
*/
#define ERR_FRAME_UNEXPECTED_ID -304
/*!
\brief Timed out waiting for response to ZigBee frame.
*/
#define ERR_FRAME_NO_RESPONSE -305
// RTTY status codes
/*!
\brief Supplied RTTY frequency shift is invalid for this module.
*/
#define ERR_INVALID_RTTY_SHIFT -401
/*!
\brief Supplied RTTY encoding is invalid.
*/
#define ERR_UNSUPPORTED_ENCODING -402
// nRF24-specific status codes
/*!
\brief Supplied data rate is invalid.
*/
#define ERR_INVALID_DATA_RATE -501
/*!
\brief Supplied address width is invalid.
*/
#define ERR_INVALID_ADDRESS_WIDTH -502
/*!
\brief Supplied data pipe number is invalid.
*/
#define ERR_INVALID_PIPE_NUMBER -503
/*!
\brief ACK packet from destination module was not received within 15 retries.
*/
#define ERR_ACK_NOT_RECEIVED -504
// CC1101-specific status codes
/*!
\brief Supplied number of broadcast addresses is invalid.
*/
#define ERR_INVALID_NUM_BROAD_ADDRS -601
// SX126x-specific status codes
/*!
\brief Supplied CRC configuration is invalid.
*/
#define ERR_INVALID_CRC_CONFIGURATION -701
/*!
\brief Detected LoRa transmission while scanning channel.
*/
#define LORA_DETECTED -702
/*!
\brief Supplied TCXO reference voltage is invalid.
*/
#define ERR_INVALID_TCXO_VOLTAGE -703
/*!
\brief Bit rate / bandwidth / frequency deviation ratio is invalid. See SX126x datasheet for details.
*/
#define ERR_INVALID_MODULATION_PARAMETERS -704
/*!
\brief SX126x timed out while waiting for complete SPI command.
*/
#define ERR_SPI_CMD_TIMEOUT -705
/*!
\brief SX126x received invalid SPI command.
*/
#define ERR_SPI_CMD_INVALID -706
/*!
\brief SX126x failed to execute SPI command.
*/
#define ERR_SPI_CMD_FAILED -707
/*!
\brief SX126x scan channel not possible because DIO2 is used as RF antenna switch.
*/
#define ERR_DIO2_UNAVAIL_CAD_FAILED -708
/*!
\}
*/
#endif