Skip to content

Commit

Permalink
CI: add USB hub reset (commaai#1053)
Browse files Browse the repository at this point in the history
USB hub reset
  • Loading branch information
briskspirit committed Aug 31, 2022
1 parent 6d2e2bd commit f040d8b
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
8 changes: 5 additions & 3 deletions tests/ci_reset_hw.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
from panda.tests.libs.resetter import Resetter


# resets power for both jungles(ports 1 and 2) and USB hubs(port 3)
# puts pandas into DFU mode and flashes bootstub + app
if __name__ == "__main__":
r = Resetter()

r.enable_boot(True)
r.cycle_power(5)
r.cycle_power(delay=5, ports=[1,2,3])
r.enable_boot(False)

pandas = PandaDFU.list()
Expand All @@ -17,7 +19,7 @@
p = PandaDFU(serial)
p.recover()

r.cycle_power(5)
r.cycle_power(delay=5, ports=[1,2])

pandas = Panda.list()
print(pandas)
Expand All @@ -29,5 +31,5 @@
pf.flash()
pf.close()

r.cycle_power(0)
r.cycle_power(delay=0, ports=[1,2])
r.close()
14 changes: 7 additions & 7 deletions tests/libs/resetter.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,13 @@ def enable_power(self, port, enabled):
def enable_boot(self, enabled):
self._handle.controlWrite((usb1.ENDPOINT_OUT | usb1.TYPE_VENDOR | usb1.RECIPIENT_DEVICE), 0xff, 0, enabled, b'')

def cycle_power(self, delay=5):
self.enable_power(1, False)
self.enable_power(2, False)
self.enable_power(3, False)
def cycle_power(self, delay=5, ports=None):
if ports is None:
ports = [1,2,3]
for port in ports:
self.enable_power(port, False)
time.sleep(1)
self.enable_power(1, True)
self.enable_power(2, True)
self.enable_power(3, True)
for port in ports:
self.enable_power(port, True)
if delay > 0:
time.sleep(delay)

0 comments on commit f040d8b

Please sign in to comment.