Skip to content

Commit

Permalink
Fixed some python3 bugs in the test scripts and PandaSerial
Browse files Browse the repository at this point in the history
  • Loading branch information
robbederks committed Sep 27, 2019
1 parent 9af0cb3 commit c4aabae
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 48 deletions.
12 changes: 6 additions & 6 deletions python/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,11 +135,11 @@ class Panda(object):
REQUEST_IN = usb1.ENDPOINT_IN | usb1.TYPE_VENDOR | usb1.RECIPIENT_DEVICE
REQUEST_OUT = usb1.ENDPOINT_OUT | usb1.TYPE_VENDOR | usb1.RECIPIENT_DEVICE

HW_TYPE_UNKNOWN = '\x00'
HW_TYPE_WHITE_PANDA = '\x01'
HW_TYPE_GREY_PANDA = '\x02'
HW_TYPE_BLACK_PANDA = '\x03'
HW_TYPE_PEDAL = '\x04'
HW_TYPE_UNKNOWN = b'\x00'
HW_TYPE_WHITE_PANDA = b'\x01'
HW_TYPE_GREY_PANDA = b'\x02'
HW_TYPE_BLACK_PANDA = b'\x03'
HW_TYPE_PEDAL = b'\x04'

def __init__(self, serial=None, claim=True):
self._serial = serial
Expand Down Expand Up @@ -429,7 +429,7 @@ def set_can_speed_kbps(self, bus, speed):
self._handle.controlWrite(Panda.REQUEST_OUT, 0xde, bus, int(speed*10), b'')

def set_uart_baud(self, uart, rate):
self._handle.controlWrite(Panda.REQUEST_OUT, 0xe4, uart, rate/300, b'')
self._handle.controlWrite(Panda.REQUEST_OUT, 0xe4, uart, int(rate/300), b'')

def set_uart_parity(self, uart, parity):
# parity, 0=off, 1=even, 2=odd
Expand Down
4 changes: 2 additions & 2 deletions python/serial.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ def __init__(self, panda, port, baud):
self.port = port
self.panda.set_uart_parity(self.port, 0)
self.panda.set_uart_baud(self.port, baud)
self.buf = ""
self.buf = b""

def read(self, l=1):
tt = self.panda.serial_read(self.port)
Expand All @@ -19,7 +19,7 @@ def read(self, l=1):
def write(self, dat):
#print "W: ", dat.encode("hex")
#print ' pigeon_send("' + ''.join(map(lambda x: "\\x%02X" % ord(x), dat)) + '");'
return self.panda.serial_write(self.port, dat)
return self.panda.serial_write(self.port, str.encode(dat))

def close(self):
pass
Expand Down
7 changes: 2 additions & 5 deletions tests/black_loopback_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,8 @@ def run_test(sleep_duration):
pandas[0] = Panda(pandas[0])
pandas[1] = Panda(pandas[1])

# find out the hardware types
type0 = pandas[0].get_type()
type1 = pandas[1].get_type()

if type0 != "\x03" or type1 != "\x03":
# find out the hardware types
if not pandas[0].is_black() or not pandas[1].is_black():
print("Connect two black pandas to run this test!")
assert False

Expand Down
23 changes: 10 additions & 13 deletions tests/black_white_loopback_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,14 @@ def run_test(sleep_duration):
pandas[0] = Panda(pandas[0])
pandas[1] = Panda(pandas[1])

# find out which one is black
type0 = pandas[0].get_type()
type1 = pandas[1].get_type()

black_panda = None
other_panda = None

if type0 == "\x03" and type1 != "\x03":

# find out which one is black
if pandas[0].is_black() and not pandas[1].is_black():
black_panda = pandas[0]
other_panda = pandas[1]
elif type0 != "\x03" and type1 == "\x03":
elif not pandas[0].is_black() and pandas[1].is_black():
black_panda = pandas[1]
other_panda = pandas[0]
else:
Expand All @@ -71,13 +68,13 @@ def run_test(sleep_duration):
test_buses(black_panda, other_panda, False, [(0, False, [0]), (1, False, [1]), (2, False, [2]), (0, True, [0, 1])], sleep_duration)
counter += 1
print("Number of cycles:", counter, "Non-zero bus errors:", nonzero_bus_errors, "Zero bus errors:", zero_bus_errors, "Content errors:", content_errors)

