Skip to content

Commit ff38934

Browse files
Merge pull request #33 from SoftcodingForYou/better-board-feature-handling
Better management of features; 2. Fix in filter jittering on slow passband
2 parents e20067c + c686ac3 commit ff38934

5 files changed

Lines changed: 21 additions & 13 deletions

File tree

-26 Bytes
Binary file not shown.

dist/neurigui-2.91.0.tar.gz

-119 KB
Binary file not shown.

neuri/backend/compatible_boards.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,16 @@
1919
# Set None where parameter is not required
2020
COMPATIBLE_BOARDS = {
2121
# Unique name: [
22-
# 0: Start code (int),
22+
# 0: Start code (int or None),
2323
# 1: Main sampling rate (EEG for most boards) (Hz),
2424
# 2: Baud rate (int),
2525
# 3: Board_specific class (object),
2626
# 4: Number of channels (int),
2727
# 5: Uses lab streaming layer LSL (bool),
2828
# 6: Possible to set PGA (bool),
29-
# 7: Sampling rate of secondary data type applicable, ie PPG (int, None),
30-
# 8: Amount of channels for secondary data type (ie PPG)
29+
# 7: Sampling rate of secondary data type applicable, ie PPG (int or None),
30+
# 8: Amount of channels for secondary data type (ie PPG) (int or None),
31+
# 9: Default Programmable Gain Amplitude (int or None)
3132
# ]
3233
"Neuri V1 by Helment": [
3334
2,
@@ -39,6 +40,7 @@
3940
True,
4041
None,
4142
None,
43+
24,
4244
],
4345
"Neuri-Lolin S3-PRO by Helment": [
4446
2,
@@ -50,6 +52,7 @@
5052
True,
5153
None,
5254
None,
55+
24,
5356
],
5457
"BioAmp EXG Pill by Upside Down Labs": [
5558
None,
@@ -61,6 +64,7 @@
6164
False,
6265
None,
6366
None,
67+
None,
6468
],
6569
"Muse S by InteraXon": [
6670
None,
@@ -72,5 +76,6 @@
7276
False,
7377
64,
7478
3,
79+
None,
7580
]
7681
}

neuri/frontend/parameters.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -217,12 +217,12 @@ def set_defaults(self):
217217

218218
#Signal arrays
219219
self.sample_rate = COMPATIBLE_BOARDS["Neuri V1 by Helment"][1] #Hertz
220-
self.max_chans = 8 #scalar (Max. amount of input channels of board)
220+
self.max_chans = COMPATIBLE_BOARDS["Neuri V1 by Helment"][4] #scalar (Max. amount of input channels of board)
221221
self.selected_chans = [True] * self.max_chans
222222
self.buffer_length = 10 #scalar (seconds)
223223
self.buffer_add = 4 #scalar (seconds), we add this to the buffer for filtering to avoid edge artifacts
224224
self.saving_interval= 1 #scalar (seconds)
225-
self.PGA = 24 #scalar
225+
self.PGA = COMPATIBLE_BOARDS["Neuri V1 by Helment"][9] #scalar
226226

227227
#Signal reception
228228
self.baud_rate = COMPATIBLE_BOARDS["Neuri V1 by Helment"][2] #scalar default baudrate for connection
@@ -252,7 +252,7 @@ def set_defaults(self):
252252
'Sleep': (1, 30),
253253
'Theta': (4, 8),
254254
'Whole': (0.5, 45),
255-
'Slow': (0.1, 6),
255+
'Slow': (0.5, 6),
256256
}
257257

258258

@@ -400,6 +400,7 @@ def get_board_features(self, board_name):
400400
self.adjustable_pga = COMPATIBLE_BOARDS[board_name][6]
401401
self.secondary_sampling_rate = COMPATIBLE_BOARDS[board_name][7]
402402
self.secondary_max_chans = COMPATIBLE_BOARDS[board_name][8]
403+
self.PGA = COMPATIBLE_BOARDS[board_name][9]
403404

404405

405406
def display_board_version(self, master):
@@ -432,8 +433,12 @@ def set_menu_states(self):
432433
self.portMenu.configure(state="disabled")
433434
else:
434435
ports = [port.device for port in list(serial.tools.list_ports.comports())]
435-
self.portMenu.set(ports[0]) if len(ports) > 0 else self.portMenu.set('No port available')
436-
self.portMenu.configure(state="enabled")
436+
if self.port != "":
437+
self.portMenu.set(self.port) if len(ports) > 0 else self.portMenu.set('No port available')
438+
self.portMenu.configure(state="enabled")
439+
else:
440+
self.portMenu.set(ports[0]) if len(ports) > 0 else self.portMenu.set('No port available')
441+
self.portMenu.configure(state="enabled")
437442
except AttributeError:
438443
pass
439444

@@ -442,8 +447,6 @@ def set_menu_states(self):
442447
self.gainMenu.set(self.PGA)
443448
self.gainMenu.configure(state="enabled")
444449
else:
445-
self.PGA = 0
446-
self.gainMenu.set(self.PGA)
447450
self.gainMenu.configure(state="disabled")
448451
except AttributeError:
449452
pass
@@ -583,7 +586,7 @@ def select_data_type(self):
583586

584587
def display_gains(self, master):
585588

586-
gains = ['0', '1', '2', '4', '6', '8', '12', '24']
589+
gains = ['1', '2', '4', '6', '8', '12', '24']
587590
idx_def = [i for i in range(len(gains)) if int(gains[i]) == self.PGA]
588591

589592
labelGain = customtkinter.CTkLabel(master=master,

neuri/frontend/widgets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ def fg_bandpass_filter(self):
171171
rbtn3 = QtWidgets.QRadioButton('0.5 - 45')
172172
rbtn4 = QtWidgets.QRadioButton('1 - 30')
173173
rbtn5 = QtWidgets.QRadioButton('4 - 8')
174-
rbtn6 = QtWidgets.QRadioButton('0.1 - 6')
174+
rbtn6 = QtWidgets.QRadioButton('0.5 - 6')
175175

176176
if self.streamed_data_type == "EEG":
177177
if self.bpass == -1:
@@ -517,7 +517,7 @@ def filt_bandpass(self, choice):
517517
self.bPB = self.proc.b_theta
518518
self.aPB = self.proc.a_theta
519519
elif choice == 4:
520-
print('Bandpass filter between 0.1 and 6 Hz')
520+
print('Bandpass filter between 0.5 and 6 Hz')
521521
self.bPB = self.proc.b_slow
522522
self.aPB = self.proc.a_slow
523523

0 commit comments

Comments
 (0)