Skip to content

Commit dd0e357

Browse files
committed
Fixed board configuration between experiments
The problem was that the port list defaults parameters where the same reference of the list on every instance
1 parent cf94cd9 commit dd0e357

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

MLC/arduino/protocol.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
PIN_MODES = collections.namedtuple(
2121
'PIN_MODES', ['INPUT', 'OUTPUT'], verbose=False)(INPUT=0, OUTPUT=1)
2222

23+
2324
class ArduinoInterfaceSingleton():
2425
_instance = None
2526

@@ -29,7 +30,7 @@ def get_instance(cls, protocol_config=None, conn_setup=None):
2930
serial_conn = SerialConnection(**conn_setup)
3031
protocol_config._replace(connection, serial_conn)
3132
ArduinoInterfaceSingleton._instance = BuildSerial(protocol_config)
32-
33+
3334
if ArduinoInterfaceSingleton._instance is None:
3435
raise Exception("ArduinoInterface was not configured.")
3536

@@ -232,10 +233,21 @@ def actuate(self, data):
232233
return results
233234

234235

235-
class ProtocolConfig (namedtuple('ProtocolConfig', ['connection', 'report_mode', 'read_count', 'read_delay', 'board_type', 'digital_input_pins', 'digital_output_pins', 'analog_input_pins', 'analog_output_pins', 'pwm_pins'])):
236-
237-
def __new__(cls, connection, report_mode=REPORT_MODES.AVERAGE, read_count=2, read_delay=0, board_type=boards.Due, digital_input_pins=[], digital_output_pins=[], analog_input_pins=[], analog_output_pins=[], pwm_pins=[]):
238-
return super(ProtocolConfig, cls).__new__(cls, connection, report_mode, read_count, read_delay, board_type, digital_input_pins, digital_output_pins, analog_input_pins, analog_output_pins, pwm_pins)
236+
class ProtocolConfig (namedtuple('ProtocolConfig', ['connection', 'report_mode', 'read_count', 'read_delay', 'board_type',
237+
'digital_input_pins', 'digital_output_pins', 'analog_input_pins',
238+
'analog_output_pins', 'pwm_pins'])):
239+
240+
def __new__(cls, connection, report_mode=REPORT_MODES.AVERAGE, read_count=2, read_delay=0, board_type=boards.Due,
241+
digital_input_pins=None, digital_output_pins=None, analog_input_pins=None, analog_output_pins=None,
242+
pwm_pins=None):
243+
digital_input_pins = [] if digital_input_pins is None else digital_input_pins
244+
digital_output_pins = [] if digital_output_pins is None else digital_output_pins
245+
analog_input_pins = [] if analog_input_pins is None else analog_input_pins
246+
analog_output_pins = [] if analog_output_pins is None else analog_output_pins
247+
pwm_pins = [] if pwm_pins is None else pwm_pins
248+
return super(ProtocolConfig, cls).__new__(cls, connection, report_mode, read_count, read_delay,
249+
board_type, digital_input_pins, digital_output_pins,
250+
analog_input_pins, analog_output_pins, pwm_pins)
239251

240252

241253
def BuildSerial(protocol_config):

0 commit comments

Comments
 (0)