self.__msg_descrs={}# message descriptions by message type map
self.__msg_labels={}# message labels by message name map
self.__msg_names=[]# message names in the same order as FORMAT messages
self.__buffer=""# buffer for input binary data
#ifdef python2
self.__buffer=""# buffer, python2
#else
self.__buffer=bytearray()# buffer for input binary data
#endif
self.__ptr=0# read pointer in buffer
self.__csv_columns=[]# CSV file columns in correct order in format "MSG.label"
self.__csv_data={}# current values for all columns
...
...
@@ -114,15 +129,24 @@ class SDLog2Parser:
self.__buffer=self.__buffer[self.__ptr:]+chunk
self.__ptr=0
whileself.__bytesLeft()>=self.MSG_HEADER_LEN:
#ifdef python2
head1=ord(self.__buffer[self.__ptr])
head2=ord(self.__buffer[self.__ptr+1])
#else
head1=self.__buffer[self.__ptr]
head2=self.__buffer[self.__ptr+1]
#endif
if (head1!=self.MSG_HEAD1orhead2!=self.MSG_HEAD2):
ifself.__correct_errors:
self.__ptr+=1
continue
else:
raiseException("Invalid header at %i (0x%X): %02X %02X, must be %02X %02X"%(bytes_read+self.__ptr,bytes_read+self.__ptr,head1,head2,self.MSG_HEAD1,self.MSG_HEAD2))