func_ram_record.c 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  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. #if USE_RAM_RECORD==0
  28. void func_ram_record_init(void) //记录文件初始化
  29. {
  30. return;
  31. }
  32. uint32_t func_ram_record_write(uint8_t *buf ,uint32_t len)
  33. {
  34. return 0;
  35. }
  36. uint32_t func_ram_record_read(uint8_t *buf ,uint32_t len)
  37. {
  38. return 0;
  39. }
  40. uint32_t func_ram_record_delete(uint8_t *buf,uint32_t len)
  41. {
  42. return 0;
  43. }
  44. #else
  45. #include "Data_deal.h"
  46. /* Private includes ----------------------------------------------------------*/
  47. #include "lib_buffer.h"
  48. #include "func_ram_record.h"
  49. /* Private typedef -----------------------------------------------------------*/
  50. /* Private define ------------------------------------------------------------*/
  51. /* Private macro -------------------------------------------------------------*/
  52. /* Private variables ---------------------------------------------------------*/
  53. uint8_t ram_record_buf[DATA_UNIT_NUM][DATA_UNIT_SIZE] = {0};
  54. TBuffferOBJ ram_record_obj = {0};
  55. TBufffer ram_record_handle = {0};
  56. /* Private function prototypes -----------------------------------------------*/
  57. /* Private user code ---------------------------------------------------------*/
  58. /**
  59. * @brief 指定长度len,buf内容写入文件
  60. * @retval int
  61. */
  62. uint32_t func_ram_record_write(uint8_t *buf ,uint32_t len)
  63. {
  64. uint32_t data_len = TBuffer_Push(ram_record_handle, (void *)buf, (int) len);
  65. return data_len;
  66. }
  67. /**
  68. * @brief The application entry point.
  69. * @retval int
  70. */
  71. uint32_t func_ram_record_read(uint8_t *buf, uint32_t len)
  72. {
  73. uint32_t data_len = TBuffer_Peek(ram_record_handle, (void *)buf, (int) len);
  74. return data_len;
  75. }
  76. uint32_t func_ram_record_delete(uint8_t *buf,uint32_t len)
  77. {
  78. uint32_t read_len = TBuffer_Pop(ram_record_handle, (void *)buf, (int) len);
  79. return read_len;
  80. }
  81. void func_ram_record_init(void)
  82. {
  83. ram_record_handle = TBuffer_Init(&ram_record_obj, ram_record_buf, sizeof(ram_record_buf));
  84. }
  85. typedef struct record_test_object
  86. {
  87. uint32_t cnts;
  88. uint8_t test_flag;
  89. char buf[32];
  90. }record_test_OBJ;
  91. record_test_OBJ record_test_obj;
  92. void func_ram_record_test(void)
  93. {
  94. record_test_obj.cnts++;
  95. sprintf(record_test_obj.buf,"XX%08xXX",record_test_obj.cnts);
  96. switch(record_test_obj.test_flag)
  97. {
  98. case 0:
  99. {
  100. func_ram_record_write((uint8_t *)record_test_obj.buf ,strlen(record_test_obj.buf));
  101. }break;
  102. case 1:
  103. {
  104. func_ram_record_read((uint8_t *)record_test_obj.buf ,sizeof(record_test_obj.buf));
  105. func_ram_record_delete((uint8_t *)record_test_obj.buf ,sizeof(record_test_obj.buf));
  106. func_ram_record_read((uint8_t *)record_test_obj.buf ,sizeof(record_test_obj.buf));
  107. }break;
  108. default:
  109. {
  110. func_ram_record_read((uint8_t *)record_test_obj.buf ,sizeof(record_test_obj.buf));
  111. }break;
  112. }
  113. }
  114. void func_ram_record_main(void const *argument)
  115. {
  116. osDelay(1000);//
  117. func_ram_record_init();
  118. while(1)
  119. {
  120. func_ram_record_test();
  121. osDelay(1000);
  122. }
  123. }
  124. #endif //------------------------USE_RAM_RECORD----------------------------
  125. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/