From 4ecc5a928d4efd34db6386f50a0aafe424feea3e Mon Sep 17 00:00:00 2001 From: wurmc Date: Mon, 11 Mar 2019 15:52:42 +0100 Subject: [PATCH 01/18] commented most important files for better overview of functionality --- .idea/codeStyles/Project.xml | 29 +++++++++++++++++++ .idea/gradle.xml | 3 ++ .idea/misc.xml | 16 ++++++++-- .idea/modules.xml | 2 +- .../android/datalogger/AboutActivity.java | 2 ++ .../android/datalogger/SettingsActivity.java | 3 ++ .../collector/AbstractDataCollector.java | 1 + .../collector/AudioDataCollector.java | 1 + .../collector/BatteryDataCollector.java | 2 ++ .../collector/CellsInfoDataCollector.java | 4 +-- .../datalogger/collector/DataCollectors.java | 1 + .../Depr_CellsInfoDataCollector.java | 2 ++ .../collector/LocationDataCollector.java | 1 + .../collector/OrientationDataCollector.java | 2 +- .../collector/SatelliteDataCollector.java | 1 + .../collector/SensorDataCollector.java | 2 ++ .../collector/WiFiDataCollector.java | 1 + .../android/datalogger/data/CommandBTC.java | 2 ++ .../android/datalogger/data/CommandBTS.java | 2 ++ .../android/datalogger/data/CommandBase.java | 2 ++ .../android/datalogger/data/CommandDCE.java | 2 ++ .../android/datalogger/data/CommandFLE.java | 3 ++ .../android/datalogger/data/CommandFUC.java | 2 ++ .../android/datalogger/data/CommandFUS.java | 2 ++ .../android/datalogger/data/CommandKA.java | 2 ++ .../android/datalogger/data/CommandLAE.java | 2 ++ .../data/DataCollectionSession.java | 3 ++ .../db/DataCollectionSessionTable.java | 1 + .../datalogger/db/DataLoggerDataSource.java | 2 ++ .../datalogger/db/DataLoggerOpenHelper.java | 2 ++ .../android/datalogger/db/LogFileTable.java | 2 ++ .../har/HARecognizerApiHandler.java | 2 ++ .../har/HARecognizerApiIntentService.java | 2 ++ .../android/datalogger/log/CustomLogger.java | 2 ++ .../datalogger/log/HARecognizerApiLogger.java | 2 ++ .../android/datalogger/log/LabelsLogger.java | 3 ++ .../android/datalogger/log/LoggerHelper.java | 2 ++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +-- 39 files changed, 111 insertions(+), 10 deletions(-) create mode 100644 .idea/codeStyles/Project.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..30aa626 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 7ac24c7..f43d428 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -3,6 +3,9 @@ - + diff --git a/.idea/modules.xml b/.idea/modules.xml index 4d4cc30..dd40647 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,8 @@ - + \ No newline at end of file diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/AboutActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/AboutActivity.java index 4276bcd..3f8bee8 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/AboutActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/AboutActivity.java @@ -30,6 +30,8 @@ * Created by ThiasTux. */ +// class for the 'About" Activity screen + public class AboutActivity extends AppCompatActivity { @Override diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java index 311b2a1..94c01e9 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java @@ -48,6 +48,9 @@ * href="http://developer.android.com/guide/topics/ui/settings.html">Settings * API Guide for more information on developing a Settings UI. */ + +// child class for 'Settings' Activity screen + public class SettingsActivity extends AppCompatPreferenceActivity { private static final String TAG = SettingsActivity.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AbstractDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AbstractDataCollector.java index 98866ff..cf068eb 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AbstractDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AbstractDataCollector.java @@ -22,6 +22,7 @@ package uk.ac.sussex.wear.android.datalogger.collector; +// abstract parent class for various data collectors public abstract class AbstractDataCollector { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AudioDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AudioDataCollector.java index a07d14c..ce0c636 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AudioDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AudioDataCollector.java @@ -32,6 +32,7 @@ import uk.ac.sussex.wear.android.datalogger.db.DataLoggerDataSource; import uk.ac.sussex.wear.android.datalogger.log.LoggerHelper; +// child class for collecting audio data of phone's microphone public class AudioDataCollector extends AbstractDataCollector { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BatteryDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BatteryDataCollector.java index c19d172..7879af9 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BatteryDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BatteryDataCollector.java @@ -35,6 +35,8 @@ import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; +// child class for collecting battery data of the phone + public class BatteryDataCollector extends AbstractDataCollector { private static final String TAG = BatteryDataCollector.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java index 5a24475..4192aac 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java @@ -50,7 +50,7 @@ import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; - +// child class for collecting data about mobile cells (GSM, CDMA, LTE, WCDMA) in phone's range public class CellsInfoDataCollector extends AbstractDataCollector { @@ -264,7 +264,7 @@ private String getCellInfoString(List cellsInfo){ // Get the CDMA RSSI value in dBm int cdmaDbm = cdmaStength.getCdmaDbm(); - // Get the CDMA Ec/Io value in dB*10 + // Get the CDMkA Ec/Io value in dB*10 int cdmaEcio = cdmaStength.getCdmaEcio(); // Get cdma as level 0..4 diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java index 97cb3a8..208d710 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java @@ -31,6 +31,7 @@ import uk.ac.sussex.wear.android.datalogger.Constants; import uk.ac.sussex.wear.android.datalogger.SharedPreferencesHelper; +// class for collecting sensor data, includes all sensors to be measured public class DataCollectors { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/Depr_CellsInfoDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/Depr_CellsInfoDataCollector.java index 73b51c5..d6dd1a2 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/Depr_CellsInfoDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/Depr_CellsInfoDataCollector.java @@ -37,6 +37,8 @@ import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; +// old child class for collecting data about mobile cells + public class Depr_CellsInfoDataCollector extends AbstractDataCollector { private static final String TAG = Depr_CellsInfoDataCollector.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/LocationDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/LocationDataCollector.java index 3157955..b5d38f0 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/LocationDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/LocationDataCollector.java @@ -34,6 +34,7 @@ import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; +// child class for collecting location data (GPS) public class LocationDataCollector extends AbstractDataCollector implements LocationListener { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/OrientationDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/OrientationDataCollector.java index de1f343..3cb263d 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/OrientationDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/OrientationDataCollector.java @@ -34,7 +34,7 @@ import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; - +// child class for collecting orientation data (rotation sensor) public class OrientationDataCollector extends AbstractDataCollector implements SensorEventListener { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/SatelliteDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/SatelliteDataCollector.java index 3f6a7b0..7f6636a 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/SatelliteDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/SatelliteDataCollector.java @@ -34,6 +34,7 @@ import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; +// child class for collecting satellite data (GPS) public class SatelliteDataCollector extends AbstractDataCollector { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/SensorDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/SensorDataCollector.java index c862f43..8fff615 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/SensorDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/SensorDataCollector.java @@ -34,6 +34,8 @@ import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; +// child class for collecting sensor data + public class SensorDataCollector extends AbstractDataCollector implements SensorEventListener { private static final String TAG = SensorDataCollector.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java index 4d98882..d28a583 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java @@ -38,6 +38,7 @@ import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; +// child class for collecting wifi data public class WiFiDataCollector extends AbstractDataCollector { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBTC.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBTC.java index 52f07b9..25c2a69 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBTC.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBTC.java @@ -22,6 +22,8 @@ package uk.ac.sussex.wear.android.datalogger.data; +// child class for bluetooth connection commands + public class CommandBTC extends CommandBase { String mAddress; diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBTS.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBTS.java index a27b356..d5fe471 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBTS.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBTS.java @@ -22,6 +22,8 @@ package uk.ac.sussex.wear.android.datalogger.data; +// child class for bluetooth start commands + public class CommandBTS extends CommandBase { @Override diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBase.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBase.java index 741559a..bd9a79f 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBase.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandBase.java @@ -26,6 +26,8 @@ import java.util.ArrayList; +// parent class for commands + public abstract class CommandBase { private static final String TAG = CommandBase.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandDCE.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandDCE.java index 26f8072..b51f7be 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandDCE.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandDCE.java @@ -24,6 +24,8 @@ import java.util.Iterator; +// child class for data collection event commands + public class CommandDCE extends CommandBase { private boolean mState; diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFLE.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFLE.java index aaff012..7dcd1d0 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFLE.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFLE.java @@ -25,6 +25,9 @@ /** * Created by mathias on 01/02/17. */ + +// child class for flag event commands + public class CommandFLE extends CommandBase { String flag; diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFUC.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFUC.java index 92c7bd6..0758f59 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFUC.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFUC.java @@ -22,6 +22,8 @@ package uk.ac.sussex.wear.android.datalogger.data; +// child class for file upload cancel command + public class CommandFUC extends CommandBase { @Override diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFUS.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFUS.java index 77ada40..187f09b 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFUS.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandFUS.java @@ -22,6 +22,8 @@ package uk.ac.sussex.wear.android.datalogger.data; +// child class for file upload start command + public class CommandFUS extends CommandBase { @Override diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandKA.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandKA.java index 6ee7172..7214baa 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandKA.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandKA.java @@ -26,6 +26,8 @@ import uk.ac.sussex.wear.android.datalogger.R; +// child class for keep alive commands + public class CommandKA extends CommandBase { private boolean mDataCollectionState; diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandLAE.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandLAE.java index 6461cb6..82f840a 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandLAE.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/CommandLAE.java @@ -28,6 +28,8 @@ import uk.ac.sussex.wear.android.datalogger.R; +// child class for label annotation event commands + public class CommandLAE extends CommandBase { private static final String TAG = CommandLAE.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/DataCollectionSession.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/DataCollectionSession.java index 935d3d7..30b165e 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/DataCollectionSession.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/data/DataCollectionSession.java @@ -28,6 +28,9 @@ /** * Created by fjordonez on 01/10/16. */ + +// class for data collection session + public class DataCollectionSession { private Date mStartDate; private Date mEndDate; diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataCollectionSessionTable.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataCollectionSessionTable.java index 79719cb..2fab140 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataCollectionSessionTable.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataCollectionSessionTable.java @@ -25,6 +25,7 @@ import android.database.sqlite.SQLiteDatabase; import android.util.Log; +// class for creating data collection session table public class DataCollectionSessionTable { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataLoggerDataSource.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataLoggerDataSource.java index d47bdef..d597a3f 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataLoggerDataSource.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataLoggerDataSource.java @@ -32,6 +32,8 @@ import uk.ac.sussex.wear.android.datalogger.data.DataCollectionSession; +// class for data source of datalogger + public class DataLoggerDataSource { private static final String TAG = DataLoggerDataSource.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataLoggerOpenHelper.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataLoggerOpenHelper.java index 5542888..cb183a9 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataLoggerOpenHelper.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/DataLoggerOpenHelper.java @@ -26,6 +26,8 @@ import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; +// class for creating/updating database + public class DataLoggerOpenHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "datalogger.db"; diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/LogFileTable.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/LogFileTable.java index d5ae8f6..464915f 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/LogFileTable.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/db/LogFileTable.java @@ -25,6 +25,8 @@ import android.database.sqlite.SQLiteDatabase; import android.util.Log; +// class for creation of database with sql statement + public class LogFileTable { private static final String TAG = LogFileTable.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/har/HARecognizerApiHandler.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/har/HARecognizerApiHandler.java index ba5cfc3..1a3e671 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/har/HARecognizerApiHandler.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/har/HARecognizerApiHandler.java @@ -44,6 +44,8 @@ import uk.ac.sussex.wear.android.datalogger.Constants; import uk.ac.sussex.wear.android.datalogger.log.HARecognizerApiLogger; +// class for using google api client + public class HARecognizerApiHandler implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, ResultCallback { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/har/HARecognizerApiIntentService.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/har/HARecognizerApiIntentService.java index 1e0c4c1..ca0004e 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/har/HARecognizerApiIntentService.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/har/HARecognizerApiIntentService.java @@ -33,6 +33,8 @@ import uk.ac.sussex.wear.android.datalogger.Constants; +// class for intent service of google api service ?! + public class HARecognizerApiIntentService extends IntentService { private static final String TAG = HARecognizerApiIntentService.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/CustomLogger.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/CustomLogger.java index 2a6ad3f..f900dc5 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/CustomLogger.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/CustomLogger.java @@ -33,6 +33,8 @@ import uk.ac.sussex.wear.android.datalogger.db.DataLoggerDataSource; +// parent class creating log files + public class CustomLogger { private static final String TAG = CustomLogger.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/HARecognizerApiLogger.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/HARecognizerApiLogger.java index 92d82df..9254281 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/HARecognizerApiLogger.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/HARecognizerApiLogger.java @@ -33,6 +33,8 @@ import uk.ac.sussex.wear.android.datalogger.Constants; +// child class for logging HAREcognizerApi + public class HARecognizerApiLogger extends CustomLogger { private static final String TAG = HARecognizerApiLogger.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LabelsLogger.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LabelsLogger.java index cd2b42e..fab977b 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LabelsLogger.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LabelsLogger.java @@ -33,6 +33,9 @@ /** * Created by fjordonez on 01/10/16. */ + +// child class for logging labels + public class LabelsLogger extends CustomLogger { private static final String TAG = LabelsLogger.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LoggerHelper.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LoggerHelper.java index de5e868..74e4507 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LoggerHelper.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LoggerHelper.java @@ -31,6 +31,8 @@ * Created by fjordonez on 13/10/16. */ +// class for storing logs + public final class LoggerHelper { private static final String TAG = LoggerHelper.class.getSimpleName(); diff --git a/build.gradle b/build.gradle index 804e9f4..2d45a15 100755 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.0' + classpath 'com.android.tools.build:gradle:3.3.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ac55329..cd819a1 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Mar 28 10:18:14 BST 2018 +#Mon Mar 04 15:46:46 CET 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip From ce84569e6af56f70edd2760c648b1abf41d63e01 Mon Sep 17 00:00:00 2001 From: wurmc Date: Mon, 18 Mar 2019 14:40:30 +0100 Subject: [PATCH 02/18] removed bluetooth master slave functionality by commenting out all related code. app is currently working as it should. device location should be set to "hand" without the ability to change it, so every possible setting should be visible --- .../android/datalogger/DataLoggerService.java | 52 ++++++------ .../android/datalogger/DisplayActivity.java | 43 +++++----- .../android/datalogger/SettingsActivity.java | 8 +- .../datalogger/SharedPreferencesHelper.java | 18 ++-- .../bt/BluetoothConnectionHelper.java | 83 ++++++++++++------- .../bt/BluetoothConnectionHelper2.java | 4 +- .../datalogger/bt/BluetoothConnector.java | 21 +++-- .../bt/BluetoothDeviceListActivity.java | 38 ++++++--- .../datalogger/bt/MultiBluetoothManager.java | 26 ++++-- .../bluetooth/client/BluetoothClient.java | 8 +- .../bluetooth/client/BluetoothConnector.java | 17 ++-- .../bluetooth/server/BluetoothServer.java | 8 +- .../bus/BluetoothCommunicator.java | 8 +- .../bt/multibluetooth/bus/BondedDevice.java | 8 +- .../bus/ClientConnectionFail.java | 8 +- .../bus/ClientConnectionSuccess.java | 8 +- .../bus/ServeurConnectionFail.java | 8 +- .../bus/ServeurConnectionSuccess.java | 8 +- .../layout/activity_bluetooth_device_list.xml | 8 +- app/src/main/res/layout/content_main.xml | 8 +- app/src/main/res/menu/menu_main.xml | 8 +- app/src/main/res/xml/pref_data_sync.xml | 5 +- app/src/main/res/xml/pref_general.xml | 6 +- 23 files changed, 254 insertions(+), 155 deletions(-) diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DataLoggerService.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DataLoggerService.java index 3ea0cb5..14423de 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DataLoggerService.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DataLoggerService.java @@ -54,7 +54,7 @@ import java.util.Date; import java.util.Iterator; -import uk.ac.sussex.wear.android.datalogger.bt.BluetoothConnectionHelper; +//import uk.ac.sussex.wear.android.datalogger.bt.BluetoothConnectionHelper; import uk.ac.sussex.wear.android.datalogger.collector.DataCollectors; import uk.ac.sussex.wear.android.datalogger.data.CommandBase; import uk.ac.sussex.wear.android.datalogger.data.CommandDCE; @@ -89,7 +89,7 @@ public class DataLoggerService extends Service { private HARecognizerApiHandler mHARecognizerApiHandler; - private BluetoothConnectionHelper mBluetoothConnection = null; + //private BluetoothConnectionHelper mBluetoothConnection = null; private BluetoothAdapter mBluetoothAdapter = null; @@ -113,7 +113,7 @@ public void run() { }; - private final Runnable connectTimerRunnable = new Runnable() { + /* private final Runnable connectTimerRunnable = new Runnable() { @Override public void run() { int timeout = SharedPreferencesHelper.getSlaveConnectionTimeout(DataLoggerService.this); @@ -121,7 +121,7 @@ public void run() { if (BuildConfig.DEBUG && (deviceLocation == Constants.DEVICE_LOCATION_HAND)) throw new RuntimeException("::connectTimerRunnable Runnable only required in slave devices"); Log.i(TAG, "::ConnectTimerRunnable Re/Starting connection with index " + deviceLocation + ". Timed every " + timeout + " millis."); - if (!mBluetoothConnection.isConnected(deviceLocation) && !mMasterAddress.equals("")) { + *//*if (!mBluetoothConnection.isConnected(deviceLocation) && !mMasterAddress.equals("")) { Log.i(TAG, "::ConnectTimerRunnable Current connection state at index " + deviceLocation + " is " + mBluetoothConnection.isConnected(deviceLocation) + ", starting connection to address " + mMasterAddress); @@ -129,9 +129,9 @@ public void run() { mHandler.postDelayed(this, timeout); mBluetoothConnection.start(deviceLocation); mBluetoothConnection.connect(mMasterAddress, deviceLocation); - } + }*//* } - }; + };*/ private final Handler mHandler = new Handler(new Handler.Callback() { @@ -142,7 +142,7 @@ public boolean handleMessage(Message msg) { int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(DataLoggerService.this); switch (msg.what) { case Constants.BLUETOOTH_MESSAGE_STATE_CHANGE: - switch (msg.arg1) { + /*switch (msg.arg1) { case BluetoothConnectionHelper.STATE_CONNECTED: Log.i(TAG, "::handleMessage Bluetooth connection established. Socket at position " + msg.arg2); //Only the slaves change to connected state @@ -171,7 +171,7 @@ public boolean handleMessage(Message msg) { case BluetoothConnectionHelper.STATE_NONE: Log.i(TAG, "::handleMessage Bluetooth socket waiting. Socket at position " + msg.arg2); break; - } + }*/ break; case Constants.BLUETOOTH_MESSAGE_CONNECTION_LOST: final int indexSocketLost = msg.getData().getInt(Constants.BLUETOOTH_CONNECTED_DEVICE_LOCATION); @@ -200,7 +200,7 @@ public void run() { } } // The bluetooth socket is forced to stop - mBluetoothConnection.stop(indexSocketLost); + //mBluetoothConnection.stop(indexSocketLost); // If the bluetooth adapter keeps enabled (the connection can be lost when the adapter is manually disabled) // the bluetooth connection tries to reconnect int bluetoothState = mBluetoothAdapter.isEnabled() ? Constants.BLUETOOTH_STATE_ENABLED : Constants.BLUETOOTH_STATE_DISABLED; @@ -539,10 +539,10 @@ private int startDataCollection(String masterSessionId, long nanosOffset) { notificationManager.notify(Constants.NOTIFICATION_ID.FOREGROUND_SERVICE, mNotification); // If the device is the master the command is broadcasted - if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { + /*if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandDCE(true, mDataCollectionSession.getSessionId(), SystemClock.elapsedRealtimeNanos()).getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - } + }*/ return -1; } @@ -591,11 +591,11 @@ private boolean stopDataCollection() { notificationManager.notify(Constants.NOTIFICATION_ID.FOREGROUND_SERVICE, mNotification); // If the device is the master the command is broadcasted - int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); + /*int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandDCE(false).getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - } + }*/ return true; } @@ -643,11 +643,11 @@ private boolean startLabelAnnotation(int activity, int bodyPosition, int locatio haltAndRestartLogging(); // If the device is the master the command is broadcasted - int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); + /*int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandLAE(true, activity, bodyPosition, location).getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - } + }*/ return true; } @@ -675,11 +675,11 @@ private boolean stopLabelAnnotation() { Log.d(TAG, "stopLabelAnnotation " + SharedPreferencesHelper.getAnnotatedActivityLabel(this)); // If the device is the master the command is broadcasted - int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); + /*int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandLAE(false).getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - } + }*/ return true; } @@ -709,12 +709,12 @@ private boolean stopAndStartLabelAnnotation(int activity, int bodyPosition, int haltAndRestartLogging(); // If the device is the master the command is broadcasted - int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); + /*int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandLAE(false).setStopAndStartEvent(activity, bodyPosition, location) .getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - } + }*/ return true; } @@ -760,7 +760,7 @@ public void run() { } } break; - case CommandBase.COMMAND_BLUETOOTH_START: + /*case CommandBase.COMMAND_BLUETOOTH_START: if (mBluetoothConnection != null) { mBluetoothConnection.stop(Constants.DEVICE_LOCATION_TORSO); mBluetoothConnection.stop(Constants.DEVICE_LOCATION_HIPS); @@ -773,21 +773,21 @@ public void run() { int bluetoothState = mBluetoothAdapter.isEnabled() ? Constants.BLUETOOTH_STATE_ENABLED : Constants.BLUETOOTH_STATE_DISABLED; updateBluetoothState(bluetoothState); } - break; + break;*/ case CommandBase.COMMAND_BLUETOOTH_CONNECT: if (!itr.hasNext()) throw new Exception("Command '" + comm + "' is malformed or missing parameters"); mMasterAddress = itr.next(); - mHandler.post(connectTimerRunnable); + //mHandler.post(connectTimerRunnable); break; case CommandBase.COMMAND_FILES_UPLOAD_START: mFileUploader = FileUploader.getInstance(this, mHandler); mFileUploader.startUpload(); - int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); + /*int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandFUS().getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - } + }*/ break; case CommandBase.COMMAND_FILES_UPLOAD_CANCEL: mFileUploader.cancelUpload(); @@ -886,7 +886,7 @@ public void updateBluetoothState(final int state) { Log.d(TAG, "::updateBluetoothState Updating bluetooth with state: " + bluetoothStateList[state]); SharedPreferencesHelper.setBluetoothStatus(this, state); - switch (state) { + /*switch (state) { case Constants.BLUETOOTH_STATE_DISABLED: mHandler.removeCallbacks(connectTimerRunnable); break; @@ -917,7 +917,7 @@ public void updateBluetoothState(final int state) { } break; - } + }*/ } diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java index b4d2fef..c7d5756 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java @@ -55,7 +55,7 @@ import java.text.SimpleDateFormat; import java.util.Calendar; -import uk.ac.sussex.wear.android.datalogger.bt.BluetoothDeviceListActivity; +//import uk.ac.sussex.wear.android.datalogger.bt.BluetoothDeviceListActivity; import uk.ac.sussex.wear.android.datalogger.data.CommandBTC; import uk.ac.sussex.wear.android.datalogger.data.CommandBTS; import uk.ac.sussex.wear.android.datalogger.data.CommandDCE; @@ -171,9 +171,9 @@ protected void onCreate(Bundle savedInstanceState) { /******************************************************************************************/ // Setting listener for bluetooth button - mBluetoothButton = (Button) findViewById(R.id.ui_bluetooth_status_button); + /*mBluetoothButton = (Button) findViewById(R.id.ui_bluetooth_status_button); assert mBluetoothButton != null; - mBluetoothButton.setOnClickListener(mClickBluetoothButton); + mBluetoothButton.setOnClickListener(mClickBluetoothButton);*/ /******************************************************************************************/ // Starting main DataLogger service with 'Bluetooth start' command @@ -229,12 +229,12 @@ protected void onStart() { // Update the bluetooth RelativeLayout based on the bluetooth adapter status. - refreshBluetoothLayout(); + /*refreshBluetoothLayout(); if (mDeviceLocation == Constants.DEVICE_LOCATION_HAND) { //if this is the master device // Update the TextView which shows the connectivity status of the slave devices. refreshBluetoothSlavesLayout(); - } + }*/ // Update the main UI layout based on the device profile (master or slave) refreshContentLayout(); @@ -257,7 +257,7 @@ private void setChecked(Button button, boolean bool) { /**********************************************************************************************/ /**********************************************************************************************/ - public void refreshBluetoothSlavesLayout() { + /*public void refreshBluetoothSlavesLayout() { int value = SharedPreferencesHelper.getSlavesConnected(this); int[] bitmasks = new int[]{0x4, 0x2, 0x1}; int[] layouts = new int[]{R.id.ui_bluetooth_status_slaves_torso, @@ -270,13 +270,13 @@ public void refreshBluetoothSlavesLayout() { textView.setTextColor(ContextCompat.getColor(DisplayActivity.this, isConnected ? R.color.colorBtSlavesOn : R.color.colorBtSlavesOff)); } - } + }*/ /** * The layout of the bluetooth controls must change based on the device location and the state * of the bluetooth adapter. */ - private void refreshBluetoothLayout() { + /*private void refreshBluetoothLayout() { // Current state of the bluetooth adapter int state = SharedPreferencesHelper.getBluetoothStatus(this); boolean slavesVisible = true; @@ -322,7 +322,7 @@ private void refreshBluetoothLayout() { layoutButton.getChildAt(i).setVisibility(buttonVisible ? View.VISIBLE : View.GONE); } - } + }*/ public void updateTextviewSwitch(boolean isActive, int id) { TextView customText = (TextView) findViewById(id); @@ -495,24 +495,25 @@ public void refreshContentLayout() { } } - mBluetoothButton = (Button) findViewById(R.id.ui_bluetooth_status_button); + /*mBluetoothButton = (Button) findViewById(R.id.ui_bluetooth_status_button); if (mDeviceLocation == Constants.DEVICE_LOCATION_HAND) { mBluetoothButton.setVisibility(View.INVISIBLE); if (menu != null) menu.findItem(R.id.action_pair).setVisible(true); } else if (menu != null) - menu.findItem(R.id.action_pair).setVisible(false); + menu.findItem(R.id.action_pair).setVisible(false);*/ } + // IMPORTANT ! this creates the menu button @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. this.menu = menu; getMenuInflater().inflate(R.menu.menu_main, menu); - if (SharedPreferencesHelper.getDeviceLocationValue(this) != Constants.DEVICE_LOCATION_HAND) + /*if (SharedPreferencesHelper.getDeviceLocationValue(this) != Constants.DEVICE_LOCATION_HAND) menu.findItem(R.id.action_pair).setVisible(false); else - menu.findItem(R.id.action_pair).setVisible(true); + menu.findItem(R.id.action_pair).setVisible(true);*/ return true; } @@ -520,7 +521,7 @@ public boolean onCreateOptionsMenu(Menu menu) { /**********************************************************************************************/ - View.OnClickListener mClickBluetoothButton = new View.OnClickListener() { + /*View.OnClickListener mClickBluetoothButton = new View.OnClickListener() { public void onClick(View v) { int state = SharedPreferencesHelper.getBluetoothStatus(DisplayActivity.this); @@ -544,7 +545,7 @@ public void onClick(View v) { } } - }; + };*/ @Override @@ -651,11 +652,11 @@ public void onClick(DialogInterface dialog, int which) { .setNegativeButton("No", null) .show(); return true; - case R.id.action_pair: + /*case R.id.action_pair: Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); startActivity(discoverableIntent); - return true; + return true;*/ case R.id.action_stats: Intent showStatsIntent = new Intent(this, ShowStatsActivity.class); @@ -684,13 +685,13 @@ public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { .putExtra(Constants.COMMAND_SERVICE_INTENT_KEY, new CommandBTS().getMessage())); } - if (key.equals(Constants.BLUETOOTH_STATE_KEY)) { + /*if (key.equals(Constants.BLUETOOTH_STATE_KEY)) { refreshBluetoothLayout(); - } + }*/ - if (key.equals(Constants.BLUETOOTH_SLAVES_CONNECTED_KEY)) { + /*if (key.equals(Constants.BLUETOOTH_SLAVES_CONNECTED_KEY)) { refreshBluetoothSlavesLayout(); - } + }*/ if (key.equals(Constants.DATA_COLLECTION_SESSION_OBJECT_KEY)) { if (SharedPreferencesHelper.getDeviceLocationValue(DisplayActivity.this) != Constants.DEVICE_LOCATION_HAND) diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java index 94c01e9..714da05 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java @@ -189,7 +189,7 @@ public void onCreate(Bundle savedInstanceState) { // updated to reflect the new value, per the Android Design // guidelines. bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_user_name))); - bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_device_location))); + //bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_device_location))); bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_HAR_API_detection_interval))); bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_log_files_maxSize))); bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_log_maxTime))); @@ -245,9 +245,9 @@ public void onCreate(Bundle savedInstanceState) { // guidelines. bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_server_address))); bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_server_syncMode))); - bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_slave_timeout))); - bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_master_keepalive))); - bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_slave_keepalive))); + //bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_slave_timeout))); + //bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_master_keepalive))); + //bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_slave_keepalive))); } } diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java index cd2907d..29fc531 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java @@ -61,7 +61,7 @@ public static String[] getUiErrorsMessagesList(Context context){ public static int getLogFilesMaxsize(Context context){ String value = getSharedPrefsInstance(context). - getString(context.getResources().getString(R.string.pref_general_key_log_files_maxSize), "0"); + getString(context.getResources().getString(R.string.pref_general_key_log_files_maxSize), "1000"); if (!value.equals("")){ return Integer.parseInt(value); } else { @@ -512,35 +512,35 @@ public static int getSlavesConnected(Context context){ /** * Retrieves the int from SharedPreferences that controls the slaves timeout. */ - public static int getSlaveConnectionTimeout(Context context){ + /*public static int getSlaveConnectionTimeout(Context context){ return Integer.parseInt(getSharedPrefsInstance(context) .getString(context.getResources().getString(R.string.pref_sync_key_slave_timeout), context.getResources().getString(R.string.pref_sync_default_slave_timeout))); - } + }*/ - public static boolean isEnabledKeepalive(Context context){ + /*public static boolean isEnabledKeepalive(Context context){ return getSharedPrefsInstance(context) .getBoolean(context.getResources().getString(R.string.pref_sync_key_enabled_keepalive), true); - } + }*/ /** * Retrieves the int from SharedPreferences that controls the master keepalive interval */ - public static int getMasterKeepaliveInterval(Context context){ + /*public static int getMasterKeepaliveInterval(Context context){ return Integer.parseInt(getSharedPrefsInstance(context) .getString(context.getResources().getString(R.string.pref_sync_key_master_keepalive), context.getResources().getString(R.string.pref_sync_default_master_keepalive))); - } + }*/ /** * Retrieves the int from SharedPreferences that controls the slaves keepalive interval */ - public static int getSlaveKeepaliveInterval(Context context){ + /*public static int getSlaveKeepaliveInterval(Context context){ return Integer.parseInt(getSharedPrefsInstance(context) .getString(context.getResources().getString(R.string.pref_sync_key_slave_keepalive), context.getResources().getString(R.string.pref_sync_default_slave_keepalive))); - } + }*/ /** * Retrieves the String from SharedPreferences that contains the date of the last completed server upload. diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java index d0417aa..34376a6 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java @@ -18,7 +18,8 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt; @@ -91,10 +92,12 @@ public BluetoothConnectionHelper(Context context, Handler handler, boolean isSer } } - /** + */ +/** * Start the chat service. Specifically start AcceptThread to begin a * session in listening (server) mode. Called by the Activity onResume() - */ + *//* + public synchronized void start(int index) { Log.d(TAG, "::start Starting bluetooth at index " + index); @@ -144,9 +147,11 @@ public synchronized void start(int index) { } - /** + */ +/** * Stop all threads - */ + *//* + public synchronized void stop(int index) { Log.d(TAG, "::stop Stopping bluetooth slot "+index); @@ -180,11 +185,13 @@ public synchronized void stop(int index) { setState(STATE_NONE, index); } - /** + */ +/** * Set the current state of the chat connection * * @param state An integer defining the current connection state - */ + *//* + private synchronized void setState(int state, int index) { Log.d(TAG, "setState("+index+") " + mStates[index] + " -> " + state); mStates[index] = state; @@ -193,9 +200,11 @@ private synchronized void setState(int state, int index) { mHandler.obtainMessage(Constants.BLUETOOTH_MESSAGE_STATE_CHANGE, state, index).sendToTarget(); } - /** + */ +/** * Return the current connection state. - */ + *//* + public synchronized int getState(int index) { return mStates[index]; } @@ -208,12 +217,14 @@ public synchronized boolean isConnected(int index) { } - /** + */ +/** * Start the ConnectedThread to begin managing a Bluetooth connection * * @param socket The BluetoothSocket on which the connection was made * @param device The BluetoothDevice that has been connected - */ + *//* + public synchronized void connected(BluetoothSocket socket, BluetoothDevice device, int index) { Log.d(TAG, "::connected Starting ConnectedThread for bluetooth at index "+index); @@ -268,9 +279,11 @@ public synchronized void connected(BluetoothSocket socket, BluetoothDevice devic setState(STATE_CONNECTED, index); } - /** + */ +/** * Indicate that the connection attempt failed and notify the UI Activity. - */ + *//* + private synchronized void connectionFailed(int index) { // Send a failure message back to the Activity Message msg = mHandler.obtainMessage(Constants.BLUETOOTH_MESSAGE_CONNECTION_FAILED, index); @@ -280,9 +293,11 @@ private synchronized void connectionFailed(int index) { mHandler.sendMessage(msg); } - /** + */ +/** * Indicate that the connection was lost and notify the UI Activity. - */ + *//* + private synchronized void connectionLost(int index) { // Send the name of the connected device back to the UI Activity Message msg = mHandler.obtainMessage(Constants.BLUETOOTH_MESSAGE_CONNECTION_LOST); @@ -292,11 +307,13 @@ private synchronized void connectionLost(int index) { mHandler.sendMessage(msg); } - /** + */ +/** * Start the ConnectThread to initiate a connection to a remote device. * * @param address The address to connect - */ + *//* + public synchronized void connect(String address, int index) { Log.i(TAG, "::connect Trying to connect to address " + address + ". "); @@ -369,12 +386,14 @@ public synchronized void sendMessage(String message, int index){ } - /** + */ +/** * Write to the ConnectedThread in an unsynchronized manner * * @param out The bytes to write * @see ConnectedThread#write(byte[]) - */ + *//* + private void write(byte[] out, int index) { Log.d(TAG,"Writing message to "+index); // Create temporary object @@ -390,11 +409,13 @@ private void write(byte[] out, int index) { } - /** + */ +/** * This thread runs while listening for incoming connections. It behaves * like a server-side client. It runs until a connection is accepted * (or until cancelled). - */ + *//* + private class AcceptThread extends Thread { // The local server socket private final BluetoothServerSocket mmServerSocket; @@ -469,11 +490,13 @@ public void cancel() { } - /** + */ +/** * This thread runs while attempting to make an outgoing connection * with a device. It runs straight through; the connection either * succeeds or fails. - */ + *//* + private class ConnectThread extends Thread { private final BluetoothSocket mmSocket; private final BluetoothDevice mmDevice; @@ -593,10 +616,12 @@ public void cancel() { } } - /** + */ +/** * This thread runs during a connection with a remote device. * It handles all incoming and outgoing transmissions. - */ + *//* + private class ConnectedThread extends Thread { private final BluetoothSocket mmSocket; private final InputStream mmInStream; @@ -669,11 +694,13 @@ public boolean isConnected() { return mmSocket.isConnected(); } - /** + */ +/** * Write to the connected OutStream. * * @param buffer The bytes to write - */ + *//* + public void write(byte[] buffer) { try { @@ -714,4 +741,4 @@ public void run() { } } -} \ No newline at end of file +}*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java index 4980b03..892a892 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java @@ -18,7 +18,8 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt; @@ -88,3 +89,4 @@ public int getState(int location) { return 0; } } +*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java index 9f102c8..95dfc17 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java @@ -18,7 +18,8 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt; @@ -35,9 +36,11 @@ import java.util.List; import java.util.UUID; +*/ /** * Created by fjordonez on 27/01/17. - */ + *//* + public class BluetoothConnector { @@ -49,12 +52,14 @@ public class BluetoothConnector { private int candidate; - /** + */ +/** * @param device the device * @param secure if connection should be done via a secure socket * @param adapter the Android BT adapter * @param uuid a list of UUIDs. if null or empty, the Serial PP id is used - */ + *//* + public BluetoothConnector(BluetoothDevice device, boolean secure, BluetoothAdapter adapter, UUID uuid) { this.device = device; @@ -239,9 +244,11 @@ public void close() throws IOException { public static class FallbackException extends Exception { - /** + */ +/** * - */ + *//* + private static final long serialVersionUID = 1L; public FallbackException(Exception e) { @@ -249,4 +256,4 @@ public FallbackException(Exception e) { } } -} \ No newline at end of file +}*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java index ca4def3..4c2d6f0 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java @@ -18,7 +18,8 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt; @@ -44,26 +45,32 @@ import uk.ac.sussex.wear.android.datalogger.Constants; import uk.ac.sussex.wear.android.datalogger.R; +*/ /** * This Activity appears as a dialog. It lists any paired devices and * devices detected in the area after discovery. When a device is chosen * by the user, the MAC address of the device is sent back to the parent * Activity in the result Intent. - */ + *//* + public class BluetoothDeviceListActivity extends Activity { private static final String TAG = BluetoothDeviceListActivity.class.getSimpleName(); - /** + */ +/** * Member fields - */ + *//* + private BluetoothAdapter mBtAdapter; - /** + */ +/** * Newly discovered devices - */ + *//* + private ArrayAdapter mNewDevicesArrayAdapter; @Override @@ -143,9 +150,11 @@ protected void onDestroy() { this.unregisterReceiver(mReceiver); } - /** + */ +/** * Start device discover with the BluetoothAdapter - */ + *//* + private void doDiscovery() { Log.d(TAG, "doDiscovery()"); @@ -165,9 +174,11 @@ private void doDiscovery() { mBtAdapter.startDiscovery(); } - /** + */ +/** * The on-click listener for all devices in the ListViews - */ + *//* + private AdapterView.OnItemClickListener mDeviceClickListener = new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView av, View v, int arg2, long arg3) { @@ -188,10 +199,12 @@ public void onItemClick(AdapterView av, View v, int arg2, long arg3) { } }; - /** + */ +/** * The BroadcastReceiver that listens for discovered devices and changes the title when * discovery is finished - */ + *//* + private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { @@ -218,3 +231,4 @@ public void onReceive(Context context, Intent intent) { }; } +*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java index c10e48c..6d85ecc 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java @@ -18,7 +18,8 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt; @@ -41,9 +42,11 @@ import uk.ac.sussex.wear.android.datalogger.Constants; import uk.ac.sussex.wear.android.datalogger.data.CommandBase; +*/ /** * Created by fjordonez on 27/01/17. - */ + *//* + public class MultiBluetoothManager { @@ -52,11 +55,13 @@ public class MultiBluetoothManager { private static final String NAME = "MultiBluetoothManager"; // Member fields - private final BluetoothAdapter mBluetoothAdapter; + */ +/* private final BluetoothAdapter mBluetoothAdapter; private final Handler mHandler; private final Context mContext; private int[] mStates; - private boolean mIsServer; + private boolean mIsServer;*//* + private BluetoothClient mBluetoothClient; private ArrayList mServerConnectedList; @@ -93,11 +98,13 @@ public synchronized void start(int index) { } - /** + */ +/** * Start the ConnectThread to initiate a connection to a remote device. * * @param address The address to connect - */ + *//* + public synchronized void connect(String address, int index) { Log.i(TAG, "::connect Trying to connect to address " + address + ". "); @@ -123,9 +130,11 @@ private void connectionSuccess(String address, int index) { - /** + */ +/** * Indicate that the connection attempt failed and notify the UI Activity. - */ + *//* + private void connectionFailed(int index) { // Send a failure message back to the Activity Message msg = mHandler.obtainMessage(Constants.BLUETOOTH_MESSAGE_CONNECTION_FAILED, index); @@ -350,3 +359,4 @@ public void closeConnection(){ } } +*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java index 3233756..ca5fd0f 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java @@ -18,7 +18,8 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bluetooth.client; @@ -34,9 +35,11 @@ +*/ /** * Created by Rami MARTIN on 13/04/2014. - */ + *//* + public class BluetoothClient implements Runnable { private boolean CONTINUE_READ_WRITE = true; @@ -144,3 +147,4 @@ public void closeConnexion() { } } } +*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java index 6db3512..d1cad0f 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java @@ -18,7 +18,8 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bluetooth.client; @@ -45,12 +46,14 @@ public class BluetoothConnector { private int candidate; - /** + */ +/** * @param device the device * @param secure if connection should be done via a secure socket * @param adapter the Android BT adapter * @param uuid a list of UUIDs. if null or empty, the Serial PP id is used - */ + *//* + public BluetoothConnector(BluetoothDevice device, boolean secure, BluetoothAdapter adapter, UUID uuid) { this.device = device; @@ -235,9 +238,11 @@ public void close() throws IOException { public static class FallbackException extends Exception { - /** + */ +/** * - */ + *//* + private static final long serialVersionUID = 1L; public FallbackException(Exception e) { @@ -245,4 +250,4 @@ public FallbackException(Exception e) { } } -} \ No newline at end of file +}*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java index 229cf2b..88fad48 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java @@ -18,7 +18,8 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bluetooth.server; @@ -33,9 +34,11 @@ import java.util.UUID; +*/ /** * Created by Rami MARTIN on 13/04/2014. - */ + *//* + public class BluetoothServer implements Runnable { private boolean CONTINUE_READ_WRITE = true; @@ -121,3 +124,4 @@ public void closeConnection(){ } } } +*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java index 4a256ef..708c309 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java @@ -18,13 +18,16 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; +*/ /** * Created by Rami MARTIN on 13/04/2014. - */ + *//* + public class BluetoothCommunicator { public String mMessageReceive; @@ -33,3 +36,4 @@ public BluetoothCommunicator(String messageReceive){ mMessageReceive = messageReceive; } } +*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java index 9c420e1..9ce4451 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java @@ -18,12 +18,16 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; +*/ /** * Created by Rami MARTIN on 21/04/2014. - */ + *//* + public class BondedDevice { } +*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java index 10f43d1..8a0884d 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java @@ -18,12 +18,16 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; +*/ /** * Created by Rami MARTIN on 13/04/2014. - */ + *//* + public class ClientConnectionFail { } +*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java index 747f608..d1c79fc 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java @@ -18,12 +18,16 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; +*/ /** * Created by Rami MARTIN on 13/04/2014. - */ + *//* + public class ClientConnectionSuccess { } +*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java index 41b6c60..e27b48b 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java @@ -18,13 +18,16 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; +*/ /** * Created by Rami MARTIN on 13/04/2014. - */ + *//* + public class ServeurConnectionFail { public String mClientAdressConnectionFail; @@ -33,3 +36,4 @@ public ServeurConnectionFail(String clientAdressConnectionFail){ mClientAdressConnectionFail = clientAdressConnectionFail; } } +*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java index 2b70fd1..ae98667 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java @@ -18,13 +18,16 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ + *//* + package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; +*/ /** * Created by Rami MARTIN on 13/04/2014. - */ + *//* + public class ServeurConnectionSuccess { public String mClientAdressConnected; @@ -33,3 +36,4 @@ public ServeurConnectionSuccess(String clientAdressConnected){ mClientAdressConnected = clientAdressConnected; } } +*/ diff --git a/app/src/main/res/layout/activity_bluetooth_device_list.xml b/app/src/main/res/layout/activity_bluetooth_device_list.xml index d2d57bd..c311ab9 100755 --- a/app/src/main/res/layout/activity_bluetooth_device_list.xml +++ b/app/src/main/res/layout/activity_bluetooth_device_list.xml @@ -19,13 +19,14 @@ ~ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ~ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> + - - \ No newline at end of file + />--> + + diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index e64874e..df34180 100755 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -40,7 +40,7 @@ android:paddingLeft="16dp" android:paddingRight="16dp"> - @@ -165,13 +165,13 @@ android:layout_marginTop="5dp" android:background="@android:color/darker_gray" /> - + --> + android:layout_height="wrap_content"> + + app:showAsAction="ifRoom|withText" /> - + app:showAsAction="never" />--> - + diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml index 4d6b190..61d1a5a 100755 --- a/app/src/main/res/xml/pref_general.xml +++ b/app/src/main/res/xml/pref_general.xml @@ -32,14 +32,14 @@ android:singleLine="true" android:title="@string/pref_general_title_user_name" /> - + android:title="@string/pref_general_title_device_location" />--> Date: Mon, 25 Mar 2019 14:51:28 +0100 Subject: [PATCH 03/18] rearranged order of sensors in frontend list: set cellular info, wifi and bluetooth to the top; added front end for bluetooth data collection; added class for collecting bluetooth data as child class of "AbstactDataCollector" --- .../collector/BluetoothDataCollector.java | 47 +++++++ app/src/main/res/values/strings.xml | 35 +++--- app/src/main/res/xml/pref_sensors.xml | 115 +++++++++++------- 3 files changed, 137 insertions(+), 60 deletions(-) create mode 100644 app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java new file mode 100644 index 0000000..b95642b --- /dev/null +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2019. Mathias Ciliberto, Francisco Javier Ordoñez Morales, + * Hristijan Gjoreski, Daniel Roggen + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +package uk.ac.sussex.wear.android.datalogger.collector; + +// child clas for collecting Bluetooth data + +public class BluetoothDataCollector extends AbstractDataCollector{ + @Override + public void start() { + + } + + @Override + public void stop() { + + } + + @Override + public void haltAndRestartLogging() { + + } + + @Override + public void updateNanosOffset(long nanosOffset) { + + } +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9d8e7d1..2837a35 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -85,6 +85,27 @@ Sensors Enable remote server sync + Cellular network recorder + PREF_SENSORS_ENABLED_CELL_KEY + Enable cells recorder + Sampling rate in Hz (1 for default) + PREF_SENSORS_SAMPLING_CELL_KEY + PREF_SENSORS_SYNC_CELL_KEY + + WiFi recorder + PREF_SENSORS_ENABLED_WIFI_KEY + Enable WiFi recorder + Sampling rate in Hz (1 for default) + PREF_SENSORS_SAMPLING_WIFI_KEY + PREF_SENSORS_SYNC_WIFI_KEY + + Bluetooth recorder + PREF_SENSORS_ENABLED_Bluetooth_KEY + Enable Bluetooth recorder + Sampling rate in Hz (1 for default) + PREF_SENSORS_SAMPLING_Bluetooth_KEY + PREF_SENSORS_SYNC_Bluetooth_KEY + Accelerometer PREF_SENSORS_ENABLED_ACC_KEY Enable accelerometer @@ -118,13 +139,6 @@ Enable battery recorder PREF_SENSORS_SYNC_BAT_KEY - Cellular network recorder - PREF_SENSORS_ENABLED_CELL_KEY - Enable cells recorder - Sampling rate in Hz (0 for default) - PREF_SENSORS_SAMPLING_CELL_KEY - PREF_SENSORS_SYNC_CELL_KEY - Cellular network recorder (deprecated) PREF_SENSORS_ENABLED_DEPR_CELL_KEY Enable cells recorder @@ -168,13 +182,6 @@ PREF_SENSORS_SAMPLING_HUM_KEY PREF_SENSORS_SYNC_HUM_KEY - WiFi recorder - PREF_SENSORS_ENABLED_WIFI_KEY - Enable WiFi recorder - Sampling rate in Hz (1 for default) - PREF_SENSORS_SAMPLING_WIFI_KEY - PREF_SENSORS_SYNC_WIFI_KEY - Orientation PREF_SENSORS_ENABLED_ORIEN_KEY Enable orientation diff --git a/app/src/main/res/xml/pref_sensors.xml b/app/src/main/res/xml/pref_sensors.xml index 7ac2083..818813e 100755 --- a/app/src/main/res/xml/pref_sensors.xml +++ b/app/src/main/res/xml/pref_sensors.xml @@ -22,6 +22,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - Date: Sat, 30 Mar 2019 19:55:37 +0100 Subject: [PATCH 04/18] added bluetooth beacon measuring functionality found in BluetoothDataCollector.java and helper classes in BTHelper directory. App is working fine, the only issue seems to be with run() in BluetoothDataCollector class. Every other run() is working fine. No errors but app is not writing content into Bluetooth txt files. BLE beacon detection from: https://github.com/youten/iBeaconDetector --- app/src/main/AndroidManifest.xml | 4 +- .../wear/android/datalogger/Constants.java | 7 +- .../android/datalogger/DataLoggerService.java | 24 +-- .../android/datalogger/SettingsActivity.java | 7 +- .../datalogger/SharedPreferencesHelper.java | 102 ++++++---- .../collector/AbstractDataCollector.java | 4 +- .../collector/BTHelper/DeviceAdapter.java | 106 ++++++++++ .../collector/BTHelper/ScannedDevice.java | 86 +++++++++ .../collector/BluetoothDataCollector.java | 182 +++++++++++++++++- .../datalogger/collector/DataCollectors.java | 59 ++++-- .../collector/WiFiDataCollector.java | 6 +- .../datalogger/log/HARecognizerApiLogger.java | 2 +- .../android/datalogger/log/LoggerHelper.java | 2 +- .../datalogger/upload/FileUploader.java | 19 +- app/src/main/res/values/strings.xml | 4 + 15 files changed, 521 insertions(+), 93 deletions(-) create mode 100644 app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java create mode 100644 app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5dbb85f..96c0fb2 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -62,11 +62,11 @@ android:value=".DisplayActivity" /> - + android:theme="@android:style/Theme.Dialog"/>--> { + + private List mList; + + public DeviceAdapter(@NonNull Context context, int resource, List objects) { + super(context, resource, objects); + mList = objects; + } + + public String update(BluetoothDevice newDevice, int rssi, byte[] scanRecord) { + if ((newDevice == null) || (newDevice.getAddress() == null)) { + return ""; + } + long now = System.currentTimeMillis(); + + boolean contains = false; + for (ScannedDevice device : mList) { + if (newDevice.getAddress().equals(device.getDevice().getAddress())) { + contains = true; + // update + /*device.setRssi(rssi); + device.setLastUpdatedMs(now);*/ + device.setScanRecord(scanRecord); + break; + } + } + if (!contains) { + // add new BluetoothDevice + mList.add(new ScannedDevice(newDevice, rssi, scanRecord, now)); + } + + /*// sort by RSSI + Collections.sort(mList, new Comparator() { + @Override + public int compare(ScannedDevice lhs, ScannedDevice rhs) { + if (lhs.getRssi() == 0) { + return 1; + } else if (rhs.getRssi() == 0) { + return -1; + } + if (lhs.getRssi() > rhs.getRssi()) { + return -1; + } else if (lhs.getRssi() < rhs.getRssi()) { + return 1; + } + return 0; + } + });*/ + + notifyDataSetChanged(); + + // create summary + int totalCount = 0; + /*int iBeaconCount = 0;*/ + if (mList != null) { + totalCount = mList.size(); + /*for (ScannedDevice device : mList) { + if (device.getIBeacon() != null) { + iBeaconCount++; + } + }*/ + } + String summary = /*"iBeacon:" + Integer.toString(iBeaconCount) +*/ " (Total:" + + Integer.toString(totalCount) + ")"; + + return summary; + } + + public List getScanList() { + synchronized (this) { + return mList; + }} +} diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java new file mode 100644 index 0000000..a5d4bdb --- /dev/null +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2019. Mathias Ciliberto, Francisco Javier Ordoñez Morales, + * Hristijan Gjoreski, Daniel Roggen + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +package uk.ac.sussex.wear.android.datalogger.collector.BTHelper; + +import android.bluetooth.BluetoothDevice; + +public class ScannedDevice { + + /** BluetoothDevice */ + private BluetoothDevice mDevice; + /** Advertise Scan Record */ + private byte[] mScanRecord; + + public ScannedDevice(BluetoothDevice device, int rssi, byte[] scanRecord, long now) { + if (device == null) { + throw new IllegalArgumentException("BluetoothDevice is null"); + } + /*mLastUpdatedMs = now;*/ + mDevice = device; + /*mDisplayName = device.getName(); + if ((mDisplayName == null) || (mDisplayName.length() == 0)) { + mDisplayName = UNKNOWN; + } + mRssi = rssi;*/ + mScanRecord = scanRecord; + } + + public BluetoothDevice getDevice() { + return mDevice; + } + + public String getScanRecordHexString() { + return ScannedDevice.asHex(mScanRecord); + } + + private static String asHex(byte bytes[]) { + if ((bytes == null) || (bytes.length == 0)) { + return ""; + } + + // バイト配列の2倍の長さの文字列バッファを生成。 + StringBuffer sb = new StringBuffer(bytes.length * 2); + + // バイト配列の要素数分、処理を繰り返す。 + for (int index = 0; index < bytes.length; index++) { + // バイト値を自然数に変換。 + int bt = bytes[index] & 0xff; + + // バイト値が0x10以下か判定。 + if (bt < 0x10) { + // 0x10以下の場合、文字列バッファに0を追加。 + sb.append("0"); + } + + // バイト値を16進数の文字列に変換して、文字列バッファに追加。 + sb.append(Integer.toHexString(bt).toUpperCase()); + } + + /// 16進数の文字列を返す。 + return sb.toString(); + } + + public void setScanRecord(byte[] scanRecord) { + mScanRecord = scanRecord; + } +} diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java index b95642b..78ba3c0 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java @@ -22,26 +22,198 @@ package uk.ac.sussex.wear.android.datalogger.collector; -// child clas for collecting Bluetooth data -public class BluetoothDataCollector extends AbstractDataCollector{ +import android.annotation.SuppressLint; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothManager; +import android.content.Context; +import android.os.Handler; +import android.os.SystemClock; +import android.util.Log; + +import uk.ac.sussex.wear.android.datalogger.Constants; +import uk.ac.sussex.wear.android.datalogger.R; +import uk.ac.sussex.wear.android.datalogger.collector.BTHelper.DeviceAdapter; +import uk.ac.sussex.wear.android.datalogger.collector.BTHelper.ScannedDevice; +import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; +import android.app.Activity; +import android.widget.ListView; +import android.widget.Toast; + +import java.io.File; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +// child class for collecting Bluetooth data +// functionality from iBeaconDetector https://github.com/youten/iBeaconDetector + +public class BluetoothDataCollector extends AbstractDataCollector implements BluetoothAdapter.LeScanCallback{ + + private static final String TAG = BluetoothDataCollector.class.getSimpleName(); + + private CustomLogger logger = null; + + private int mSamplingPeriodUs; + + private Context mContext; + + // Timer to manage specific sampling rates + private Handler mTimerHandler = null; + private Runnable mTimerRunnable = null; + + //needed Bluetooth variables + private BluetoothAdapter mBTAdapter; + private boolean mIsScanning; + private DeviceAdapter mDeviceAdapter; + private BluetoothManager mBTManager; + + @SuppressLint("ServiceCast") + public BluetoothDataCollector(Context context, String sessionName, String sensorName, int samplingPeriodUs, long nanosOffset, int logFileMaxSize) { + + mSensorName = sensorName; + String path = sessionName + File.separator + mSensorName + "_" + sessionName; + + logger = new CustomLogger(context, path, sessionName, mSensorName, "txt", false, mNanosOffset, logFileMaxSize); + + mSamplingPeriodUs = samplingPeriodUs; + + mBTManager = (BluetoothManager) context.getSystemService(context.BLUETOOTH_SERVICE); + + mContext = context; + + // Offset to match timestamps both in master and slaves devices + mNanosOffset = nanosOffset; + + if (mSamplingPeriodUs > 0) { + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test1"); + mTimerHandler = new Handler(); + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test4"); + mTimerRunnable = new Runnable() { + // still problems here !!! run() seems to not work properly. Log doesn't get called + @Override + public void run() { + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test2"); + logBluetoothInfo(mDeviceAdapter.getScanList()); + int millis = 1000 / mSamplingPeriodUs; + mTimerHandler.postDelayed(this, millis); + } + }; + } else { + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test3"); + mDeviceAdapter = new DeviceAdapter(this, 0, null); + } + + } + + private void init() { + /*// BLE check + if (!BleUtil.isBLESupported(this)) { + Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show(); + finish(); + return; + }*/ + + // BT check + BluetoothManager manager = (BluetoothManager) this.getSystemService(Context.BLUETOOTH_SERVICE); + if (manager != null) { + mBTAdapter = manager.getAdapter(); + } + if (mBTAdapter == null) { + Toast.makeText(this, R.string.bt_not_supported, Toast.LENGTH_SHORT).show(); + finish(); + return; + } + +/* // init listview + ListView deviceListView = (ListView) findViewById(R.id.list); + deviceListView.setAdapter(mDeviceAdapter); + stopScan();*/ + + mDeviceAdapter = new DeviceAdapter(this,0, + new ArrayList()); + + } + + private void logBluetoothInfo(List scanList){ + // System local time in millis + long currentMillis = (new Date()).getTime(); + + // System nanoseconds since boot, including time spent in sleep. + long nanoTime = SystemClock.elapsedRealtimeNanos() + mNanosOffset; + + String message = String.format("%s", currentMillis) + ";" + + String.format("%s", nanoTime) + ";" + + String.format("%s", mNanosOffset) + ";" + + scanList.size(); + + for (ScannedDevice scan : scanList){ + // Get BLE Beacon Hex Info out of scanRecord + String scanRecord = scan.getScanRecordHexString(); + + message += ";" + /*+ scanRecord;*/ + + "Hallo!"; + } + logger.log(message); + logger.log(System.lineSeparator()); + } + @Override public void start() { - + Log.i(TAG, "start:: Starting listener for sensor: " + getSensorName()); + if ((mBTAdapter != null) && (!mIsScanning)) { + mBTAdapter.startLeScan(this); + mIsScanning = true; + } + /*if (mWiFiInfoReceiver != null){ + mContext.registerReceiver(mWiFiInfoReceiver, + new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); + } else { + mTimerHandler.postDelayed(mTimerRunnable, 0); + }*/ + logger.start(); } @Override public void stop() { - + Log.i(TAG,"stop:: Stopping listener for sensor " + getSensorName()); + if (mBTAdapter != null) { + mBTAdapter.stopLeScan(this); + } + mIsScanning = false; + /*if (mWiFiInfoReceiver != null) { + mContext.unregisterReceiver(mWiFiInfoReceiver); + } else { + mTimerHandler.removeCallbacks(mTimerRunnable); + }*/ + logger.stop(); } @Override public void haltAndRestartLogging() { - + logger.stop(); + logger.resetByteCounter(); + logger.start(); } @Override public void updateNanosOffset(long nanosOffset) { + mNanosOffset = nanosOffset; + } + @Override + public void onLeScan(final BluetoothDevice newDeivce, final int newRssi, + final byte[] newScanRecord) { + runOnUiThread(new Runnable() { + @Override + public void run() { + String summary = mDeviceAdapter.update(newDeivce, newRssi, newScanRecord); + if (summary != null) { + getActionBar().setSubtitle(summary); + } + } + }); } } diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java index 208d710..c696c1f 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java @@ -60,7 +60,42 @@ public void startDataCollectors(Context context, String sessionName, long nanosO // Initialization of collectors objects array mCollectors = new ArrayList<>(); - + + // Measures the status of the cellular network in number of cells and signal strength + if (SharedPreferencesHelper.isEnabledCellsInfo(context)){ + try{ + mCollectors.add(new CellsInfoDataCollector(context, sessionName, + Constants.SENSOR_NAME_CELL, + SharedPreferencesHelper.getSamplingPeriodCellsInfo(context), + nanosOffset, + SharedPreferencesHelper.getLogFilesMaxsize(context))); + } catch (Exception e){ + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_CELL + " data collector: " + e.getMessage()); + } + } + + // Measures the status of the WiFi networks + if (SharedPreferencesHelper.isEnabledWiFi(context)){ + mCollectors.add(new WiFiDataCollector(context, sessionName, + Constants.SENSOR_NAME_WIFI, + SharedPreferencesHelper.getSamplingPeriodWiFiInfo(context), + nanosOffset, + SharedPreferencesHelper.getLogFilesMaxsize(context))); + } + + // Measures the status of the Bluetooth networks + if (SharedPreferencesHelper.isEnabledBluetooth(context)){ + try{ + mCollectors.add(new BluetoothDataCollector(context, sessionName, + Constants.SENSOR_NAME_BLUETOOTH, + SharedPreferencesHelper.getSamplingPeriodBluetoothInfo(context), + nanosOffset, + SharedPreferencesHelper.getLogFilesMaxsize(context))); + } catch (Exception e){ + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " data collector: " + e.getMessage()); + } + } + // Measures the acceleration force in m/s2 that is applied to a device on all three physical axes (x, y, and z), including the force of gravity. // SensorEvent.values[0] Acceleration force along the x axis (including gravity). // SensorEvent.values[1] Acceleration force along the y axis (including gravity). @@ -132,18 +167,7 @@ public void startDataCollectors(Context context, String sessionName, long nanosO SharedPreferencesHelper.getLogFilesMaxsize(context))); } - // Measures the status of the cellular network in number of cells and signal strength - if (SharedPreferencesHelper.isEnabledCellsInfo(context)){ - try{ - mCollectors.add(new CellsInfoDataCollector(context, sessionName, - Constants.SENSOR_NAME_CELL, - SharedPreferencesHelper.getSamplingPeriodCellsInfo(context), - nanosOffset, - SharedPreferencesHelper.getLogFilesMaxsize(context))); - } catch (Exception e){ - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_CELL + " data collector: " + e.getMessage()); - } - } + // Measures the status of the cellular network in number of cells and signal strength (deprecated version) if (SharedPreferencesHelper.isEnabledDeprCellsInfo(context)){ @@ -229,14 +253,7 @@ public void startDataCollectors(Context context, String sessionName, long nanosO } } - // Measures the status of the WiFi networks - if (SharedPreferencesHelper.isEnabledWiFi(context)){ - mCollectors.add(new WiFiDataCollector(context, sessionName, - Constants.SENSOR_NAME_WIFI, - SharedPreferencesHelper.getSamplingPeriodWiFiInfo(context), - nanosOffset, - SharedPreferencesHelper.getLogFilesMaxsize(context))); - } + // Measures position of the device relative to the earth's frame of reference (specifically, // the magnetic north pole). diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java index d28a583..97e99d8 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java @@ -36,6 +36,7 @@ import java.util.Date; import java.util.List; +import uk.ac.sussex.wear.android.datalogger.Constants; import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; // child class for collecting wifi data @@ -77,16 +78,19 @@ public WiFiDataCollector(Context context, String sessionName, String sensorName, mNanosOffset = nanosOffset; if (mSamplingPeriodUs > 0) { + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test"); mTimerHandler = new Handler(); mTimerRunnable = new Runnable() { @Override public void run() { + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test"); logWifiInfo(getScanList()); int millis = 1000 / mSamplingPeriodUs; mTimerHandler.postDelayed(this, millis); } }; } else { + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test2"); mWiFiInfoReceiver = new WiFiInfoReceiver(); } @@ -95,7 +99,7 @@ public void run() { private List getScanList(){ synchronized (this) { return mWifiManager.getScanResults(); - } + } } private void logWifiInfo(List scanList){ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/HARecognizerApiLogger.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/HARecognizerApiLogger.java index 9254281..f8a00e7 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/HARecognizerApiLogger.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/HARecognizerApiLogger.java @@ -33,7 +33,7 @@ import uk.ac.sussex.wear.android.datalogger.Constants; -// child class for logging HAREcognizerApi +// child class for logging HARecognizerApi public class HARecognizerApiLogger extends CustomLogger { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LoggerHelper.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LoggerHelper.java index 74e4507..0b054a9 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LoggerHelper.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/LoggerHelper.java @@ -31,7 +31,7 @@ * Created by fjordonez on 13/10/16. */ -// class for storing logs +// class for storing logs in log files, creating directories public final class LoggerHelper { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/upload/FileUploader.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/upload/FileUploader.java index e5e4e54..eb7935a 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/upload/FileUploader.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/upload/FileUploader.java @@ -240,6 +240,18 @@ private void createFilesList() { // The files containing activities recognized from the API must be uploaded addFilesToUpload(DataLoggerDataSource.selectUnsyncLogFiles(mContext, Constants.SENSOR_NAME_API_HAR)); + if (SharedPreferencesHelper.toSyncCellsInfo(mContext)){ + addFilesToUpload(DataLoggerDataSource.selectUnsyncLogFiles(mContext, Constants.SENSOR_NAME_CELL)); + } + + if (SharedPreferencesHelper.toSyncWiFi(mContext)){ + addFilesToUpload(DataLoggerDataSource.selectUnsyncLogFiles(mContext, Constants.SENSOR_NAME_WIFI)); + } + + if (SharedPreferencesHelper.toSyncBluetooth(mContext)){ + addFilesToUpload(DataLoggerDataSource.selectUnsyncLogFiles(mContext, Constants.SENSOR_NAME_BLUETOOTH)); + } + if (SharedPreferencesHelper.toSyncAccelerometer(mContext)) { addFilesToUpload(DataLoggerDataSource.selectUnsyncLogFiles(mContext, Constants.SENSOR_NAME_ACC)); } @@ -260,9 +272,6 @@ private void createFilesList() { addFilesToUpload(DataLoggerDataSource.selectUnsyncLogFiles(mContext, Constants.SENSOR_NAME_BAT)); } - if (SharedPreferencesHelper.toSyncCellsInfo(mContext)){ - addFilesToUpload(DataLoggerDataSource.selectUnsyncLogFiles(mContext, Constants.SENSOR_NAME_CELL)); - } if (SharedPreferencesHelper.toSyncLocation(mContext)){ addFilesToUpload(DataLoggerDataSource.selectUnsyncLogFiles(mContext, Constants.SENSOR_NAME_LOC)); @@ -288,9 +297,7 @@ private void createFilesList() { addFilesToUpload(DataLoggerDataSource.selectUnsyncLogFiles(mContext, Constants.SENSOR_NAME_HUM)); } - if (SharedPreferencesHelper.toSyncWiFi(mContext)){ - addFilesToUpload(DataLoggerDataSource.selectUnsyncLogFiles(mContext, Constants.SENSOR_NAME_WIFI)); - } + if (SharedPreferencesHelper.toSyncOrientation(mContext)){ addFilesToUpload(DataLoggerDataSource.selectUnsyncLogFiles(mContext, Constants.SENSOR_NAME_ORIEN)); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2837a35..276624b 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -41,6 +41,10 @@ No devices have been paired No devices found Scanning for devices... + + BLE not supported on this device. + Bluetooth not supported on this device. + Bluetooth is not enabled, turn it on. not supported From 6f897c96a8ab1a8157700f9166bde0c894d60e55 Mon Sep 17 00:00:00 2001 From: wurmc Date: Sun, 7 Apr 2019 19:36:36 +0200 Subject: [PATCH 05/18] some changes in bluetooth beacon measuring functionality. translated comments in ScannedDevice.java from japanese to english. deleted some test terminal logs from WiFiDataCollector.java. No errors but app is still not writing content into Bluetooth txt files. --- app/build.gradle | 2 +- .../collector/BTHelper/ScannedDevice.java | 9 ++- .../collector/BluetoothDataCollector.java | 62 ++++++++++++++----- .../collector/WiFiDataCollector.java | 8 +-- 4 files changed, 60 insertions(+), 21 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b7a484a..a2b7d17 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 26 - buildToolsVersion '27.0.3' + buildToolsVersion '28.0.3' defaultConfig { applicationId "uk.ac.sussex.wear.android.datalogger" diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java index a5d4bdb..a9ab298 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java @@ -59,24 +59,31 @@ private static String asHex(byte bytes[]) { } // バイト配列の2倍の長さの文字列バッファを生成。 + // Generate a string buffer twice as long as a byte array. StringBuffer sb = new StringBuffer(bytes.length * 2); // バイト配列の要素数分、処理を繰り返す。 + // Repeat the process for the number of elements in the byte array. for (int index = 0; index < bytes.length; index++) { // バイト値を自然数に変換。 + // Convert byte values ​​to natural numbers. int bt = bytes[index] & 0xff; // バイト値が0x10以下か判定。 + // Determine whether the byte value is 0x10 or less. if (bt < 0x10) { // 0x10以下の場合、文字列バッファに0を追加。 + // Add 0 to string buffer if it is less than 0x10. sb.append("0"); } // バイト値を16進数の文字列に変換して、文字列バッファに追加。 + // Convert byte value to hexadecimal string and add to string buffer. sb.append(Integer.toHexString(bt).toUpperCase()); } - /// 16進数の文字列を返す。 + // 16進数の文字列を返す。 + // Return a hexadecimal string. return sb.toString(); } diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java index 78ba3c0..55b7be6 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java @@ -25,9 +25,15 @@ import android.annotation.SuppressLint; import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothClass; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothManager; +import android.bluetooth.le.BluetoothLeScanner; +import android.content.BroadcastReceiver; import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; import android.util.Log; @@ -63,8 +69,11 @@ public class BluetoothDataCollector extends AbstractDataCollector implements Blu private Handler mTimerHandler = null; private Runnable mTimerRunnable = null; + // Receiver class for monitoring changes in WiFi states + private BluetoothInfoReceiver mBTInfoReceiver; + //needed Bluetooth variables - private BluetoothAdapter mBTAdapter; + private BluetoothAdapter mBTAdapter = null; private boolean mIsScanning; private DeviceAdapter mDeviceAdapter; private BluetoothManager mBTManager; @@ -90,8 +99,12 @@ public BluetoothDataCollector(Context context, String sessionName, String sensor Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test1"); mTimerHandler = new Handler(); Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test4"); + // trying to write in txt file + /*String message = "Hallo!"; + logger.log(message);*/ mTimerRunnable = new Runnable() { // still problems here !!! run() seems to not work properly. Log doesn't get called + // no BT txt files are written @Override public void run() { Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test2"); @@ -102,13 +115,15 @@ public void run() { }; } else { Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test3"); - mDeviceAdapter = new DeviceAdapter(this, 0, null); + mBTInfoReceiver = new BluetoothInfoReceiver(); } } - private void init() { - /*// BLE check + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + /*not needed ! + // BLE check if (!BleUtil.isBLESupported(this)) { Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show(); finish(); @@ -116,9 +131,10 @@ private void init() { }*/ // BT check - BluetoothManager manager = (BluetoothManager) this.getSystemService(Context.BLUETOOTH_SERVICE); - if (manager != null) { - mBTAdapter = manager.getAdapter(); + // already initialised + // mBTManager = (BluetoothManager) this.getSystemService(Context.BLUETOOTH_SERVICE); + if (mBTManager != null) { + mBTAdapter = mBTManager.getAdapter(); } if (mBTAdapter == null) { Toast.makeText(this, R.string.bt_not_supported, Toast.LENGTH_SHORT).show(); @@ -126,7 +142,8 @@ private void init() { return; } -/* // init listview + // not needed ! +/* // init listview ListView deviceListView = (ListView) findViewById(R.id.list); deviceListView.setAdapter(mDeviceAdapter); stopScan();*/ @@ -142,7 +159,7 @@ private void logBluetoothInfo(List scanList){ // System nanoseconds since boot, including time spent in sleep. long nanoTime = SystemClock.elapsedRealtimeNanos() + mNanosOffset; - + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test6"); String message = String.format("%s", currentMillis) + ";" + String.format("%s", nanoTime) + ";" + String.format("%s", mNanosOffset) + ";" @@ -160,34 +177,49 @@ private void logBluetoothInfo(List scanList){ logger.log(System.lineSeparator()); } + private class BluetoothInfoReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + logBluetoothInfo(mDeviceAdapter.getScanList()); + } + } + @Override public void start() { Log.i(TAG, "start:: Starting listener for sensor: " + getSensorName()); + + // if query from iBeaconDetector if ((mBTAdapter != null) && (!mIsScanning)) { mBTAdapter.startLeScan(this); mIsScanning = true; } - /*if (mWiFiInfoReceiver != null){ - mContext.registerReceiver(mWiFiInfoReceiver, - new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); - } else { + // if query from wifi, has been adapted for bluetooth, is currently not working + /*if (mBTInfoReceiver != null){ + mContext.registerReceiver(mBTInfoReceiver, + new IntentFilter( ));//something is missing here + }else { mTimerHandler.postDelayed(mTimerRunnable, 0); }*/ + logger.start(); } @Override public void stop() { Log.i(TAG,"stop:: Stopping listener for sensor " + getSensorName()); + if (mBTAdapter != null) { mBTAdapter.stopLeScan(this); } mIsScanning = false; - /*if (mWiFiInfoReceiver != null) { - mContext.unregisterReceiver(mWiFiInfoReceiver); + + // if query from wifi, has been adapted for bluetooth, is currently not working + /*if (mBTInfoReceiver != null) { + mContext.unregisterReceiver(mBTInfoReceiver); } else { mTimerHandler.removeCallbacks(mTimerRunnable); }*/ + logger.stop(); } diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java index 97e99d8..c777463 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java @@ -78,19 +78,19 @@ public WiFiDataCollector(Context context, String sessionName, String sensorName, mNanosOffset = nanosOffset; if (mSamplingPeriodUs > 0) { - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test"); + /*Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test");*/ mTimerHandler = new Handler(); mTimerRunnable = new Runnable() { @Override public void run() { - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test"); + /*Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test");*/ logWifiInfo(getScanList()); int millis = 1000 / mSamplingPeriodUs; mTimerHandler.postDelayed(this, millis); } }; } else { - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test2"); + /*Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test2");*/ mWiFiInfoReceiver = new WiFiInfoReceiver(); } @@ -142,7 +142,6 @@ private void logWifiInfo(List scanList){ logger.log(message); logger.log(System.lineSeparator()); } - private class WiFiInfoReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { @@ -150,6 +149,7 @@ public void onReceive(Context context, Intent intent) { } } + @Override public void start(){ Log.i(TAG, "start:: Starting listener for sensor: " + getSensorName()); From e449d09f6a173b876b266dcfe6ee0c4ffae16b58 Mon Sep 17 00:00:00 2001 From: wurmc Date: Mon, 8 Apr 2019 21:43:21 +0200 Subject: [PATCH 06/18] created DummyDataCollector to find errors and test txt file writing funtion. added LOG calls to some other classes --- .../collector/BluetoothDataCollector.java | 16 ++-- .../datalogger/collector/DataCollectors.java | 18 ++--- .../collector/DummyDataCollector.java | 78 +++++++++++++++++++ .../collector/WiFiDataCollector.java | 6 +- .../android/datalogger/log/CustomLogger.java | 1 + app/src/main/res/values/strings.xml | 2 +- 6 files changed, 105 insertions(+), 16 deletions(-) create mode 100644 app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java index 55b7be6..16e3f59 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java @@ -85,7 +85,9 @@ public BluetoothDataCollector(Context context, String sessionName, String sensor String path = sessionName + File.separator + mSensorName + "_" + sessionName; logger = new CustomLogger(context, path, sessionName, mSensorName, "txt", false, mNanosOffset, logFileMaxSize); - +// trying to write in txt file + String message = "Hallo!"; + logger.log(message); mSamplingPeriodUs = samplingPeriodUs; mBTManager = (BluetoothManager) context.getSystemService(context.BLUETOOTH_SERVICE); @@ -99,9 +101,7 @@ public BluetoothDataCollector(Context context, String sessionName, String sensor Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test1"); mTimerHandler = new Handler(); Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test4"); - // trying to write in txt file - /*String message = "Hallo!"; - logger.log(message);*/ + mTimerRunnable = new Runnable() { // still problems here !!! run() seems to not work properly. Log doesn't get called // no BT txt files are written @@ -121,6 +121,7 @@ public void run() { } public void onCreate(Bundle savedInstanceState) { + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_oncreate"); super.onCreate(savedInstanceState); /*not needed ! // BLE check @@ -154,6 +155,7 @@ public void onCreate(Bundle savedInstanceState) { } private void logBluetoothInfo(List scanList){ + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_logbtinfo"); // System local time in millis long currentMillis = (new Date()).getTime(); @@ -186,6 +188,7 @@ public void onReceive(Context context, Intent intent) { @Override public void start() { + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_start"); Log.i(TAG, "start:: Starting listener for sensor: " + getSensorName()); // if query from iBeaconDetector @@ -196,7 +199,7 @@ public void start() { // if query from wifi, has been adapted for bluetooth, is currently not working /*if (mBTInfoReceiver != null){ mContext.registerReceiver(mBTInfoReceiver, - new IntentFilter( ));//something is missing here + new IntentFilter(BluetoothDevice.ACTION_FOUND));//something is missing here }else { mTimerHandler.postDelayed(mTimerRunnable, 0); }*/ @@ -206,6 +209,7 @@ public void start() { @Override public void stop() { + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_stop"); Log.i(TAG,"stop:: Stopping listener for sensor " + getSensorName()); if (mBTAdapter != null) { @@ -225,6 +229,7 @@ public void stop() { @Override public void haltAndRestartLogging() { + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_halt"); logger.stop(); logger.resetByteCounter(); logger.start(); @@ -238,6 +243,7 @@ public void updateNanosOffset(long nanosOffset) { @Override public void onLeScan(final BluetoothDevice newDeivce, final int newRssi, final byte[] newScanRecord) { + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_onlescan"); runOnUiThread(new Runnable() { @Override public void run() { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java index c696c1f..0f0fc48 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java @@ -86,6 +86,7 @@ public void startDataCollectors(Context context, String sessionName, long nanosO // Measures the status of the Bluetooth networks if (SharedPreferencesHelper.isEnabledBluetooth(context)){ try{ + //PROBLEM mCollectors.add(new BluetoothDataCollector(context, sessionName, Constants.SENSOR_NAME_BLUETOOTH, SharedPreferencesHelper.getSamplingPeriodBluetoothInfo(context), @@ -96,6 +97,14 @@ public void startDataCollectors(Context context, String sessionName, long nanosO } } + // Calles DummyDataCollector + try{ + Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_datacoll"); + mCollectors.add(new DummyDataCollector(context, sessionName, "Dummy", 1, nanosOffset, SharedPreferencesHelper.getLogFilesMaxsize(context))); + } catch (Exception e){ + Log.e(TAG, "Error creating " + "Dummy" + " data collector: " + e.getMessage()); + } + // Measures the acceleration force in m/s2 that is applied to a device on all three physical axes (x, y, and z), including the force of gravity. // SensorEvent.values[0] Acceleration force along the x axis (including gravity). // SensorEvent.values[1] Acceleration force along the y axis (including gravity). @@ -167,8 +176,6 @@ public void startDataCollectors(Context context, String sessionName, long nanosO SharedPreferencesHelper.getLogFilesMaxsize(context))); } - - // Measures the status of the cellular network in number of cells and signal strength (deprecated version) if (SharedPreferencesHelper.isEnabledDeprCellsInfo(context)){ try{ @@ -253,8 +260,6 @@ public void startDataCollectors(Context context, String sessionName, long nanosO } } - - // Measures position of the device relative to the earth's frame of reference (specifically, // the magnetic north pole). // Sensor type TYPE_ORIENTATION was deprecated in Android 2.2 (API level 8), and this sensor @@ -274,7 +279,6 @@ public void startDataCollectors(Context context, String sessionName, long nanosO } } - // Linear acceleration TYPE_LINEAR_ACCELERATION // Measures the acceleration force in m/s2 that is applied to a device on all three physical axes (x, y, and z), excluding the force of gravity. // SensorEvent.values[0] Acceleration force along the x axis (excluding gravity). m/s2 @@ -293,7 +297,6 @@ public void startDataCollectors(Context context, String sessionName, long nanosO } } - // Gravity TYPE_GRAVITY // Measures the force of gravity in m/s2 that is applied to a device on all three physical axes (x, y, z). // SensorEvent.values[0] Force of gravity along the x axis. m/s2 @@ -312,14 +315,11 @@ public void startDataCollectors(Context context, String sessionName, long nanosO } } - - // All data collectors are started for (AbstractDataCollector collector : mCollectors) { Log.i(TAG, "Calling collector " + collector.getSensorName()); collector.start(); } - } public void stopDataCollectors() { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java new file mode 100644 index 0000000..d0f0e5c --- /dev/null +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2019. Mathias Ciliberto, Francisco Javier Ordoñez Morales, + * Hristijan Gjoreski, Daniel Roggen + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +package uk.ac.sussex.wear.android.datalogger.collector; + +import android.content.Context; +import android.util.Log; + +import java.io.File; + +import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; + +public class DummyDataCollector extends AbstractDataCollector { + + private static final String TAG = "DummyDataCollector"; + + private CustomLogger logger = null; + + public DummyDataCollector(Context context, String sessionName, String sensorName, int samplingPeriodUs, long nanosOffset, int logFileMaxSize){ + Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_constructor"); + mSensorName = sensorName; + String path = sessionName + File.separator + mSensorName + "_" + sessionName; + logger = new CustomLogger(context, path, sessionName, mSensorName, "txt", false, nanosOffset, logFileMaxSize); + Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_aftertxt"); + logDummyInfo(); + } + + private void logDummyInfo(){ + Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_beforelog"); + String message = "Hello"; + logger.log("hello"); + Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_afterlog"); + } + + @Override + public void start() { + Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_start"); + logger.start(); + } + + @Override + public void stop() { + Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_stop"); + logger.stop(); + } + + @Override + public void haltAndRestartLogging() { + Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_halt"); + logger.stop(); + logger.resetByteCounter(); + logger.start(); + } + + @Override + public void updateNanosOffset(long nanosOffset) { + + } +} diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java index c777463..79b76ec 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java @@ -76,7 +76,7 @@ public WiFiDataCollector(Context context, String sessionName, String sensorName, // Offset to match timestamps both in master and slaves devices mNanosOffset = nanosOffset; - + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test"); if (mSamplingPeriodUs > 0) { /*Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test");*/ mTimerHandler = new Handler(); @@ -103,6 +103,7 @@ private List getScanList(){ } private void logWifiInfo(List scanList){ + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test_log"); // System local time in millis long currentMillis = (new Date()).getTime(); @@ -152,6 +153,7 @@ public void onReceive(Context context, Intent intent) { @Override public void start(){ + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test_start"); Log.i(TAG, "start:: Starting listener for sensor: " + getSensorName()); if (mWiFiInfoReceiver != null){ @@ -165,6 +167,7 @@ public void start(){ @Override public void stop(){ + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test_stop"); Log.i(TAG,"stop:: Stopping listener for sensor " + getSensorName()); if (mWiFiInfoReceiver != null) { @@ -178,6 +181,7 @@ public void stop(){ @Override public void haltAndRestartLogging(){ + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test_halt"); logger.stop(); logger.resetByteCounter(); logger.start(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/CustomLogger.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/CustomLogger.java index f900dc5..31fa6ae 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/CustomLogger.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/log/CustomLogger.java @@ -90,6 +90,7 @@ public void log(String s) { try { mOutputStream.write(s.getBytes()); }catch(IOException e){ + Log.e(TAG, "::log Error writing in log file "+getBaseFilename()); } if (mMaxSizeKByte>0){ diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 276624b..24330a7 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -272,7 +272,7 @@ Remote server Server address - "http://0.0.0.0/upload.php" + "http://141.100.70.109/upload.php" PREF_GENERAL_SERVER_ADDRS_KEY Files sync PREF_GENERAL_SERVER_SYNCM_KEY From b1e28c6750f599208114bafa75963fe817129b61 Mon Sep 17 00:00:00 2001 From: wurmc Date: Sun, 14 Apr 2019 16:14:18 +0200 Subject: [PATCH 07/18] DummyDataCollector is now working fine. Initialisation of bluetooth is now working. Still errors with bluetooth. App is stopping as soon as it is started. --- .../collector/BTHelper/DeviceAdapter.java | 7 +- .../collector/BluetoothDataCollector.java | 65 +++++++++++++------ .../datalogger/collector/DataCollectors.java | 25 ++++--- .../collector/DummyDataCollector.java | 41 +++++++++--- 4 files changed, 94 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java index b07dd9a..ac5c8ea 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java @@ -27,16 +27,17 @@ import android.support.annotation.NonNull; import android.widget.ArrayAdapter; +import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; -public class DeviceAdapter extends ArrayAdapter { +public class DeviceAdapter extends ArrayList { //extends ArrayAdapter private List mList; public DeviceAdapter(@NonNull Context context, int resource, List objects) { - super(context, resource, objects); + // super(context, resource, objects); mList = objects; } @@ -80,7 +81,7 @@ public int compare(ScannedDevice lhs, ScannedDevice rhs) { } });*/ - notifyDataSetChanged(); + // notifyDataSetChanged(); // create summary int totalCount = 0; diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java index 16e3f59..c5d7012 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java @@ -22,7 +22,6 @@ package uk.ac.sussex.wear.android.datalogger.collector; - import android.annotation.SuppressLint; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothClass; @@ -85,13 +84,35 @@ public BluetoothDataCollector(Context context, String sessionName, String sensor String path = sessionName + File.separator + mSensorName + "_" + sessionName; logger = new CustomLogger(context, path, sessionName, mSensorName, "txt", false, mNanosOffset, logFileMaxSize); -// trying to write in txt file - String message = "Hallo!"; - logger.log(message); + // trying to write in txt file + /*String message = "Hallo!"; + logger.log(message);*/ mSamplingPeriodUs = samplingPeriodUs; - mBTManager = (BluetoothManager) context.getSystemService(context.BLUETOOTH_SERVICE); + // call init + init(); + + // call onCreate option 1 + /*Bundle savedInstanceState = new Bundle(); + onCreate(savedInstanceState);*/ + + // call onCreate option 2 + //onCreate(new Bundle()); + // mBTManager = (BluetoothManager) context.getSystemService(context.BLUETOOTH_SERVICE); + + //initialise BTAdapter + /*if (mBTManager != null) {*/ + //mBTAdapter = BluetoothAdapter.getDefaultAdapter(); + //} + /*if (mBTAdapter == null) { + Toast.makeText(this, R.string.bt_not_supported, Toast.LENGTH_SHORT).show(); + finish(); + return; + }*/ + //initialise DeviceAdapter + /*mDeviceAdapter = new DeviceAdapter(this,0, + new ArrayList());*/ mContext = context; // Offset to match timestamps both in master and slaves devices @@ -120,9 +141,12 @@ public void run() { } - public void onCreate(Bundle savedInstanceState) { + /*public void onCreate(Bundle savedInstanceState) { Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_oncreate"); - super.onCreate(savedInstanceState); + super.onCreate(savedInstanceState);*/ + + private void init(){ + Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_init"); /*not needed ! // BLE check if (!BleUtil.isBLESupported(this)) { @@ -134,9 +158,10 @@ public void onCreate(Bundle savedInstanceState) { // BT check // already initialised // mBTManager = (BluetoothManager) this.getSystemService(Context.BLUETOOTH_SERVICE); - if (mBTManager != null) { - mBTAdapter = mBTManager.getAdapter(); - } + //if (mBTManager != null) { + //mBTAdapter = mBTManager.getAdapter(); + mBTAdapter = BluetoothAdapter.getDefaultAdapter(); + //} if (mBTAdapter == null) { Toast.makeText(this, R.string.bt_not_supported, Toast.LENGTH_SHORT).show(); finish(); @@ -149,9 +174,7 @@ public void onCreate(Bundle savedInstanceState) { deviceListView.setAdapter(mDeviceAdapter); stopScan();*/ - mDeviceAdapter = new DeviceAdapter(this,0, - new ArrayList()); - + mDeviceAdapter = new DeviceAdapter(this, R.id.activities_labels_ui, new ArrayList()); } private void logBluetoothInfo(List scanList){ @@ -167,14 +190,14 @@ private void logBluetoothInfo(List scanList){ + String.format("%s", mNanosOffset) + ";" + scanList.size(); - for (ScannedDevice scan : scanList){ + /*for (ScannedDevice scan : scanList){ // Get BLE Beacon Hex Info out of scanRecord String scanRecord = scan.getScanRecordHexString(); message += ";" - /*+ scanRecord;*/ - + "Hallo!"; - } + + scanRecord; + }*/ + message += "Hello"; logger.log(message); logger.log(System.lineSeparator()); } @@ -200,9 +223,9 @@ public void start() { /*if (mBTInfoReceiver != null){ mContext.registerReceiver(mBTInfoReceiver, new IntentFilter(BluetoothDevice.ACTION_FOUND));//something is missing here - }else { + }else {*/ mTimerHandler.postDelayed(mTimerRunnable, 0); - }*/ + //} logger.start(); } @@ -220,9 +243,9 @@ public void stop() { // if query from wifi, has been adapted for bluetooth, is currently not working /*if (mBTInfoReceiver != null) { mContext.unregisterReceiver(mBTInfoReceiver); - } else { + } else {*/ mTimerHandler.removeCallbacks(mTimerRunnable); - }*/ + //} logger.stop(); } diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java index 0f0fc48..e883413 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java @@ -61,6 +61,15 @@ public void startDataCollectors(Context context, String sessionName, long nanosO // Initialization of collectors objects array mCollectors = new ArrayList<>(); + // Measures the status of the WiFi networks + if (SharedPreferencesHelper.isEnabledWiFi(context)){ + mCollectors.add(new WiFiDataCollector(context, sessionName, + Constants.SENSOR_NAME_WIFI, + SharedPreferencesHelper.getSamplingPeriodWiFiInfo(context), + nanosOffset, + SharedPreferencesHelper.getLogFilesMaxsize(context))); + } + // Measures the status of the cellular network in number of cells and signal strength if (SharedPreferencesHelper.isEnabledCellsInfo(context)){ try{ @@ -74,14 +83,7 @@ public void startDataCollectors(Context context, String sessionName, long nanosO } } - // Measures the status of the WiFi networks - if (SharedPreferencesHelper.isEnabledWiFi(context)){ - mCollectors.add(new WiFiDataCollector(context, sessionName, - Constants.SENSOR_NAME_WIFI, - SharedPreferencesHelper.getSamplingPeriodWiFiInfo(context), - nanosOffset, - SharedPreferencesHelper.getLogFilesMaxsize(context))); - } + // Measures the status of the Bluetooth networks if (SharedPreferencesHelper.isEnabledBluetooth(context)){ @@ -97,10 +99,13 @@ public void startDataCollectors(Context context, String sessionName, long nanosO } } - // Calles DummyDataCollector + // Calls DummyDataCollector try{ Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_datacoll"); - mCollectors.add(new DummyDataCollector(context, sessionName, "Dummy", 1, nanosOffset, SharedPreferencesHelper.getLogFilesMaxsize(context))); + mCollectors.add(new DummyDataCollector(context, sessionName, + "Dummy", 1, + nanosOffset, + SharedPreferencesHelper.getLogFilesMaxsize(context))); } catch (Exception e){ Log.e(TAG, "Error creating " + "Dummy" + " data collector: " + e.getMessage()); } diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java index d0f0e5c..561d798 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java @@ -23,49 +23,70 @@ package uk.ac.sussex.wear.android.datalogger.collector; import android.content.Context; +import android.os.Handler; import android.util.Log; import java.io.File; import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; +// child class for testing the txt file write function +// class should only write "Hello" into txt file + public class DummyDataCollector extends AbstractDataCollector { private static final String TAG = "DummyDataCollector"; private CustomLogger logger = null; + // Timer to manage specific sampling rates + private Handler mTimerHandler = null; + private Runnable mTimerRunnable = null; + public DummyDataCollector(Context context, String sessionName, String sensorName, int samplingPeriodUs, long nanosOffset, int logFileMaxSize){ - Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_constructor"); + //Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_constructor"); mSensorName = sensorName; String path = sessionName + File.separator + mSensorName + "_" + sessionName; logger = new CustomLogger(context, path, sessionName, mSensorName, "txt", false, nanosOffset, logFileMaxSize); - Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_aftertxt"); - logDummyInfo(); + //Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_aftertxt"); + mTimerHandler = new Handler(); + mTimerRunnable = new Runnable() { + @Override + public void run() { + //Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test"); + logDummyInfo(); + int millis = 1000; + mTimerHandler.postDelayed(this, millis); + } + }; } private void logDummyInfo(){ - Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_beforelog"); + //Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_beforelog"); String message = "Hello"; - logger.log("hello"); - Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_afterlog"); + logger.log(message); + logger.log(System.lineSeparator()); + //Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_afterlog"); } @Override public void start() { - Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_start"); + //Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_start"); + // logDummyInfo(); + mTimerHandler.postDelayed(mTimerRunnable, 0); logger.start(); } @Override public void stop() { - Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_stop"); + //Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_stop"); + mTimerHandler.removeCallbacks(mTimerRunnable); logger.stop(); } @Override public void haltAndRestartLogging() { - Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_halt"); + //Log.e(TAG, "Error creating " + "DummyDataCollector" + " test_halt"); logger.stop(); logger.resetByteCounter(); logger.start(); @@ -73,6 +94,6 @@ public void haltAndRestartLogging() { @Override public void updateNanosOffset(long nanosOffset) { - + mNanosOffset = nanosOffset; } } From c135d4a58a6ad8baa1900b0b096d35b196d006b0 Mon Sep 17 00:00:00 2001 From: wurmc Date: Sun, 14 Apr 2019 18:29:21 +0200 Subject: [PATCH 08/18] BluetoothDataCollector is now successfully writing Hex values into txt files. DeviceAdapter does not extend any class anymore. Erased a few commented lines, which are not needed anymore. --- .../collector/BTHelper/DeviceAdapter.java | 10 ++--- .../collector/BluetoothDataCollector.java | 43 ++++--------------- .../datalogger/collector/DataCollectors.java | 10 +++-- 3 files changed, 19 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java index ac5c8ea..e4c2577 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java @@ -32,16 +32,15 @@ import java.util.Comparator; import java.util.List; -public class DeviceAdapter extends ArrayList { //extends ArrayAdapter +public class DeviceAdapter { private List mList; - public DeviceAdapter(@NonNull Context context, int resource, List objects) { - // super(context, resource, objects); + public DeviceAdapter(List objects) { mList = objects; } - public String update(BluetoothDevice newDevice, int rssi, byte[] scanRecord) { + public String updateDevice(BluetoothDevice newDevice, int rssi, byte[] scanRecord) { if ((newDevice == null) || (newDevice.getAddress() == null)) { return ""; } @@ -101,7 +100,6 @@ public int compare(ScannedDevice lhs, ScannedDevice rhs) { } public List getScanList() { - synchronized (this) { return mList; - }} + } } diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java index c5d7012..6a20be1 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java @@ -92,27 +92,6 @@ public BluetoothDataCollector(Context context, String sessionName, String sensor // call init init(); - // call onCreate option 1 - /*Bundle savedInstanceState = new Bundle(); - onCreate(savedInstanceState);*/ - - // call onCreate option 2 - //onCreate(new Bundle()); - // mBTManager = (BluetoothManager) context.getSystemService(context.BLUETOOTH_SERVICE); - - //initialise BTAdapter - /*if (mBTManager != null) {*/ - //mBTAdapter = BluetoothAdapter.getDefaultAdapter(); - //} - /*if (mBTAdapter == null) { - Toast.makeText(this, R.string.bt_not_supported, Toast.LENGTH_SHORT).show(); - finish(); - return; - }*/ - - //initialise DeviceAdapter - /*mDeviceAdapter = new DeviceAdapter(this,0, - new ArrayList());*/ mContext = context; // Offset to match timestamps both in master and slaves devices @@ -141,10 +120,6 @@ public void run() { } - /*public void onCreate(Bundle savedInstanceState) { - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_oncreate"); - super.onCreate(savedInstanceState);*/ - private void init(){ Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_init"); /*not needed ! @@ -174,7 +149,7 @@ private void init(){ deviceListView.setAdapter(mDeviceAdapter); stopScan();*/ - mDeviceAdapter = new DeviceAdapter(this, R.id.activities_labels_ui, new ArrayList()); + mDeviceAdapter = new DeviceAdapter(new ArrayList()); } private void logBluetoothInfo(List scanList){ @@ -190,14 +165,14 @@ private void logBluetoothInfo(List scanList){ + String.format("%s", mNanosOffset) + ";" + scanList.size(); - /*for (ScannedDevice scan : scanList){ + for (ScannedDevice scan : scanList){ // Get BLE Beacon Hex Info out of scanRecord String scanRecord = scan.getScanRecordHexString(); message += ";" + scanRecord; - }*/ - message += "Hello"; + } + //message += "Hello"; logger.log(message); logger.log(System.lineSeparator()); } @@ -264,16 +239,14 @@ public void updateNanosOffset(long nanosOffset) { } @Override - public void onLeScan(final BluetoothDevice newDeivce, final int newRssi, + public void onLeScan(final BluetoothDevice newDevice, final int newRssi, final byte[] newScanRecord) { - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_onlescan"); + //Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_onlescan"); runOnUiThread(new Runnable() { @Override public void run() { - String summary = mDeviceAdapter.update(newDeivce, newRssi, newScanRecord); - if (summary != null) { - getActionBar().setSubtitle(summary); - } + //Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_run_onlescan"); + String summary = mDeviceAdapter.updateDevice(newDevice, newRssi, newScanRecord); } }); } diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java index e883413..08dd0a7 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java @@ -321,9 +321,13 @@ public void startDataCollectors(Context context, String sessionName, long nanosO } // All data collectors are started - for (AbstractDataCollector collector : mCollectors) { - Log.i(TAG, "Calling collector " + collector.getSensorName()); - collector.start(); + try{ + for (AbstractDataCollector collector : mCollectors) { + Log.i(TAG, "Calling collector " + collector.getSensorName()); + collector.start(); + } + } catch (Exception e){ + Log.e(TAG, "Error starting data collector: " + e.getMessage()); } } From 3c14825abbf9b3a0cdbb3f59d0cfce0c8c07c03a Mon Sep 17 00:00:00 2001 From: wurmc Date: Sun, 14 Apr 2019 19:18:03 +0200 Subject: [PATCH 09/18] BluetoothDataCollector is now working. It writes the device address, the rssi value and the hex string into the txt file. Unnecessary comments and lines of code deleted. --- .../collector/BTHelper/DeviceAdapter.java | 38 +-------- .../collector/BTHelper/ScannedDevice.java | 23 ++++- .../collector/BluetoothDataCollector.java | 83 ++++--------------- .../collector/DummyDataCollector.java | 2 - 4 files changed, 38 insertions(+), 108 deletions(-) diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java index e4c2577..1dcce75 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java @@ -23,13 +23,6 @@ package uk.ac.sussex.wear.android.datalogger.collector.BTHelper; import android.bluetooth.BluetoothDevice; -import android.content.Context; -import android.support.annotation.NonNull; -import android.widget.ArrayAdapter; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; import java.util.List; public class DeviceAdapter { @@ -51,8 +44,9 @@ public String updateDevice(BluetoothDevice newDevice, int rssi, byte[] scanRecor if (newDevice.getAddress().equals(device.getDevice().getAddress())) { contains = true; // update - /*device.setRssi(rssi); - device.setLastUpdatedMs(now);*/ + device.setAddress(device.getDevice().getAddress()); + device.setRssi(rssi); + /*device.setLastUpdatedMs(now);*/ device.setScanRecord(scanRecord); break; } @@ -62,36 +56,10 @@ public String updateDevice(BluetoothDevice newDevice, int rssi, byte[] scanRecor mList.add(new ScannedDevice(newDevice, rssi, scanRecord, now)); } - /*// sort by RSSI - Collections.sort(mList, new Comparator() { - @Override - public int compare(ScannedDevice lhs, ScannedDevice rhs) { - if (lhs.getRssi() == 0) { - return 1; - } else if (rhs.getRssi() == 0) { - return -1; - } - if (lhs.getRssi() > rhs.getRssi()) { - return -1; - } else if (lhs.getRssi() < rhs.getRssi()) { - return 1; - } - return 0; - } - });*/ - - // notifyDataSetChanged(); - // create summary int totalCount = 0; - /*int iBeaconCount = 0;*/ if (mList != null) { totalCount = mList.size(); - /*for (ScannedDevice device : mList) { - if (device.getIBeacon() != null) { - iBeaconCount++; - } - }*/ } String summary = /*"iBeacon:" + Integer.toString(iBeaconCount) +*/ " (Total:" + Integer.toString(totalCount) + ")"; diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java index a9ab298..fef415a 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java @@ -26,10 +26,13 @@ public class ScannedDevice { - /** BluetoothDevice */ + /* BluetoothDevice */ private BluetoothDevice mDevice; - /** Advertise Scan Record */ + /* Advertise Scan Record */ private byte[] mScanRecord; + /* RSSI */ + private int mRssi; + private String mDevAddress; public ScannedDevice(BluetoothDevice device, int rssi, byte[] scanRecord, long now) { if (device == null) { @@ -40,8 +43,8 @@ public ScannedDevice(BluetoothDevice device, int rssi, byte[] scanRecord, long n /*mDisplayName = device.getName(); if ((mDisplayName == null) || (mDisplayName.length() == 0)) { mDisplayName = UNKNOWN; - } - mRssi = rssi;*/ + }*/ + mRssi = rssi; mScanRecord = scanRecord; } @@ -49,6 +52,18 @@ public BluetoothDevice getDevice() { return mDevice; } + public int getRssi() { + return mRssi; + } + + public void setRssi(int rssi) { + mRssi = rssi; + } + + public void setAddress(String address){ + mDevAddress = address; + } + public String getScanRecordHexString() { return ScannedDevice.asHex(mScanRecord); } diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java index 6a20be1..33d4358 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java @@ -24,26 +24,18 @@ import android.annotation.SuppressLint; import android.bluetooth.BluetoothAdapter; -import android.bluetooth.BluetoothClass; import android.bluetooth.BluetoothDevice; -import android.bluetooth.BluetoothManager; -import android.bluetooth.le.BluetoothLeScanner; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import android.content.IntentFilter; -import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; import android.util.Log; -import uk.ac.sussex.wear.android.datalogger.Constants; import uk.ac.sussex.wear.android.datalogger.R; import uk.ac.sussex.wear.android.datalogger.collector.BTHelper.DeviceAdapter; import uk.ac.sussex.wear.android.datalogger.collector.BTHelper.ScannedDevice; import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; -import android.app.Activity; -import android.widget.ListView; import android.widget.Toast; import java.io.File; @@ -75,7 +67,6 @@ public class BluetoothDataCollector extends AbstractDataCollector implements Blu private BluetoothAdapter mBTAdapter = null; private boolean mIsScanning; private DeviceAdapter mDeviceAdapter; - private BluetoothManager mBTManager; @SuppressLint("ServiceCast") public BluetoothDataCollector(Context context, String sessionName, String sensorName, int samplingPeriodUs, long nanosOffset, int logFileMaxSize) { @@ -84,92 +75,66 @@ public BluetoothDataCollector(Context context, String sessionName, String sensor String path = sessionName + File.separator + mSensorName + "_" + sessionName; logger = new CustomLogger(context, path, sessionName, mSensorName, "txt", false, mNanosOffset, logFileMaxSize); - // trying to write in txt file - /*String message = "Hallo!"; - logger.log(message);*/ - mSamplingPeriodUs = samplingPeriodUs; - - // call init - init(); + mSamplingPeriodUs = samplingPeriodUs; mContext = context; - // Offset to match timestamps both in master and slaves devices mNanosOffset = nanosOffset; - + // call init + init(); if (mSamplingPeriodUs > 0) { - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test1"); mTimerHandler = new Handler(); - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test4"); - mTimerRunnable = new Runnable() { // still problems here !!! run() seems to not work properly. Log doesn't get called // no BT txt files are written @Override public void run() { - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test2"); logBluetoothInfo(mDeviceAdapter.getScanList()); int millis = 1000 / mSamplingPeriodUs; mTimerHandler.postDelayed(this, millis); } }; } else { - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test3"); mBTInfoReceiver = new BluetoothInfoReceiver(); } } private void init(){ - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_init"); - /*not needed ! - // BLE check - if (!BleUtil.isBLESupported(this)) { - Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show(); - finish(); - return; - }*/ - - // BT check - // already initialised - // mBTManager = (BluetoothManager) this.getSystemService(Context.BLUETOOTH_SERVICE); - //if (mBTManager != null) { - //mBTAdapter = mBTManager.getAdapter(); - mBTAdapter = BluetoothAdapter.getDefaultAdapter(); - //} + // initialise mBTAdapter + mBTAdapter = BluetoothAdapter.getDefaultAdapter(); if (mBTAdapter == null) { Toast.makeText(this, R.string.bt_not_supported, Toast.LENGTH_SHORT).show(); finish(); return; } - // not needed ! -/* // init listview - ListView deviceListView = (ListView) findViewById(R.id.list); - deviceListView.setAdapter(mDeviceAdapter); - stopScan();*/ - mDeviceAdapter = new DeviceAdapter(new ArrayList()); } private void logBluetoothInfo(List scanList){ - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_logbtinfo"); // System local time in millis long currentMillis = (new Date()).getTime(); // System nanoseconds since boot, including time spent in sleep. long nanoTime = SystemClock.elapsedRealtimeNanos() + mNanosOffset; - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test6"); + String message = String.format("%s", currentMillis) + ";" + String.format("%s", nanoTime) + ";" + String.format("%s", mNanosOffset) + ";" + scanList.size(); for (ScannedDevice scan : scanList){ + // Get BLE Beacon Device Address + String address = scan.getDevice().getAddress(); + // Get BLE Beacon RSSI + int rssi = scan.getRssi(); // Get BLE Beacon Hex Info out of scanRecord String scanRecord = scan.getScanRecordHexString(); message += ";" + + address + ";" + + rssi + ";" + scanRecord; } //message += "Hello"; @@ -186,7 +151,6 @@ public void onReceive(Context context, Intent intent) { @Override public void start() { - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_start"); Log.i(TAG, "start:: Starting listener for sensor: " + getSensorName()); // if query from iBeaconDetector @@ -194,20 +158,14 @@ public void start() { mBTAdapter.startLeScan(this); mIsScanning = true; } - // if query from wifi, has been adapted for bluetooth, is currently not working - /*if (mBTInfoReceiver != null){ - mContext.registerReceiver(mBTInfoReceiver, - new IntentFilter(BluetoothDevice.ACTION_FOUND));//something is missing here - }else {*/ - mTimerHandler.postDelayed(mTimerRunnable, 0); - //} + + mTimerHandler.postDelayed(mTimerRunnable, 0); logger.start(); } @Override public void stop() { - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_stop"); Log.i(TAG,"stop:: Stopping listener for sensor " + getSensorName()); if (mBTAdapter != null) { @@ -215,19 +173,13 @@ public void stop() { } mIsScanning = false; - // if query from wifi, has been adapted for bluetooth, is currently not working - /*if (mBTInfoReceiver != null) { - mContext.unregisterReceiver(mBTInfoReceiver); - } else {*/ - mTimerHandler.removeCallbacks(mTimerRunnable); - //} + mTimerHandler.removeCallbacks(mTimerRunnable); logger.stop(); } @Override public void haltAndRestartLogging() { - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_halt"); logger.stop(); logger.resetByteCounter(); logger.start(); @@ -239,13 +191,10 @@ public void updateNanosOffset(long nanosOffset) { } @Override - public void onLeScan(final BluetoothDevice newDevice, final int newRssi, - final byte[] newScanRecord) { - //Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_onlescan"); + public void onLeScan(final BluetoothDevice newDevice, final int newRssi, final byte[] newScanRecord) { runOnUiThread(new Runnable() { @Override public void run() { - //Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_BLUETOOTH + " test_run_onlescan"); String summary = mDeviceAdapter.updateDevice(newDevice, newRssi, newScanRecord); } }); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java index 561d798..6572f22 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java @@ -24,8 +24,6 @@ import android.content.Context; import android.os.Handler; -import android.util.Log; - import java.io.File; import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; From b3ea4958ab4d176c7ab078c300bc27b031001aae Mon Sep 17 00:00:00 2001 From: wurmc Date: Thu, 25 Apr 2019 18:27:38 +0200 Subject: [PATCH 10/18] File upload is now working. Files are uploaded to /var/www/uploads/. old php script didn't match the data structure of the file array, changed the php script to match it. --- .idea/misc.xml | 2 +- PHP_upload_script.txt | 50 ++++++++++++++----------------------------- 2 files changed, 17 insertions(+), 35 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 51fa3e5..cc04cd3 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,7 +35,7 @@ - + diff --git a/PHP_upload_script.txt b/PHP_upload_script.txt index 04ae5fc..5d30b5b 100755 --- a/PHP_upload_script.txt +++ b/PHP_upload_script.txt @@ -1,40 +1,22 @@ $error) { - if ($error == UPLOAD_ERR_OK) { - $tmp_name = $_FILES["fileToUpload"]["tmp_name"][$key]; - $name = $_FILES["fileToUpload"]["name"][$key]; - $file_path = "./uploads/"; - $file_path = $file_path . $name; - if(move_uploaded_file($tmp_name, $file_path)) - { - echo "OK:".$name."\r\n"; +$target_dir = "../uploads/"; +foreach ($_FILES as $file) { + if ($file['type'] !== 'text/plain' && $file['type'] !== 'video/3gp') { + continue; // ignore non text or 3gp files + } - } else{ - echo "ERR:".$name."\r\n"; - } - } + $name = $file['name']; + $error = $file['error']; -} -?> + if ($error !== UPLOAD_ERR_OK) { + echo "ERR:${error}:${name}\r\n"; + continue; + } - $error) { - $name = $_FILES["fileToUpload"]["name"][$key]; - if ($error == UPLOAD_ERR_OK) { - $tmp_name = $_FILES["fileToUpload"]["tmp_name"][$key]; - $target_file = $target_dir . $name; - if(move_uploaded_file($tmp_name, $target_file)) - { - echo "OK:".$error.":".$name."\r\n"; - } else{ - echo "ERR:UPLOAD_ERR_MOVE:".$name."\r\n"; - } - } else { - echo "ERR:".$error.":".$name."\r\n"; - } + if (move_uploaded_file($file['tmp_name'], $target_dir . $name)) { + echo "OK:${error}:${name}\r\n"; + } else { + echo "ERR:UPLOAD_ERR_MOVE:${name}\r\n"; + } } ?> - - - From d51126bb61ed7e3992bed23ed256bbd4813d2e12 Mon Sep 17 00:00:00 2001 From: wurmc Date: Sat, 4 May 2019 20:47:34 +0200 Subject: [PATCH 11/18] Bluetooth synchronisation including master slave functionality integrated again. Yet not working: Connecting slave to master does not work yet due to not opening device list activity. --- .idea/codeStyles/Project.xml | 29 -------- .idea/encodings.xml | 4 ++ .idea/misc.xml | 2 +- README.md | 3 +- .../android/datalogger/DataLoggerService.java | 72 +++++++++---------- .../android/datalogger/DisplayActivity.java | 42 +++++------ .../android/datalogger/SettingsActivity.java | 8 +-- .../datalogger/SharedPreferencesHelper.java | 16 ++--- .../bt/BluetoothConnectionHelper.java | 48 +++++-------- .../bt/BluetoothConnectionHelper2.java | 4 +- .../datalogger/bt/BluetoothConnector.java | 14 ++-- .../bt/BluetoothDeviceListActivity.java | 27 +++---- .../datalogger/bt/MultiBluetoothManager.java | 22 ++---- .../bluetooth/client/BluetoothClient.java | 8 +-- .../bluetooth/client/BluetoothConnector.java | 16 ++--- .../bluetooth/server/BluetoothServer.java | 6 +- .../bus/BluetoothCommunicator.java | 8 +-- .../bt/multibluetooth/bus/BondedDevice.java | 9 ++- .../bus/ClientConnectionFail.java | 8 +-- .../bus/ClientConnectionSuccess.java | 8 +-- .../bus/ServeurConnectionFail.java | 9 ++- .../bus/ServeurConnectionSuccess.java | 8 +-- .../collector/CellsInfoDataCollector.java | 49 +++++++++++-- .../collector/WiFiDataCollector.java | 11 +-- .../layout/activity_bluetooth_device_list.xml | 4 +- app/src/main/res/layout/content_main.xml | 11 +-- app/src/main/res/menu/menu_main.xml | 4 +- app/src/main/res/values/strings.xml | 2 +- app/src/main/res/xml/pref_data_sync.xml | 4 +- app/src/main/res/xml/pref_general.xml | 4 +- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 32 files changed, 209 insertions(+), 257 deletions(-) delete mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/encodings.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index 30aa626..0000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index cc04cd3..51fa3e5 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,7 +35,7 @@ - + diff --git a/README.md b/README.md index 8b032db..0295112 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,14 @@ Application features: - Environmental sensors data as temperature, light, pressure and humidity; - Positioning sensors data such as location and satellites; - Networks connectivity data, as network cells and WiFi networks; + - Available Bluetooth beacons - Battery level - Microphone audio - Google activity recognition labels - Every sensors can be configured in the settings to enable/disable it, set the sampling frequency, the remote upload of its data. - Remote upload of data (`PHP_upload_script.txt` contains the PHP code for the server) - Multidevice (master-slaves) configuration -- Bluetooth connection for synchronization among device of time and status (logging/no logging, labels, sublabels) +- Bluetooth connection for synchronization among devices of time and status (logging/no logging, labels, sublabels) - Autostart at boot/reboot - Background logging using persistent notification - Logging of data on files (a new file is created at regular interval to reduce data loss) diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DataLoggerService.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DataLoggerService.java index a793bb6..3ea0cb5 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DataLoggerService.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DataLoggerService.java @@ -54,7 +54,7 @@ import java.util.Date; import java.util.Iterator; -//import uk.ac.sussex.wear.android.datalogger.bt.BluetoothConnectionHelper; +import uk.ac.sussex.wear.android.datalogger.bt.BluetoothConnectionHelper; import uk.ac.sussex.wear.android.datalogger.collector.DataCollectors; import uk.ac.sussex.wear.android.datalogger.data.CommandBase; import uk.ac.sussex.wear.android.datalogger.data.CommandDCE; @@ -89,7 +89,7 @@ public class DataLoggerService extends Service { private HARecognizerApiHandler mHARecognizerApiHandler; - //private BluetoothConnectionHelper mBluetoothConnection = null; + private BluetoothConnectionHelper mBluetoothConnection = null; private BluetoothAdapter mBluetoothAdapter = null; @@ -113,7 +113,7 @@ public void run() { }; - /* private final Runnable connectTimerRunnable = new Runnable() { + private final Runnable connectTimerRunnable = new Runnable() { @Override public void run() { int timeout = SharedPreferencesHelper.getSlaveConnectionTimeout(DataLoggerService.this); @@ -121,7 +121,7 @@ public void run() { if (BuildConfig.DEBUG && (deviceLocation == Constants.DEVICE_LOCATION_HAND)) throw new RuntimeException("::connectTimerRunnable Runnable only required in slave devices"); Log.i(TAG, "::ConnectTimerRunnable Re/Starting connection with index " + deviceLocation + ". Timed every " + timeout + " millis."); - *//*if (!mBluetoothConnection.isConnected(deviceLocation) && !mMasterAddress.equals("")) { + if (!mBluetoothConnection.isConnected(deviceLocation) && !mMasterAddress.equals("")) { Log.i(TAG, "::ConnectTimerRunnable Current connection state at index " + deviceLocation + " is " + mBluetoothConnection.isConnected(deviceLocation) + ", starting connection to address " + mMasterAddress); @@ -129,9 +129,9 @@ public void run() { mHandler.postDelayed(this, timeout); mBluetoothConnection.start(deviceLocation); mBluetoothConnection.connect(mMasterAddress, deviceLocation); - }*//* + } } - };*/ + }; private final Handler mHandler = new Handler(new Handler.Callback() { @@ -142,7 +142,7 @@ public boolean handleMessage(Message msg) { int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(DataLoggerService.this); switch (msg.what) { case Constants.BLUETOOTH_MESSAGE_STATE_CHANGE: - /*switch (msg.arg1) { + switch (msg.arg1) { case BluetoothConnectionHelper.STATE_CONNECTED: Log.i(TAG, "::handleMessage Bluetooth connection established. Socket at position " + msg.arg2); //Only the slaves change to connected state @@ -171,7 +171,7 @@ public boolean handleMessage(Message msg) { case BluetoothConnectionHelper.STATE_NONE: Log.i(TAG, "::handleMessage Bluetooth socket waiting. Socket at position " + msg.arg2); break; - }*/ + } break; case Constants.BLUETOOTH_MESSAGE_CONNECTION_LOST: final int indexSocketLost = msg.getData().getInt(Constants.BLUETOOTH_CONNECTED_DEVICE_LOCATION); @@ -200,12 +200,12 @@ public void run() { } } // The bluetooth socket is forced to stop - //mBluetoothConnection.stop(indexSocketLost); + mBluetoothConnection.stop(indexSocketLost); // If the bluetooth adapter keeps enabled (the connection can be lost when the adapter is manually disabled) // the bluetooth connection tries to reconnect int bluetoothState = mBluetoothAdapter.isEnabled() ? Constants.BLUETOOTH_STATE_ENABLED : Constants.BLUETOOTH_STATE_DISABLED; Log.d(TAG, "Calling updateBluetoothState in connection lost with state " + bluetoothState); - /*updateBluetoothState(bluetoothState);*/ + updateBluetoothState(bluetoothState); break; // case Constants.BLUETOOTH_MESSAGE_WRITE: // byte[] writeBuf = (byte[]) msg.obj; @@ -314,11 +314,11 @@ public void onCreate() { mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); - /*if (mBluetoothAdapter == null) { // Device does not support Bluetooth + if (mBluetoothAdapter == null) { // Device does not support Bluetooth updateBluetoothState(Constants.BLUETOOTH_STATE_NOT_SUPPORTED); } else { registerReceiver(mBluetoothStateReceiver, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED)); - }*/ + } } @Override @@ -347,7 +347,7 @@ public int onStartCommand(Intent intent, int flags, int startId) { } - /* private final BroadcastReceiver mBluetoothStateReceiver = new BroadcastReceiver() { + private final BroadcastReceiver mBluetoothStateReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); @@ -365,7 +365,7 @@ public void onReceive(Context context, Intent intent) { } } } - };*/ + }; private void haltAndRestartLogging() { if (mDataCollectors != null) { @@ -539,10 +539,10 @@ private int startDataCollection(String masterSessionId, long nanosOffset) { notificationManager.notify(Constants.NOTIFICATION_ID.FOREGROUND_SERVICE, mNotification); // If the device is the master the command is broadcasted - /*if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { + if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandDCE(true, mDataCollectionSession.getSessionId(), SystemClock.elapsedRealtimeNanos()).getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - }*/ + } return -1; } @@ -591,11 +591,11 @@ private boolean stopDataCollection() { notificationManager.notify(Constants.NOTIFICATION_ID.FOREGROUND_SERVICE, mNotification); // If the device is the master the command is broadcasted - /*int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); + int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandDCE(false).getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - }*/ + } return true; } @@ -643,11 +643,11 @@ private boolean startLabelAnnotation(int activity, int bodyPosition, int locatio haltAndRestartLogging(); // If the device is the master the command is broadcasted - /*int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); + int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandLAE(true, activity, bodyPosition, location).getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - }*/ + } return true; } @@ -675,11 +675,11 @@ private boolean stopLabelAnnotation() { Log.d(TAG, "stopLabelAnnotation " + SharedPreferencesHelper.getAnnotatedActivityLabel(this)); // If the device is the master the command is broadcasted - /*int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); + int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandLAE(false).getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - }*/ + } return true; } @@ -709,12 +709,12 @@ private boolean stopAndStartLabelAnnotation(int activity, int bodyPosition, int haltAndRestartLogging(); // If the device is the master the command is broadcasted - /*int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); + int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandLAE(false).setStopAndStartEvent(activity, bodyPosition, location) .getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - }*/ + } return true; } @@ -760,7 +760,7 @@ public void run() { } } break; - /*case CommandBase.COMMAND_BLUETOOTH_START: + case CommandBase.COMMAND_BLUETOOTH_START: if (mBluetoothConnection != null) { mBluetoothConnection.stop(Constants.DEVICE_LOCATION_TORSO); mBluetoothConnection.stop(Constants.DEVICE_LOCATION_HIPS); @@ -773,21 +773,21 @@ public void run() { int bluetoothState = mBluetoothAdapter.isEnabled() ? Constants.BLUETOOTH_STATE_ENABLED : Constants.BLUETOOTH_STATE_DISABLED; updateBluetoothState(bluetoothState); } - break;*/ - /*case CommandBase.COMMAND_BLUETOOTH_CONNECT: + break; + case CommandBase.COMMAND_BLUETOOTH_CONNECT: if (!itr.hasNext()) throw new Exception("Command '" + comm + "' is malformed or missing parameters"); mMasterAddress = itr.next(); - //mHandler.post(connectTimerRunnable); - break;*/ + mHandler.post(connectTimerRunnable); + break; case CommandBase.COMMAND_FILES_UPLOAD_START: mFileUploader = FileUploader.getInstance(this, mHandler); mFileUploader.startUpload(); - /*int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); + int deviceLocation = SharedPreferencesHelper.getDeviceLocationValue(this); if ((deviceLocation == Constants.DEVICE_LOCATION_HAND) && (mBluetoothConnection != null)) { String broadcastMessage = new CommandFUS().getMessageBluetooth(); mBluetoothConnection.broadcastMessage(broadcastMessage); - }*/ + } break; case CommandBase.COMMAND_FILES_UPLOAD_CANCEL: mFileUploader.cancelUpload(); @@ -880,13 +880,13 @@ public void run() { } } - /*public void updateBluetoothState(final int state) { + public void updateBluetoothState(final int state) { String[] bluetoothStateList = SharedPreferencesHelper.getBluetoothStateList(this); Log.d(TAG, "::updateBluetoothState Updating bluetooth with state: " + bluetoothStateList[state]); SharedPreferencesHelper.setBluetoothStatus(this, state); - *//*switch (state) { + switch (state) { case Constants.BLUETOOTH_STATE_DISABLED: mHandler.removeCallbacks(connectTimerRunnable); break; @@ -917,15 +917,15 @@ public void run() { } break; - }*//* + } } -*/ + public void onDestroy() { // Cleanup service before destruction super.onDestroy(); stopDataCollection(); - /*unregisterReceiver(mBluetoothStateReceiver);*/ + unregisterReceiver(mBluetoothStateReceiver); stopForeground(true); if (wakeLock != null && wakeLock.isHeld()) diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java index c7d5756..84c9cf5 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java @@ -55,7 +55,7 @@ import java.text.SimpleDateFormat; import java.util.Calendar; -//import uk.ac.sussex.wear.android.datalogger.bt.BluetoothDeviceListActivity; +import uk.ac.sussex.wear.android.datalogger.bt.BluetoothDeviceListActivity; import uk.ac.sussex.wear.android.datalogger.data.CommandBTC; import uk.ac.sussex.wear.android.datalogger.data.CommandBTS; import uk.ac.sussex.wear.android.datalogger.data.CommandDCE; @@ -171,9 +171,9 @@ protected void onCreate(Bundle savedInstanceState) { /******************************************************************************************/ // Setting listener for bluetooth button - /*mBluetoothButton = (Button) findViewById(R.id.ui_bluetooth_status_button); + mBluetoothButton = (Button) findViewById(R.id.ui_bluetooth_status_button); assert mBluetoothButton != null; - mBluetoothButton.setOnClickListener(mClickBluetoothButton);*/ + mBluetoothButton.setOnClickListener(mClickBluetoothButton); /******************************************************************************************/ // Starting main DataLogger service with 'Bluetooth start' command @@ -229,12 +229,12 @@ protected void onStart() { // Update the bluetooth RelativeLayout based on the bluetooth adapter status. - /*refreshBluetoothLayout(); + refreshBluetoothLayout(); if (mDeviceLocation == Constants.DEVICE_LOCATION_HAND) { //if this is the master device // Update the TextView which shows the connectivity status of the slave devices. refreshBluetoothSlavesLayout(); - }*/ + } // Update the main UI layout based on the device profile (master or slave) refreshContentLayout(); @@ -257,7 +257,7 @@ private void setChecked(Button button, boolean bool) { /**********************************************************************************************/ /**********************************************************************************************/ - /*public void refreshBluetoothSlavesLayout() { + public void refreshBluetoothSlavesLayout() { int value = SharedPreferencesHelper.getSlavesConnected(this); int[] bitmasks = new int[]{0x4, 0x2, 0x1}; int[] layouts = new int[]{R.id.ui_bluetooth_status_slaves_torso, @@ -270,13 +270,13 @@ private void setChecked(Button button, boolean bool) { textView.setTextColor(ContextCompat.getColor(DisplayActivity.this, isConnected ? R.color.colorBtSlavesOn : R.color.colorBtSlavesOff)); } - }*/ + } /** * The layout of the bluetooth controls must change based on the device location and the state * of the bluetooth adapter. */ - /*private void refreshBluetoothLayout() { + private void refreshBluetoothLayout() { // Current state of the bluetooth adapter int state = SharedPreferencesHelper.getBluetoothStatus(this); boolean slavesVisible = true; @@ -322,7 +322,7 @@ private void setChecked(Button button, boolean bool) { layoutButton.getChildAt(i).setVisibility(buttonVisible ? View.VISIBLE : View.GONE); } - }*/ + } public void updateTextviewSwitch(boolean isActive, int id) { TextView customText = (TextView) findViewById(id); @@ -495,13 +495,13 @@ public void refreshContentLayout() { } } - /*mBluetoothButton = (Button) findViewById(R.id.ui_bluetooth_status_button); + mBluetoothButton = (Button) findViewById(R.id.ui_bluetooth_status_button); if (mDeviceLocation == Constants.DEVICE_LOCATION_HAND) { mBluetoothButton.setVisibility(View.INVISIBLE); if (menu != null) menu.findItem(R.id.action_pair).setVisible(true); } else if (menu != null) - menu.findItem(R.id.action_pair).setVisible(false);*/ + menu.findItem(R.id.action_pair).setVisible(false); } // IMPORTANT ! this creates the menu button @@ -510,10 +510,10 @@ public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. this.menu = menu; getMenuInflater().inflate(R.menu.menu_main, menu); - /*if (SharedPreferencesHelper.getDeviceLocationValue(this) != Constants.DEVICE_LOCATION_HAND) + if (SharedPreferencesHelper.getDeviceLocationValue(this) != Constants.DEVICE_LOCATION_HAND) menu.findItem(R.id.action_pair).setVisible(false); else - menu.findItem(R.id.action_pair).setVisible(true);*/ + menu.findItem(R.id.action_pair).setVisible(true); return true; } @@ -521,7 +521,7 @@ public boolean onCreateOptionsMenu(Menu menu) { /**********************************************************************************************/ - /*View.OnClickListener mClickBluetoothButton = new View.OnClickListener() { + View.OnClickListener mClickBluetoothButton = new View.OnClickListener() { public void onClick(View v) { int state = SharedPreferencesHelper.getBluetoothStatus(DisplayActivity.this); @@ -545,7 +545,7 @@ public void onClick(View v) { } } - };*/ + }; @Override @@ -652,11 +652,11 @@ public void onClick(DialogInterface dialog, int which) { .setNegativeButton("No", null) .show(); return true; - /*case R.id.action_pair: + case R.id.action_pair: Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); startActivity(discoverableIntent); - return true;*/ + return true; case R.id.action_stats: Intent showStatsIntent = new Intent(this, ShowStatsActivity.class); @@ -685,13 +685,13 @@ public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { .putExtra(Constants.COMMAND_SERVICE_INTENT_KEY, new CommandBTS().getMessage())); } - /*if (key.equals(Constants.BLUETOOTH_STATE_KEY)) { + if (key.equals(Constants.BLUETOOTH_STATE_KEY)) { refreshBluetoothLayout(); - }*/ + } - /*if (key.equals(Constants.BLUETOOTH_SLAVES_CONNECTED_KEY)) { + if (key.equals(Constants.BLUETOOTH_SLAVES_CONNECTED_KEY)) { refreshBluetoothSlavesLayout(); - }*/ + } if (key.equals(Constants.DATA_COLLECTION_SESSION_OBJECT_KEY)) { if (SharedPreferencesHelper.getDeviceLocationValue(DisplayActivity.this) != Constants.DEVICE_LOCATION_HAND) diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java index ac94186..33cdda1 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java @@ -189,7 +189,7 @@ public void onCreate(Bundle savedInstanceState) { // updated to reflect the new value, per the Android Design // guidelines. bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_user_name))); - //bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_device_location))); + bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_device_location))); bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_HAR_API_detection_interval))); bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_log_files_maxSize))); bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_general_key_log_maxTime))); @@ -248,9 +248,9 @@ public void onCreate(Bundle savedInstanceState) { // guidelines. bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_server_address))); bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_server_syncMode))); - //bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_slave_timeout))); - //bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_master_keepalive))); - //bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_slave_keepalive))); + bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_slave_timeout))); + bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_master_keepalive))); + bindPreferenceSummaryToValue(findPreference(getResources().getString(R.string.pref_sync_key_slave_keepalive))); } } diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java index 8dc5bae..948ba25 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java @@ -537,35 +537,35 @@ public static int getSlavesConnected(Context context){ /** * Retrieves the int from SharedPreferences that controls the slaves timeout. */ - /*public static int getSlaveConnectionTimeout(Context context){ + public static int getSlaveConnectionTimeout(Context context){ return Integer.parseInt(getSharedPrefsInstance(context) .getString(context.getResources().getString(R.string.pref_sync_key_slave_timeout), context.getResources().getString(R.string.pref_sync_default_slave_timeout))); - }*/ + } - /*public static boolean isEnabledKeepalive(Context context){ + public static boolean isEnabledKeepalive(Context context){ return getSharedPrefsInstance(context) .getBoolean(context.getResources().getString(R.string.pref_sync_key_enabled_keepalive), true); - }*/ + } /** * Retrieves the int from SharedPreferences that controls the master keepalive interval */ - /*public static int getMasterKeepaliveInterval(Context context){ + public static int getMasterKeepaliveInterval(Context context){ return Integer.parseInt(getSharedPrefsInstance(context) .getString(context.getResources().getString(R.string.pref_sync_key_master_keepalive), context.getResources().getString(R.string.pref_sync_default_master_keepalive))); - }*/ + } /** * Retrieves the int from SharedPreferences that controls the slaves keepalive interval */ - /*public static int getSlaveKeepaliveInterval(Context context){ + public static int getSlaveKeepaliveInterval(Context context){ return Integer.parseInt(getSharedPrefsInstance(context) .getString(context.getResources().getString(R.string.pref_sync_key_slave_keepalive), context.getResources().getString(R.string.pref_sync_default_slave_keepalive))); - }*/ + } /** * Retrieves the String from SharedPreferences that contains the date of the last completed server upload. diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java index 34376a6..00fe947 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java @@ -18,7 +18,7 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt; @@ -92,11 +92,10 @@ public BluetoothConnectionHelper(Context context, Handler handler, boolean isSer } } - */ /** * Start the chat service. Specifically start AcceptThread to begin a * session in listening (server) mode. Called by the Activity onResume() - *//* + */ public synchronized void start(int index) { Log.d(TAG, "::start Starting bluetooth at index " + index); @@ -147,10 +146,9 @@ public synchronized void start(int index) { } - */ /** * Stop all threads - *//* + */ public synchronized void stop(int index) { Log.d(TAG, "::stop Stopping bluetooth slot "+index); @@ -185,12 +183,11 @@ public synchronized void stop(int index) { setState(STATE_NONE, index); } - */ /** * Set the current state of the chat connection * * @param state An integer defining the current connection state - *//* + */ private synchronized void setState(int state, int index) { Log.d(TAG, "setState("+index+") " + mStates[index] + " -> " + state); @@ -200,10 +197,9 @@ private synchronized void setState(int state, int index) { mHandler.obtainMessage(Constants.BLUETOOTH_MESSAGE_STATE_CHANGE, state, index).sendToTarget(); } - */ /** * Return the current connection state. - *//* + */ public synchronized int getState(int index) { return mStates[index]; @@ -216,14 +212,12 @@ public synchronized boolean isConnected(int index) { return mConnectedThreads[index].isConnected(); } - - */ /** * Start the ConnectedThread to begin managing a Bluetooth connection * * @param socket The BluetoothSocket on which the connection was made * @param device The BluetoothDevice that has been connected - *//* + */ public synchronized void connected(BluetoothSocket socket, BluetoothDevice device, int index) { Log.d(TAG, "::connected Starting ConnectedThread for bluetooth at index "+index); @@ -279,10 +273,9 @@ public synchronized void connected(BluetoothSocket socket, BluetoothDevice devic setState(STATE_CONNECTED, index); } - */ /** * Indicate that the connection attempt failed and notify the UI Activity. - *//* + */ private synchronized void connectionFailed(int index) { // Send a failure message back to the Activity @@ -293,10 +286,9 @@ private synchronized void connectionFailed(int index) { mHandler.sendMessage(msg); } - */ /** * Indicate that the connection was lost and notify the UI Activity. - *//* + */ private synchronized void connectionLost(int index) { // Send the name of the connected device back to the UI Activity @@ -307,12 +299,11 @@ private synchronized void connectionLost(int index) { mHandler.sendMessage(msg); } - */ /** * Start the ConnectThread to initiate a connection to a remote device. * * @param address The address to connect - *//* + */ public synchronized void connect(String address, int index) { Log.i(TAG, "::connect Trying to connect to address " + address + ". "); @@ -385,14 +376,12 @@ public synchronized void sendMessage(String message, int index){ } } - - */ /** * Write to the ConnectedThread in an unsynchronized manner * * @param out The bytes to write * @see ConnectedThread#write(byte[]) - *//* + */ private void write(byte[] out, int index) { Log.d(TAG,"Writing message to "+index); @@ -408,13 +397,11 @@ private void write(byte[] out, int index) { r.write(out); } - - */ /** * This thread runs while listening for incoming connections. It behaves * like a server-side client. It runs until a connection is accepted * (or until cancelled). - *//* + */ private class AcceptThread extends Thread { // The local server socket @@ -489,13 +476,11 @@ public void cancel() { } } - - */ /** * This thread runs while attempting to make an outgoing connection * with a device. It runs straight through; the connection either * succeeds or fails. - *//* + */ private class ConnectThread extends Thread { private final BluetoothSocket mmSocket; @@ -616,11 +601,11 @@ public void cancel() { } } - */ + /** * This thread runs during a connection with a remote device. * It handles all incoming and outgoing transmissions. - *//* + */ private class ConnectedThread extends Thread { private final BluetoothSocket mmSocket; @@ -694,12 +679,11 @@ public boolean isConnected() { return mmSocket.isConnected(); } - */ /** * Write to the connected OutStream. * * @param buffer The bytes to write - *//* + */ public void write(byte[] buffer) { try { @@ -741,4 +725,4 @@ public void run() { } } -}*/ +} diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java index 892a892..40ea146 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java @@ -18,7 +18,7 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt; @@ -89,4 +89,4 @@ public int getState(int location) { return 0; } } -*/ + diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java index 95dfc17..3a3fdf6 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java @@ -18,7 +18,7 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt; @@ -36,10 +36,10 @@ import java.util.List; import java.util.UUID; -*/ + /** * Created by fjordonez on 27/01/17. - *//* + */ public class BluetoothConnector { @@ -52,13 +52,12 @@ public class BluetoothConnector { private int candidate; - */ /** * @param device the device * @param secure if connection should be done via a secure socket * @param adapter the Android BT adapter * @param uuid a list of UUIDs. if null or empty, the Serial PP id is used - *//* + */ public BluetoothConnector(BluetoothDevice device, boolean secure, BluetoothAdapter adapter, UUID uuid) { @@ -244,10 +243,9 @@ public void close() throws IOException { public static class FallbackException extends Exception { - */ /** * - *//* + */ private static final long serialVersionUID = 1L; @@ -256,4 +254,4 @@ public FallbackException(Exception e) { } } -}*/ +} diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java index 4c2d6f0..274f033 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java @@ -18,7 +18,7 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt; @@ -45,32 +45,26 @@ import uk.ac.sussex.wear.android.datalogger.Constants; import uk.ac.sussex.wear.android.datalogger.R; -*/ /** * This Activity appears as a dialog. It lists any paired devices and * devices detected in the area after discovery. When a device is chosen * by the user, the MAC address of the device is sent back to the parent * Activity in the result Intent. - *//* - + */ public class BluetoothDeviceListActivity extends Activity { private static final String TAG = BluetoothDeviceListActivity.class.getSimpleName(); - */ /** * Member fields - *//* - + */ private BluetoothAdapter mBtAdapter; - */ /** * Newly discovered devices - *//* - + */ private ArrayAdapter mNewDevicesArrayAdapter; @Override @@ -150,10 +144,9 @@ protected void onDestroy() { this.unregisterReceiver(mReceiver); } - */ /** * Start device discover with the BluetoothAdapter - *//* + */ private void doDiscovery() { Log.d(TAG, "doDiscovery()"); @@ -174,11 +167,9 @@ private void doDiscovery() { mBtAdapter.startDiscovery(); } - */ /** * The on-click listener for all devices in the ListViews - *//* - + */ private AdapterView.OnItemClickListener mDeviceClickListener = new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView av, View v, int arg2, long arg3) { @@ -199,12 +190,10 @@ public void onItemClick(AdapterView av, View v, int arg2, long arg3) { } }; - */ /** * The BroadcastReceiver that listens for discovered devices and changes the title when * discovery is finished - *//* - + */ private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { @@ -231,4 +220,4 @@ public void onReceive(Context context, Intent intent) { }; } -*/ + diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java index 6d85ecc..59959c2 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java @@ -18,7 +18,7 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt; @@ -42,10 +42,9 @@ import uk.ac.sussex.wear.android.datalogger.Constants; import uk.ac.sussex.wear.android.datalogger.data.CommandBase; -*/ /** * Created by fjordonez on 27/01/17. - *//* + */ public class MultiBluetoothManager { @@ -55,12 +54,11 @@ public class MultiBluetoothManager { private static final String NAME = "MultiBluetoothManager"; // Member fields - */ -/* private final BluetoothAdapter mBluetoothAdapter; + private final BluetoothAdapter mBluetoothAdapter; private final Handler mHandler; private final Context mContext; private int[] mStates; - private boolean mIsServer;*//* + private boolean mIsServer; private BluetoothClient mBluetoothClient; @@ -97,14 +95,11 @@ public synchronized void start(int index) { } - - */ /** * Start the ConnectThread to initiate a connection to a remote device. * * @param address The address to connect - *//* - + */ public synchronized void connect(String address, int index) { Log.i(TAG, "::connect Trying to connect to address " + address + ". "); @@ -128,12 +123,9 @@ private void connectionSuccess(String address, int index) { } - - - */ /** * Indicate that the connection attempt failed and notify the UI Activity. - *//* + */ private void connectionFailed(int index) { // Send a failure message back to the Activity @@ -359,4 +351,4 @@ public void closeConnection(){ } } -*/ + diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java index ca5fd0f..bae7011 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java @@ -18,7 +18,7 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bluetooth.client; @@ -33,12 +33,9 @@ import java.io.OutputStreamWriter; import java.util.UUID; - - -*/ /** * Created by Rami MARTIN on 13/04/2014. - *//* + */ public class BluetoothClient implements Runnable { @@ -147,4 +144,3 @@ public void closeConnexion() { } } } -*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java index d1cad0f..6ace7c9 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java @@ -18,7 +18,7 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bluetooth.client; @@ -45,14 +45,12 @@ public class BluetoothConnector { private List uuidCandidates; private int candidate; - - */ /** * @param device the device * @param secure if connection should be done via a secure socket * @param adapter the Android BT adapter * @param uuid a list of UUIDs. if null or empty, the Serial PP id is used - *//* + */ public BluetoothConnector(BluetoothDevice device, boolean secure, BluetoothAdapter adapter, UUID uuid) { @@ -238,11 +236,9 @@ public void close() throws IOException { public static class FallbackException extends Exception { - */ -/** - * - *//* - + /** + * + */ private static final long serialVersionUID = 1L; public FallbackException(Exception e) { @@ -250,4 +246,4 @@ public FallbackException(Exception e) { } } -}*/ +} diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java index 88fad48..7bd72a1 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java @@ -18,7 +18,7 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bluetooth.server; @@ -34,10 +34,9 @@ import java.util.UUID; -*/ /** * Created by Rami MARTIN on 13/04/2014. - *//* + */ public class BluetoothServer implements Runnable { @@ -124,4 +123,3 @@ public void closeConnection(){ } } } -*/ diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java index 708c309..45f141c 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java @@ -18,15 +18,15 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; -*/ + /** * Created by Rami MARTIN on 13/04/2014. - *//* + */ public class BluetoothCommunicator { @@ -36,4 +36,4 @@ public BluetoothCommunicator(String messageReceive){ mMessageReceive = messageReceive; } } -*/ + diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java index 9ce4451..74ecf16 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java @@ -18,16 +18,15 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; -*/ + /** * Created by Rami MARTIN on 21/04/2014. - *//* - + */ public class BondedDevice { } -*/ + diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java index 8a0884d..dc8b5b9 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java @@ -18,16 +18,16 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; -*/ + /** * Created by Rami MARTIN on 13/04/2014. - *//* + */ public class ClientConnectionFail { } -*/ + diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java index d1c79fc..bd5a001 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java @@ -18,16 +18,14 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; -*/ /** * Created by Rami MARTIN on 13/04/2014. - *//* - + */ public class ClientConnectionSuccess { } -*/ + diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java index e27b48b..da4475e 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java @@ -18,16 +18,15 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; -*/ + /** * Created by Rami MARTIN on 13/04/2014. - *//* - + */ public class ServeurConnectionFail { public String mClientAdressConnectionFail; @@ -36,4 +35,4 @@ public ServeurConnectionFail(String clientAdressConnectionFail){ mClientAdressConnectionFail = clientAdressConnectionFail; } } -*/ + diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java index ae98667..e98b189 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java @@ -18,16 +18,14 @@ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *//* + */ package uk.ac.sussex.wear.android.datalogger.bt.multibluetooth.bus; -*/ /** * Created by Rami MARTIN on 13/04/2014. - *//* - + */ public class ServeurConnectionSuccess { public String mClientAdressConnected; @@ -36,4 +34,4 @@ public ServeurConnectionSuccess(String clientAdressConnected){ mClientAdressConnected = clientAdressConnected; } } -*/ + diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java index 4192aac..5778602 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java @@ -22,9 +22,12 @@ package uk.ac.sussex.wear.android.datalogger.collector; +import android.Manifest; import android.content.Context; +import android.content.pm.PackageManager; import android.os.Handler; import android.os.SystemClock; +import android.support.v4.app.ActivityCompat; import android.telephony.CellIdentityCdma; import android.telephony.CellIdentityGsm; import android.telephony.CellIdentityLte; @@ -70,8 +73,12 @@ public class CellsInfoDataCollector extends AbstractDataCollector { private Handler mTimerHandler = null; private Runnable mTimerRunnable = null; + private Context mcontext = null; - public CellsInfoDataCollector(Context context, String sessionName, String sensorName, int samplingPeriodUs, long nanosOffset, int logFileMaxSize){ + + public CellsInfoDataCollector(final Context context, String sessionName, String sensorName, int samplingPeriodUs, long nanosOffset, int logFileMaxSize) { + + mcontext = context; mSensorName = sensorName; String path = sessionName + File.separator + mSensorName + "_" + sessionName; @@ -99,6 +106,16 @@ public CellsInfoDataCollector(Context context, String sessionName, String sensor @Override public void run() { // Returns all observed cell information from all radios on the device including the primary and neighboring cells. + if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return; + } logCellInfo(mTelephonyManager.getAllCellInfo()); int millis = 1000 / mSamplingPeriodUs; mTimerHandler.postDelayed(this, millis); @@ -110,7 +127,7 @@ public void run() { } - private void logCellInfo(List cellInfo){ + private void logCellInfo(List cellInfo) { if (logger != null) { String message = getCellInfoString(cellInfo); logger.log(message); @@ -126,7 +143,7 @@ public void start() { Log.i(TAG, "start:: Starting listener for sensor: " + getSensorName()); logger.start(); - if (mCellInfoListener != null){ + if (mCellInfoListener != null) { mTelephonyManager.listen(mCellInfoListener, PhoneStateListener.LISTEN_CELL_INFO | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS | PhoneStateListener.LISTEN_CELL_LOCATION); @@ -137,7 +154,7 @@ public void start() { @Override public void stop() { - Log.i(TAG,"stop:: Stopping listener for sensor " + getSensorName()); + Log.i(TAG, "stop:: Stopping listener for sensor " + getSensorName()); if (mCellInfoListener != null) { mTelephonyManager.listen(mCellInfoListener, PhoneStateListener.LISTEN_NONE); @@ -175,11 +192,21 @@ public void onCellInfoChanged(List cellInfo) { } @Override - public void onCellLocationChanged(CellLocation location){ + public void onCellLocationChanged(CellLocation location) { super.onCellLocationChanged(location); // getAllCellInfo() returns all observed cell information from all radios on the device including the primary and neighboring cells // This is preferred over using getCellLocation although for older devices this may return null in which case getCellLocation should be called. + if (ActivityCompat.checkSelfPermission(mcontext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return; + } logCellInfo(mTelephonyManager.getAllCellInfo()); } @@ -189,6 +216,16 @@ public void onSignalStrengthsChanged(SignalStrength signalStrength) { // getAllCellInfo() returns all observed cell information from all radios on the device including the primary and neighboring cells // This is preferred over using getCellLocation although for older devices this may return null in which case getCellLocation should be called. + if (ActivityCompat.checkSelfPermission(mcontext, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // TODO: Consider calling + // ActivityCompat#requestPermissions + // here to request the missing permissions, and then overriding + // public void onRequestPermissionsResult(int requestCode, String[] permissions, + // int[] grantResults) + // to handle the case where the user grants the permission. See the documentation + // for ActivityCompat#requestPermissions for more details. + return; + } logCellInfo(mTelephonyManager.getAllCellInfo()); } } @@ -264,7 +301,7 @@ private String getCellInfoString(List cellsInfo){ // Get the CDMA RSSI value in dBm int cdmaDbm = cdmaStength.getCdmaDbm(); - // Get the CDMkA Ec/Io value in dB*10 + // Get the CDMA Ec/Io value in dB*10 int cdmaEcio = cdmaStength.getCdmaEcio(); // Get cdma as level 0..4 diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java index 79b76ec..36e4398 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java @@ -36,7 +36,6 @@ import java.util.Date; import java.util.List; -import uk.ac.sussex.wear.android.datalogger.Constants; import uk.ac.sussex.wear.android.datalogger.log.CustomLogger; // child class for collecting wifi data @@ -76,21 +75,17 @@ public WiFiDataCollector(Context context, String sessionName, String sensorName, // Offset to match timestamps both in master and slaves devices mNanosOffset = nanosOffset; - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test"); if (mSamplingPeriodUs > 0) { - /*Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test");*/ mTimerHandler = new Handler(); mTimerRunnable = new Runnable() { @Override public void run() { - /*Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test");*/ logWifiInfo(getScanList()); int millis = 1000 / mSamplingPeriodUs; mTimerHandler.postDelayed(this, millis); } }; } else { - /*Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test2");*/ mWiFiInfoReceiver = new WiFiInfoReceiver(); } @@ -99,11 +94,10 @@ public void run() { private List getScanList(){ synchronized (this) { return mWifiManager.getScanResults(); - } + } } private void logWifiInfo(List scanList){ - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test_log"); // System local time in millis long currentMillis = (new Date()).getTime(); @@ -153,7 +147,6 @@ public void onReceive(Context context, Intent intent) { @Override public void start(){ - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test_start"); Log.i(TAG, "start:: Starting listener for sensor: " + getSensorName()); if (mWiFiInfoReceiver != null){ @@ -167,7 +160,6 @@ public void start(){ @Override public void stop(){ - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test_stop"); Log.i(TAG,"stop:: Stopping listener for sensor " + getSensorName()); if (mWiFiInfoReceiver != null) { @@ -181,7 +173,6 @@ public void stop(){ @Override public void haltAndRestartLogging(){ - Log.e(TAG, "Error creating " + Constants.SENSOR_NAME_WIFI + " test_halt"); logger.stop(); logger.resetByteCounter(); logger.start(); diff --git a/app/src/main/res/layout/activity_bluetooth_device_list.xml b/app/src/main/res/layout/activity_bluetooth_device_list.xml index c311ab9..3c1e004 100755 --- a/app/src/main/res/layout/activity_bluetooth_device_list.xml +++ b/app/src/main/res/layout/activity_bluetooth_device_list.xml @@ -26,7 +26,7 @@ android:orientation="vertical" > - + /> diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index df34180..8304ca4 100755 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -40,7 +40,7 @@ android:paddingLeft="16dp" android:paddingRight="16dp"> - + - + android:layout_height="wrap_content" + android:layout_below="@id/bluetooth_ui"> /> + android:background="@android:color/darker_gray" /> + /> diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index d173c58..0668ae0 100755 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -36,11 +36,11 @@ android:orderInCategory="200" android:title="@string/menu_action_stats" app:showAsAction="never" /> - + app:showAsAction="never" /> Remote server Server address - "http://141.100.70.109/upload.php" + "http://0.0.0.0/upload.php" PREF_GENERAL_SERVER_ADDRS_KEY Files sync PREF_GENERAL_SERVER_SYNCM_KEY diff --git a/app/src/main/res/xml/pref_data_sync.xml b/app/src/main/res/xml/pref_data_sync.xml index 303efde..38c7658 100755 --- a/app/src/main/res/xml/pref_data_sync.xml +++ b/app/src/main/res/xml/pref_data_sync.xml @@ -45,7 +45,7 @@ - + diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml index 61d1a5a..7a459fd 100755 --- a/app/src/main/res/xml/pref_general.xml +++ b/app/src/main/res/xml/pref_general.xml @@ -32,14 +32,14 @@ android:singleLine="true" android:title="@string/pref_general_title_user_name" /> - + android:title="@string/pref_general_title_device_location" /> Date: Thu, 9 May 2019 19:14:49 +0200 Subject: [PATCH 12/18] Bluetooth synchronisation including master slave functionality is now working. BT Sync and new BT Beacon detection are successfully working in parallel. --- app/src/main/AndroidManifest.xml | 4 ++-- .../android/datalogger/collector/BluetoothDataCollector.java | 2 +- .../wear/android/datalogger/collector/DataCollectors.java | 2 -- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 96c0fb2..5dbb85f 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -62,11 +62,11 @@ android:value=".DisplayActivity" /> - + android:theme="@android:style/Theme.Dialog"/> Date: Thu, 9 May 2019 19:23:01 +0200 Subject: [PATCH 13/18] Bluetooth synchronisation including master slave functionality is now working. BT Sync and new BT Beacon detection are successfully working in parallel. --- app/src/main/AndroidManifest.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5dbb85f..2f26e5f 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,7 +21,6 @@ - Date: Thu, 9 May 2019 19:24:13 +0200 Subject: [PATCH 14/18] Bluetooth synchronisation including master slave functionality is now working. BT Sync and new BT Beacon detection are successfully working in parallel. --- app/src/main/AndroidManifest.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2f26e5f..5bf9215 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -104,5 +104,4 @@ android:value="@integer/google_play_services_version" /> - From 24b2c1bafd3053a6dcbf7eb671779777bdc8f3b4 Mon Sep 17 00:00:00 2001 From: wurmc <38125255+wurmc@users.noreply.github.com> Date: Fri, 10 May 2019 11:09:22 +0200 Subject: [PATCH 15/18] Update README.md Added User guide to README --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index 0295112..454ca25 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,27 @@ The remote upload functionality requires to set up the remote address for the up Due to the changes to the permissions systems in the latest versions of Android, please check and authorize the access to Microphone, Storage, Telephone and Location in the system settings before to use the application. +## User guide +### Getting started +- Install the app on a smartphone via apk +- Make sure ALL permissions are enabled in the system settings for this app +- Enable Bluetooth, Wifi, Mobile Data and Location sensors of the phone + +### Configuration +- Start the app +- Open the settings by entering the setting's password +- Set the user name, device location (master or slave), maximum log file size and logging time intervals in "General" +- Set the server address for the file upload in "Synchronisation" +- Make sure all sensors are enabled +- Set the sampling rates for the sensors if needed + +### Collecting data +- Connect all slaves to the master if needed +- Start the data collection by pressing the "OFF" button +- Data gets now collected until stopping it by pressing "ON" +- Logs can be labeled for more meta information +- To upload all log files to the server make sure the phone is connected to a Wifi network and press "Upload" + ## LICENSE This application has been developed for research purpose and release under MIT License. The usage of this application in research and publications must be acknowledged by citing the following publication: From 7c3fec7d26ba8db0319b61a3c6ca1c0b75b2d429 Mon Sep 17 00:00:00 2001 From: wurmc Date: Tue, 21 May 2019 16:43:09 +0200 Subject: [PATCH 16/18] some git sync commits --- .idea/codeStyles/Project.xml | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 .idea/codeStyles/Project.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index 30aa626..0000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file From d520b692ce28a58ce7ec9c52dc4d3895b7b31034 Mon Sep 17 00:00:00 2001 From: wurmc Date: Tue, 21 May 2019 16:44:41 +0200 Subject: [PATCH 17/18] some git sync commits --- .idea/encodings.xml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .idea/encodings.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file From bdd09dbd1d01386b3f8d7d49d6e0360ee7709045 Mon Sep 17 00:00:00 2001 From: wurmc Date: Fri, 7 Jun 2019 16:12:14 +0200 Subject: [PATCH 18/18] adapted copyright --- .../ac/sussex/wear/android/datalogger/AboutActivity.java | 2 +- .../uk/ac/sussex/wear/android/datalogger/Constants.java | 2 +- .../ac/sussex/wear/android/datalogger/DisplayActivity.java | 2 +- .../sussex/wear/android/datalogger/SettingsActivity.java | 2 +- .../wear/android/datalogger/SharedPreferencesHelper.java | 2 +- .../android/datalogger/bt/BluetoothConnectionHelper.java | 2 +- .../android/datalogger/bt/BluetoothConnectionHelper2.java | 2 +- .../wear/android/datalogger/bt/BluetoothConnector.java | 2 +- .../android/datalogger/bt/BluetoothDeviceListActivity.java | 2 +- .../wear/android/datalogger/bt/MultiBluetoothManager.java | 2 +- .../multibluetooth/bluetooth/client/BluetoothClient.java | 2 +- .../bluetooth/client/BluetoothConnector.java | 2 +- .../multibluetooth/bluetooth/server/BluetoothServer.java | 2 +- .../bt/multibluetooth/bus/BluetoothCommunicator.java | 2 +- .../datalogger/bt/multibluetooth/bus/BondedDevice.java | 2 +- .../bt/multibluetooth/bus/ClientConnectionFail.java | 2 +- .../bt/multibluetooth/bus/ClientConnectionSuccess.java | 2 +- .../bt/multibluetooth/bus/ServeurConnectionFail.java | 2 +- .../bt/multibluetooth/bus/ServeurConnectionSuccess.java | 2 +- .../datalogger/collector/AbstractDataCollector.java | 2 +- .../datalogger/collector/BTHelper/DeviceAdapter.java | 7 ++++++- .../datalogger/collector/BTHelper/ScannedDevice.java | 7 ++++++- .../datalogger/collector/BluetoothDataCollector.java | 7 ++++++- .../datalogger/collector/CellsInfoDataCollector.java | 2 +- .../wear/android/datalogger/collector/DataCollectors.java | 2 +- .../android/datalogger/collector/DummyDataCollector.java | 2 +- .../android/datalogger/collector/WiFiDataCollector.java | 2 +- .../wear/android/datalogger/upload/FileUploader.java | 2 +- app/src/main/res/layout/content_main.xml | 2 +- app/src/main/res/xml/pref_data_sync.xml | 2 +- app/src/main/res/xml/pref_general.xml | 2 +- app/src/main/res/xml/pref_sensors.xml | 2 +- 32 files changed, 47 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/AboutActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/AboutActivity.java index 3f8bee8..8549606 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/AboutActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/AboutActivity.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/Constants.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/Constants.java index 2b17735..e487891 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/Constants.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/Constants.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java index 84c9cf5..a031ae8 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/DisplayActivity.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java index 33cdda1..15afebd 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SettingsActivity.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java index 948ba25..26f75b8 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/SharedPreferencesHelper.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java index 00fe947..5da909c 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java index 40ea146..7e009b2 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnectionHelper2.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java index 3a3fdf6..5df9a5e 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothConnector.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java index 274f033..0e35268 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/BluetoothDeviceListActivity.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java index 59959c2..a723bbe 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/MultiBluetoothManager.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java index bae7011..604782d 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothClient.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java index 6ace7c9..950de0a 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/client/BluetoothConnector.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java index 7bd72a1..5e2c6ba 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bluetooth/server/BluetoothServer.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java index 45f141c..861cd3b 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BluetoothCommunicator.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java index 74ecf16..69d9ac3 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/BondedDevice.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java index dc8b5b9..a62af07 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionFail.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java index bd5a001..abc2501 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ClientConnectionSuccess.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java index da4475e..da9a34b 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionFail.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java index e98b189..31cc85c 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/bt/multibluetooth/bus/ServeurConnectionSuccess.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AbstractDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AbstractDataCollector.java index 71f68f3..15a3fea 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AbstractDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/AbstractDataCollector.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java index 1dcce75..f239732 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/DeviceAdapter.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2019. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -19,9 +19,14 @@ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +// (c) 2016 youten, http://greety.sakura.ne.jp/redo/ package uk.ac.sussex.wear.android.datalogger.collector.BTHelper; +/* +* created by wurmc +* */ + import android.bluetooth.BluetoothDevice; import java.util.List; diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java index fef415a..a09876d 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BTHelper/ScannedDevice.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2019. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -19,9 +19,14 @@ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +// (c) 2016 youten, http://greety.sakura.ne.jp/redo/ package uk.ac.sussex.wear.android.datalogger.collector.BTHelper; +/* +* created by wurmc +* */ + import android.bluetooth.BluetoothDevice; public class ScannedDevice { diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java index 72deea1..e32ae7d 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/BluetoothDataCollector.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2019. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -19,6 +19,7 @@ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +// (c) 2016 youten, http://greety.sakura.ne.jp/redo/ package uk.ac.sussex.wear.android.datalogger.collector; @@ -46,6 +47,10 @@ // child class for collecting Bluetooth data // functionality from iBeaconDetector https://github.com/youten/iBeaconDetector +/* +* Created by wurmc +* */ + public class BluetoothDataCollector extends AbstractDataCollector implements BluetoothAdapter.LeScanCallback{ private static final String TAG = BluetoothDataCollector.class.getSimpleName(); diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java index 5778602..3a385bc 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/CellsInfoDataCollector.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java index fdc97c4..c0568df 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DataCollectors.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java index 6572f22..fc945ff 100644 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/DummyDataCollector.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2019. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java index 36e4398..0d888f4 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/collector/WiFiDataCollector.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/upload/FileUploader.java b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/upload/FileUploader.java index eb7935a..a18c2a4 100755 --- a/app/src/main/java/uk/ac/sussex/wear/android/datalogger/upload/FileUploader.java +++ b/app/src/main/java/uk/ac/sussex/wear/android/datalogger/upload/FileUploader.java @@ -1,6 +1,6 @@ /* * Copyright (c) 2017. Mathias Ciliberto, Francisco Javier Ordoñez Morales, - * Hristijan Gjoreski, Daniel Roggen + * Hristijan Gjoreski, Daniel Roggen, Clara Wurm * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index 8304ca4..d270bf2 100755 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -1,6 +1,6 @@