#include "sensors.h"
#include <stddef.h>

size_t
get_target_sensors(const sensor_config_t* sensors,
                   size_t max_sensors,
                   size_t iteration,
                   const sensor_t* target_sensors[])
{
    size_t target_sensor_count = 0;
    for (size_t i = 0; i < max_sensors; i++) {
        if (iteration % sensors[i].interval == 0) {
            target_sensors[target_sensor_count++] =
                &sensors[i].sensor;
        }
    }
    return target_sensor_count;
}

void sensor_data_collect(const sensor_t* sensors[],
                         size_t num_sensors,
                         sensor_data_t* values)
{
    for (size_t i = 0; i < num_sensors; i++) {
        float value = sensors[i]->get_value();
        values[i].name = sensors[i]->name;
        values[i].value = value;
    }
}
