user_config.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #ifndef __USER_CONFIG_H__
  2. #define __USER_CONFIG_H__
  3. #include "define.h"
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #ifndef DEV_LIC_SIZE
  8. #define DEV_LIC_SIZE 16
  9. #endif
  10. #ifndef DEV_ADDR_SIZE
  11. #define DEV_ADDR_SIZE 6
  12. #endif
  13. #define HEAD_VALUE 0xEFAA
  14. #define CALIB_WEIGHT_SIZE 10
  15. #define WEIGHT_RANGE_DEFAULT 350000
  16. #define EXT_FUNC_COUNT 32
  17. #define WS2812B_DEFAULT_COUNT 15
  18. #define WS2812B_MAX_COUNT 200
  19. #define ELECT_TIME_DEFAULT 5
  20. #define ELECT_TIME_STEP 100
  21. #define ELECT_TIME_MAX 00
  22. #define ELECT_TIME_MIN 1
  23. typedef enum{
  24. CAN_BAUD_NULL = 0,
  25. CAN_BAUD_100 = 100,
  26. CAN_BAUD_150 = 150,
  27. CAN_BAUD_200 = 200,
  28. CAN_BAUD_250 = 250,
  29. CAN_BAUD_300 = 300,
  30. CAN_BAUD_400 = 400,
  31. CAN_BAUD_500 = 500,
  32. CAN_BAUD_666 = 666,
  33. CAN_BAUD_800 = 800,
  34. CAN_BAUD_1000 = 1000
  35. }can_baud_e;
  36. typedef struct{
  37. uint8_t left_elect_level:1; //左电磁锁关闭时状态。1:常开,0:常闭
  38. uint8_t right_elect_level:1; //右电磁锁关闭时状态。1:常开,0:常闭
  39. uint8_t:6;
  40. }__attribute__((packed)) npn_in_param_s;
  41. typedef enum{
  42. RS485_FUNC_NULL = 0,
  43. }rs485_func_e;
  44. typedef struct{
  45. uint8_t rs485_func[EXT_FUNC_COUNT];
  46. }__attribute__((packed)) rs485_param_s;
  47. typedef enum{
  48. I2C_FUNC_NULL = 0,
  49. I2C_FUNC_SHT40 = 1,
  50. }i2c_func_e;
  51. typedef struct{
  52. uint8_t i2c_func[EXT_FUNC_COUNT];
  53. }__attribute__((packed)) i2c_param_s;
  54. typedef struct{
  55. uint16_t elect_on_timne[2];
  56. }__attribute__((packed)) elect_param_s;
  57. typedef struct{
  58. uint16_t head;
  59. can_baud_e can_baud;
  60. npn_in_param_s npn_in_param;
  61. rs485_param_s rs485_param;
  62. i2c_param_s i2c_param;
  63. uint8_t left_ws2812b_count;
  64. uint8_t right_ws2812b_count;
  65. elect_param_s elect_param;
  66. }__attribute__((packed)) user_config_param_s;
  67. #define USER_CONFIG_STAT_DEFAULT_CONFIG \
  68. { \
  69. .head = HEAD_VALUE, \
  70. .can_baud = CAN_BAUD_1000, \
  71. .npn_in_param = { \
  72. .left_elect_level = 0, \
  73. .right_elect_level = 0, \
  74. }, \
  75. .rs485_param = { \
  76. .rs485_func = {0}, \
  77. }, \
  78. .i2c_param = { \
  79. .i2c_func = {0}, \
  80. }, \
  81. .left_ws2812b_count = WS2812B_DEFAULT_COUNT, \
  82. .right_ws2812b_count = WS2812B_DEFAULT_COUNT, \
  83. .elect_param = { \
  84. .elect_on_timne[LEFT_IDX] = ELECT_TIME_DEFAULT, \
  85. .elect_on_timne[RIGHT_IDX] = ELECT_TIME_DEFAULT, \
  86. }, \
  87. }
  88. void User_Config_Read_Config(void);
  89. void User_Config_Write_Config(void);
  90. void user_config_init(void);
  91. bool check_can_baud(uint32_t baud);
  92. void set_user_config_param_init(user_config_param_s *param);
  93. void FLASH_read(uint32_t addr, uint8_t *pData, uint32_t len);
  94. bool user_config_save_can_baud(uint32_t baud);
  95. bool user_config_save_ws2812b_count(uint8_t left, uint8_t right);
  96. bool user_config_save_elect_time(uint16_t left, uint16_t right);
  97. extern user_config_param_s user_config_param;
  98. #ifdef __cplusplus
  99. }
  100. #endif
  101. #endif // USER_CONFIG_H__
  102. /** @} */