2020-06-14 18:55:27 +00:00
|
|
|
#ifndef LORAPRS_CONFIG_H
|
|
|
|
#define LORAPRS_CONFIG_H
|
|
|
|
|
|
|
|
#include <Arduino.h>
|
|
|
|
|
|
|
|
namespace LoraPrs {
|
|
|
|
|
|
|
|
struct Config
|
|
|
|
{
|
2021-02-13 07:49:46 +00:00
|
|
|
bool IsClientMode; // false - server mode, true - client mode (disables wifi and aprsis)
|
|
|
|
|
|
|
|
// lora protocol parameters
|
2020-06-14 18:55:27 +00:00
|
|
|
long LoraFreq; // lora frequency, e.g. 433.775e6
|
2021-02-02 07:31:45 +00:00
|
|
|
long LoraBw; // lora bandwidth, e.g. 125e3
|
|
|
|
int LoraSf; // lora spreading factor, e.g. 12
|
|
|
|
int LoraCodingRate; // lora coding rate, e.g. 7
|
|
|
|
int LoraPower; // lora power level in dbm, 20
|
2021-02-05 16:57:06 +00:00
|
|
|
int LoraSync; // lora sync word/packet id, 0x3f
|
2020-12-12 10:21:53 +00:00
|
|
|
bool LoraEnableCrc; // lora crc check enabled
|
2020-06-14 18:55:27 +00:00
|
|
|
|
2021-02-13 07:49:46 +00:00
|
|
|
// lora hardware pinouts and isr
|
2021-02-03 09:37:06 +00:00
|
|
|
byte LoraPinSs; // lora ss pin
|
|
|
|
byte LoraPinRst; // lora rst pin
|
|
|
|
byte LoraPinDio0; // lora dio0 pin
|
2021-10-20 10:20:19 +00:00
|
|
|
byte LoraPinDio1; // lora dio1 pin
|
2021-02-13 07:49:46 +00:00
|
|
|
bool LoraUseIsr; // true to use interrupts, false for fallback polling, e.g. if Dio0 is not connected
|
|
|
|
|
|
|
|
// bluetooth
|
|
|
|
String BtName; // bluetooth device name for the client, set to empty string to disable bluetooth in server mode
|
2021-06-08 06:33:08 +00:00
|
|
|
bool BtEnableBle; // bluetooth device presents as BLE rather than serial bluetooth e.g. for iOS devices
|
|
|
|
|
2021-02-13 07:49:46 +00:00
|
|
|
// wifi
|
|
|
|
String WifiSsid; // wifi access point name
|
|
|
|
String WifiKey; // wifi access point key
|
2021-02-03 09:29:54 +00:00
|
|
|
|
2021-02-13 07:49:46 +00:00
|
|
|
// kiss
|
|
|
|
bool EnableKissExtensions; // true - enable kiss extensions for radio control and signal reports
|
|
|
|
|
|
|
|
// aprsis connectivity
|
2020-06-14 18:55:27 +00:00
|
|
|
int AprsPort; // aprs server port, 14580
|
|
|
|
String AprsHost; // aprs server hostname, rotate.aprs2.net
|
2021-02-02 08:26:11 +00:00
|
|
|
String AprsLogin; // aprs callsign to use, e.g. N0CALL-1
|
2020-06-14 18:55:27 +00:00
|
|
|
String AprsPass; // aprs login password
|
2020-06-15 10:18:27 +00:00
|
|
|
String AprsFilter; // aprs filter, see http://www.aprs-is.net/javAPRSFilter.aspx, do not include filter directive, just space separated values
|
2020-06-14 18:55:27 +00:00
|
|
|
String AprsRawBeacon; // aprs string for server beacon, e.g. NOCALL-1>APZMDM,WIDE1-1:!0000.00N/00000.00E#LoRA 433.775MHz/BW125/SF12/CR7/0xf3
|
|
|
|
int AprsRawBeaconPeriodMinutes; // aprs beacon period
|
|
|
|
|
2021-04-07 06:24:22 +00:00
|
|
|
// frequency correction
|
|
|
|
bool EnableAutoFreqCorrection; // true - correct own frequency based on received packet frequency deviation
|
|
|
|
int AutoFreqCorrectionDeltaHz; // correct when difference is larger than this value
|
|
|
|
|
2021-02-13 07:49:46 +00:00
|
|
|
// aprs logic
|
2020-06-14 18:55:27 +00:00
|
|
|
bool EnableSignalReport; // true - append signal report on server side for the client to be sent to APRS-IS
|
|
|
|
bool EnablePersistentAprsConnection; // true - keep aprs-is connection active all the time
|
|
|
|
bool EnableRfToIs; // true - enable RF to APRS-IS submission
|
|
|
|
bool EnableIsToRf; // true - enable APRS-IS to RF submission
|
|
|
|
bool EnableRepeater; // true - digirepeat incoming packets based on WIDEn-n paths
|
|
|
|
bool EnableBeacon; // true - send AprsRawBeacon to RF and APRS-IS if EnableRfToIs is true
|
2021-05-26 16:11:33 +00:00
|
|
|
|
|
|
|
// external ptt tx control
|
|
|
|
bool PttEnable; // true - enable external ptt control
|
|
|
|
int PttPin; // esp pin to set high on transmit
|
|
|
|
int PttTxDelayMs; // ptt tx delay
|
|
|
|
int PttTxTailMs; // ptt tx tail
|
2020-06-14 18:55:27 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
} // LoraPrs
|
|
|
|
|
|
|
|
#endif // LORAPRS_CONFIG_H
|