diff --git a/synapse/tests/test_ndtp.py b/synapse/tests/test_ndtp.py index d6404d8..113527c 100644 --- a/synapse/tests/test_ndtp.py +++ b/synapse/tests/test_ndtp.py @@ -199,9 +199,9 @@ def test_ndtp_header(): # Data too smol with pytest.raises(ValueError): NDTPHeader.unpack( - struct.pack("B", NDTP_VERSION) + + struct.pack(">I", DataType.kBroadband) + + struct.pack(">Q", 123) ) diff --git a/synapse/utils/ndtp.pyx b/synapse/utils/ndtp.pyx index 4a54ce5..b0fca4b 100644 --- a/synapse/utils/ndtp.pyx +++ b/synapse/utils/ndtp.pyx @@ -14,7 +14,7 @@ from synapse.api.datatype_pb2 import DataType cdef int DATA_TYPE_K_BROADBAND = DataType.kBroadband cdef int DATA_TYPE_K_SPIKETRAIN = DataType.kSpiketrain -cdef object NDTPHeader_STRUCT = struct.Struct("BIQH") NDTP_VERSION = 0x01 cdef int NDTPPayloadSpiketrain_BIT_WIDTH = 2 @@ -403,7 +403,7 @@ cdef class NDTPPayloadSpiketrain: clamped_counts[i] = min(self.spike_counts[i], max_value) # Pack the number of spikes (4 bytes) - payload += struct.pack("I", spike_counts_len) # Pack clamped spike counts spike_counts_bytes, _ = to_bytes( @@ -423,7 +423,7 @@ cdef class NDTPPayloadSpiketrain: f"Invalid spiketrain data size {len_data}: expected at least 4 bytes" ) - cdef int num_spikes = struct.unpack("I", data[:4])[0] cdef bytearray payload = data[4:] cdef int bits_needed = num_spikes * NDTPPayloadSpiketrain_BIT_WIDTH cdef int bytes_needed = (bits_needed + 7) // 8 @@ -452,7 +452,7 @@ cdef class NDTPHeader: cdef public long long timestamp cdef public int seq_number - STRUCT = struct.Struct("BIQH") # Define as a Python class attribute def __init__(self, int data_type, long long timestamp, int seq_number): self.data_type = data_type @@ -538,7 +538,7 @@ cdef class NDTPMessage: message += payload_bytes crc = NDTPMessage.crc16(message) - crc_bytes = struct.pack("H", crc) message += crc_bytes # Appending bytes to bytearray is acceptable @@ -557,7 +557,7 @@ cdef class NDTPMessage: cdef object payload = None header = NDTPHeader.unpack(data[:header_size]) - crc16_value = struct.unpack("H", bytes(data[-2:]))[0] pbytes = data[header_size:-2] pdtype = header.data_type