Skip to content

Commit e5e3506

Browse files
committed
v3.4.6 commit
1 parent 03dae0d commit e5e3506

File tree

9 files changed

+66
-40
lines changed

9 files changed

+66
-40
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ buildscript {
66
google()
77
}
88
dependencies {
9-
classpath 'com.android.tools.build:gradle:3.0.1'
9+
classpath 'com.android.tools.build:gradle:3.1.1'
1010

1111
// NOTE: Do not place your application dependencies here; they belong
1212
// in the individual module build.gradle files
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Fri Mar 03 11:31:01 PST 2017
1+
#Wed Apr 18 15:11:05 PDT 2018
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

library/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ android {
3131
defaultConfig {
3232
minSdkVersion 18
3333
targetSdkVersion 27
34-
versionCode 55
35-
versionName "3.4.0"
34+
versionCode 56
35+
versionName "3.4.6"
3636
}
3737
buildTypes {
3838
release {

library/src/main/java/com/mbientlab/metawear/android/BtleService.java

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import java.io.ByteArrayInputStream;
5050
import java.io.File;
5151
import java.io.FileOutputStream;
52+
import java.io.IOException;
5253
import java.io.InputStream;
5354
import java.net.HttpURLConnection;
5455
import java.net.URL;
@@ -223,8 +224,8 @@ void disconnected(int status) {
223224
if (disconnectTaskSrc == null || disconnectTaskSrc.getTask().isCompleted()) {
224225
dcHandler.onUnexpectedDisconnect(status);
225226
} else {
226-
disconnectTaskSrc.setResult(null);
227227
dcHandler.onDisconnect();
228+
disconnectTaskSrc.setResult(null);
228229
}
229230
}
230231
}
@@ -283,22 +284,26 @@ public Task<File> downloadFileAsync(final String srcUrl, final String dest) {
283284
urlConn.set((HttpURLConnection) fileUrl.openConnection());
284285
InputStream ins = urlConn.get().getInputStream();
285286

286-
File firmwareDir = new File(getFilesDir(), DOWNLOAD_DIR_NAME);
287-
if (!firmwareDir.exists()) {
288-
firmwareDir.mkdir();
289-
}
287+
int code = urlConn.get().getResponseCode();
288+
if (code == HttpURLConnection.HTTP_OK) {
289+
File firmwareDir = new File(getFilesDir(), DOWNLOAD_DIR_NAME);
290+
if (!firmwareDir.exists()) {
291+
firmwareDir.mkdir();
292+
}
290293

291-
File location = new File(firmwareDir, dest);
292-
FileOutputStream fos = new FileOutputStream(location);
294+
File location = new File(firmwareDir, dest);
295+
FileOutputStream fos = new FileOutputStream(location);
293296

294-
byte data[] = new byte[1024];
295-
int count;
296-
while ((count = ins.read(data)) != -1) {
297-
fos.write(data, 0, count);
298-
}
299-
fos.close();
297+
byte data[] = new byte[1024];
298+
int count;
299+
while ((count = ins.read(data)) != -1) {
300+
fos.write(data, 0, count);
301+
}
302+
fos.close();
300303

301-
return location;
304+
return location;
305+
}
306+
throw new IOException(String.format("Could not retrieve resource (response = %d, msg = %s)", code, urlConn.get().getResponseMessage()));
302307
}).continueWithTask(ignored -> {
303308
if (urlConn.get() != null) {
304309
urlConn.get().disconnect();

library/src/main/java/com/mbientlab/metawear/impl/AccelerometerBoschImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ static String createUri(DataTypeBase dataType) {
6464
return "bosch-motion";
6565
case TAP_INTERRUPT:
6666
return "bosch-tap";
67+
case PACKED_ACC_DATA:
68+
return "acceleration";
6769
default:
6870
return null;
6971
}

library/src/main/java/com/mbientlab/metawear/impl/AccelerometerMma8452qImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ static String createUri(DataTypeBase dataType) {
6363
return "mma8452q-tap";
6464
case MOVEMENT_VALUE:
6565
return "mma8452q-movement";
66+
case PACKED_ACC_DATA:
67+
return "acceleration";
6668
default:
6769
return null;
6870
}

library/src/main/java/com/mbientlab/metawear/impl/GyroBmi160Impl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ static String createUri(DataTypeBase dataType) {
4949
switch (dataType.eventConfig[1]) {
5050
case DATA:
5151
return dataType.attributes.length() > 2 ? "angular-velocity" : String.format(Locale.US, "angular-velocity[%d]", (dataType.attributes.offset >> 1));
52+
case PACKED_DATA:
53+
return "angular-velocity";
5254
default:
5355
return null;
5456
}

library/src/main/java/com/mbientlab/metawear/impl/JseMetaWearBoard.java

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public class JseMetaWearBoard implements MetaWearBoard {
9999

100100
private static final long RELEASE_INFO_TTL = 1800000L;
101101
private static final byte READ_INFO_REGISTER= Util.setRead((byte) 0x0);
102-
private final static String FIRMWARE_BUILD= "vanilla", LOG_TAG = "metawear";
102+
private final static String FIRMWARE_BUILD= "vanilla", LOG_TAG = "metawear", RELEASES_URL = "https://mbientlab.com/releases";
103103
private final static String BOARD_INFO= "com.mbientlab.metawear.impl.JseMetaWearBoard.BOARD_INFO",
104104
BOARD_STATE = "com.mbientlab.metawear.impl.JseMetaWearBoard.BOARD_STATE";
105105

@@ -375,6 +375,14 @@ public void onUnexpectedDisconnect(int status) {
375375
});
376376
}
377377

378+
public String getFirmware() {
379+
return persist.boardInfo.firmware.toString();
380+
}
381+
382+
public String getModelNumber() {
383+
return persist.boardInfo.modelNumber;
384+
}
385+
378386
@Override
379387
public Model getModel() {
380388
if (persist.boardInfo.modelNumber == null) {
@@ -503,7 +511,8 @@ private String buildFirmwareFileName(Pair<Version, String> latest) {
503511
}
504512

505513
private Task<File> downloadFirmware(Pair<Version, String> latest) {
506-
String dlUrl = String.format(Locale.US, "https://releases.mbientlab.com/metawear/%s/%s/%s/%s/%s",
514+
String dlUrl = String.format(Locale.US, "%s/metawear/%s/%s/%s/%s/%s",
515+
RELEASES_URL,
507516
persist.boardInfo.hardwareRevision,
508517
persist.boardInfo.modelNumber,
509518
FIRMWARE_BUILD, latest.first.toString(), latest.second
@@ -518,7 +527,7 @@ public Task<File> downloadFirmwareAsync(final String version) {
518527
if (version == null) {
519528
File info1Json = io.findDownloadedFile("info1.json");
520529
if (!info1Json.exists() || info1Json.lastModified() < Calendar.getInstance().getTimeInMillis() - RELEASE_INFO_TTL) {
521-
return io.downloadFileAsync("https://releases.mbientlab.com/metawear/info1.json", "info1.json")
530+
return io.downloadFileAsync(String.format(Locale.US, "%s/metawear/info1.json", RELEASES_URL), "info1.json")
522531
.onSuccessTask(task -> downloadFirmware(findRelease(task.getResult())));
523532
} else {
524533
try {
@@ -600,6 +609,27 @@ private Pair<Version, String> findRelease(File releaseInfo) throws JSONException
600609
throw new IllegalStateException("No information available for this board");
601610
}
602611

612+
public void loadBoardAttributes() throws IOException, ClassNotFoundException {
613+
if (persist.boardInfo == null) {
614+
InputStream ins = io.localRetrieve(BOARD_INFO);
615+
if (ins != null) {
616+
ObjectInputStream ois = new ObjectInputStream(ins);
617+
BoardInfo boardInfoState = (BoardInfo) ois.readObject();
618+
619+
if (boardInfoState != null) {
620+
persist.boardInfo = boardInfoState;
621+
for (ModuleInfo it : boardInfoState.moduleInfo.values()) {
622+
instantiateModule(it);
623+
}
624+
} else {
625+
persist.boardInfo = new BoardInfo();
626+
}
627+
} else {
628+
persist.boardInfo = new BoardInfo();
629+
}
630+
}
631+
}
632+
603633
private Task<Queue<ModuleInfo>> discoverModules(Collection<Constant.Module> ignore) {
604634
final Queue<ModuleInfo> info = new LinkedList<>();
605635
final Queue<Constant.Module> modules = new LinkedList<>();
@@ -640,24 +670,7 @@ public Task<Void> connectAsync() {
640670
return Task.cancelled();
641671
}
642672

643-
if (persist.boardInfo == null) {
644-
InputStream ins = io.localRetrieve(BOARD_INFO);
645-
if (ins != null) {
646-
ObjectInputStream ois = new ObjectInputStream(ins);
647-
BoardInfo boardInfoState = (BoardInfo) ois.readObject();
648-
649-
if (boardInfoState != null) {
650-
persist.boardInfo = boardInfoState;
651-
for (ModuleInfo it : boardInfoState.moduleInfo.values()) {
652-
instantiateModule(it);
653-
}
654-
} else {
655-
persist.boardInfo = new BoardInfo();
656-
}
657-
} else {
658-
persist.boardInfo = new BoardInfo();
659-
}
660-
}
673+
loadBoardAttributes();
661674

662675
return gatt.readCharacteristicAsync(DeviceInformationService.FIRMWARE_REVISION);
663676
}).onSuccessTask(task -> {

library/src/main/java/com/mbientlab/metawear/impl/MagnetometerBmm150Impl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ static String createUri(DataTypeBase dataType) {
4848
switch (dataType.eventConfig[1]) {
4949
case MAG_DATA:
5050
return dataType.attributes.length() > 2 ? "magnetic-field" : String.format(Locale.US, "magnetic-field[%d]", (dataType.attributes.offset >> 1));
51+
case PACKED_MAG_DATA:
52+
return "magnetic-field";
5153
default:
5254
return null;
5355
}

0 commit comments

Comments
 (0)