mirror of
https://github.com/meshtastic/python.git
synced 2025-12-25 17:07:53 -05:00
make PPK2 power supply monitor work in supply-mode
This commit is contained in:
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -204,7 +204,7 @@
|
||||
"request": "launch",
|
||||
"module": "meshtastic",
|
||||
"justMyCode": false,
|
||||
"args": ["--slog", "--power-ppk2-meter", "--power-stress", "--power-voltage", "3.3", "--seriallog", "--ble"]
|
||||
"args": ["--slog", "--power-ppk2-supply", "--power-stress", "--power-voltage", "3.3", "--seriallog", "--ble"]
|
||||
},
|
||||
{
|
||||
"name": "meshtastic test",
|
||||
|
||||
@@ -1009,24 +1009,34 @@ def create_power_meter():
|
||||
|
||||
global meter # pylint: disable=global-statement
|
||||
args = mt_config.args
|
||||
|
||||
# If the user specified a voltage, make sure it is valid
|
||||
v = 0.0
|
||||
if args.power_voltage:
|
||||
v = float(args.power_voltage)
|
||||
if v < 0.8 or v > 5.0:
|
||||
meshtastic.util.our_exit("Voltage must be between 0.8 and 5.0")
|
||||
|
||||
if args.power_riden:
|
||||
meter = RidenPowerSupply(args.power_riden)
|
||||
elif args.power_ppk2_supply or args.power_ppk2_meter:
|
||||
meter = PPK2PowerSupply()
|
||||
assert v > 0, "Voltage must be specified for PPK2"
|
||||
meter.v = v # PPK2 requires setting voltage before selecting supply mode
|
||||
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")
|
||||
if meter and v:
|
||||
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...")
|
||||
else:
|
||||
logging.info("Powered-on, waiting for device to boot")
|
||||
time.sleep(5)
|
||||
|
||||
def common():
|
||||
"""Shared code for all of our command line wrappers."""
|
||||
|
||||
@@ -118,9 +118,11 @@ class PPK2PowerSupply(PowerSupply):
|
||||
self.measurement_thread.join() # wait for our thread to finish
|
||||
super().close()
|
||||
|
||||
def setIsSupply(self, s: bool):
|
||||
def setIsSupply(self, is_supply: bool):
|
||||
"""If in supply mode we will provide power ourself, otherwise we are just an amp meter."""
|
||||
|
||||
assert self.v > 0.8 # We must set a valid voltage before calling this method
|
||||
|
||||
self.r.set_source_voltage(
|
||||
int(self.v * 1000)
|
||||
) # set source voltage in mV BEFORE setting source mode
|
||||
@@ -130,7 +132,7 @@ class PPK2PowerSupply(PowerSupply):
|
||||
self.r.start_measuring() # send command to ppk2
|
||||
|
||||
if (
|
||||
not s
|
||||
not is_supply
|
||||
): # min power outpuf of PPK2. If less than this assume we want just meter mode.
|
||||
self.r.use_ampere_meter()
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user