Skip to content

Commit 0753ffa

Browse files
author
AJ Keller
committed
Add support for daisy and ganglion sample building over wifi
1 parent 77d82bd commit 0753ffa

File tree

3 files changed

+241
-106
lines changed

3 files changed

+241
-106
lines changed

changelog.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@
77
### New Features
88

99
* Add function in utilities for making daisy packets.
10+
* Add code to `getChannelDataArray` for ganglion and daisy data being routed over wifi
11+
* Create idea of protocols i.e. `BLE`, `Wifi`, and `Serial`
1012

13+
### Breaking changes
14+
15+
* `getChannelDataArray` now takes object as only arg.
1116

1217
# 0.0.5
1318

openBCIUtilities.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -966,7 +966,7 @@ function parsePacketStandardAccel (o) {
966966
sampleObject.accelData = getDataArrayAccel(o.rawDataPacket.slice(k.OBCIPacketPositionStartAux, k.OBCIPacketPositionStopAux + 1));
967967

968968
if (k.isUndefined(o.scale) || k.isNull(o.scale)) o.scale = true;
969-
if (o.scale) sampleObject.channelData = getChannelDataArray(o.rawDataPacket, o.channelSettings);
969+
if (o.scale) sampleObject.channelData = getChannelDataArray(o);
970970
else sampleObject.channelDataCounts = getChannelDataArrayNoScale(o.rawDataPacket);
971971

972972
if (k.getVersionNumber(process.version) >= 6) {
@@ -1075,7 +1075,7 @@ function parsePacketTimeSyncedAccel (o) {
10751075
}
10761076

10771077
if (k.isUndefined(o.scale) || k.isNull(o.scale)) o.scale = true;
1078-
if (o.scale) sampleObject.channelData = getChannelDataArray(o.rawDataPacket, o.channelSettings);
1078+
if (o.scale) sampleObject.channelData = getChannelDataArray(o);
10791079
else sampleObject.channelDataCounts = getChannelDataArrayNoScale(o.rawDataPacket);
10801080

10811081
return sampleObject;
@@ -1228,13 +1228,21 @@ function getChannelDataArray (o) {
12281228
if (!Array.isArray(o.channelSettings)) {
12291229
throw new Error('Error [getChannelDataArray]: Channel Settings must be an array!');
12301230
}
1231-
var channelData = [];
1231+
if (o.hasOwnProperty('protocol')) {
1232+
if (o.protocol !== k.OBCIProtocolSerial && o.protocol !== k.OBCIProtocolWifi) {
1233+
throw new Error(`Error [getChannelDataArray]: Invalid protocol must be ${k.OBCIProtocolWifi} or ${k.OBCIProtocolSerial}`);
1234+
}
1235+
} else {
1236+
o.protocol = k.OBCIProtocolSerial;
1237+
}
1238+
let channelData = [];
12321239
// Grab the sample number from the buffer
1233-
var sampleNumber = o.rawDataPacket[k.OBCIPacketPositionSampleNumber];
1234-
var daisy = o.channelSettings.length === k.OBCINumberOfChannelsDaisy;
1235-
1240+
const numChannels = o.channelSettings.length;
1241+
const sampleNumber = o.rawDataPacket[k.OBCIPacketPositionSampleNumber];
1242+
const daisy = numChannels === k.OBCINumberOfChannelsDaisy;
1243+
const channelsInPacket = numChannels > k.OBCINumberOfChannelsGanglion ? k.OBCINumberOfChannelsDefault : k.OBCINumberOfChannelsGanglion;
12361244
// Channel data arrays are always 8 long
1237-
for (var i = 0; i < k.OBCINumberOfChannelsDefault; i++) {
1245+
for (let i = 0; i < channelsInPacket; i++) {
12381246
if (!o.channelSettings[i].hasOwnProperty('gain')) {
12391247
throw new Error(`Error [getChannelDataArray]: Invalid channel settings object at index ${i}`);
12401248
}

0 commit comments

Comments
 (0)