LoggerModemMacros.h file
Contains PRE-ROCESSOR MACROS for use with logger modems.
Defines
- #define MS_MODEM_EXTRA_SETUP(specificModem) = bool specificModem::extraModemSetup(void) { \ bool success = gsmModem.init(); \ gsmClient.init(&gsmModem); \ _modemName = gsmModem.getModemName(); \ return success; \ }
- Creates an extraModemSetup() function for a specific modem subclass.
- #define MS_IS_MODEM_AWAKE(specificModem)
- Creates an isModemAwake() function for a specific modem subclass.
- #define MS_MODEM_WAKE(specificModem)
- Creates a modemWake() function for a specific modem subclass.
- #define MS_MODEM_IS_INTERNET_AVAILABLE(specificModem) = bool specificModem::isInternetAvailable(void) { \ return gsmModem.isGprsConnected(); \ }
- Creates an isInternetAvailable() function for a specific modem subclass.
- #define MS_MODEM_SET_APN =
- Creates a text string of the functions to call for a specific modem to set the APN and connect to GPRS during the internet connection sequence.
- #define MS_MODEM_CONNECT_INTERNET(specificModem)
- Creates a connectInternet(uint32_t maxConnectionTime) function for a specific modem subclass.
- #define MS_MODEM_DISCONNECT_INTERNET(specificModem) = void specificModem::disconnectInternet(void) { \
- Creates a disconnectInternet() function for a specific modem subclass.
- #define TIME_PROTOCOL_PORT = 37
- The port hosting the NIST "time" protocol (37)
- #define NIST_RESPONSE_BYTES = 4
- The size of the NIST response from the "time" protocol, in bytes.
- #define NIST_SERVER_RETRYS = 12
- The number of retry attempts when connecting to the NIST server.
- #define MS_MODEM_GET_NIST_TIME(specificModem)
- Creates a getNISTTime() function for a specific modem subclass.
- #define MS_MODEM_CALC_SIGNAL_QUALITY = rssi = getRSSIFromCSQ(signalQual); \
- Creates a text string of the functions to convert the signal quality returned by a specific modem to RSSI and percent signal strength.
- #define MS_MODEM_GET_MODEM_SIGNAL_QUALITY(specificModem) = bool specificModem::getModemSignalQuality(int16_t& rssi, \ int16_t& percent) { \ /* Get signal quality */ \
- Creates a getModemSignalQuality(int16_t& rssi, int16_t& percent) function for a specific modem subclass.
- #define MS_MODEM_GET_MODEM_BATTERY_DATA(specificModem) = bool specificModem::getModemBatteryStats( \ int8_t& chargeState, int8_t& percent, int16_t& milliVolts) { \
- Creates a getModemBatteryStats(int8_t& chargeState, int8_t& percent, int16_t& milliVolts) function for a specific modem subclass.
- #define MS_MODEM_GET_MODEM_TEMPERATURE_DATA(specificModem) = float specificModem::getModemChipTemperature(void) { \
- Creates a getModemChipTemperature() function for a specific modem subclass.
Define documentation
#define MS_MODEM_EXTRA_SETUP(specificModem) = bool specificModem::extraModemSetup(void) { \ bool success = gsmModem.init(); \ gsmClient.init(&gsmModem); \ _modemName = gsmModem.getModemName(); \ return success; \ }
Creates an extraModemSetup() function for a specific modem subclass.
Parameters | |
---|---|
specificModem | The modem subclass |
Returns | The text of an extraModemSetup() function specific to a single modem subclass. |
This is a passthrough to the TinyGSM init() and getModemName() for a specific modem.
#define MS_IS_MODEM_AWAKE(specificModem)
Creates an isModemAwake() function for a specific modem subclass.
Parameters | |
---|---|
specificModem | The modem subclass |
Returns | The text of an isModemAwake() function specific to a single modem subclass. |
#define MS_MODEM_WAKE(specificModem)
Creates a modemWake() function for a specific modem subclass.
Parameters | |
---|---|
specificModem | The modem subclass |
Returns | The text of a modemWake() function specific to a single modem subclass. |
#define MS_MODEM_IS_INTERNET_AVAILABLE(specificModem) = bool specificModem::isInternetAvailable(void) { \ return gsmModem.isGprsConnected(); \ }
Creates an isInternetAvailable() function for a specific modem subclass.
Parameters | |
---|---|
specificModem | The modem subclass |
Returns | The text of an isInternetAvailable() function specific to a single modem subclass. |
For cellular modems, this is a passthrough to isGprsConnected() for the specific TinyGSM modem type.
For wifi modems, this is a passthrough to isNetworkConnected() for the specific TinyGSM modem type.
#define MS_MODEM_SET_APN =
Creates a text string of the functions to call for a specific modem to set the APN and connect to GPRS during the internet connection sequence.
Returns | Text string containing the functions to set the APN and connect to GPRS. |
---|
For most cellular modems, this is a passthrough to gprsConnect() for the specific TinyGSM modem type. For the XBee, this is an empty string.
#define MS_MODEM_CONNECT_INTERNET(specificModem)
Creates a connectInternet(uint32_t maxConnectionTime) function for a specific modem subclass.
Parameters | |
---|---|
specificModem | The modem subclass |
Returns | The text of a connectInternet(uint32_t maxConnectionTime) function specific to a single modem subclass. |
For cellular modems, this uses the TinyGSM waitForNetwork() function for the specific modem and then connects to GPRS using MS_
For WiFi modems, this first checks for pre-existing internet connection and if that isn't present uses the specific modem's networkConnect(ssid, pwd) function followed by waitForNetwork(uint32_t maxConnectionTime).
#define MS_MODEM_DISCONNECT_INTERNET(specificModem) = void specificModem::disconnectInternet(void) { \
Creates a disconnectInternet() function for a specific modem subclass.
Parameters | |
---|---|
specificModem | The modem subclass |
Returns | The text of a disconnectInternet() function specific to a single modem subclass. |
For cellular modems, this is a passthrough to gprsDisconnect() for the specific TinyGSM modem type.
For Wifi modems, this is a passthrough to networkDisconnect() for the specific TinyGSM modem type
#define MS_MODEM_GET_NIST_TIME(specificModem)
Creates a getNISTTime() function for a specific modem subclass.
Parameters | |
---|---|
specificModem | The modem subclass |
Returns | The text of a getNISTTime() function specific to a single modem subclass. |
This gets the time from NIST via TIME protocol (rfc868)
This would be much more efficient if done over UDP, but I'm doing it over TCP because I don't have a UDP library for all the modems.
#define MS_MODEM_CALC_SIGNAL_QUALITY = rssi = getRSSIFromCSQ(signalQual); \
Creates a text string of the functions to convert the signal quality returned by a specific modem to RSSI and percent signal strength.
Returns | Text string containing the functions to put signal strength in the correct units. |
---|
Most modules return CSQ between 0 and 31. The RSSI in dBm is calculated using getRSSIFromCSQ(int16_t csq) and a the percent strength is calculated using getPctFromCSQ(int16_t csq).
XBee and ESP8266 modules return RSSI in dBm and the percent strength is calculated using getPctFromRSSI(int16_t rssi).
#define MS_MODEM_GET_MODEM_SIGNAL_QUALITY(specificModem) = bool specificModem::getModemSignalQuality(int16_t& rssi, \ int16_t& percent) { \ /* Get signal quality */ \
Creates a getModemSignalQuality(int16_t& rssi, int16_t& percent) function for a specific modem subclass.
Parameters | |
---|---|
specificModem | The modem subclass |
Returns | The text of a getModemSignalQuality(int16_t& rssi, int16_t& percent) function specific to a single modem subclass. |
This calls the specific modem getSignalQuality() and the text from MS_
#define MS_MODEM_GET_MODEM_BATTERY_DATA(specificModem) = bool specificModem::getModemBatteryStats( \ int8_t& chargeState, int8_t& percent, int16_t& milliVolts) { \
Creates a getModemBatteryStats(int8_t& chargeState, int8_t& percent, int16_t& milliVolts) function for a specific modem subclass.
Parameters | |
---|---|
specificModem | The modem subclass |
Returns | The text of a getModemBatteryStats(int8_t& chargeState, int8_t& percent, int16_t& milliVolts) function specific to a single modem subclass. |
This is a passthrough to the specific modem's getBattStats(uint8_t& chargeState, int8_t& percent, int16_t& milliVolts) for modems where such data is available.
This populates the entered references with -9999s for modems where such data is not available.
#define MS_MODEM_GET_MODEM_TEMPERATURE_DATA(specificModem) = float specificModem::getModemChipTemperature(void) { \
Creates a getModemChipTemperature() function for a specific modem subclass.
Parameters | |
---|---|
specificModem | The modem subclass |
Returns | The text of a getModemChipTemperature() function specific to a single modem subclass. |
This is a passthrough to the specific modem's getTemperature() for modems where such data is avaialble
This returns -9999 for modems that don't return such data.