Merge branch 'master' into legacy

legacy
sh123 2022-07-23 18:17:20 +03:00
commit f8d8b67f14
5 zmienionych plików z 23 dodań i 4 usunięć

Wyświetl plik

@ -167,8 +167,8 @@ public class AppWorker extends Thread {
Message msg = new Message();
msg.what = AppMessage.CMD_SEND_LOCATION_TO_TNC.toInt();
msg.obj = position;
Log.i(TAG, String.format("Position sent: lat: %f, lon: %f, course: %f, speed: %f, alt: %f",
position.latitude, position.longitude,
Log.i(TAG, String.format("Position sent: %s, lat: %f, lon: %f, course: %f, speed: %f, alt: %f",
position.maidenHead, position.latitude, position.longitude,
position.bearingDegrees, position.speedMetersPerSecond, position.altitudeMeters));
_onMessageReceived.sendMessage(msg);
}
@ -226,8 +226,8 @@ public class AppWorker extends Thread {
private final ProtocolCallback _protocolCallback = new ProtocolCallback() {
@Override
protected void onReceivePosition(Position position) {
Log.i(TAG, String.format("Position received: lat: %f, lon: %f, course: %f, speed: %f, alt: %f, sym: %s, status: %s, comment: %s",
position.latitude, position.longitude,
Log.i(TAG, String.format("Position received: %s, lat: %f, lon: %f, course: %f, speed: %f, alt: %f, sym: %s, status: %s, comment: %s",
position.maidenHead, position.latitude, position.longitude,
position.bearingDegrees, position.speedMetersPerSecond, position.altitudeMeters,
position.symbolCode, position.status, position.comment));
// TODO, store to database

Wyświetl plik

@ -59,6 +59,8 @@ public class AprsDataPositionReport implements AprsData {
_position.isCompressed = false;
_isValid = true;
}
if (_isValid)
_position.maidenHead = UnitTools.decimalToMaidenhead(_position.latitude, _position.longitude);
}
@Override

Wyświetl plik

@ -208,6 +208,7 @@ public class AprsDataPositionReportMicE implements AprsData {
// read comment until the end
_position.comment = new String(Arrays.copyOfRange(infoData, 8, infoData.length));
_position.maidenHead = UnitTools.decimalToMaidenhead(_position.latitude, _position.longitude);
_isValid = true;
}

Wyświetl plik

@ -2,12 +2,15 @@ package com.radio.codec2talkie.protocol.position;
import android.location.Location;
import com.radio.codec2talkie.tools.UnitTools;
public class Position {
public long timestampEpochMs;
public String srcCallsign;
public String dstCallsign;
public double latitude;
public double longitude;
public String maidenHead;
public double altitudeMeters;
public double bearingDegrees;
public double speedMetersPerSecond;
@ -34,6 +37,7 @@ public class Position {
position.hasBearing = location.hasBearing();
position.hasAltitude = location.hasAltitude();
position.hasSpeed = location.hasSpeed();
position.maidenHead = UnitTools.decimalToMaidenhead(position.latitude, position.longitude);
return position;
}

Wyświetl plik

@ -28,6 +28,18 @@ public class UnitTools {
return v;
}
public static String decimalToMaidenhead(double latitude, double longitude) {
double lat = latitude + 90.0;
double lon = longitude + 180.0;
return String.format("%c%c%c%c%c%c",
(char)('A' + (char)(lon / 20.0)),
(char)('A' + (char)(lat / 10.0)),
(char)('0' + (char)((lon % 20) / 2.0)),
(char)('0' + (char)(lat % 10)),
(char)('A' + (char)((lon - ((int)(lon / 2.0) * 2)) / (5.0 / 60.0))),
(char)('A' + (char)((lat - ((int)(lat / 1.0) * 1)) / (2.5 / 60.0))));
}
public static String decimalToDecimalNmea(double degrees, boolean isLatitude) {
String value = decimalToNmea(degrees, isLatitude);
return value.substring(0, isLatitude ? 4 : 5) +