1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #include "preset_ai.h"
- #include "FreeRTOS.h"
- #include "task.h"
- #include "settings_api.h"
- #include "triggers.h"
- #include <stdio.h>
- #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
|