@@ -985,9 +985,33 @@ def export_config(interface):
985
985
print (config )
986
986
return config
987
987
988
+ def create_power_meter ():
989
+ """Setup the power meter."""
990
+
991
+ args = mt_config .args
992
+ meter = None # assume no power meter
993
+ if args .power_riden :
994
+ meter = RidenPowerSupply (args .power_riden )
995
+ elif args .power_ppk2_supply or args .power_ppk2_meter :
996
+ meter = PPK2PowerSupply ()
997
+ meter .setIsSupply (args .power_ppk2_supply )
998
+ elif args .power_sim :
999
+ meter = SimPowerSupply ()
1000
+
1001
+ if meter and args .power_voltage :
1002
+ v = float (args .power_voltage )
1003
+ if v < 0.5 or v > 5.0 :
1004
+ meshtastic .util .our_exit ("Voltage must be between 1.0 and 5.0" )
1005
+ logging .info (f"Setting power supply to { v } volts" )
1006
+ meter .v = v
1007
+ meter .powerOn ()
1008
+
1009
+ if args .power_wait :
1010
+ input ("Powered on, press enter to continue..." )
1011
+ return meter
988
1012
989
1013
def common ():
990
- """Shared code for all of our command line wrappers"""
1014
+ """Shared code for all of our command line wrappers. """
991
1015
logfile = None
992
1016
args = mt_config .args
993
1017
parser = mt_config .parser
@@ -1004,6 +1028,8 @@ def common():
1004
1028
meshtastic .util .support_info ()
1005
1029
meshtastic .util .our_exit ("" , 0 )
1006
1030
1031
+ meter = create_power_meter ()
1032
+
1007
1033
if args .ch_index is not None :
1008
1034
channelIndex = int (args .ch_index )
1009
1035
mt_config .channel_index = channelIndex
@@ -1093,24 +1119,6 @@ def common():
1093
1119
# We assume client is fully connected now
1094
1120
onConnected (client )
1095
1121
1096
- # Setup power meters
1097
- meter = None # assume no power meter
1098
- if args .power_riden :
1099
- meter = RidenPowerSupply (args .power_riden )
1100
- elif args .power_ppk2_supply or args .power_ppk2_meter :
1101
- meter = PPK2PowerSupply ()
1102
- meter .setIsSupply (args .power_ppk2_supply )
1103
- elif args .power_sim :
1104
- meter = SimPowerSupply ()
1105
-
1106
- if meter and args .power_voltage :
1107
- v = float (args .power_voltage )
1108
- if v < 0.5 or v > 5.0 :
1109
- meshtastic .util .our_exit ("Voltage must be between 1.0 and 5.0" )
1110
- logging .info (f"Setting power supply to { v } volts" )
1111
- meter .v = v
1112
- meter .powerOn ()
1113
-
1114
1122
log_set = None
1115
1123
if args .slog_out :
1116
1124
# Setup loggers
@@ -1533,7 +1541,9 @@ def initParser():
1533
1541
action = "store_true" ,
1534
1542
)
1535
1543
1536
- power_supply_group = group .add_mutually_exclusive_group ()
1544
+ power_group = parser .add_argument_group ('Power Testing' , 'Options for power testing/logging.' )
1545
+
1546
+ power_supply_group = power_group .add_mutually_exclusive_group ()
1537
1547
1538
1548
power_supply_group .add_argument (
1539
1549
"--power-riden" ,
@@ -1558,21 +1568,28 @@ def initParser():
1558
1568
action = "store_true" ,
1559
1569
)
1560
1570
1561
- group .add_argument (
1571
+ power_group .add_argument (
1562
1572
"--power-voltage" ,
1563
1573
help = "Set the specified voltage on the power-supply. Be VERY careful, you can burn things up." ,
1564
1574
)
1565
1575
1566
- group .add_argument (
1576
+ power_group .add_argument (
1567
1577
"--power-stress" ,
1568
1578
help = "Perform power monitor stress testing, to capture a power consumption profile for the device (also requires --power-mon)" ,
1569
1579
action = "store_true" ,
1570
1580
)
1571
1581
1572
- group .add_argument (
1582
+ power_group .add_argument (
1583
+ "--power-wait" ,
1584
+ help = "Prompt the user to wait for device reset before looking for device serial ports (some boards kill power to USB serial port)" ,
1585
+ action = "store_true" ,
1586
+ )
1587
+
1588
+ power_group .add_argument (
1573
1589
"--slog-out" ,
1574
1590
help = "A directory to store structured logging to, or 'default' for automatically selected." ,
1575
1591
)
1592
+
1576
1593
group .add_argument (
1577
1594
"--ble-scan" ,
1578
1595
help = "Scan for Meshtastic BLE devices" ,
0 commit comments