# HG changeset patch # User Edouard Tisserant # Date 1363916811 -32400 # Node ID 73360d0bacbc961a8dd9f739e4dfc66ea81d0eb3 # Parent cb9da964a17835284a7e25891493dacdf854218b Serial protocol SendData only prefix with size in case of variable size content (i.e. SetTraceVariableList) diff -r cb9da964a178 -r 73360d0bacbc LPCconnector/LPCAppProto.py --- a/LPCconnector/LPCAppProto.py Thu Mar 21 17:29:53 2013 +0100 +++ b/LPCconnector/LPCAppProto.py Fri Mar 22 10:46:51 2013 +0900 @@ -46,17 +46,14 @@ return None def SendData(self, Data): - length = len(Data) - # transform length into a byte string - # we presuppose endianess of LPC same as PC - lengthstr = ctypes.string_at(ctypes.pointer(ctypes.c_int(length)),4) - buffer = lengthstr + Data - return self.pseudofile.write(buffer) + return self.pseudofile.write(Data) def GetData(self): lengthstr = self.pseudofile.read(4) # transform a byte string into length - length = ctypes.cast(ctypes.c_char_p(lengthstr), ctypes.POINTER(ctypes.c_int)).contents.value + length = ctypes.cast( + ctypes.c_char_p(lengthstr), + ctypes.POINTER(ctypes.c_uint32)).contents.value return self.pseudofile.read(length) def ExchangeData(self): @@ -82,7 +79,12 @@ class SET_TRACE_VARIABLETransaction(LPCAppTransaction): def __init__(self, data): LPCAppTransaction.__init__(self, 0x04) - self.Data = data + length = len(data) + # transform length into a byte string + # we presuppose endianess of LPC same as PC + lengthstr = ctypes.string_at(ctypes.pointer(ctypes.c_uint32(length)),4) + self.Data = lengthstr + data + def ExchangeData(self): self.SendData(self.Data)