2020PIN_MODES = collections .namedtuple (
2121 'PIN_MODES' , ['INPUT' , 'OUTPUT' ], verbose = False )(INPUT = 0 , OUTPUT = 1 )
2222
23+
2324class 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
241253def BuildSerial (protocol_config ):
0 commit comments