# Toggle relay
black_panda.set_safety_mode(Panda.SAFETY_NOOUTPUT)
time.sleep(1)
black_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
time.sleep(1)


def test_buses(black_panda, other_panda, direction, test_array, sleep_duration):
global nonzero_bus_errors, zero_bus_errors, content_errors
Expand All @@ -91,7 +88,7 @@ def test_buses(black_panda, other_panda, direction, test_array, sleep_duration):
black_panda.send_heartbeat()
other_panda.send_heartbeat()
print("\ntest can: ", send_bus, " OBD: ", obd)

# set OBD on black panda
black_panda.set_gmlan(True if obd else None)

Expand All @@ -105,8 +102,8 @@ def test_buses(black_panda, other_panda, direction, test_array, sleep_duration):
if direction:
other_panda.can_clear(recv_bus)
else:
black_panda.can_clear(recv_bus)
black_panda.can_clear(recv_bus)

black_panda.can_recv()
other_panda.can_recv()

Expand Down Expand Up @@ -138,7 +135,7 @@ def test_buses(black_panda, other_panda, direction, test_array, sleep_duration):
print(" No loop")
if not os.getenv("NOASSERT"):
assert False

# test loop buses
recv_buses.sort()
loop_buses.sort()
Expand Down
21 changes: 9 additions & 12 deletions tests/black_white_relay_endurance.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,14 @@ def run_test(sleep_duration):
pandas[0] = Panda(pandas[0])
pandas[1] = Panda(pandas[1])

# find out which one is black
type0 = pandas[0].get_type()
type1 = pandas[1].get_type()

black_panda = None
other_panda = None

if type0 == "\x03" and type1 != "\x03":
# find out which one is black
if pandas[0].is_black() and not pandas[1].is_black():
black_panda = pandas[0]
other_panda = pandas[1]
elif type0 != "\x03" and type1 == "\x03":
elif not pandas[0].is_black() and pandas[1].is_black():
black_panda = pandas[1]
other_panda = pandas[0]
else:
Expand Down Expand Up @@ -78,11 +75,11 @@ def run_test(sleep_duration):

if (time.time() - temp_start_time) > 3600*6:
# Toggle relay
black_panda.set_safety_mode(Panda.SAFETY_NOOUTPUT)
time.sleep(1)
black_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
time.sleep(1)
temp_start_time = time.time()
black_panda.set_safety_mode(Panda.SAFETY_NOOUTPUT)
time.sleep(1)
black_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
time.sleep(1)
temp_start_time = time.time()


def test_buses(black_panda, other_panda, direction, test_array, sleep_duration):
Expand Down Expand Up @@ -111,7 +108,7 @@ def test_buses(black_panda, other_panda, direction, test_array, sleep_duration):
if direction:
other_panda.can_clear(recv_bus)
else:
black_panda.can_clear(recv_bus)
black_panda.can_clear(recv_bus)

black_panda.can_recv()
other_panda.can_recv()
Expand Down
18 changes: 9 additions & 9 deletions tests/debug_console.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,16 +33,16 @@
while True:
for i, panda in enumerate(pandas):
while True:
ret = panda.serial_read(port_number)
if len(ret) > 0:
sys.stdout.write(setcolor[i] + str(ret) + unsetcolor)
sys.stdout.flush()
else:
break
ret = panda.serial_read(port_number)
if len(ret) > 0:
sys.stdout.write(setcolor[i] + ret.decode('ascii') + unsetcolor)
sys.stdout.flush()
else:
break
if select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], []):
ln = sys.stdin.readline()
if claim:
panda.serial_write(port_number, ln)
ln = sys.stdin.readline()
if claim:
panda.serial_write(port_number, ln)
time.sleep(0.01)
except:
print("panda disconnected!")
Expand Down
2 changes: 1 addition & 1 deletion tests/location_listener.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def add_nmea_checksum(msg):
while True:
ret = ser.read(1024)
if len(ret) > 0:
sys.stdout.write(ret)
sys.stdout.write(ret.decode('ascii', 'ignore'))
sys.stdout.flush()
#print str(ret).encode("hex")

0 comments on commit c4aabae

Please sign in to comment.