func_queue_record.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*********************************************************
  2. //file :hd_dev_gpio.h
  3. //author :libo
  4. //date :2020/05/10
  5. //version :V1.0
  6. //brief :GSP HAL层GPIO接口H文件
  7. *********************************************************/
  8. #ifndef FUNC_QUEUE_RECORD_H
  9. #define FUNC_QUEUE_RECORD_H
  10. /* Includes----------------------------------------------------------------------------------*/
  11. #include "cmsis_os.h" /* _FS_REENTRANT set to 1 and CMSIS API chosen */
  12. /* Public macro------------------------------------------------------------------------------*/
  13. #define QUEUE_MSG_Q_NUM 8
  14. #define QUEUE_MSG_ITEM_SIZE 256
  15. /* Public define-----------------------------------------------------------------------------*/
  16. /* Public typedef----------------------------------------------------------------------------*/
  17. typedef struct{
  18. QueueHandle_t hQueue; //信息队列句柄
  19. uint32_t remain_size; //队列剩余大小
  20. uint32_t used_size; //队列使用大小
  21. uint32_t total_size; //消息队列总大小
  22. }record_queue_object;
  23. typedef struct queue_record_object
  24. {
  25. uint8_t link_ok; //用于标识当前状态是1:读取,0:写入;
  26. uint8_t flash_ok; //存储器状态标志
  27. uint32_t running;
  28. uint32_t wr_idx;
  29. uint32_t msg_cnt;
  30. uint32_t wr_cnt;
  31. uint32_t rd_cnt;
  32. uint8_t opt_flag;
  33. char buf[QUEUE_MSG_ITEM_SIZE];
  34. uint32_t buf_len;
  35. char cmd[32];
  36. int32_t (*flash_pop) (void *buf, uint32_t len);
  37. int32_t (*flash_push)(void *buf, uint32_t len);
  38. }queue_record_object;
  39. /* public function---------------------------------------------------------------------------*/
  40. extern record_queue_object lifo_queue_obj;
  41. extern record_queue_object fifo_queue_obj;
  42. extern queue_record_object queue_record_obj;
  43. void func_record_queue_init(void);
  44. void func_record_queue_work(void);
  45. void func_record_queue_main(void const *argument);
  46. void func_record_queue_check(record_queue_object * queue_obj);
  47. void func_record_queue_update(void);
  48. uint32_t func_record_queue_write(void *buf ,uint32_t len);
  49. uint32_t func_record_queue_read(void *buf ,uint32_t len);
  50. uint32_t func_record_queue_obj_cnt(void);
  51. void func_record_queue_link_set(uint8_t stat);
  52. uint8_t func_record_queue_link_get(void);
  53. uint8_t func_record_queue_flash_get(void);
  54. uint8_t func_record_queue_flash_set(uint8_t stat);
  55. void func_record_queue_test(void);
  56. #endif /*********FUNC_QUEUE_RECORD_H****************/
  57. /******************************the end of file************************************************/