55
66
77@click .command (epilog = f"Version { teensytoany .__version__ } " )
8- @click .option ('--serial-number' , '-s' , type = str , default = None ,
9- help = 'Serial number of the Teensy device.' )
10- @click .option ('--interface' , '-i' , type = int , default = 0 ,
11- help = 'I2C interface to use (0 for I2C, 1 for I2C1).' )
12- @click .option ('--seven-bit-mode' , '-7' , is_flag = True , default = False ,
13- help = 'Report addresses in 7-bit mode instead of 8-bit mode.' )
14- @click .option ('--verbose' , is_flag = True , default = False ,
15- help = 'Report in verbose mode, print out all pinged addresses.' )
8+ @click .option (
9+ '--serial-number' , '-s' ,
10+ type = str ,
11+ default = None ,
12+ show_default = False ,
13+ help = 'Serial number of the Teensy device.'
14+ )
15+ @click .option (
16+ '--interface' ,
17+ '-i' ,
18+ type = int ,
19+ default = 0 ,
20+ show_default = True ,
21+ help = 'I2C interface to use (0 for I2C, 1 for I2C1).'
22+ )
23+ @click .option (
24+ '--seven-bit-mode' ,
25+ '-7' ,
26+ is_flag = True ,
27+ default = False ,
28+ help = (
29+ 'Report addresses in 7-bit mode instead of 8-bit mode. '
30+ 'By default, addresses are reported in 8-bit mode.'
31+ ),
32+ )
33+ @click .option (
34+ '--baud-rate' ,
35+ type = int ,
36+ default = 100_100 ,
37+ show_default = True ,
38+ help = 'Baud rate for the I2C bus.' ,
39+ )
40+ @click .option (
41+ '--verbose' ,
42+ is_flag = True ,
43+ default = False ,
44+ help = 'Report in verbose mode, print out all pinged addresses.' ,
45+ )
1646@click .version_option (teensytoany .__version__ )
1747def main (
1848 serial_number = None ,
1949 interface = 0 ,
2050 seven_bit_mode = False ,
51+ baud_rate = 100_100 ,
2152 verbose = False ,
2253):
2354 i2c_scan (
2455 serial_number = serial_number ,
2556 interface = interface ,
57+ baud_rate = baud_rate ,
2658 seven_bit_mode = seven_bit_mode ,
2759 verbose = verbose ,
2860 )
2961
3062
31- def _scan_and_print (teensy , interface , seven_bit_mode , verbose ):
63+ def _scan_and_print (teensy , interface , baud_rate , seven_bit_mode , verbose ):
64+ if interface == 0 :
65+ teensy .i2c_init (baud_rate = baud_rate )
66+ elif interface == 1 :
67+ teensy .i2c_1_init (baud_rate = baud_rate )
68+ else :
69+ raise ValueError (f"Unknown interface { interface } . Must be 0 or 1" )
70+
3271 for address_7bit in range (1 , 128 ):
3372 address = address_7bit << 1
3473 try :
@@ -49,12 +88,19 @@ def _scan_and_print(teensy, interface, seven_bit_mode, verbose):
4988 # pass
5089
5190
52- def i2c_scan (serial_number = None , interface = 0 , seven_bit_mode = False , verbose = False ):
91+ def i2c_scan (
92+ serial_number = None ,
93+ interface = 0 ,
94+ baud_rate = 100_100 ,
95+ seven_bit_mode = False ,
96+ verbose = False ,
97+ ):
5398 teensy = TeensyToAny (serial_number = serial_number )
5499 try :
55100 _scan_and_print (
56101 teensy ,
57102 interface = interface ,
103+ baud_rate = baud_rate ,
58104 seven_bit_mode = seven_bit_mode ,
59105 verbose = verbose ,
60106 )
0 commit comments