func_ram_record.c 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * @file : main.c
  5. * @brief : Main program body
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
  10. * All rights reserved.</center></h2>
  11. *
  12. * This software component is licensed by ST under BSD 3-Clause license,
  13. * the "License"; You may not use this file except in compliance with the
  14. * License. You may obtain a copy of the License at:
  15. * opensource.org/licenses/BSD-3-Clause
  16. *
  17. ******************************************************************************
  18. */
  19. /* USER CODE END Header */
  20. /* Includes ------------------------------------------------------------------*/
  21. #include <stdint.h>
  22. #include <string.h>
  23. #include <stdlib.h>
  24. #include <stdbool.h>
  25. #include "cmsis_os.h"
  26. #include "main.h"
  27. #define USE_RAM_RECORD 0
  28. #if USE_RAM_RECORD==0
  29. void func_ram_record_init(void) //记录文件初始化
  30. {
  31. return;
  32. }
  33. uint32_t func_ram_record_write(uint8_t *buf ,uint32_t len)
  34. {
  35. return 0;
  36. }
  37. uint32_t func_ram_record_read(uint8_t *buf ,uint32_t len)
  38. {
  39. return 0;
  40. }
  41. uint32_t func_ram_record_delete(uint8_t *buf,uint32_t len)
  42. {
  43. return 0;
  44. }
  45. #else
  46. #include "Data_deal.h"
  47. /* Private includes ----------------------------------------------------------*/
  48. #include "lib_buffer.h"
  49. #include "func_ram_record.h"
  50. /* Private typedef -----------------------------------------------------------*/
  51. /* Private define ------------------------------------------------------------*/
  52. /* Private macro -------------------------------------------------------------*/
  53. /* Private variables ---------------------------------------------------------*/
  54. uint8_t ram_record_buf[DATA_UNIT_NUM][DATA_UNIT_SIZE] = {0};
  55. TBuffferOBJ ram_record_obj = {0};
  56. TBufffer ram_record_handle = {0};
  57. /* Private function prototypes -----------------------------------------------*/
  58. /* Private user code ---------------------------------------------------------*/
  59. /**
  60. * @brief 指定长度len,buf内容写入文件
  61. * @retval int
  62. */
  63. uint32_t func_ram_record_write(uint8_t *buf ,uint32_t len)
  64. {
  65. uint32_t data_len = TBuffer_Push(ram_record_handle, (void *)buf, (int) len);
  66. return data_len;
  67. }
  68. /**
  69. * @brief The application entry point.
  70. * @retval int
  71. */
  72. uint32_t func_ram_record_read(uint8_t *buf, uint32_t len)
  73. {
  74. uint32_t data_len = TBuffer_Peek(ram_record_handle, (void *)buf, (int) len);
  75. return data_len;
  76. }
  77. uint32_t func_ram_record_delete(uint8_t *buf,uint32_t len)
  78. {
  79. uint32_t read_len = TBuffer_Pop(ram_record_handle, (void *)buf, (int) len);
  80. return read_len;
  81. }
  82. void func_ram_record_init(void)
  83. {
  84. ram_record_handle = TBuffer_Init(&ram_record_obj, ram_record_buf, sizeof(ram_record_buf));
  85. }
  86. typedef struct record_test_object
  87. {
  88. uint32_t cnts;
  89. uint8_t test_flag;
  90. char buf[32];
  91. }record_test_OBJ;
  92. record_test_OBJ record_test_obj;
  93. void func_ram_record_test(void)
  94. {
  95. record_test_obj.cnts++;
  96. sprintf(record_test_obj.buf,"XX%08xXX",record_test_obj.cnts);
  97. switch(record_test_obj.test_flag)
  98. {
  99. case 0:
  100. {
  101. func_ram_record_write((uint8_t *)record_test_obj.buf ,strlen(record_test_obj.buf));
  102. }break;
  103. case 1:
  104. {
  105. func_ram_record_read((uint8_t *)record_test_obj.buf ,sizeof(record_test_obj.buf));
  106. func_ram_record_delete((uint8_t *)record_test_obj.buf ,sizeof(record_test_obj.buf));
  107. func_ram_record_read((uint8_t *)record_test_obj.buf ,sizeof(record_test_obj.buf));
  108. }break;
  109. default:
  110. {
  111. func_ram_record_read((uint8_t *)record_test_obj.buf ,sizeof(record_test_obj.buf));
  112. }break;
  113. }
  114. }
  115. void func_ram_record_main(void const *argument)
  116. {
  117. osDelay(1000);//
  118. func_ram_record_init();
  119. while(1)
  120. {
  121. func_ram_record_test();
  122. osDelay(1000);
  123. }
  124. }
  125. #endif //------------------------USE_RAM_RECORD----------------------------
  126. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/