def record(self, packet): # make sure packet doesn't exist first if packet in self.packets: raise ValueError("This packet has already been recorded in the history.") # Attempt to delete from history only if we are removing from queue if self.packets[0] is not None: del self[self.packets[0].request.header.id] # Add new packet to history self.packets.append(packet) self[packet.request.header.id] = (IPBusConstruct.build(packet.request), IPBusConstruct.build(packet.response))
def __init__(self, blob): self.request = None self.response = None self._raw = blob # if little-endian, we need to swap when reading and writing self.littleendian = bool((ord(self._raw[0])&0xf0)>>4 == 0xf) # do some flipping raw = self.raw if self.littleendian: raw = byteswap(raw) self.request = IPBusConstruct.parse(raw) self.response = IPBusConstruct.parse(raw)
def __init__(self, blob): self.request = None self.response = None self._raw = blob # if little-endian, we need to swap when reading and writing self.littleendian = bool((ord(self._raw[0]) & 0xf0) >> 4 == 0xf) # do some flipping raw = self.raw if self.littleendian: raw = byteswap(raw) self.request = IPBusConstruct.parse(raw) self.response = IPBusConstruct.parse(raw)
def record(self, packet): # make sure packet doesn't exist first if packet in self.packets: raise ValueError( "This packet has already been recorded in the history.") # Attempt to delete from history only if we are removing from queue if self.packets[0] is not None: del self[self.packets[0].request.header.id] # Add new packet to history self.packets.append(packet) self[packet.request.header.id] = (IPBusConstruct.build( packet.request).encode('hex'), IPBusConstruct.build( packet.response).encode('hex')) return packet