Skip to content

Commit 26fba9d

Browse files
author
biomurph
committed
Changed the BLE on receive to use a ring buffer.
Fixes bug that did not allow programmatic sending of command characters.
1 parent 14bba8c commit 26fba9d

4 files changed

Lines changed: 24 additions & 8 deletions

File tree

File renamed without changes.

OpenBCI_Ganglion_Library/OpenBCI_Ganglion_Library.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ OpenBCI_Ganglion::OpenBCI_Ganglion(){
6767
SimbleeBLE.manufacturerName = "openbci.com";
6868
SimbleeBLE.modelNumber = "Ganglion";
6969
SimbleeBLE.hardwareRevision = "1.0.0";
70-
SimbleeBLE.softwareRevision = "1.1.1";
70+
SimbleeBLE.softwareRevision = "1.1.2";
7171
}
7272

7373
void OpenBCI_Ganglion::blinkLED() {
@@ -847,9 +847,10 @@ OpenBCI_Ganglion::OpenBCI_Ganglion(){
847847
ota_bootloader_start(); //begins OTA enabled state
848848
}
849849

850-
if(gotBLE){
851-
gotBLE = false;
852-
parseChar(BLEchar);
850+
if(BLEcharTail != BLEcharHead){
851+
BLEcharTail++;
852+
if(BLEcharTail >19){ BLEcharTail = 0; }
853+
parseChar(BLEchar[BLEcharTail]);
853854
}
854855

855856
while (Serial.available()) {
@@ -1170,8 +1171,9 @@ OpenBCI_Ganglion::OpenBCI_Ganglion(){
11701171

11711172
void SimbleeBLE_onReceive(char *data, int len)
11721173
{
1173-
ganglion.BLEchar = data[0];
1174-
ganglion.gotBLE = true;
1174+
ganglion.BLEcharHead++;
1175+
if(ganglion.BLEcharHead >19){ ganglion.BLEcharHead = 0; }
1176+
ganglion.BLEchar[ganglion.BLEcharHead] = data[0];
11751177
}
11761178

11771179

OpenBCI_Ganglion_Library/OpenBCI_Ganglion_Library.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,9 @@ class OpenBCI_Ganglion {
224224
char radioBuffer[20];
225225
char resendBuffer[20];
226226
boolean BLEconnected = false;
227-
char BLEchar;
228-
boolean gotBLE = false;
227+
char BLEchar[20];
228+
int BLEcharHead = 0;
229+
int BLEcharTail = 0;
229230
unsigned long rssiTimer;
230231
boolean requestForOTAenable = false;
231232
boolean clearForOTA = false;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# v1.1.2
2+
3+
### Bug fixes
4+
5+
* Changed the BLE on receive to use a ring buffer. See #2
6+
7+
# v1.1.1
8+
9+
* Changed the way SD file names are generated to allow for OTA programming.
10+
11+
# v1.0.0
12+
13+
* Initial Release

0 commit comments

Comments
 (0)