Skip to content

Commit 289d334

Browse files
Varun Purifacebook-github-bot
authored andcommitted
Add options to monsoon_startup script
Summary: As titled - make it easier to use this as a command line script. Reviewed By: navsud Differential Revision: D54603055 fbshipit-source-id: 1067b3e1336bcac24d43778147aff1bb2185e9ef
1 parent 9b76307 commit 289d334

File tree

1 file changed

+54
-8
lines changed

1 file changed

+54
-8
lines changed

scripts/monsoon_startup.py

Lines changed: 54 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1+
import argparse
2+
13
import Monsoon.HVPM as HVPM
24
import Monsoon.pmapi as pmapi
35
import Monsoon.sampleEngine as sampleEngine
46

57

6-
def testHVPM(serialno, Protocol):
7-
HVMON = HVPM.Monsoon()
8+
def testHVPM(HVMON, serialno, Protocol, power_up_current_limit, runtime_current_limit):
89
HVMON.setup_usb(serialno, Protocol)
910
print("HVPM Serial Number: " + repr(HVMON.getSerialNumber()))
10-
HVMON.setPowerUpCurrentLimit(13)
11-
HVMON.setRunTimeCurrentLimit(13)
11+
HVMON.setPowerUpCurrentLimit(power_up_current_limit)
12+
HVMON.setRunTimeCurrentLimit(runtime_current_limit)
1213
HVMON.fillStatusPacket()
1314
HVMON.setVout(4)
1415
HVengine = sampleEngine.SampleEngine(HVMON)
@@ -40,9 +41,54 @@ def testHVPM(serialno, Protocol):
4041

4142

4243
def main():
43-
HVPMSerialNo = None
44-
testHVPM(HVPMSerialNo, pmapi.USB_protocol())
44+
HVMON = HVPM.Monsoon()
45+
available_devices = HVMON.enumerateDevices()
46+
parser = argparse.ArgumentParser(description="Test HVPM")
47+
parser.add_argument(
48+
"-s",
49+
"--serial",
50+
help=f"Serial number of HVPM. Available serial numbers: {available_devices}. Defaults to the first available device in this list.",
51+
)
52+
parser.add_argument(
53+
"-P",
54+
"--power_up_current_limit",
55+
help="Call setPowerUpCurrentLimit on the HVPM in amps. Defaults to 14",
56+
default=14,
57+
type=float,
58+
)
59+
parser.add_argument(
60+
"-R",
61+
"--runtime_current_limit",
62+
help="Call setRunTimeCurrentLimit on the HVPM. Defaults to 14",
63+
default=14,
64+
type=float,
65+
)
66+
parser.add_argument(
67+
"-l",
68+
"--list_devices",
69+
help="List available Monsoon devices by serial number",
70+
action="store_true",
71+
)
72+
args = parser.parse_args()
73+
if args.list_devices:
74+
print(f"Available Monsoon devices: {available_devices}")
75+
return
4576

77+
HVPMSerialNo = None
78+
if args.serial is None:
79+
HVPMSerialNo = available_devices[0]
80+
elif args.serial in available_devices:
81+
HVPMSerialNo = args.serial
82+
else:
83+
print(
84+
f"Serial number {args.serial} not found. Available serial numbers: {available_devices}"
85+
)
86+
return
4687

47-
if __name__ == "__main__":
48-
main()
88+
testHVPM(
89+
HVMON,
90+
HVPMSerialNo,
91+
pmapi.USB_protocol(),
92+
args.power_up_current_limit,
93+
args.runtime_current_limit,
94+
)

0 commit comments

Comments
 (0)