增加queue操作

This commit is contained in:
不吃油炸鸡
2025-09-22 21:40:13 +08:00
parent 0515eeab16
commit 277d6b7218
2 changed files with 163 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
// data_queue.h
#ifndef DATA_QUEUE_H
#define DATA_QUEUE_H
#include <stdint.h>
#include <stddef.h>
// 队列句柄(不透明指针)
typedef struct Data_Queue* QueueHandle_t;
/**
* @brief 创建一个队列
* @param length: 队列最大长度
* @return 队列句柄,失败返回 NULL
*/
QueueHandle_t queue_create(size_t length);
/**
* @brief 销毁队列
* @param Data_Queue: 队列句柄
*/
void queue_destroy(QueueHandle_t Data_Queue);
/**
* @brief 入队Push
* @param Data_Queue: 队列句柄
* @param item: 指向要入队的数据
* @return 0=成功,-1=失败(队列满)
*/
int queue_push(QueueHandle_t Data_Queue, float item);
/**
* @brief 出队Pop
* @param Data_Queue: 队列句柄
* @param item: 指向接收数据的缓冲区
* @return 0=成功,-1=失败(队列空)
*/
int queue_pop(QueueHandle_t Data_Queue, float *item);
/**
* @brief 获取队列中当前元素的平均值(仅适用于数值类型)
* @param Data_Queue: 队列句柄
* @return 平均值,若队列空则返回 0.0
*/
double queue_average(QueueHandle_t Data_Queue);
/**
* @brief 获取队列当前大小
*/
size_t queue_size(QueueHandle_t Data_Queue);
/**
* @brief 获取队列最大容量
*/
size_t queue_capacity(QueueHandle_t Data_Queue);
extern QueueHandle_t global_voltage_queue;
extern QueueHandle_t global_current_queue;
#endif // DATA_QUEUE_H