RadioLib
Universal wireless communication library for Arduino
APRS.h
1 #if !defined(_RADIOLIB_RADIOLIB_APRS_H)
2 #define _RADIOLIB_RADIOLIB_APRS_H
3 
4 #include "../../TypeDef.h"
5 
6 #if !defined(RADIOLIB_EXCLUDE_APRS)
7 
8 #include "../PhysicalLayer/PhysicalLayer.h"
9 #include "../AX25/AX25.h"
10 
11 // APRS data type identifiers
12 #define RADIOLIB_APRS_DATA_TYPE_POSITION_NO_TIME_NO_MSG "!"
13 #define RADIOLIB_APRS_DATA_TYPE_GPS_RAW "$"
14 #define RADIOLIB_APRS_DATA_TYPE_ITEM ")"
15 #define RADIOLIB_APRS_DATA_TYPE_TEST ","
16 #define RADIOLIB_APRS_DATA_TYPE_POSITION_TIME_NO_MSG "/"
17 #define RADIOLIB_APRS_DATA_TYPE_MSG ":"
18 #define RADIOLIB_APRS_DATA_TYPE_OBJECT ";"
19 #define RADIOLIB_APRS_DATA_TYPE_STATION_CAPABILITES "<"
20 #define RADIOLIB_APRS_DATA_TYPE_POSITION_NO_TIME_MSG "="
21 #define RADIOLIB_APRS_DATA_TYPE_STATUS ">"
22 #define RADIOLIB_APRS_DATA_TYPE_QUERY "?"
23 #define RADIOLIB_APRS_DATA_TYPE_POSITION_TIME_MSG "@"
24 #define RADIOLIB_APRS_DATA_TYPE_TELEMETRY "T"
25 #define RADIOLIB_APRS_DATA_TYPE_MAIDENHEAD_BEACON "["
26 #define RADIOLIB_APRS_DATA_TYPE_WEATHER_REPORT "_"
27 #define RADIOLIB_APRS_DATA_TYPE_USER_DEFINED "{"
28 #define RADIOLIB_APRS_DATA_TYPE_THIRD_PARTY "}"
29 
35 class APRSClient {
36  public:
42  explicit APRSClient(AX25Client* ax);
43 
44  // basic methods
45 
55  int16_t begin(char symbol, bool alt = false);
56 
74  int16_t sendPosition(char* destCallsign, uint8_t destSSID, char* lat, char* lon, char* msg = NULL, char* time = NULL);
75 
87  int16_t sendFrame(char* destCallsign, uint8_t destSSID, char* info);
88 
89 #if !defined(RADIOLIB_GODMODE)
90  private:
91 #endif
92  AX25Client* _ax;
93 
94  // default APRS symbol (car)
95  char _symbol = '>';
96  char _table = '/';
97 };
98 
99 #endif
100 
101 #endif
APRSClient::sendFrame
int16_t sendFrame(char *destCallsign, uint8_t destSSID, char *info)
Transmit generic APRS frame.
Definition: APRS.cpp:57
APRSClient::APRSClient
APRSClient(AX25Client *ax)
Default constructor.
Definition: APRS.cpp:3
AX25Client
Client for AX25 communication.
Definition: AX25.h:279
APRSClient::sendPosition
int16_t sendPosition(char *destCallsign, uint8_t destSSID, char *lat, char *lon, char *msg=NULL, char *time=NULL)
Transmit position.
Definition: APRS.cpp:20
APRSClient::begin
int16_t begin(char symbol, bool alt=false)
Initialization method.
Definition: APRS.cpp:7
APRSClient
Client for APRS communication.
Definition: APRS.h:35