#include "sender_task.h" #include "sampler_task.h" #include "ringbuf.h" #include #include extern "C" { #include "freertos/FreeRTOS.h" #include "freertos/task.h" } static uint32_t msg_id = 1; static void sender_task(void *arg) { int data[RINGBUF_SIZE]; while (1) { vTaskDelay(pdMS_TO_TICKS(1000)); // 1 Гц ringbuf_t *rb = sampler_get_buffer(); ringbuf_copy(rb, data); time_t now = time(NULL); // формируем JSON printf("{\"v\":1,\"t\":\"t\",\"id\":%lu,\"ts\":%lld,\"d\":1,\"p\":{", (unsigned long)msg_id++, (long long)now); printf("\"m\":\"v\",\"s\":\"adc35\",\"u\":\"raw\",\"v\":["); for (int i = 0; i < RINGBUF_SIZE; i++) { printf("[%d,%d]%s", i, data[i], (i < RINGBUF_SIZE - 1) ? "," : ""); } printf("]}}\n"); } } void sender_task_start() { xTaskCreate( sender_task, "sender", 4096, NULL, 5, NULL ); }