Skip to content

Commit 2bbecd6

Browse files
authored
Merge pull request #1922 from neel1998/gas_sensor_logging
feat: logging added to mq135
2 parents 45b561b + 821146a commit 2bbecd6

File tree

9 files changed

+425
-12
lines changed

9 files changed

+425
-12
lines changed

app/src/main/java/io/pslab/activity/DataLoggerActivity.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import io.pslab.models.AccelerometerData;
3535
import io.pslab.models.BaroData;
3636
import io.pslab.models.CompassData;
37+
import io.pslab.models.GasSensorData;
3738
import io.pslab.models.GyroData;
3839
import io.pslab.models.LogicAnalyzerData;
3940
import io.pslab.models.LuxData;
@@ -124,6 +125,9 @@ protected void onCreate(Bundle savedInstanceState) {
124125
case "Logic Analyzer":
125126
categoryData = LocalDataLog.with().getTypeOfSensorBlocks(getResources().getString(R.string.logical_analyzer));
126127
break;
128+
case "Gas Sensor":
129+
categoryData = LocalDataLog.with().getTypeOfSensorBlocks(getString(R.string.gas_sensor));
130+
break;
127131
default:
128132
categoryData = LocalDataLog.with().getAllSensorBlocks();
129133
getSupportActionBar().setTitle(getString(R.string.logged_data));
@@ -286,6 +290,9 @@ private RealmObject getObject(String objectType, String[] data, long time, long
286290
case "Logic Analyzer":
287291
returnObject = new LogicAnalyzerData(time, block, data[2], Integer.valueOf(data[3]), data[4], data[5], Float.valueOf(data[6]), Float.valueOf(data[7]));
288292
break;
293+
case "Gas Sensor":
294+
returnObject = new GasSensorData(time, block, Float.valueOf(data[2]), Double.valueOf(data[3]), Double.valueOf(data[4]));
295+
break;
289296
default:
290297
returnObject = null;
291298
break;

app/src/main/java/io/pslab/activity/GasSensorActivity.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@
55

66
import io.pslab.R;
77
import io.pslab.fragment.GasSensorDataFragment;
8+
import io.pslab.models.GasSensorData;
89
import io.pslab.models.PSLabSensor;
910
import io.pslab.models.SensorDataBlock;
11+
import io.pslab.others.LocalDataLog;
1012
import io.realm.RealmObject;
13+
import io.realm.RealmResults;
1114

1215
public class GasSensorActivity extends PSLabSensor {
1316

1417
private static final String PREF_NAME = "customDialogPreference";
18+
public RealmResults<GasSensorData> recordedGasSensorData;
1519

1620
@Override
1721
public int getMenu() {
@@ -61,17 +65,21 @@ public int getGuideExtraContent() {
6165

6266
@Override
6367
public void recordSensorDataBlockID(SensorDataBlock block) {
64-
68+
realm.beginTransaction();
69+
realm.copyToRealm(block);
70+
realm.commitTransaction();
6571
}
6672

6773
@Override
6874
public void recordSensorData(RealmObject sensorData) {
69-
75+
realm.beginTransaction();
76+
realm.copyToRealm((GasSensorData) sensorData);
77+
realm.commitTransaction();
7078
}
7179

7280
@Override
7381
public void stopRecordSensorData() {
74-
82+
LocalDataLog.with().refresh();
7583
}
7684

7785
@Override
@@ -81,6 +89,12 @@ public Fragment getSensorFragment() {
8189

8290
@Override
8391
public void getDataFromDataLogger() {
84-
92+
if (getIntent().getExtras() != null && getIntent().getExtras().getBoolean(KEY_LOG)) {
93+
viewingData = true;
94+
recordedGasSensorData = LocalDataLog.with()
95+
.getBlockOfGasSensorRecords(getIntent().getExtras().getLong(DATA_BLOCK));
96+
String title = titleFormat.format(recordedGasSensorData.get(0).getTime());
97+
getSupportActionBar().setTitle(title);
98+
}
8599
}
86100
}

app/src/main/java/io/pslab/adapters/SensorLoggerListAdapter.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import io.pslab.activity.AccelerometerActivity;
2727
import io.pslab.activity.BarometerActivity;
2828
import io.pslab.activity.CompassActivity;
29+
import io.pslab.activity.GasSensorActivity;
2930
import io.pslab.activity.GyroscopeActivity;
3031
import io.pslab.activity.LogicalAnalyzerActivity;
3132
import io.pslab.activity.LuxMeterActivity;
@@ -38,6 +39,7 @@
3839
import io.pslab.activity.WaveGeneratorActivity;
3940
import io.pslab.models.AccelerometerData;
4041
import io.pslab.models.BaroData;
42+
import io.pslab.models.GasSensorData;
4143
import io.pslab.models.GyroData;
4244
import io.pslab.models.CompassData;
4345
import io.pslab.models.LogicAnalyzerData;
@@ -131,6 +133,10 @@ public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
131133
holder.sensor.setText(R.string.logical_analyzer);
132134
holder.tileIcon.setImageDrawable(context.getResources().getDrawable(R.drawable.tile_icon_logic_analyzer));
133135
break;
136+
case PSLabSensor.GAS_SENSOR:
137+
holder.sensor.setText(R.string.gas_sensor);
138+
holder.tileIcon.setImageDrawable(context.getResources().getDrawable(R.drawable.robotic_arm));
139+
break;
134140
default:
135141
break;
136142
}
@@ -216,6 +222,11 @@ private void handleCardViewClick(SensorDataBlock block) {
216222
laIntent.putExtra(KEY_LOG, true);
217223
laIntent.putExtra(DATA_BLOCK, block.getBlock());
218224
context.startActivity(laIntent);
225+
} else if (block.getSensorType().equalsIgnoreCase(context.getResources().getString(R.string.gas_sensor))) {
226+
Intent gasSensorIntent = new Intent(context, GasSensorActivity.class);
227+
gasSensorIntent.putExtra(KEY_LOG, true);
228+
gasSensorIntent.putExtra(DATA_BLOCK, block.getBlock());
229+
context.startActivity(gasSensorIntent);
219230
}
220231
}
221232

@@ -257,6 +268,8 @@ public void onClick(DialogInterface dialog, int whichButton) {
257268
LocalDataLog.with().clearBlockOfMultimeterRecords(block.getBlock());
258269
} else if (block.getSensorType().equalsIgnoreCase(PSLabSensor.LOGIC_ANALYZER)) {
259270
LocalDataLog.with().clearBlockOfLARecords(block.getBlock());
271+
} else if (block.getSensorType().equalsIgnoreCase(PSLabSensor.GAS_SENSOR)) {
272+
LocalDataLog.with().clearBlockOfGasSensorRecords(block.getBlock());
260273
}
261274
LocalDataLog.with().clearSensorBlock(block.getBlock());
262275
dialog.dismiss();
@@ -493,6 +506,22 @@ private void populateMapData(SensorDataBlock block) {
493506
}
494507
}
495508
setMapDataToIntent(array);
509+
} else if (block.getSensorType().equalsIgnoreCase(PSLabSensor.GAS_SENSOR)) {
510+
RealmResults<GasSensorData> data = LocalDataLog.with().getBlockOfGasSensorRecords(block.getBlock());
511+
JSONArray array = new JSONArray();
512+
for (GasSensorData d : data) {
513+
try {
514+
JSONObject i = new JSONObject();
515+
i.put("date", CSVLogger.FILE_NAME_FORMAT.format(d.getTime()));
516+
i.put("ppmValue", d.getPpmValue());
517+
i.put("lon", d.getLon());
518+
i.put("lat", d.getLat());
519+
if (d.getLat() != 0.0 && d.getLon() != 0.0) array.put(i);
520+
} catch (JSONException e) {
521+
e.printStackTrace();
522+
}
523+
}
524+
setMapDataToIntent(array);
496525
}
497526
}
498527

0 commit comments

Comments
 (0)