From 4831244fb12c31368b8b72b7948d9e13de25af51 Mon Sep 17 00:00:00 2001 From: sh123 Date: Sun, 21 Aug 2022 15:47:30 +0300 Subject: [PATCH] Separate setting to enable/disable aprsis --- .../java/com/radio/codec2talkie/app/AppWorker.java | 4 ++-- .../com/radio/codec2talkie/protocol/AprsIs.java | 13 +++++++++---- .../radio/codec2talkie/settings/PreferenceKeys.java | 1 + .../codec2talkie/settings/SettingsWrapper.java | 3 +-- codec2talkie/src/main/res/values/strings.xml | 2 ++ codec2talkie/src/main/res/xml/preferences.xml | 10 +++++++++- 6 files changed, 24 insertions(+), 9 deletions(-) diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/app/AppWorker.java b/codec2talkie/src/main/java/com/radio/codec2talkie/app/AppWorker.java index 2d7f155..52e89fa 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/app/AppWorker.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/app/AppWorker.java @@ -305,7 +305,7 @@ public class AppWorker extends Thread { @Override protected void onReceiveLog(String logData) { - Log.i(TAG, "RX: " + logData); + Log.i(TAG, "RX-LOG: " + logData); storeLogData(logData, false); } @@ -342,7 +342,7 @@ public class AppWorker extends Thread { @Override protected void onTransmitLog(String logData) { - Log.i(TAG, "TX: " + logData); + Log.i(TAG, "TX-LOG: " + logData); storeLogData(logData, true); } diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/AprsIs.java b/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/AprsIs.java index 4425617..e47c854 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/AprsIs.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/protocol/AprsIs.java @@ -12,6 +12,7 @@ import com.radio.codec2talkie.protocol.aprs.tools.AprsIsData; import com.radio.codec2talkie.protocol.message.TextMessage; import com.radio.codec2talkie.protocol.position.Position; import com.radio.codec2talkie.settings.PreferenceKeys; +import com.radio.codec2talkie.tools.DebugTools; import com.radio.codec2talkie.tools.TextTools; import com.radio.codec2talkie.transport.TcpIp; import com.radio.codec2talkie.transport.Transport; @@ -97,11 +98,14 @@ public class AprsIs implements Protocol, Runnable { } @Override - public void sendData(String src, String dst, String path, byte[] dataPacket) throws IOException { + public void sendData(String src, String dst, String path, byte[] data) throws IOException { if (_isSelfEnabled) { - // TODO, forward own data to APRS-IS + AprsIsData aprsIsData = new AprsIsData(src, dst, path, new String(data)); + synchronized (_txQueue) { + _txQueue.put(aprsIsData.toString().getBytes()); + } } - _childProtocol.sendData(src, dst, path, dataPacket); + _childProtocol.sendData(src, dst, path, data); } @Override @@ -111,6 +115,7 @@ public class AprsIs implements Protocol, Runnable { line = TextTools.getString(_rxQueue); } if (line.length() > 0) { + Log.d(TAG, "APRS-RX: " + DebugTools.bytesToDebugString(line.getBytes())); AprsIsData aprsIsData = AprsIsData.fromString(line); if (aprsIsData != null) { _parentProtocolCallback.onReceiveData(aprsIsData.src, aprsIsData.dst, aprsIsData.path, aprsIsData.data.getBytes()); @@ -299,7 +304,7 @@ public class AprsIs implements Protocol, Runnable { synchronized (_txQueue) { String line = TextTools.getString(_txQueue); if (line.length() > 0) { - Log.v(TAG, "APRS-IS TX: " + line); + Log.d(TAG, "APRS-IS TX: " + DebugTools.bytesToDebugString(line.getBytes())); try { tcpIp.write(line.getBytes()); } catch (IOException e) { diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java b/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java index ed7eb59..e3b26c3 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/settings/PreferenceKeys.java @@ -97,6 +97,7 @@ public final class PreferenceKeys { public static String APRS_LOCATION_SOURCE_SMART_MIN_TURN_ANGLE = "aprs_location_source_smart_min_turn_angle"; public static String APRS_LOCATION_SOURCE_SMART_TURN_SLOPE = "aprs_location_source_smart_turn_slope"; + public static String APRS_IS_ENABLE="aprs_is_enable"; public static String APRS_IS_CODE = "aprs_is_code"; public static String APRS_IS_TCPIP_SERVER = "aprs_is_tcpip_server"; public static String APRS_IS_ENABLE_RX_GATE = "aprs_is_enable_rx_gate"; diff --git a/codec2talkie/src/main/java/com/radio/codec2talkie/settings/SettingsWrapper.java b/codec2talkie/src/main/java/com/radio/codec2talkie/settings/SettingsWrapper.java index f4375cf..4229c64 100644 --- a/codec2talkie/src/main/java/com/radio/codec2talkie/settings/SettingsWrapper.java +++ b/codec2talkie/src/main/java/com/radio/codec2talkie/settings/SettingsWrapper.java @@ -94,7 +94,6 @@ public class SettingsWrapper { } public static boolean isAprsIsEnabled(SharedPreferences sharedPreferences) { - return sharedPreferences.getBoolean(PreferenceKeys.APRS_IS_ENABLE_RX_GATE, false) || - sharedPreferences.getBoolean(PreferenceKeys.APRS_IS_ENABLE_TX_GATE, false); + return sharedPreferences.getBoolean(PreferenceKeys.APRS_IS_ENABLE, false); } } diff --git a/codec2talkie/src/main/res/values/strings.xml b/codec2talkie/src/main/res/values/strings.xml index 7a01662..8487379 100644 --- a/codec2talkie/src/main/res/values/strings.xml +++ b/codec2talkie/src/main/res/values/strings.xml @@ -346,4 +346,6 @@ Receive APRS-IS packets from stations in this radius (km) Packet filter Filter for incoming APRS-IS packets + Enable APRS-IS + Enable APRS-IS internet gateway \ No newline at end of file diff --git a/codec2talkie/src/main/res/xml/preferences.xml b/codec2talkie/src/main/res/xml/preferences.xml index 8bae6f9..326d95a 100644 --- a/codec2talkie/src/main/res/xml/preferences.xml +++ b/codec2talkie/src/main/res/xml/preferences.xml @@ -285,12 +285,20 @@ app:defaultValue="false"> + + + + app:dependency="aprs_is_enable">