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