SPIFFS.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. #ifndef _SPIFFS_H_
  2. #define _SPIFFS_H_
  3. #include "list.h"
  4. #include "stdbool.h"
  5. #define PERSON_MAX_NAME 10
  6. #define PERSON_NAME_MAX_LEN 10
  7. typedef enum
  8. {
  9. Administrator = 0, // 管理员
  10. product_person = 1, // 生产责任人
  11. repair_person = 2, // 维修责任人
  12. Maintenance_person = 3, // 保养责任人
  13. check_person = 4, // 巡检责任人
  14. } Person_type_t;
  15. typedef struct
  16. {
  17. uint16_t person_num; // 序号
  18. uint8_t person_name[PERSON_NAME_MAX_LEN]; // 人员名称
  19. } Person_Name_t;
  20. ///////////////////////////////////////////
  21. typedef struct
  22. {
  23. uint8_t person_type; // 人员类型
  24. Person_Name_t person_name[PERSON_MAX_NAME];
  25. char string_name[100];
  26. bool Charge_close; // 为真关闭责任人显示
  27. uint8_t other_name[16]; // 右屏第二部分责任人显示
  28. } Person_t;
  29. typedef struct
  30. {
  31. uint8_t button_info; // 当前按键状态
  32. uint16_t Year;
  33. uint8_t Month;
  34. uint8_t Day;
  35. uint8_t Hour;
  36. uint8_t Minute;
  37. uint8_t Second;
  38. uint32_t time_min;
  39. } Button_Time_t;
  40. typedef struct
  41. {
  42. bool checkIn_close; // 为真关闭打卡
  43. uint32_t number; // 只加不减,用于左屏图标数据
  44. uint8_t real_number; // 真实签到人数,用于右屏
  45. uint8_t other_name[10]; // 四类打卡类型 限制四个字
  46. } CheckIn_Setting_t;
  47. typedef struct
  48. {
  49. // 所有要保存的数据
  50. char terminal_name[20];
  51. char terminal_number[20];
  52. char station_name[20];
  53. char station_number[20];
  54. char btn_operation[6];
  55. char btn_breakDown_info[6];
  56. char btn_upKeep_info[6];
  57. char btn_shutDown_info[6];
  58. char btn_safeKeep_info[6];
  59. char btn_waitMaterials_info[6];
  60. // 保存按键信息以及是否按键显示显示
  61. // 0表示关闭,1表示开启
  62. bool btn_dis_flag[6];
  63. uint8_t lora_factory_channel;
  64. uint8_t lora_new_channel;
  65. uint8_t eflagID; // 本机组内编号
  66. unsigned char cid[20]; // 设备ID CID flash中获取的ID
  67. uint8_t paired; // 是否配网
  68. uint8_t power_status; // 当前系统的状态 开机或者关机
  69. // uint8_t is_setting; //设置当前是否为设置模式
  70. Node *Send_list;
  71. uint16_t msg_id; // 添加消息发送设备ID 唯一性分配
  72. Button_Time_t last_button; // 上次按键状态
  73. Button_Time_t current_button; // 当前按键状态
  74. uint32_t Duration_time; // 持续的时间
  75. uint8_t left_max_Quick_refresh_time; // 最大快刷次数
  76. uint8_t left_current_Quick_refresh_time; // 当前已经快刷的次数 当前快刷的次数大于设置 慢刷一次
  77. uint8_t right_max_Quick_refresh_time; // 最大快刷次数
  78. uint8_t right_current_Quick_refresh_time; // 当前已经快刷的次数 当前快刷的次数大于设置 慢刷一次
  79. int batt_precent; // 当前显示的电量
  80. int last_batt_precent; // 记录上次显示的电量
  81. uint16_t year;
  82. uint8_t month;
  83. uint8_t day;
  84. uint8_t hour;
  85. uint8_t min;
  86. uint8_t sec;
  87. uint8_t rssi;
  88. uint8_t left_state; // 左屏的模式 --> Machine_state_t
  89. uint8_t left_display_mode; // cmd 0x07
  90. uint8_t right_display_mode; // cmd 0x08
  91. #if 0
  92. uint8_t personnel_check_in[4];//存签到人数。
  93. uint8_t person_in_charge_name[4][12];//责任人名称
  94. #else
  95. CheckIn_Setting_t checkIn_set[4]; // 签到相关
  96. #endif
  97. uint8_t mac_addr[6];
  98. // uint8_t p_name[32];//未使用
  99. uint8_t refresh_cycle;
  100. uint8_t announcement[120]; // 公告
  101. uint8_t systemMessage[120]; // 系统消息
  102. Person_t person[5]; //
  103. uint8_t gateway_mac[6]; // 网关的mac地址
  104. // 保存右屏图表信息
  105. uint32_t num_goodProducts[8];
  106. uint32_t num_badProducts[8];
  107. uint8_t scale_UR_int[8];
  108. uint8_t scale_UR_dec[8];
  109. uint8_t scale_YR_int[8];
  110. uint8_t scale_YR_dec[8];
  111. uint16_t num_manHour[8];
  112. uint16_t num_people[8];
  113. uint16_t num_production[8];
  114. uint16_t num_repair[8];
  115. uint16_t num_inspection[8];
  116. uint16_t num_upkeep[8];
  117. uint8_t wait_send_rssi_bat;
  118. bool is_charge; // 判断是否充电
  119. bool is_charge_full; // 判断是否充满
  120. char timestamp[20]; // 当前时间戳
  121. int time_offset; // 时区偏移
  122. } Machine_info_t; // 所有要保存的数据
  123. extern Machine_info_t Machine_info;
  124. extern Node *Send_list; // 发送数据链表
  125. void spiffs_init(void);
  126. void spiffs_write(Machine_info_t *info);
  127. void spiffs_read(Machine_info_t *info);
  128. void left_spiffs_write(uint8_t *buffer, unsigned int size);
  129. void left_spiffs_read(uint8_t *buffer, unsigned int size);
  130. void right_spiffs_write(uint8_t *buffer, unsigned int size);
  131. void right_spiffs_read(uint8_t *buffer, unsigned int size);
  132. size_t spiffs_read_powerOn(Machine_info_t *info);
  133. #endif /*_SPIFFS_H_*/