Skip to content

Commit 5033c86

Browse files
authored
Merge pull request #1778 from fossasia/development
chore: merge dev to master
2 parents 17e383f + c7cee95 commit 5033c86

38 files changed

+2488
-544
lines changed

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,14 @@ Please join us on the following channels:
7575
<table>
7676
<tr>
7777
<td><img src="/docs/images/instrument_accelerometer_view.png" width = "500"></td>
78+
<td><img src="/docs/images/instrument_gyro_view.png" width = "500"></td>
7879
<td><img src="/docs/images/instrument_compass_view.png" width = "500"></td>
80+
<td><img src="/docs/images/instrument_thermo_view.png" width = "500"></td>
81+
</tr>
82+
</table>
83+
<table>
84+
<tr>
85+
<td><img src="/docs/images/instrument_robotic_arm_view.png" width = "500"></td>
7986
</tr>
8087
</table>
8188

@@ -100,9 +107,11 @@ Please join us on the following channels:
100107
| AcceleroMeter | Measures the acceleration of the device ||
101108
| Gyro Meter | Measures the rate of rotation ||
102109
| Compass | Measures the absolute rotation relative to earth magnetic poles ||
110+
| Thermometer | Measures the ambient temperature | |
111+
| Robotic Arm Controller | Allows to control 4 servo motors of the robotic arm | |
103112
## How to set up the Android app in your development environment
104113

105-
Minimum Android version 4.1 (API Level 16)
114+
Minimum Android version 5.0 (API Level 21)
106115

107116
Maximum Android version 8.1 (API Level 27)
108117

app/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ android {
88
applicationId "io.pslab"
99
minSdkVersion rootProject.ext.minSdkVersion
1010
targetSdkVersion rootProject.ext.targetSdkVersion
11-
versionCode 14
12-
versionName "2.0.13"
11+
versionCode 15
12+
versionName "2.0.14"
1313
multiDexEnabled true
1414
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1515
}
@@ -71,6 +71,7 @@ dependencies {
7171

7272
implementation "com.jakewharton:butterknife:$rootProject.butterKnifeVersion"
7373
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
74+
implementation 'com.android.support:support-v4:28.0.0'
7475
annotationProcessor "com.jakewharton:butterknife-compiler:$rootProject.butterKnifeVersion"
7576

7677
// Map libraries

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
android:roundIcon="@drawable/app_icon_round"
2424
android:supportsRtl="true"
2525
android:theme="@style/AppTheme">
26+
<activity android:name=".activity.ThermometerActivity"
27+
android:screenOrientation="portrait"
28+
android:theme="@style/AppTheme"></activity>
2629
<activity android:name=".activity.RoboticArmActivity"
2730
android:screenOrientation="landscape"/>
2831
<activity

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

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import android.support.v7.widget.LinearLayoutManager;
1515
import android.support.v7.widget.RecyclerView;
1616
import android.support.v7.widget.Toolbar;
17+
import android.util.Log;
1718
import android.view.Menu;
1819
import android.view.MenuItem;
1920
import android.view.View;
@@ -40,6 +41,8 @@
4041
import io.pslab.models.GyroData;
4142
import io.pslab.models.LuxData;
4243
import io.pslab.models.SensorDataBlock;
44+
import io.pslab.models.ServoData;
45+
import io.pslab.models.ThermometerData;
4346
import io.pslab.others.CSVLogger;
4447
import io.pslab.others.LocalDataLog;
4548
import io.realm.Realm;
@@ -101,6 +104,11 @@ protected void onCreate(Bundle savedInstanceState) {
101104
case "Compass":
102105
categoryData = LocalDataLog.with().getTypeOfSensorBlocks(getString(R.string.compass));
103106
break;
107+
case "Thermometer":
108+
categoryData = LocalDataLog.with().getTypeOfSensorBlocks(getString(R.string.thermometer));
109+
break;
110+
case "Robotic Arm":
111+
categoryData = LocalDataLog.with().getTypeOfSensorBlocks(getString(R.string.robotic_arm));
104112
default:
105113
categoryData = LocalDataLog.with().getAllSensorBlocks();
106114
getSupportActionBar().setTitle(getString(R.string.logged_data));
@@ -412,6 +420,75 @@ private void getFileData(File file) {
412420
} catch (IOException e) {
413421
e.printStackTrace();
414422
}
423+
} else if (selectedDevice != null && selectedDevice.equals(getResources().getString(R.string.thermometer))) {
424+
try {
425+
FileInputStream is = new FileInputStream(file);
426+
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
427+
String line = reader.readLine();
428+
int i = 0;
429+
long block = 0, time = 0;
430+
while (line != null) {
431+
if (i != 0) {
432+
String[] data = line.split(",");
433+
try {
434+
time += 1000;
435+
ThermometerData thermometerData = new ThermometerData(time, block, Float.valueOf(data[2]), Double.valueOf(data[5]), Double.valueOf(data[6]));
436+
realm.beginTransaction();
437+
realm.copyToRealm(thermometerData);
438+
realm.commitTransaction();
439+
} catch (Exception e) {
440+
Toast.makeText(this, getResources().getString(R.string.incorrect_import_format), Toast.LENGTH_SHORT).show();
441+
}
442+
} else {
443+
block = System.currentTimeMillis();
444+
time = block;
445+
realm.beginTransaction();
446+
realm.copyToRealm(new SensorDataBlock(block, getResources().getString(R.string.thermometer)));
447+
realm.commitTransaction();
448+
}
449+
i++;
450+
line = reader.readLine();
451+
}
452+
fillData();
453+
DataLoggerActivity.this.toolbar.getMenu().findItem(R.id.delete_all).setVisible(true);
454+
} catch (IOException e) {
455+
e.printStackTrace();
456+
}
457+
} else if (selectedDevice != null && selectedDevice.equals(getResources().getString(R.string.robotic_arm))) {
458+
try {
459+
FileInputStream is = new FileInputStream(file);
460+
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
461+
String line = reader.readLine();
462+
int i = 0;
463+
long block = 0, time = 0;
464+
while (line != null) {
465+
if (i != 0) {
466+
String[] data = line.split(",");
467+
try {
468+
time += 1000;
469+
ServoData servoData = new ServoData(time, block, data[2], data[3], data[4], data[5], Float.valueOf(data[6]), Float.valueOf(data[7]));
470+
realm.beginTransaction();
471+
realm.copyToRealm(servoData);
472+
realm.commitTransaction();
473+
} catch (Exception e) {
474+
Log.d("exception", i + " " + e.getMessage());
475+
Toast.makeText(this, getResources().getString(R.string.incorrect_import_format), Toast.LENGTH_SHORT).show();
476+
}
477+
} else {
478+
block = System.currentTimeMillis();
479+
time = block;
480+
realm.beginTransaction();
481+
realm.copyToRealm(new SensorDataBlock(block, getResources().getString(R.string.robotic_arm)));
482+
realm.commitTransaction();
483+
}
484+
i++;
485+
line = reader.readLine();
486+
}
487+
fillData();
488+
DataLoggerActivity.this.toolbar.getMenu().findItem(R.id.delete_all).setVisible(true);
489+
} catch (IOException e) {
490+
e.printStackTrace();
491+
}
415492
}
416493
}
417494
}

0 commit comments

Comments
 (0)