"Discarding current buffer because of bad checksum"
return
False
def
send_command
(self, command):
with
self.serial_lock:
# This avoid concurrent writes/reads of
serial
self.port.write(command)
ack = self.port.read(
1
)
# This loop discards buffered frames until an ACK header is
reached
while
ord(ack) !=
20
:
self.port.readline()
ack = self.port.read(
1
)
else
:
ack += self.port.read(
3
)
# Check ACK crc8
crc8 = self.crc8(ack[:
3
])
if
crc8 == ord(ack[
3
]):
# Check if ACK or NACK
if
ord(ack[
2
]) ==
0
:
return
True
else
:
"Command not acknowledged"
return
False
else
:
"Error in ACK checksum"
return
False
def
start_sensor
(self):
if
self.send_command(
"\x00\x52\x02\x01\xDF"
):
"Sensor started successfully"
def
stop_sensor
(self):
if
self.send_command(
"\x00\x52\x02\x00\xD8"
):
"Sensor stopped successfully"
def
run
(self):
self.port.flushInput()
self.start_sensor()
depth_array = []
while
depth_array
is
not
None
:
depth_array = self.get_depth_array()
Copyright
©
Terabee 2018
Terabee, 90 Rue Henri Fabre
01630, St Genis-Pouilly, France (next to CERN)
21/22