kopia lustrzana https://github.com/sh123/codec2_talkie
Merge branch 'master' into legacy
commit
f8d8b67f14
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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) +
|
||||
|
|
Ładowanie…
Reference in New Issue