Merge pull request #20 from lora-aprs/json_config

wrong branch
This commit is contained in:
Peter Buchegger 2021-03-19 22:31:54 +01:00 committed by GitHub
commit d3974a8d2b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 12 deletions

View file

@ -1,5 +1,5 @@
{ {
"callsign":"NOCALL-10", "callsign":"NOCALL-7",
"debug": false, "debug": false,
"beacon": "beacon":
{ {
@ -10,7 +10,7 @@
}, },
"smart_beacon": "smart_beacon":
{ {
"active":false, "active":true,
"turn_min":25, "turn_min":25,
"slow_rate":300, "slow_rate":300,
"slow_speed":10, "slow_speed":10,

View file

@ -27,12 +27,13 @@ String create_long_aprs(RawDegrees lng);
String createDateString(time_t t); String createDateString(time_t t);
String createTimeString(time_t t); String createTimeString(time_t t);
String getSmartBeaconState(); String getSmartBeaconState();
String padding(unsigned int number, unsigned int width);
// cppcheck-suppress unusedFunction // cppcheck-suppress unusedFunction
void setup() void setup()
{ {
Serial.begin(115200); Serial.begin(115200);
#ifdef TTGO_T_Beam_V1_0 #ifdef TTGO_T_Beam_V1_0
Wire.begin(SDA, SCL); Wire.begin(SDA, SCL);
if (!powerManagement.begin(Wire)) if (!powerManagement.begin(Wire))
@ -156,16 +157,19 @@ void loop()
APRSMessage msg; APRSMessage msg;
msg.setSource(Config.callsign); msg.setSource(Config.callsign);
msg.setDestination("APLT0"); msg.setDestination("APLT00");
String lat = create_lat_aprs(gps.location.rawLat()); String lat = create_lat_aprs(gps.location.rawLat());
String lng = create_long_aprs(gps.location.rawLng()); String lng = create_long_aprs(gps.location.rawLng());
String alt = padding((int)gps.altitude.feet(), 6);
String course = padding((int)gps.course.deg(), 3);
String speed = padding((int)gps.speed.knots(), 3);
#ifdef TTGO_T_Beam_V1_0 #ifdef TTGO_T_Beam_V1_0
String batteryVoltage(powerManagement.getBatteryVoltage(), 2); String batteryVoltage(powerManagement.getBatteryVoltage(), 2);
String batteryChargeCurrent(powerManagement.getBatteryChargeDischargeCurrent(), 0); String batteryChargeCurrent(powerManagement.getBatteryChargeDischargeCurrent(), 0);
msg.getAPRSBody()->setData(String("=") + lat + Config.beacon.overlay + lng + Config.beacon.symbol + Config.beacon.message + " - Bat.: " + batteryVoltage + "V - Cur.: " + batteryChargeCurrent + "mA"); msg.getAPRSBody()->setData(String("=") + lat + Config.beacon.overlay + lng + Config.beacon.symbol + course + "/" + speed + "/A=" + alt + Config.beacon.message + " - Bat.: " + batteryVoltage + "V - Cur.: " + batteryChargeCurrent + "mA");
#else #else
msg.getAPRSBody()->setData(String("=") + lat + Config.beacon.overlay + lng + Config.beacon.symbol + Config.beacon.message); msg.getAPRSBody()->setData(String("=") + lat + Config.beacon.overlay + lng + Config.beacon.symbol + course + "/" + speed + "/A=" + alt + Config.beacon.message);
#endif #endif
String data = msg.encode(); String data = msg.encode();
logPrintlnD(data); logPrintlnD(data);
@ -307,9 +311,7 @@ String create_long_aprs(RawDegrees lng)
String createDateString(time_t t) String createDateString(time_t t)
{ {
char line[30]; return String(padding(day(t), 2) + "." + padding(month(t), 2) + "." + padding(year(t), 4));
sprintf(line, "%02d.%02d.%04d", day(t), month(t), year(t));
return String(line);
} }
String createTimeString(time_t t) String createTimeString(time_t t)
@ -318,9 +320,7 @@ String createTimeString(time_t t)
{ {
return String("00:00:00"); return String("00:00:00");
} }
char line[30]; return String(padding(hour(t), 2) + "." + padding(minute(t), 2) + "." + padding(second(t), 2));
sprintf(line, "%02d:%02d:%02d", hour(t), minute(t), second(t));
return String(line);
} }
String getSmartBeaconState() String getSmartBeaconState()
@ -331,3 +331,19 @@ String getSmartBeaconState()
} }
return "Off"; return "Off";
} }
String padding(unsigned int number, unsigned int width)
{
String result;
String num(number);
if(num.length() > width)
{
width = num.length();
}
for(unsigned int i = 0; i < width - num.length(); i++)
{
result.concat('0');
}
result.concat(num);
return result;
}