Skip to content

Commit 8701893

Browse files
committed
Added ability to use SOS credentials
1 parent 5c800c8 commit 8701893

4 files changed

Lines changed: 42 additions & 16 deletions

File tree

torgi/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ dependencies {
5050
viewerImplementation 'org.osmdroid:osmdroid-android:6.0.3'
5151
implementation 'org.apache.httpcomponents:httpclient:4.5.6' //for SOS server
5252
implementation 'org.nanohttpd:nanohttpd:2.3.1' //for SOS server
53-
implementation 'com.github.sofwerx:swe-android:1.0.4' //for SOS and IPC
53+
implementation 'com.github.sofwerx:swe-android:1.0.5' //for SOS and IPC
5454
implementation 'org.apache.commons:commons-math3:3.6.1' //for statistical analysis
5555
implementation 'mil.nga.geopackage:geopackage-android:3.1.0'
5656
testImplementation 'junit:junit:4.12'

torgi/src/main/java/org/sofwerx/torgi/Config.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ public class Config {
2020
public final static String PREFS_SQAN = "sqan";
2121
public final static String PREFS_SEND_TO_SOS = "sendtosos";
2222
public final static String PREFS_SOS_URL = "sosurl";
23+
public final static String PREFS_SOS_USERNAME = "sosusr";
24+
public final static String PREFS_SOS_PASSWORD = "sospwd";
2325
public final static String PREFS_SOS_ASSIGNED_PROCEDURE = "sosprocedure";
2426
public final static String PREFS_SOS_ASSIGNED_OFFERING = "sosoffering";
2527
public final static String PREFS_SOS_ASSIGNED_TEMPLATE = "sostemplate";

torgi/src/main/java/org/sofwerx/torgi/service/TorgiService.java

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ private void setupSosService() {
204204
sosSensor.addMeasurement(sosMeasurementRisk);
205205
if (!Config.isSosBroadcastEnabled(this))
206206
assumeDefaultsForSosSensorIfNeeded();
207-
sosService = new SosService(this, sosSensor,Config.isSosBroadcastEnabled(this)?prefs.getString(Config.PREFS_SOS_URL,null):null, prefs.getBoolean(Config.PREFS_BROADCAST,true) || prefs.getBoolean(Config.PREFS_SEND_TO_SOS,true), Config.isIpcBroadcastEnabled(this));
207+
sosService = new SosService(this, sosSensor,Config.isSosBroadcastEnabled(this)?prefs.getString(Config.PREFS_SOS_URL,null):null,prefs.getString(Config.PREFS_SOS_USERNAME,null),prefs.getString(Config.PREFS_SOS_PASSWORD,null), prefs.getBoolean(Config.PREFS_BROADCAST,true) || prefs.getBoolean(Config.PREFS_SEND_TO_SOS,true), Config.isIpcBroadcastEnabled(this));
208208
prefChangeListener = (prefs1, key) -> {
209209
if (sosService != null) {
210210
boolean resetSosSensor = false;
@@ -214,6 +214,12 @@ private void setupSosService() {
214214
} else if (Config.PREFS_SOS_URL.equalsIgnoreCase(key)) {
215215
sosService.setSosServerUrl(prefs1.getString(key, null));
216216
resetSosSensor = true;
217+
} else if (Config.PREFS_SOS_USERNAME.equalsIgnoreCase(key)) {
218+
sosService.setSosServerUsername(prefs1.getString(key, null));
219+
resetSosSensor = true;
220+
} else if (Config.PREFS_SOS_PASSWORD.equalsIgnoreCase(key)) {
221+
sosService.setSosServerPassword(prefs1.getString(key, null));
222+
resetSosSensor = true;
217223
} else if (Config.PREFS_UUID.equalsIgnoreCase(key))
218224
resetSosSensor = true;
219225
else if (Config.PREFS_BROADCAST.equalsIgnoreCase(key) && (sosService != null))
@@ -603,21 +609,25 @@ public void onEWDataProcessed(final DataPoint dp) {
603609
listener.onEWDataProcessed(dp, indicators);
604610
if (geoPackageRecorder != null)
605611
geoPackageRecorder.onEWDataProcessed(dp,indicators);
606-
if ((sosSensor != null) && sosSensor.isReadyToSendResults() && (System.currentTimeMillis() > nextSosReportTime) && (dp.getSpaceTime() != null)) {
607-
nextSosReportTime = System.currentTimeMillis() + SOS_REPORT_RATE;
608-
SpaceTime spaceTime = dp.getSpaceTime();
609-
sosMeasurementTime.setValue(spaceTime.getTime());
610-
sosMeasurementLocation.setLocation(spaceTime.getLatitude(),spaceTime.getLongitude(),spaceTime.getAltitude());
611-
sosMeasurementRisk.setValue(ewRisk*100f);
612-
GNSSEWValues values = dp.getAverageMeasurements();
613-
if (values == null) {
614-
sosMeasurementCn0.setValue(0d);
615-
sosMeasurementAgc.setValue(0d);
616-
} else {
617-
sosMeasurementCn0.setValue(values.getCn0());
618-
sosMeasurementAgc.setValue(values.getAgc());
612+
if ((sosSensor != null) && sosSensor.isReadyToSendResults() && (System.currentTimeMillis() > nextSosReportTime)) {
613+
if ((sosMeasurementTime != null) && (sosMeasurementLocation != null) && (sosMeasurementRisk != null) && (sosMeasurementCn0 != null) && (sosMeasurementAgc != null)) {
614+
final SpaceTime spaceTime = dp.getSpaceTime();
615+
if (spaceTime != null) {
616+
nextSosReportTime = System.currentTimeMillis() + SOS_REPORT_RATE;
617+
sosMeasurementTime.setValue(spaceTime.getTime());
618+
sosMeasurementLocation.setLocation(spaceTime.getLatitude(), spaceTime.getLongitude(), spaceTime.getAltitude());
619+
sosMeasurementRisk.setValue(ewRisk * 100f);
620+
GNSSEWValues values = dp.getAverageMeasurements();
621+
if (values == null) {
622+
sosMeasurementCn0.setValue(0d);
623+
sosMeasurementAgc.setValue(0d);
624+
} else {
625+
sosMeasurementCn0.setValue(values.getCn0());
626+
sosMeasurementAgc.setValue(values.getAgc());
627+
}
628+
sosService.broadcastSensorReadings();
629+
}
619630
}
620-
sosService.broadcastSensorReadings();
621631
}
622632
}
623633
}

torgi/src/main/res/xml/prefs_app.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,20 @@
3333
android:hint="http://example.com/sensorhub/sos"
3434
android:dependency="sendtosos"/>
3535

36+
<EditTextPreference
37+
android:key="sosusr"
38+
android:title="Username"
39+
android:summary="The username for this SOS server (or leave blank for none)"
40+
android:hint="Username"
41+
android:dependency="sendtosos"/>
42+
43+
<EditTextPreference
44+
android:key="sospwd"
45+
android:title="Password"
46+
android:summary="The password for this SOS server (or leave blank for none)"
47+
android:hint="Password"
48+
android:dependency="sendtosos"/>
49+
3650
</PreferenceCategory>
3751

3852
<PreferenceCategory

0 commit comments

Comments
 (0)