add mic-e 2
This commit is contained in:
parent
9652882be8
commit
b6cb6ab0c7
|
|
@ -4,8 +4,9 @@
|
|||
"callsign": "NOCALL-7",
|
||||
"symbol": "[",
|
||||
"overlay": "/",
|
||||
"micE": "",
|
||||
"comment": "",
|
||||
"smart_beacon": {
|
||||
"smartBeacon": {
|
||||
"active": true,
|
||||
"slowRate": 120,
|
||||
"slowSpeed": 3,
|
||||
|
|
@ -15,14 +16,15 @@
|
|||
"minDeltaBeacon": 20,
|
||||
"turnMinDeg": 12,
|
||||
"turnSlope": 60
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"callsign": "NOCALL-7",
|
||||
"symbol": ">",
|
||||
"overlay": "/",
|
||||
"micE": "",
|
||||
"comment": "",
|
||||
"smart_beacon": {
|
||||
"smartBeacon": {
|
||||
"active": true,
|
||||
"slowRate": 120,
|
||||
"slowSpeed": 10,
|
||||
|
|
@ -38,8 +40,9 @@
|
|||
"callsign": "NOCALL-7",
|
||||
"symbol": "j",
|
||||
"overlay": "/",
|
||||
"micE": "",
|
||||
"comment": "",
|
||||
"smart_beacon": {
|
||||
"smartBeacon": {
|
||||
"active": true,
|
||||
"slowRate": 120,
|
||||
"slowSpeed": 5,
|
||||
|
|
|
|||
|
|
@ -90,6 +90,8 @@ bool digirepeaterActive = false;
|
|||
bool sosActive = false;
|
||||
bool disableGPS;
|
||||
|
||||
bool miceActive = false;
|
||||
|
||||
logging::Logger logger;
|
||||
|
||||
void setup() {
|
||||
|
|
@ -155,6 +157,7 @@ void loop() {
|
|||
currentBeacon = &Config.beacons[myBeaconsIndex];
|
||||
if (statusState) {
|
||||
Config.validateConfigFile(currentBeacon->callsign);
|
||||
miceActive = Config.validateMicE(currentBeacon->micE);
|
||||
}
|
||||
|
||||
powerManagement.batteryManager();
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ void Configuration::readFile(fs::FS &fs, const char *fileName) {
|
|||
bcn.callsign = BeaconsArray[i]["callsign"].as<String>();
|
||||
bcn.symbol = BeaconsArray[i]["symbol"].as<String>();
|
||||
bcn.overlay = BeaconsArray[i]["overlay"].as<String>();
|
||||
bcn.micE = BeaconsArray[i]["micE"].as<String>();
|
||||
bcn.comment = BeaconsArray[i]["comment"].as<String>();
|
||||
|
||||
bcn.smartBeaconState = BeaconsArray[i]["smart_beacon"]["active"].as<bool>();
|
||||
|
|
@ -40,7 +41,7 @@ void Configuration::readFile(fs::FS &fs, const char *fileName) {
|
|||
bcn.minTxDist = BeaconsArray[i]["smart_beacon"]["minTxDist"].as<int>();
|
||||
bcn.minDeltaBeacon = BeaconsArray[i]["smart_beacon"]["minDeltaBeacon"].as<int>();
|
||||
bcn.turnMinDeg = BeaconsArray[i]["smart_beacon"]["turnMinDeg"].as<int>();
|
||||
bcn.turnSlope = BeaconsArray[i]["smart_beacon"]["turnSlope"].as<int>();
|
||||
bcn.turnSlope = BeaconsArray[i]["smart_beacon"]["turnSlope"].as<int>();
|
||||
|
||||
beacons.push_back(bcn);
|
||||
}
|
||||
|
|
@ -101,4 +102,16 @@ void Configuration::validateConfigFile(String currentBeaconCallsign) {
|
|||
delay(1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool Configuration::validateMicE(String currentBeaconMicE) {
|
||||
String miceMessageTypes[] = {"111", "110", "101", "100", "011", "010", "001" , "000"};
|
||||
int arraySize = sizeof(miceMessageTypes) / sizeof(miceMessageTypes[0]);
|
||||
bool validType = false;
|
||||
for (int i=0; i<arraySize;i++) {
|
||||
if (currentBeaconMicE == miceMessageTypes[i]) {
|
||||
validType = true;
|
||||
}
|
||||
}
|
||||
return validType;
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@ public:
|
|||
String callsign;
|
||||
String symbol;
|
||||
String overlay;
|
||||
String micE;
|
||||
String comment;
|
||||
bool smartBeaconState;
|
||||
int slowRate;
|
||||
|
|
@ -91,6 +92,7 @@ public:
|
|||
|
||||
Configuration();
|
||||
void validateConfigFile(String currentBeaconCallsign);
|
||||
bool validateMicE(String currentBeaconMicE);
|
||||
|
||||
private:
|
||||
void readFile(fs::FS &fs, const char *fileName) ;
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ extern double lastTxLat;
|
|||
extern double lastTxLng;
|
||||
extern double lastTxDistance;
|
||||
|
||||
extern bool miceActive;
|
||||
|
||||
|
||||
namespace STATION_Utils {
|
||||
|
||||
|
|
@ -389,14 +391,18 @@ namespace STATION_Utils {
|
|||
void sendBeacon(String type) {
|
||||
String packet;
|
||||
if (Config.bme.sendTelemetry && type == "Wx") {
|
||||
packet = APRSPacketLib::generateGPSBeaconPacket(currentBeacon->callsign, "APLRT1", Config.path, "/", APRSPacketLib::encondeGPS(gps.location.lat(),gps.location.lng(), gps.course.deg(), gps.speed.knots(), currentBeacon->symbol, Config.sendAltitude, gps.altitude.feet(), sendStandingUpdate, "Wx"));
|
||||
if (miceActive) {
|
||||
packet = APRSPacketLib::generateMiceGPSBeacon(currentBeacon->micE, currentBeacon->callsign,"_", currentBeacon->overlay, gps.location.lat(), gps.location.lng(), gps.course.deg(), gps.speed.knots(), gps.altitude.meters());
|
||||
} else {
|
||||
packet = APRSPacketLib::generateGPSBeaconPacket(currentBeacon->callsign, "APLRT1", Config.path, "/", APRSPacketLib::encondeGPS(gps.location.lat(),gps.location.lng(), gps.course.deg(), gps.speed.knots(), currentBeacon->symbol, Config.sendAltitude, gps.altitude.feet(), sendStandingUpdate, "Wx"));
|
||||
}
|
||||
packet += BME_Utils::readDataSensor("APRS");
|
||||
} else {
|
||||
//packet = APRSPacketLib::generateGPSBeaconPacket(currentBeacon->callsign, "APLRT1", Config.path, currentBeacon->overlay, APRSPacketLib::encondeGPS(gps.location.lat(),gps.location.lng(), gps.course.deg(), gps.speed.knots(), currentBeacon->symbol, Config.sendAltitude, gps.altitude.feet(), sendStandingUpdate, "GPS"));
|
||||
//
|
||||
// this is Mic-E Test
|
||||
packet = APRSPacketLib::generateMiceGPSBeacon("110", currentBeacon->callsign, currentBeacon->symbol, currentBeacon->overlay, gps.location.lat(), gps.location.lng(), gps.course.deg(), gps.speed.knots(), gps.altitude.meters());
|
||||
//
|
||||
if (miceActive) {
|
||||
packet = APRSPacketLib::generateMiceGPSBeacon(currentBeacon->micE, currentBeacon->callsign, currentBeacon->symbol, currentBeacon->overlay, gps.location.lat(), gps.location.lng(), gps.course.deg(), gps.speed.knots(), gps.altitude.meters());
|
||||
} else {
|
||||
packet = APRSPacketLib::generateGPSBeaconPacket(currentBeacon->callsign, "APLRT1", Config.path, currentBeacon->overlay, APRSPacketLib::encondeGPS(gps.location.lat(),gps.location.lng(), gps.course.deg(), gps.speed.knots(), currentBeacon->symbol, Config.sendAltitude, gps.altitude.feet(), sendStandingUpdate, "GPS"));
|
||||
}
|
||||
}
|
||||
if (currentBeacon->comment != "") {
|
||||
updateCounter++;
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ namespace utils {
|
|||
if (statusState) {
|
||||
lastTx = millis() - lastTxTime;
|
||||
uint32_t statusTx = millis() - statusTime;
|
||||
if (statusTx > 15*60*1000 && lastTx > 10*1000) {
|
||||
if (statusTx > 10*60*1000 && lastTx > 10*1000) {
|
||||
LoRa_Utils::sendNewPacket(APRSPacketLib::generateStatusPacket(currentBeacon->callsign, "APLRT1", Config.path, "https://github.com/richonguzman/LoRa_APRS_Tracker " + versionDate));
|
||||
statusState = false;
|
||||
lastTx = millis();
|
||||
|
|
|
|||
Loading…
Reference in New Issue