@@ -8,6 +8,7 @@ from ..constants import SERIAL_COMM_PAYLOAD_INDEX
8
8
from ..constants import SERIAL_COMM_CHECKSUM_LENGTH_BYTES
9
9
from ..constants import SERIAL_COMM_DATA_SAMPLE_LENGTH_BYTES
10
10
from ..constants import SERIAL_COMM_MAGIC_WORD_BYTES
11
+ from ..constants import NUM_MAG_SENSORS_PER_WELL
11
12
from ..constants import SERIAL_COMM_PACKET_METADATA_LENGTH_BYTES
12
13
from ..constants import SERIAL_COMM_PACKET_REMAINDER_SIZE_LENGTH_BYTES
13
14
from ..constants import SERIAL_COMM_TIME_OFFSET_LENGTH_BYTES
@@ -42,7 +43,7 @@ DEF NUM_CHANNELS_PER_SENSOR = 3
42
43
43
44
# these values exist only for importing the constants defined above into the python test suite
44
45
SERIAL_COMM_MAGIC_WORD_LENGTH_BYTES_CY = MAGIC_WORD_LEN
45
- SERIAL_COMM_NUM_CHANNELS_PER_SENSOR_CY = NUM_CHANNELS_PER_SENSOR
46
+ NUM_CHANNELS_PER_MAG_SENSOR_CY = NUM_CHANNELS_PER_SENSOR
46
47
47
48
# convert python constants to C types
48
49
cdef char [MAGIC_WORD_LEN + 1 ] MAGIC_WORD = SERIAL_COMM_MAGIC_WORD_BYTES + bytes(1 )
@@ -54,13 +55,15 @@ cdef int MIN_PACKET_SIZE = SERIAL_COMM_PACKET_METADATA_LENGTH_BYTES
54
55
55
56
cdef int SERIAL_COMM_TIME_OFFSET_LENGTH_BYTES_C_INT = SERIAL_COMM_TIME_OFFSET_LENGTH_BYTES
56
57
cdef int SERIAL_COMM_DATA_SAMPLE_LENGTH_BYTES_C_INT = SERIAL_COMM_DATA_SAMPLE_LENGTH_BYTES
57
- cdef int SERIAL_COMM_NUM_CHANNELS_PER_SENSOR_C_INT = NUM_CHANNELS_PER_SENSOR
58
+ cdef int NUM_CHANNELS_PER_MAG_SENSOR_C_INT = NUM_CHANNELS_PER_SENSOR
59
+ cdef int NUM_MAG_SENSORS_PER_WELL_C_INT = NUM_MAG_SENSORS_PER_WELL
58
60
59
61
cdef int SERIAL_COMM_PAYLOAD_INDEX_C_INT = SERIAL_COMM_PAYLOAD_INDEX
60
62
cdef int SERIAL_COMM_STIM_STATUS_PACKET_TYPE_C_INT = SerialCommPacketTypes.STIM_STATUS
61
63
62
64
63
65
cdef int TOTAL_NUM_WELLS_C_INT = NUM_WELLS
66
+ cdef int TOTAL_NUM_SENSORS_C_INT = TOTAL_NUM_WELLS_C_INT * NUM_MAG_SENSORS_PER_WELL_C_INT
64
67
65
68
66
69
cdef packed struct Packet:
@@ -203,7 +206,7 @@ cpdef dict parse_magnetometer_data(
203
206
cdef int magnetometer_data_packet_len = len (mag_data_packet_bytes) // num_mag_data_packets
204
207
205
208
cdef int num_time_offsets = TOTAL_NUM_SENSORS_C_INT
206
- cdef int num_data_channels = TOTAL_NUM_SENSORS_C_INT * SERIAL_COMM_NUM_CHANNELS_PER_SENSOR_C_INT
209
+ cdef int num_data_channels = TOTAL_NUM_SENSORS_C_INT * NUM_CHANNELS_PER_MAG_SENSOR_C_INT
207
210
208
211
# arrays for storing parsed data
209
212
time_indices = np.empty(num_mag_data_packets, dtype = np.uint64, order = " C" )
@@ -233,14 +236,14 @@ cpdef dict parse_magnetometer_data(
233
236
for sensor in range (TOTAL_NUM_SENSORS_C_INT):
234
237
time_offsets_view[time_offset_arr_idx, data_packet_idx] = sensor_data_ptr.time_offset
235
238
time_offset_arr_idx += 1
236
- for channel in range (SERIAL_COMM_NUM_CHANNELS_PER_SENSOR_C_INT ):
239
+ for channel in range (NUM_CHANNELS_PER_MAG_SENSOR_C_INT ):
237
240
data_view[channel_arr_idx, data_packet_idx] = sensor_data_ptr.data_points[channel]
238
241
channel_arr_idx += 1
239
242
# shift SensorData ptr by appropriate amount
240
243
sensor_data_ptr = < SensorData * > (
241
244
(< uint8_t * > sensor_data_ptr)
242
245
+ SERIAL_COMM_TIME_OFFSET_LENGTH_BYTES_C_INT
243
- + (SERIAL_COMM_NUM_CHANNELS_PER_SENSOR_C_INT * SERIAL_COMM_DATA_SAMPLE_LENGTH_BYTES_C_INT)
246
+ + (NUM_CHANNELS_PER_MAG_SENSOR_C_INT * SERIAL_COMM_DATA_SAMPLE_LENGTH_BYTES_C_INT)
244
247
)
245
248
# increment idxs
246
249
bytes_idx += magnetometer_data_packet_len
0 commit comments