mirror of
https://github.com/No-Chicken/Power-Pico.git
synced 2026-04-03 13:02:36 +08:00
61 lines
1.4 KiB
C
61 lines
1.4 KiB
C
// 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
|