コード例 #1
0
 def test_collate_packet(self):
     pkt = CorrPacket()
     # Make sure a correctly formatted packet is accepted
     self.cb.collate_packet(pkt)
     # Make sure bad packets are rejected
     pkt.instrument_id = 5
     self.assertRaises(ValueError, self.cb.collate_packet, pkt)
コード例 #2
0
 def test_unpack_data(self):
     cp = CorrPacket()
     cp.unpack_header(PACKET)
     cp.unpack_data(PACKET[cp.header_size():])
     print "Packet data is ", len(cp.get_data()), "bytes long"
     data = struct.unpack('II', cp.get_data())  # use native endianess
     self.assertEqual(data, OPTS['data'])
コード例 #3
0
 def test_setattributes(self):
     cp = CorrPacket()
     cp.n_options = 7
     self.assertEqual(cp.n_options, 7)
     cp.instrument_id = 7
     self.assertEqual(cp.instrument_id, 7)
     cp.instance_id = 7
     self.assertEqual(cp.instance_id, 7)
     cp.engine_id = 7
     self.assertEqual(cp.engine_id, 7)
     cp.timestamp = 7
     self.assertEqual(cp.timestamp, 7)
     cp.heap_off = 7
     self.assertEqual(cp.heap_off, 7)
     cp.currerr = 7
     self.assertEqual(cp.currerr, 7)
     cp.set_data('abcdefgh')
     self.assertEqual(cp.get_data(), 'abcdefgh')
コード例 #4
0
 def test_size(self):
     cp = CorrPacket()
     self.assertEqual(cp.size(), HEADER_SIZE)
コード例 #5
0
 def setUp(self):
     self.cp = CorrPacket()
     self.cp.unpack_header(PACKET)
コード例 #6
0
 def test_pack(self):
     cp = CorrPacket()
     cp.unpack(PACKET)
     data = cp.pack()
     print "Packlen:", len(data), "Origlen:", len(PACKET)
     self.assertEqual(data, PACKET)
コード例 #7
0
 def test_pack_data(self):
     cp = CorrPacket()
     cp.unpack(PACKET)
     data = cp.pack_data()
     self.assertEqual(data, PACKET[cp.header_size():])
コード例 #8
0
 def test_unpack(self):
     cp = CorrPacket()
     cp.unpack(PACKET)
     for k in OPTS:
         if not k in ['data']: self.assertEqual(getattr(cp, k), OPTS[k])
     self.assertRaises(ValueError, cp.unpack, BAD_PACKET1)
コード例 #9
0
 def test_unpack_header(self):
     cp = CorrPacket()
     cp.unpack_header(PACKET)
     for k in OPTS:
         if not k in ['data']: self.assertEqual(getattr(cp, k), OPTS[k])
コード例 #10
0
    'engine_id': 59,
    'timestamp': 64,
    'heapoff': 128,
    'packetlen': 8,
    'packetcount': 1,
    'currerr': 0,
    'heaplen': 8,
    'data': (55, 22),
}

PACKET = struct.pack('>HHHH', PKT_ID, 3, 0, OPTS['n_options']) + \
    struct.pack('>HHHH', 50, OPTS['instrument_id'], OPTS['instance_id'], OPTS['engine_id']) + \
    struct.pack('>HHI', 3, 0, OPTS['timestamp']) + \
    struct.pack('>HHI', 52, 0, OPTS['currerr']) + \
    struct.pack('>H', 51) + bitstring.BitString(uintbe=OPTS['packetlen'], length=24).bytes + \
    bitstring.BitString(uintbe=OPTS['packetlen'], length=24).bytes + \
    struct.pack('>HHI', 5, 0, OPTS['heapoff']) + \
    struct.pack('>HHI', 53, 0, 0) + \
    struct.pack('>II',  *OPTS['data'])

cp = CorrPacket()
cp.unpack_header(PACKET)
cp.unpack_data(PACKET[cp.header_size():], len(PACKET[cp.header_size():]))
print "header:", cp.header_size()
print "data:", len(cp.get_data())
print "data size:", cp.size()
print "instance_id", cp.instance_id
print "instrument_id", cp.instrument_id
print "engine_id", cp.engine_id
print struct.unpack('>II', cp.get_data())