I tried to converte my ('DATA', <class 'PCANBasic.c_ubyte_Array_8'>) in string for reading.
in fact i have a PCAN-USB connected on my CAN.
I have a programs in python for reading messages.
I tried :
bytes(DATA).decode('ascii') -> but this don't works because TypeError: cannot convert '_ctypes.PyCArrayType' object to bytes
Code: Select all
# READING
print ("CAN_Read")
time.sleep(2)
canStatus = can.Read(channel1)
if(canStatus[0] == PCAN_ERROR_OK):
print ("NO ERROR - Read Msg :", canStatus[1]._fields_)
ID = canStatus[1]._fields_[0][1]
MSGTYPE = canStatus[1]._fields_[1][1]
LEN = canStatus[1]._fields_[2][1]
DATA = canStatus[1]._fields_[3][1]
print ( "DATA :" , DATA )
elif (canStatus[0] == PCAN_ERROR_QRCVEMPTY):
print (" no MSG in a queue")
else :
print ("ERROR : ", canStatus)
Code: Select all
result1: (0, b'No Error')
No Error Init:
Getstatus:- 0
CAN_Read
NO ERROR - Read Msg : [('ID', <class 'ctypes.c_uint'>), ('MSGTYPE', <class 'ctypes.c_ubyte'>), ('LEN', <class 'ctypes.c_ubyte'>), ('DATA', <class 'PCANBasic.c_ubyte_Array_8'>)]
DATA : <class 'PCANBasic.c_ubyte_Array_8'>
End
Thanks so much for your helps !