增加断网保存数据到FLASH,恢复联网重新补发,并加上标志位
This commit is contained in:
88
components/OFFLINE_STORAGE/include/OFFLINE_STORAGE.h
Normal file
88
components/OFFLINE_STORAGE/include/OFFLINE_STORAGE.h
Normal file
@@ -0,0 +1,88 @@
|
||||
#ifndef OFFLINE_STORAGE_H
|
||||
#define OFFLINE_STORAGE_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include "esp_err.h"
|
||||
|
||||
// 数据类型
|
||||
typedef enum {
|
||||
OFFLINE_DATA_TYPE_UNKNOWN = 0,
|
||||
OFFLINE_DATA_TYPE_MODBUS = 1, // MODBUS采集数据
|
||||
OFFLINE_DATA_TYPE_DEVICE_STATUS = 2, // 设备状态数据
|
||||
} offline_data_type_t;
|
||||
|
||||
/**
|
||||
* @brief 初始化离线存储模块
|
||||
*
|
||||
* @return ESP_OK 成功
|
||||
* 其他 失败
|
||||
*/
|
||||
esp_err_t offline_storage_init(void);
|
||||
|
||||
/**
|
||||
* @brief 存储离线数据
|
||||
*
|
||||
* @param data 数据内容(JSON字符串)
|
||||
* @param length 数据长度
|
||||
* @param data_type 数据类型
|
||||
* @return ESP_OK 成功
|
||||
* ESP_FAIL 失败
|
||||
*/
|
||||
esp_err_t offline_storage_store(const char *data, size_t length, offline_data_type_t data_type);
|
||||
|
||||
/**
|
||||
* @brief 读取最旧的离线数据
|
||||
*
|
||||
* @param buffer 输出缓冲区
|
||||
* @param max_len 缓冲区最大长度
|
||||
* @param out_data_type 输出数据类型
|
||||
* @return ESP_OK 成功
|
||||
* ESP_ERR_NOT_FOUND 没有数据
|
||||
* 其他 失败
|
||||
*/
|
||||
esp_err_t offline_storage_read_oldest(char *buffer, size_t max_len, offline_data_type_t *out_data_type);
|
||||
|
||||
/**
|
||||
* @brief 删除最旧的离线数据
|
||||
*
|
||||
* @return ESP_OK 成功
|
||||
* ESP_ERR_NOT_FOUND 没有数据
|
||||
* 其他 失败
|
||||
*/
|
||||
esp_err_t offline_storage_delete_oldest(void);
|
||||
|
||||
/**
|
||||
* @brief 获取离线数据数量
|
||||
*
|
||||
* @return 数据数量
|
||||
*/
|
||||
uint32_t offline_storage_get_count(void);
|
||||
|
||||
/**
|
||||
* @brief 检查是否有离线数据
|
||||
*
|
||||
* @return true 有数据
|
||||
* false 无数据
|
||||
*/
|
||||
bool offline_storage_has_data(void);
|
||||
|
||||
/**
|
||||
* @brief 清空所有离线数据
|
||||
*
|
||||
* @return ESP_OK 成功
|
||||
* 其他 失败
|
||||
*/
|
||||
esp_err_t offline_storage_clear_all(void);
|
||||
|
||||
/**
|
||||
* @brief 获取存储使用情况
|
||||
*
|
||||
* @param used 已使用字节数
|
||||
* @param total 总字节数
|
||||
* @return ESP_OK 成功
|
||||
* 其他 失败
|
||||
*/
|
||||
esp_err_t offline_storage_get_usage(size_t *used, size_t *total);
|
||||
|
||||
#endif // OFFLINE_STORAGE_H
|
||||
Reference in New Issue
Block a user