#! /usr/bin/env python import spead64_48 as S import struct import sys pkt = ''.join([ S.pack(S.HDR_FMT, ((S.MAGIC, S.VERSION, 3),)), S.pack(S.ITEM_FMT, ((0, S.FRAME_CNT_ID, 3),)), S.pack(S.ITEM_FMT, ((1, 0x3333, 0),)), S.pack(S.ITEM_FMT, ((0, S.PAYLOAD_LENGTH_ID, 8),)), struct.pack('>1024d', *[3.1415]*1024)]) cmd = sys.argv[-1] if cmd.startswith('SpeadPacket'): if cmd == 'SpeadPacket': while True: p = S._spead.SpeadPacket() p.unpack(pkt) elif cmd.split('.')[1] == 'unpack': p = S._spead.SpeadPacket() while True: p.unpack(pkt) elif cmd.split('.')[1] == 'pack': p = S._spead.SpeadPacket() p.unpack(pkt) while True: s = p.pack() elif cmd.split('.')[1] == 'set_items': p = S._spead.SpeadPacket() i = [(0, 5, 3)] * 20
import unittest import spead64_48 as S import spead64_48._spead as _S import struct ex_pkts = { '2-pkt-heap+next-pkt': [ ''.join([ S.pack(S.HDR_FMT, ((S.MAGIC, S.VERSION, S.ITEMSIZE, S.ADDRSIZE, 0, 5),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.HEAP_CNT_ID, 3),)), S.pack(S.ITEM_FMT, ((S.DIRECTADDR, 0x3333, 0),)), S.pack(S.ITEM_FMT, ((S.DIRECTADDR, 0x3334, 16),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.PAYLOAD_OFF_ID, 0),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.PAYLOAD_LEN_ID, 8),)), struct.pack('>d', 3.1415)]), ''.join([ S.pack(S.HDR_FMT, ((S.MAGIC, S.VERSION, S.ITEMSIZE, S.ADDRSIZE, 0, 3),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.HEAP_CNT_ID, 3),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.PAYLOAD_OFF_ID, 8),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.PAYLOAD_LEN_ID, 16),)), struct.pack('>d', 2.7182), struct.pack('>d', 1.4)]), ''.join([ S.pack(S.HDR_FMT, ((S.MAGIC, S.VERSION, S.ITEMSIZE, S.ADDRSIZE, 0, 3),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.HEAP_CNT_ID, 4),)), S.pack(S.ITEM_FMT, ((S.DIRECTADDR, 0x3333, 0),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.PAYLOAD_LEN_ID, 8),)), struct.pack('>d', 1.57)]), ], 'normal': ''.join([ S.pack(S.HDR_FMT, ((S.MAGIC, S.VERSION, S.ITEMSIZE, S.ADDRSIZE, 0, 3),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.HEAP_CNT_ID, 3),)),
def test_pack(self): self.assertEqual(S.pack(S.DEFAULT_FMT, ((2**32+2**8,),)), '\x01\x00\x00\x01\x00') self.assertEqual(S.pack(S.ITEM_FMT, ((0, 4, 8),)), '\x00\x00\x04\x00\x00\x00\x00\x08') self.assertEqual(S.pack(S.FORMAT_FMT, (('u', 8),)), 'u\x00\x00\x08')
#! /usr/bin/env python import spead64_48 as S import struct import sys pkt = ''.join([ S.pack(S.HDR_FMT, ((S.MAGIC, S.VERSION, 3), )), S.pack(S.ITEM_FMT, ((0, S.FRAME_CNT_ID, 3), )), S.pack(S.ITEM_FMT, ((1, 0x3333, 0), )), S.pack(S.ITEM_FMT, ((0, S.PAYLOAD_LENGTH_ID, 8), )), struct.pack('>1024d', *[3.1415] * 1024) ]) cmd = sys.argv[-1] if cmd.startswith('SpeadPacket'): if cmd == 'SpeadPacket': while True: p = S._spead.SpeadPacket() p.unpack(pkt) elif cmd.split('.')[1] == 'unpack': p = S._spead.SpeadPacket() while True: p.unpack(pkt) elif cmd.split('.')[1] == 'pack': p = S._spead.SpeadPacket() p.unpack(pkt) while True: s = p.pack() elif cmd.split('.')[1] == 'set_items': p = S._spead.SpeadPacket()
import unittest import spead64_48 as S import spead64_48._spead as _S import struct import os import time import socket #import logging; logging.basicConfig(level=logging.DEBUG) example_pkt = ''.join([ S.pack(S.HDR_FMT, ((S.MAGIC, S.VERSION, S.ITEMSIZE, S.ADDRSIZE, 0, 3),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.HEAP_CNT_ID, 3),)), S.pack(S.ITEM_FMT, ((S.DIRECTADDR, 0x3333, 0),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.PAYLOAD_LEN_ID, 8),)), struct.pack('>d', 3.1415)]) term_pkt = ''.join([ S.pack(S.HDR_FMT, ((S.MAGIC, S.VERSION, S.ITEMSIZE, S.ADDRSIZE, 0, 2),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.HEAP_CNT_ID, 0),)), S.pack(S.ITEM_FMT, ((S.IMMEDIATEADDR, S.STREAM_CTRL_ID, S.STREAM_CTRL_TERM_VAL),)), ]) example_heap = { S.HEAP_CNT_ID: (S.IMMEDIATEADDR, '\x00\x00\x00\x00\x03'), 0x3333: (S.DIRECTADDR, struct.pack('>d', 3.1415)), } class RawUDPrx: def __init__(self, port, rx_buflen=8192): self._udp_in = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self._udp_in.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, rx_buflen)