4.3 Data encoding for ADC hits¶
crono_packet::data, that is, the packet-data payload,
depends on ndigo6g12_configuration::output_mode. The length of
the data array is encoded in
crono_packet::length. Be aware that
length is in multiples of 64 bit, while
the size of the fields of data depends on
type.
Thus, reading packet data requires the following steps:
Depending on
crono_packet::type, multiplylengthappropriately. E.g., iftypeisCRONO_PACKET_TYPE_16_BIT_SIGNED,lengthhas to be multiplied by 4 (since 4 \(\times\) 16 bit = 64 bit).Cast
dataaccording totype. E.g., iftypeisCRONO_PACKET_TYPE_16_BIT_SIGNED, castdatatoint16_t.
4.3.1 NDIGO6G12_OUTPUT_MODE_SIGNED16¶
Raw data of the ADC is mapped to the range of a signed16 integer (−32768 to
32767). Packet data must be cast to int16_t.
4.3.2 NDIGO6G12_OUTPUT_MODE_RAW¶
Packet data is returned in the native range of the ADC (0 to 4095).
It must be cast to int16_t.
Data layout:
Bit |
15 |
14 |
13 |
12 |
11 |
10 |
… |
0 |
Data |
0 |
0 |
control bits |
sample data |
||||
4.3.3 NDIGO6G12_OUTPUT_MODE_RAW_NO_CB¶
Packet data is returned in the native range of the ADC (0 to 4095).
It must be cast to int16_t. Unlike
NDIGO6G12_OUTPUT_MODE_RAW, it does not contain control bits.
Attention
NDIGO6G12_OUTPUT_MODE_RAW and NDIGO6G12_OUTPUT_MODE_RAW_NO_CB
are useful for debugging purposes.
They are not supported for user applications. Use
NDIGO6G12_OUTPUT_MODE_SIGNED16 instead.
4.3.4 NDIGO6G12_OUTPUT_MODE_SIGNED32¶
Only used if ndigo6g12_init_parameters::application_type is
NDIGO6G12_APP_TYPE_AVRG. See Section 4.5 for more
information.