20 #ifndef SPARKFUN_SWARM_SATELLITE_ARDUINO_LIBRARY_H
21 #define SPARKFUN_SWARM_SATELLITE_ARDUINO_LIBRARY_H
29 #ifdef ARDUINO_ARCH_AVR
30 #define SWARM_M138_SOFTWARE_SERIAL_ENABLED
33 #ifdef ARDUINO_ARCH_SAMD
34 #define SWARM_M138_SOFTWARE_SERIAL_ENABLEDx
37 #ifdef ARDUINO_ARCH_APOLLO3
38 #define SWARM_M138_SOFTWARE_SERIAL_ENABLEDx
44 #ifdef ARDUINO_ARCH_STM32
45 #define SWARM_M138_SOFTWARE_SERIAL_ENABLED
48 #ifdef ARDUINO_ARCH_ESP32
52 #if __has_include(<SoftwareSerial.h> )
53 #define SWARM_M138_SOFTWARE_SERIAL_ENABLED
55 #define SWARM_M138_SOFTWARE_SERIAL_ENABLEDx
59 #ifdef ARDUINO_ARCH_ESP8266
63 #if __has_include(<SoftwareSerial.h> )
64 #define SWARM_M138_SOFTWARE_SERIAL_ENABLED
66 #define SWARM_M138_SOFTWARE_SERIAL_ENABLEDx
70 #ifdef SWARM_M138_SOFTWARE_SERIAL_ENABLED
71 #include <SoftwareSerial.h>
77 #define SWARM_M138_STANDARD_RESPONSE_TIMEOUT 1000
78 #define SWARM_M138_MESSAGE_DELETE_TIMEOUT 5000
79 #define SWARM_M138_MESSAGE_ID_TIMEOUT 5000
80 #define SWARM_M138_MESSAGE_READ_TIMEOUT 3000
81 #define SWARM_M138_MESSAGE_TRANSMIT_TIMEOUT 3000
84 #define SWARM_M138_SERIAL_BAUD_RATE 115200
87 #define SFE_QWIIC_SWARM_DEFAULT_I2C_ADDRESS 0x52
90 #define SWARM_M138_MAX_PACKET_LENGTH_BYTES 192
91 #define SWARM_M138_MAX_PACKET_LENGTH_HEX 384
94 #define SWARM_M138_MEM_ALLOC_CS 30
95 #define SWARM_M138_MEM_ALLOC_FV 37
96 #define SWARM_M138_MEM_ALLOC_MS 128
130 #define SWARM_M138_SUCCESS SWARM_M138_ERROR_SUCCESS
154 uint8_t jamming_level;
170 SWARM_M138_GPIO1_ANALOG = 0,
171 SWARM_M138_GPIO1_EXIT_SLEEP_LOW_HIGH,
172 SWARM_M138_GPIO1_EXIT_SLEEP_HIGH_LOW,
173 SWARM_M138_GPIO1_OUTPUT_LOW,
174 SWARM_M138_GPIO1_OUTPUT_HIGH,
175 SWARM_M138_GPIO1_MESSAGES_PENDING_LOW,
176 SWARM_M138_GPIO1_MESSAGES_PENDING_HIGH,
177 SWARM_M138_GPIO1_SLEEP_MODE_LOW,
178 SWARM_M138_GPIO1_SLEEP_MODE_HIGH,
179 SWARM_M138_GPIO1_INVALID
185 SWARM_M138_GPS_FIX_TYPE_NF = 0,
186 SWARM_M138_GPS_FIX_TYPE_DR,
187 SWARM_M138_GPS_FIX_TYPE_G2,
188 SWARM_M138_GPS_FIX_TYPE_G3,
189 SWARM_M138_GPS_FIX_TYPE_D2,
190 SWARM_M138_GPS_FIX_TYPE_D3,
191 SWARM_M138_GPS_FIX_TYPE_RK,
192 SWARM_M138_GPS_FIX_TYPE_TT,
193 SWARM_M138_GPS_FIX_TYPE_INVALID
220 int16_t rssi_background;
231 SWARM_M138_WAKE_CAUSE_GPIO = 0,
232 SWARM_M138_WAKE_CAUSE_SERIAL,
233 SWARM_M138_WAKE_CAUSE_TIME,
234 SWARM_M138_WAKE_CAUSE_INVALID
240 SWARM_M138_MODEM_STATUS_BOOT_ABORT = 0,
241 SWARM_M138_MODEM_STATUS_BOOT_POWERON,
242 SWARM_M138_MODEM_STATUS_BOOT_RUNNING,
243 SWARM_M138_MODEM_STATUS_BOOT_UPDATED,
244 SWARM_M138_MODEM_STATUS_BOOT_VERSION,
245 SWARM_M138_MODEM_STATUS_BOOT_RESTART,
246 SWARM_M138_MODEM_STATUS_BOOT_SHUTDOWN,
247 SWARM_M138_MODEM_STATUS_DATETIME,
248 SWARM_M138_MODEM_STATUS_POSITION,
249 SWARM_M138_MODEM_STATUS_DEBUG,
250 SWARM_M138_MODEM_STATUS_ERROR,
251 SWARM_M138_MODEM_STATUS_UNKNOWN,
252 SWARM_M138_MODEM_STATUS_INVALID
264 #ifdef SWARM_M138_SOFTWARE_SERIAL_ENABLED
265 bool begin(SoftwareSerial &softSerial);
267 bool begin(HardwareSerial &hardSerial);
372 void setReceiveMessageCallback(
void (*swarmReceiveMessageCallback)(
const uint16_t *appID,
const int16_t *rssi,
const int16_t *snr,
const int16_t *fdev,
const char *asciiHex));
376 void setTransmitDataCallback(
void (*swarmTransmitDataCallback)(
const int16_t *rssi_sat,
const int16_t *snr,
const int16_t *fdev,
const uint64_t *msg_id));
384 #define SWARM_M138_MAX_CMD_ERROR_LEN 32
388 HardwareSerial *_hardSerial;
389 #ifdef SWARM_M138_SOFTWARE_SERIAL_ENABLED
390 SoftwareSerial *_softSerial;
398 bool _checkUnsolicitedMsgReentrant;
400 #define _RxBuffSize 512
401 const unsigned long _rxWindowMillis = 5;
410 void (*_swarmReceiveMessageCallback)(
const uint16_t *appID,
const int16_t *rssi,
const int16_t *snr,
const int16_t *fdev,
const char *asciiHex);
414 void (*_swarmTransmitDataCallback)(
const int16_t *rssi_sat,
const int16_t *snr,
const int16_t *fdev,
const uint64_t *id);
417 void addChecksumLF(
char *command);
426 Swarm_M138_Error_e sendCommandWithResponse(
const char *command,
const char *expectedResponseStart,
const char *expectedErrorStart,
430 void sendCommand(
const char *command);
433 Swarm_M138_Error_e waitForResponse(
const char *expectedResponseStart,
const char *expectedErrorStart,
438 bool useHold, uint32_t hold,
bool useEpoch, uint32_t epoch);
442 bool useHold, uint32_t hold,
bool useEpoch, uint32_t epoch);
445 Swarm_M138_Error_e readMessageInternal(
const char mode, uint64_t msg_id_in,
char *asciiHex,
size_t len, uint64_t *msg_id_out, uint32_t *epoch, uint16_t *appID);
447 bool initializeBuffers(
void);
448 bool processUnsolicitedEvent(
const char *event);
449 void pruneBacklog(
void);
455 int qwiicSwarmAvailable(
void);
456 int qwiicSwarmReadChars(
int len,
char *dest);
457 int qwiicSwarmWriteChars(
int len,
const char *dest);
458 unsigned long _lastI2cCheck;
459 #define QWIIC_SWARM_I2C_POLLING_WAIT_MS 2
461 #define QWIIC_SWARM_LEN_REG 0xFD
462 #define QWIIC_SWARM_DATA_REG 0xFF
464 #define QWIIC_SWARM_SER_PACKET_SIZE 8
466 #define QWIIC_SWARM_I2C_BUFFER_LENGTH 32
470 char *swarm_m138_alloc_char(
size_t num);
471 void swarm_m138_free_char(
char *freeMe);
474 size_t hwPrint(
const char *s);
475 size_t hwWriteData(
const char *buff,
int len);
476 size_t hwWrite(
const char c);
477 int hwAvailable(
void);
478 int hwReadChars(
char *buf,
int len);
480 void beginSerial(
unsigned long baud);
Swarm_M138_Error_e
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:119
@ SWARM_M138_ERROR_INVALID_MODE
Indicates the GPIO1 pin mode was invalid.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:127
@ SWARM_M138_ERROR_ERR
Command input error (ERR) - the error is copied into commandError.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:128
@ SWARM_M138_ERROR_INVALID_RATE
Indicates the message rate was invalid.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:126
@ SWARM_M138_ERROR_ERROR
Just a plain old communication error.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:120
@ SWARM_M138_ERROR_MEM_ALLOC
Memory allocation error.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:122
@ SWARM_M138_ERROR_TIMEOUT
Communication timeout.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:123
@ SWARM_M138_ERROR_INVALID_FORMAT
Indicates the command response format was invalid.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:124
@ SWARM_M138_ERROR_SUCCESS
Hey, it worked!
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:121
@ SWARM_M138_ERROR_INVALID_CHECKSUM
Indicates the command response checksum was invalid.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:125
const char SWARM_M138_COMMAND_GPS_JAMMING[]
GPS Jamming/Spoofing Indication.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:102
Swarm_M138_Modem_Status_e
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:239
const char SWARM_M138_COMMAND_RX_DATA_MSG[]
Receive Data Message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:110
Swarm_M138_GPIO1_Mode_e
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:169
const char SWARM_M138_COMMAND_MSG_RX_MGMT[]
Messages Received Management.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:106
const char SWARM_M138_COMMAND_FIRMWARE_VER[]
Retrieve Firmware Version.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:101
const char SWARM_M138_COMMAND_MSG_TX_MGMT[]
Messages to Transmit Management.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:107
const char SWARM_M138_COMMAND_SLEEP[]
Sleep Mode.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:113
const char SWARM_M138_COMMAND_POWER_STAT[]
Power Status.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:109
const char SWARM_M138_COMMAND_GPIO1_CONTROL[]
GPIO1 Control.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:104
const char SWARM_M138_COMMAND_GPS_FIX_QUAL[]
GPS Fix Quality.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:105
const char SWARM_M138_COMMAND_TX_DATA[]
Transmit Data.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:115
#define SFE_QWIIC_SWARM_DEFAULT_I2C_ADDRESS
The default I2C address for the SparkFun Qwiic Swarm Breakout.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:87
const char SWARM_M138_COMMAND_GEOSPATIAL_INFO[]
Geospatial Information.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:103
const char SWARM_M138_COMMAND_RX_TEST[]
Receive Test.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:112
Swarm_M138_GPS_Fix_Type_e
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:184
const char SWARM_M138_COMMAND_RESTART[]
Restart Device.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:111
const char SWARM_M138_COMMAND_MODEM_STAT[]
Modem Status.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:114
Swarm_M138_Wake_Cause_e
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:230
#define SWARM_M138_STANDARD_RESPONSE_TIMEOUT
Standard command timeout: allow one second for the modem to respond.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:77
const char SWARM_M138_COMMAND_CONFIGURATION[]
Configuration Settings.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:99
const char SWARM_M138_COMMAND_DATE_TIME_STAT[]
Date/Time Status.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:100
const uint32_t SWARM_M138_MAX_MESSAGE_RATE
2147483647 (2^31 - 1)
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:133
const char SWARM_M138_COMMAND_POWER_OFF[]
Power Off.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:108
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:257
Swarm_M138_Error_e getReceiveTestRate(uint32_t *rate)
Query the current $RT rate.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2511
Swarm_M138_Error_e listTxMessagesIDs(uint64_t *ids, uint16_t maxCount)
List the IDs of all the unsent messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3924
Swarm_M138_Error_e getPowerStatus(Swarm_M138_Power_Status_t *powerStatus)
Get the most recent $PW message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2124
Swarm_M138_Error_e deleteTxMessage(uint64_t msg_id)
Delete the TX message with the specified ID.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3590
void setDateTimeCallback(void(*swarmDateTimeCallback)(const Swarm_M138_DateTimeData_t *dateTime))
Set up the callback for the $DT Date Time message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4622
void setPowerStatusCallback(void(*swarmPowerStatusCallback)(const Swarm_M138_Power_Status_t *status))
Set up the callback for the $PW power status message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4670
Swarm_M138_Error_e getConfigurationSettings(char *settings)
Read the modem device ID and name using the $CS message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:946
Swarm_M138_Error_e deleteAllTxMessages(void)
Delete all unsent messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3678
void setSleepWakeCallback(void(*swarmSleepWakeCallback)(Swarm_M138_Wake_Cause_e cause))
Set up the callback for the $SL WAKE sleep mode messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4706
void setReceiveTestCallback(void(*swarmReceiveTestCallback)(const Swarm_M138_Receive_Test_t *rxTest))
Set up the callback for the $RT receive test message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4682
Swarm_M138_Error_e setGPIO1Mode(Swarm_M138_GPIO1_Mode_e mode)
Get the current GPIO1 pin mode using the $GP message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1824
void setGeospatialInfoCallback(void(*swarmGeospatialCallback)(const Swarm_M138_GeospatialData_t *info))
Set up the callback for the $GN geospatial information message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4646
Swarm_M138_Error_e getDateTimeRate(uint32_t *rate)
Query the current $DT rate.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1163
Swarm_M138_Error_e readOldestMessage(char *asciiHex, size_t len, uint64_t *msg_id, uint32_t *epoch=NULL, uint16_t *appID=NULL)
Read the oldest unread message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3295
Swarm_M138_Error_e getGeospatialInfo(Swarm_M138_GeospatialData_t *info)
Get the most recent $GN message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1549
Swarm_M138_Error_e markRxMessage(uint64_t msg_id)
Mark the RX message with the specified ID as read.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3027
bool isConnected(void)
Check if the modem is connected and responding by getting the configuration settings.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:136
Swarm_M138_Error_e setMessageNotifications(bool enable)
Enable / disable receive message notifications.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3221
Swarm_M138_Error_e deleteAllRxMessages(bool read=true)
Delete all read RX messages (default) or all messages (read = false)
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2948
Swarm_M138_Error_e transmitTextHold(const char *data, uint64_t *msg_id, uint32_t hold)
Queue a printable text message for transmission with a hold duration.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4171
Swarm_M138_Error_e getMessageNotifications(bool *enabled)
Query if message notifications are enabled.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3173
void setGpsJammingCallback(void(*swarmGpsJammingCallback)(const Swarm_M138_GPS_Jamming_Indication_t *jamming))
Set up the callback for the $GJ jamming indication message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4634
Swarm_M138_Error_e transmitText(const char *data, uint64_t *msg_id)
Queue a printable text message for transmission.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4129
Swarm_M138_Error_e setGpsFixQualityRate(uint32_t rate)
Set the rate of $GS GPS fix quality messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2039
Swarm_M138_Error_e getDateTime(Swarm_M138_DateTimeData_t *dateTime)
Get the most recent $DT message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1088
Swarm_M138_Error_e sleepMode(uint32_t seconds)
Instruct the modem to sleep for this many seconds.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2639
Swarm_M138_Error_e powerOff(void)
The Modem enters a low power mode until power is completely removed and restored.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2085
Swarm_M138_Error_e setGpsJammingIndicationRate(uint32_t rate)
Set the rate of $GJ jamming indication messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1502
Swarm_M138_Error_e getDeviceID(uint32_t *id)
Read the modem device ID using the $CS message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1010
const char * modemStatusString(Swarm_M138_Modem_Status_e status)
Convert modem status enum into printable text.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4745
bool checkUnsolicitedMsg(void)
Check for the arrival of new serial data. Parse it. Process any unsolicited messages....
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:199
const char * commandErrorString(const char *ERR)
Convert command error into a printable description.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4843
Swarm_M138_Error_e getGpsFixQualityRate(uint32_t *rate)
Query the current $GS rate.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1959
Swarm_M138_Error_e setDateTimeRate(uint32_t rate)
Set the rate of $DT Date/Time messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1243
bool begin(HardwareSerial &hardSerial)
Begin communication with the Swarm M138 modem.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:89
Swarm_M138_Error_e setPowerStatusRate(uint32_t rate)
Set the rate of $PW power status messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2295
Swarm_M138_Error_e transmitBinaryExpire(const uint8_t *data, size_t len, uint64_t *msg_id, uint32_t epoch)
Queue a binary message for transmission with an expiry time (epoch)
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4467
Swarm_M138_Error_e deleteRxMessage(uint64_t msg_id)
Delete the RX message with the specified ID.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2857
void setGpsFixQualityCallback(void(*swarmGpsFixQualityCallback)(const Swarm_M138_GPS_Fix_Quality_t *fixQuality))
Set up the callback for the $GS GPS fix quality message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4658
Swarm_M138_Error_e getTemperature(float *temperature)
Get the modem temperature.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2342
Swarm_M138_Error_e getGpsJammingIndicationRate(uint32_t *rate)
Query the current $GJ rate.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1422
Swarm_M138_Error_e getGpsFixQuality(Swarm_M138_GPS_Fix_Quality_t *fixQuality)
Get the most recent $GS message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1867
void disableDebugging(void)
Disable debug messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:187
Swarm_M138_Error_e markAllRxMessages(void)
Mark all RX messages as read.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3115
Swarm_M138_Error_e getGpsJammingIndication(Swarm_M138_GPS_Jamming_Indication_t *jamming)
Get the most recent $GJ message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1353
Swarm_M138_Error_e getUnsentMessageCount(uint16_t *count)
Return the count of all unsent messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3508
Swarm_M138_Error_e readMessage(uint64_t msg_id, char *asciiHex, size_t len, uint32_t *epoch=NULL, uint16_t *appID=NULL)
Read the message with the specified ID.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3272
void setTransmitDataCallback(void(*swarmTransmitDataCallback)(const int16_t *rssi_sat, const int16_t *snr, const int16_t *fdev, const uint64_t *msg_id))
Set up the callback for $TD SENT messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4731
Swarm_M138_Error_e getPowerStatusRate(uint32_t *rate)
Query the current $PW rate.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2215
Swarm_M138_Error_e getGPIO1Mode(Swarm_M138_GPIO1_Mode_e *mode)
Get the current GPIO1 pin mode using the $GP message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1756
const char * modemErrorString(Swarm_M138_Error_e error)
Convert modem error enum into printable text.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4799
Swarm_M138_Error_e transmitBinaryHold(const uint8_t *data, size_t len, uint64_t *msg_id, uint32_t hold)
Queue a binary message for transmission with a hold duration.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4417
void setModemStatusCallback(void(*swarmModemStatusCallback)(Swarm_M138_Modem_Status_e status, const char *data))
Set up the callback for the $M138 modem status messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4694
void setReceiveMessageCallback(void(*swarmReceiveMessageCallback)(const uint16_t *appID, const int16_t *rssi, const int16_t *snr, const int16_t *fdev, const char *asciiHex))
Set up the callback for the $RD receive data message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4718
Swarm_M138_Error_e listTxMessage(uint64_t msg_id, char *asciiHex, size_t len, uint32_t *epoch=NULL, uint16_t *appID=NULL)
List the unsent message with the specified ID.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3750
Swarm_M138_Error_e setReceiveTestRate(uint32_t rate)
Set the rate of $RT receive test messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2591
Swarm_M138_Error_e restartDevice(bool dbinit=false)
Restart the modem.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2363
Swarm_M138_Error_e transmitTextExpire(const char *data, uint64_t *msg_id, uint32_t epoch)
Queue a printable text message for transmission with an expiry time (epoch)
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4217
Swarm_M138_Error_e getFirmwareVersion(char *version)
Read the modem firmware version using the $FV message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1292
SWARM_M138(void)
Class to communicate with the Swarm M138 satellite modem.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:28
Swarm_M138_Error_e transmitBinary(const uint8_t *data, size_t len, uint64_t *msg_id)
Queue a binary message for transmission.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:4371
Swarm_M138_Error_e getReceiveTest(Swarm_M138_Receive_Test_t *rxTest)
Get the most recent $RT message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2407
Swarm_M138_Error_e setGeospatialInfoRate(uint32_t rate)
Set the rate of $GN geospatial information messages.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1709
Swarm_M138_Error_e getGeospatialInfoRate(uint32_t *rate)
Query the current $GN rate.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:1629
Swarm_M138_Error_e readNewestMessage(char *asciiHex, size_t len, uint64_t *msg_id, uint32_t *epoch=NULL, uint16_t *appID=NULL)
Read the newest unread message.
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:3318
Swarm_M138_Error_e getRxMessageCount(uint16_t *count, bool unread=false)
Return the count of all messages (default) or unread messages (unread = true)
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:2772
void enableDebugging(Stream &debugPort=Serial)
Enable debug messages on the chosen serial port Calling this function with nothing sets the debug por...
Definition: SparkFun_Swarm_Satellite_Arduino_Library.cpp:176
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:137
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:198
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:149
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:159
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:208
Definition: SparkFun_Swarm_Satellite_Arduino_Library.h:218