LoRa_APRS_Tracker111/include/configuration.h

133 lines
2.5 KiB
C++

#ifndef CONFIGURATION_H_
#define CONFIGURATION_H_
#include <Arduino.h>
#include <vector>
#include <FS.h>
class WiFiAP {
public:
bool active;
String password;
};
class Beacon {
public:
String callsign;
String symbol;
String overlay;
String comment;
bool smartBeaconActive;
byte smartBeaconSetting;
String micE;
bool gpsEcoMode;
};
class Display {
public:
bool showSymbol;
bool ecoMode;
int timeout;
bool turn180;
};
class Battery {
public:
bool sendVoltage;
bool voltageAsTelemetry;
bool sendVoltageAlways;
bool monitorVoltage;
float sleepVoltage;
};
class Winlink {
public:
String password;
};
class WXSENSOR {
public:
bool active;
float temperatureCorrection;
bool sendTelemetry;
};
class Notification {
public:
bool ledTx;
int ledTxPin;
bool ledMessage;
int ledMessagePin;
bool ledFlashlight;
int ledFlashlightPin;
bool buzzerActive;
int buzzerPinTone;
int buzzerPinVcc;
bool bootUpBeep;
bool txBeep;
bool messageRxBeep;
bool stationBeep;
bool lowBatteryBeep;
bool shutDownBeep;
};
class LoraType {
public:
long frequency;
int spreadingFactor;
long signalBandwidth;
int codingRate4;
int power;
};
class PTT {
public:
bool active;
int io_pin;
int preDelay;
int postDelay;
bool reverse;
};
class BLUETOOTH {
public:
byte type;
bool active;
};
class Configuration {
public:
WiFiAP wifiAP;
std::vector<Beacon> beacons;
Display display;
Battery battery;
Winlink winlink;
WXSENSOR wxsensor;
Notification notification;
std::vector<LoraType> loraTypes;
PTT ptt;
BLUETOOTH bluetooth;
bool simplifiedTrackerMode;
int sendCommentAfterXBeacons;
String path;
int nonSmartBeaconRate;
int rememberStationTime;
int standingUpdateTime;
bool sendAltitude;
bool disableGPS;
bool acceptOwnFrameFromTNC;
void init();
void writeFile();
Configuration();
bool validateConfigFile(const String& currentBeaconCallsign);
bool validateMicE(const String& currentBeaconMicE);
private:
bool readFile();
};
#endif