run_classifier
function is always a signal_t
structure with raw sensor values. This structure has two properties:total_length
- the total number of values. This should be equal to EI_CLASSIFIER_DSP_INPUT_FRAME_SIZE
(from model_metadata.h
). E.g. if you have 3 sensor axes, 100Hz sensor data, and 2 seconds of data this should be 600.get_data
- a function that retrieves slices of data required by the DSP process. This is used in some DSP algorithms (like all audio-based ones) to page in the required data, and thus saves memory. Using this function you can store (f.e.) the raw data in flash or external RAM, and page it in when required.get_data
function expects floats to be returned, but you can use the int8_to_float and int16_to_float helper functions if your own buffers are int8_t
or int16_t
(useful to save memory). E.g.:run_impulse
. To control the size of the buffer that's used to read from the signal in this case you can set the EI_DSP_IMAGE_BUFFER_STATIC_SIZE
macro (which also allocates the buffer statically).EI_CLASSIFIER_ALLOCATION_STATIC=1
EI_DSP_IMAGE_BUFFER_STATIC_SIZE=1024