7#ifndef __MULITIPLESATELITE_H
8#define __MULITIPLESATELITE_H
11#include "../../Defines.h"
34 MultipleSatellite(HardwareSerial& serialPort,
long baudRate, uint32_t config,
int rxPin,
int txPin)
35 : _serial(serialPort), _baudRate(baudRate), _config(config), _rxPin(rxPin), _txPin(txPin)
40 _serial.begin(_baudRate, _config, _rxPin, _txPin);
45 return _serial.available() > 0;
50 return _serial.read();
68 write(
"$PCAS06,0*1B\r\n");
69 return findCharacter(
"SW=");
74 return findCharacter(
"ANTENNA");
79 write(
"$PCAS06,2*19\r\n");
80 String mode = findCharacter(
"MO=");
83 }
else if (mode ==
"B") {
85 }
else if (mode ==
"R") {
87 }
else if (mode ==
"E") {
89 }
else if (mode ==
"Q") {
100 write(
"$PCAS04,1*18\r\n");
103 write(
"$PCAS04,2*1B\r\n");
106 write(
"$PCAS04,4*1D\r\n");
109 write(
"$PCAS04,8*11\r\n");
112 write(
"$PCAS04,20*2B\r\n");
123 write(
"$PCAS10,0*1C\r\n");
126 write(
"$PCAS10,1*1D\r\n");
129 write(
"$PCAS10,2*1E\r\n");
133 write(
"$PCAS10,3*1F\r\n");
136 write(
"$PCAS10,8*14\r\n");
139 write(
"$PCAS10,9*15\r\n");
147 write(
"$PCAS12,65535*1E\r\n");
151 HardwareSerial& _serial;
156 String findCharacter(
const char* searchStr)
160 int GNSSbufindexsum = 0;
167 GNSSbuf[GNSSbufindexsum] = 0;
170 if (strstr(GNSSbuf, searchStr) !=
nullptr) {
174 GNSSbuf[GNSSbufindexsum++] = d;
175 if (GNSSbufindexsum >=
sizeof(GNSSbuf) - 1) {
176 GNSSbufindexsum =
sizeof(GNSSbuf) - 1;
181 char* p = strstr(GNSSbuf, searchStr);
183 strcpy(GNSSbuf, p + strlen(searchStr));
186 char* q = strstr(GNSSbuf,
"*");
190 return String(GNSSbuf);
@ BOOT_FACTORY_ENABLE_SERIAL_RADIO
@ BOOT_FACTORY_DISABLE_SERIAL_RADIO
void setSystemBootMode(boot_mode_t mode)
MultipleSatellite(HardwareSerial &serialPort, long baudRate, uint32_t config, int rxPin, int txPin)
void write(const char *data)
String getSatelliteMode()
void setSatelliteMode(satellite_mode_t mode)