Skip to content

Commit ff20ad5

Browse files
committed
group power options in --help. add --power-wait to support some boards
1 parent f8ad4fe commit ff20ad5

File tree

2 files changed

+41
-24
lines changed

2 files changed

+41
-24
lines changed

.vscode/launch.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@
180180
"request": "launch",
181181
"module": "meshtastic",
182182
"justMyCode": false,
183-
"args": ["--slog-out", "default", "--power-ppk2-meter", "--power-voltage", "3.3", "--port", "/dev/ttyUSB0", "--noproto", "--seriallog", "stdout"]
183+
"args": ["--slog-out", "default", "--power-ppk2-meter", "--power-wait", "--power-voltage", "3.3", "--noproto", "--seriallog", "stdout"]
184184
},
185185
{
186186
"name": "meshtastic test",

meshtastic/__main__.py

+40-23
Original file line numberDiff line numberDiff line change
@@ -985,9 +985,33 @@ def export_config(interface):
985985
print(config)
986986
return config
987987

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
9881012

9891013
def common():
990-
"""Shared code for all of our command line wrappers"""
1014+
"""Shared code for all of our command line wrappers."""
9911015
logfile = None
9921016
args = mt_config.args
9931017
parser = mt_config.parser
@@ -1004,6 +1028,8 @@ def common():
10041028
meshtastic.util.support_info()
10051029
meshtastic.util.our_exit("", 0)
10061030

1031+
meter = create_power_meter()
1032+
10071033
if args.ch_index is not None:
10081034
channelIndex = int(args.ch_index)
10091035
mt_config.channel_index = channelIndex
@@ -1093,24 +1119,6 @@ def common():
10931119
# We assume client is fully connected now
10941120
onConnected(client)
10951121

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-
11141122
log_set = None
11151123
if args.slog_out:
11161124
# Setup loggers
@@ -1533,7 +1541,9 @@ def initParser():
15331541
action="store_true",
15341542
)
15351543

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()
15371547

15381548
power_supply_group.add_argument(
15391549
"--power-riden",
@@ -1558,21 +1568,28 @@ def initParser():
15581568
action="store_true",
15591569
)
15601570

1561-
group.add_argument(
1571+
power_group.add_argument(
15621572
"--power-voltage",
15631573
help="Set the specified voltage on the power-supply. Be VERY careful, you can burn things up.",
15641574
)
15651575

1566-
group.add_argument(
1576+
power_group.add_argument(
15671577
"--power-stress",
15681578
help="Perform power monitor stress testing, to capture a power consumption profile for the device (also requires --power-mon)",
15691579
action="store_true",
15701580
)
15711581

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(
15731589
"--slog-out",
15741590
help="A directory to store structured logging to, or 'default' for automatically selected.",
15751591
)
1592+
15761593
group.add_argument(
15771594
"--ble-scan",
15781595
help="Scan for Meshtastic BLE devices",

0 commit comments

Comments
 (0)