Доработка, исправление предупреждений.
This commit is contained in:
4
STM32_CO2_NODE/FATFS/App/IPC/queues.cpp
Normal file
4
STM32_CO2_NODE/FATFS/App/IPC/queues.cpp
Normal file
@@ -0,0 +1,4 @@
|
||||
#include "queues.hpp"
|
||||
|
||||
QueueHandle_t g_sdQueue;
|
||||
QueueHandle_t g_canQueue;
|
||||
6
STM32_CO2_NODE/FATFS/App/IPC/queues.hpp
Normal file
6
STM32_CO2_NODE/FATFS/App/IPC/queues.hpp
Normal file
@@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
#include "FreeRTOS.h"
|
||||
#include "queue.h"
|
||||
|
||||
extern QueueHandle_t g_sdQueue;
|
||||
extern QueueHandle_t g_canQueue;
|
||||
9
STM32_CO2_NODE/FATFS/App/Models/co2_data.hpp
Normal file
9
STM32_CO2_NODE/FATFS/App/Models/co2_data.hpp
Normal file
@@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
struct CO2Data
|
||||
{
|
||||
uint32_t timestamp;
|
||||
uint16_t ppm;
|
||||
};
|
||||
26
STM32_CO2_NODE/FATFS/App/Tasks/co2_task.cpp
Normal file
26
STM32_CO2_NODE/FATFS/App/Tasks/co2_task.cpp
Normal file
@@ -0,0 +1,26 @@
|
||||
#include "co2_task.hpp"
|
||||
#include "mhz19c.hpp"
|
||||
#include "queues.hpp"
|
||||
#include "co2_data.hpp"
|
||||
|
||||
extern MHZ19C sensor;
|
||||
|
||||
void CO2Task_Run() {
|
||||
uint16_t ppm;
|
||||
|
||||
while (1) {
|
||||
sensor.requestCO2();
|
||||
HAL_Delay(100);
|
||||
|
||||
if (sensor.readCO2(ppm)) {
|
||||
CO2Data data;
|
||||
data.ppm = ppm;
|
||||
data.timestamp = HAL_GetTick();
|
||||
|
||||
xQueueSend(g_sdQueue, &data, 0);
|
||||
xQueueSend(g_canQueue, &data, 0);
|
||||
}
|
||||
|
||||
osDelay(1000);
|
||||
}
|
||||
}
|
||||
3
STM32_CO2_NODE/FATFS/App/Tasks/co2_task.hpp
Normal file
3
STM32_CO2_NODE/FATFS/App/Tasks/co2_task.hpp
Normal file
@@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
void CO2Task_RunOnce();
|
||||
17
STM32_CO2_NODE/FATFS/App/Tasks/sd_task.cpp
Normal file
17
STM32_CO2_NODE/FATFS/App/Tasks/sd_task.cpp
Normal file
@@ -0,0 +1,17 @@
|
||||
#include "sd_task.hpp"
|
||||
#include "sdcard.hpp"
|
||||
#include "queues.hpp"
|
||||
|
||||
extern SDCardLogger sd;
|
||||
|
||||
void SDTask_Run() {
|
||||
CO2Data data;
|
||||
|
||||
while (1) {
|
||||
if (xQueueReceive(g_sdQueue, &data, portMAX_DELAY)) {
|
||||
char line[64];
|
||||
sprintf(line, "CO2:%d t:%lu", data.ppm, data.timestamp);
|
||||
sd.write(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
13
STM32_CO2_NODE/FATFS/App/Tasks/sd_task.hpp
Normal file
13
STM32_CO2_NODE/FATFS/App/Tasks/sd_task.hpp
Normal file
@@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
#include "fatfs.h"
|
||||
#include <string>
|
||||
|
||||
class SDCardLogger {
|
||||
public:
|
||||
bool init();
|
||||
bool write(const std::string &line);
|
||||
|
||||
private:
|
||||
FIL file;
|
||||
FATFS fs;
|
||||
};
|
||||
Reference in New Issue
Block a user