group power options in --help. add --power-wait to support some boards

This commit is contained in:
Kevin Hester
2024-06-25 13:48:02 -07:00
parent f8ad4fef7c
commit ff20ad5d05
2 changed files with 41 additions and 24 deletions

2
.vscode/launch.json vendored
View File

@@ -180,7 +180,7 @@
"request": "launch",
"module": "meshtastic",
"justMyCode": false,
"args": ["--slog-out", "default", "--power-ppk2-meter", "--power-voltage", "3.3", "--port", "/dev/ttyUSB0", "--noproto", "--seriallog", "stdout"]
"args": ["--slog-out", "default", "--power-ppk2-meter", "--power-wait", "--power-voltage", "3.3", "--noproto", "--seriallog", "stdout"]
},
{
"name": "meshtastic test",

View File

@@ -985,9 +985,33 @@ def export_config(interface):
print(config)
return config
def create_power_meter():
"""Setup the power meter."""
args = mt_config.args
meter = None # assume no power meter
if args.power_riden:
meter = RidenPowerSupply(args.power_riden)
elif args.power_ppk2_supply or args.power_ppk2_meter:
meter = PPK2PowerSupply()
meter.setIsSupply(args.power_ppk2_supply)
elif args.power_sim:
meter = SimPowerSupply()
if meter and args.power_voltage:
v = float(args.power_voltage)
if v < 0.5 or v >5.0:
meshtastic.util.our_exit("Voltage must be between 1.0 and 5.0")
logging.info(f"Setting power supply to {v} volts")
meter.v = v
meter.powerOn()
if args.power_wait:
input("Powered on, press enter to continue...")
return meter
def common():
"""Shared code for all of our command line wrappers"""
"""Shared code for all of our command line wrappers."""
logfile = None
args = mt_config.args
parser = mt_config.parser
@@ -1004,6 +1028,8 @@ def common():
meshtastic.util.support_info()
meshtastic.util.our_exit("", 0)
meter = create_power_meter()
if args.ch_index is not None:
channelIndex = int(args.ch_index)
mt_config.channel_index = channelIndex
@@ -1093,24 +1119,6 @@ def common():
# We assume client is fully connected now
onConnected(client)
# Setup power meters
meter = None # assume no power meter
if args.power_riden:
meter = RidenPowerSupply(args.power_riden)
elif args.power_ppk2_supply or args.power_ppk2_meter:
meter = PPK2PowerSupply()
meter.setIsSupply(args.power_ppk2_supply)
elif args.power_sim:
meter = SimPowerSupply()
if meter and args.power_voltage:
v = float(args.power_voltage)
if v < 0.5 or v >5.0:
meshtastic.util.our_exit("Voltage must be between 1.0 and 5.0")
logging.info(f"Setting power supply to {v} volts")
meter.v = v
meter.powerOn()
log_set = None
if args.slog_out:
# Setup loggers
@@ -1533,7 +1541,9 @@ def initParser():
action="store_true",
)
power_supply_group = group.add_mutually_exclusive_group()
power_group = parser.add_argument_group('Power Testing', 'Options for power testing/logging.')
power_supply_group = power_group.add_mutually_exclusive_group()
power_supply_group.add_argument(
"--power-riden",
@@ -1558,21 +1568,28 @@ def initParser():
action="store_true",
)
group.add_argument(
power_group.add_argument(
"--power-voltage",
help="Set the specified voltage on the power-supply. Be VERY careful, you can burn things up.",
)
group.add_argument(
power_group.add_argument(
"--power-stress",
help="Perform power monitor stress testing, to capture a power consumption profile for the device (also requires --power-mon)",
action="store_true",
)
group.add_argument(
power_group.add_argument(
"--power-wait",
help="Prompt the user to wait for device reset before looking for device serial ports (some boards kill power to USB serial port)",
action="store_true",
)
power_group.add_argument(
"--slog-out",
help="A directory to store structured logging to, or 'default' for automatically selected.",
)
group.add_argument(
"--ble-scan",
help="Scan for Meshtastic BLE devices",