log_app.c 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #include "TinyLog.h"
  2. #include "log_app.h"
  3. #include "variable.h"
  4. #include <string.h>
  5. //记录对象
  6. static tiny_log_t mylog;
  7. /**
  8. * 记录数据初始化
  9. *
  10. * @author LXZ (121219)
  11. *
  12. * @param void
  13. */
  14. void log_app_init(void) {
  15. tiny_log_init(&mylog, &user_datas[1024], 128);
  16. }
  17. /**
  18. * 执行记录处理功能,报错条件触发记录,读取显示
  19. *
  20. * @author LXZ (121219)
  21. *
  22. * @param void
  23. */
  24. void log_app_run(void) {
  25. int i = 0;
  26. int size = 0;
  27. char ntype = 0;
  28. int index = 0;
  29. unsigned char log_data[13];
  30. //条件触发存储,条件与存储内容用户自己决定,借口预留了一个字节宽度识别码
  31. //后面读取时可以根据该识别码来识别数据类型,进行数据格式还原。
  32. if (M0010) {
  33. M0010 = 0;
  34. unsigned char data[13];
  35. //unsigned char ntype;
  36. ntype = 1;
  37. memset(data, ntype, 13);
  38. tiny_log_insert(&mylog, 0xff - (ntype & 0xff), &data[0], sizeof(data));
  39. }
  40. if (M0011) {
  41. M0011 = 0;
  42. unsigned char data[10];
  43. //unsigned char ntype;
  44. ntype = 2;
  45. memset(data, ntype, sizeof(data));
  46. tiny_log_insert(&mylog, 0xff - (ntype & 0xff), &data[0], sizeof(data));
  47. }
  48. if (M0012) {
  49. M0012 = 0;
  50. unsigned char data[5];
  51. //unsigned char ntype;
  52. ntype = 3;
  53. memset(data, ntype, sizeof(data));
  54. tiny_log_insert(&mylog, 0xff - (ntype & 0xff), &data[0], sizeof(data));
  55. }
  56. //重置开始指针
  57. tiny_log_beign_read(&mylog);
  58. memset(&log_data[0], 0, sizeof(log_data));
  59. memset(&user_datas[512],0,256);
  60. do {
  61. //条目从最旧读取,每次读取都会向后查找下一条记录
  62. size = tiny_log_foreace_read(&mylog, &ntype, (void *)&log_data[0]);
  63. //这里显示数据需要放到哪里的显示的地方只是示例
  64. if (size >= 0) {
  65. user_datas[512 + 14 * i] = ntype;
  66. for (index = 0; index < size; index++) {
  67. user_datas[512 + 14 * i + index] = log_data[index];
  68. }
  69. }
  70. i++;
  71. } while (size >= 0);
  72. }
  73. /**
  74. * 保存记录数据,,这里只是对内存进行处理,数据应该自己存到对应介质
  75. *
  76. * @author LXZ (121219)
  77. *
  78. * @param void
  79. */
  80. void log_app_save(void) {
  81. tiny_log_save(&mylog);
  82. }