#include "preset_ai.h" #include "FreeRTOS.h" #include "task.h" #include "settings_api.h" #include "triggers.h" #include #if defined (MAI_12) #undef DBG #define DBG if(1) hyst_state_t hyst_state[AI_COMMON_NUMBER]; // void preset_init(void) { for (int i = 0; i < AI_COMMON_NUMBER; i++) { hyst_state[i] = hyst_idle; } } // void preset_set_state(void) { for (int i = 0; i < AI_COMMON_NUMBER; i++) { if (((settings.preset_state_bits >> i) & 1) != settings.preset[i].state) { settings.preset[i].state = ((settings.preset_state_bits >> 1) & 1); } } } // void preset_process(float *data) { bool high = false; bool low = false; for (int i = 0; i < AI_COMMON_NUMBER; i++) { if (settings.preset[i].state == 0) continue; // 0 - тип уставки - фиксированное значение if (settings.preset[i].type == 0) { high = trig_high_value(data[i], 0, settings.preset[i].max, settings.preset[i].hyst, &hyst_state[i]); low = trig_low_value(data[i], settings.preset[i].min, 0, settings.preset[i].hyst, &hyst_state[i]); // Запись в журнале событий if (high) { DBG printf("Channel %i, preset HIGH\r\n", i); } if (low) { DBG printf("Channel %i, preset LOW\r\n", i); } } } } #endif