public.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. #ifndef _PUBLIC_H_
  2. #define _PUBLIC_H_
  3. #include "../User/gd32f10x_it.h"
  4. #include "../Hardware/boardinit.h"
  5. extern uint8_t g_bhavePrice;
  6. #define DEV_TYPE 0x0904
  7. #define APP_VERSION 0x0904302F
  8. #define BROADCAST_SN 0xFFFFFFFF // 广播地址
  9. #define BROADCAST_TYPE 0xFFFF // 广播设备类型
  10. #define CRC_INIT_VALUE 0x0000
  11. enum { // workMode
  12. WORK_NOINIT = 0x01, // 未初始化模式
  13. WORK_NORMAL = 0x02, // 正常模式
  14. WORK_UPDATE = 0x03, // 升级模式
  15. };
  16. enum {
  17. B4G_NOHAVE = 0x00, // 无4G模块
  18. B4G_HAVE = 0x01, // 有4G模块
  19. };
  20. typedef struct _dev_msg_{
  21. uint16_t devType; // 主设备类型
  22. uint32_t devSn; // 主设备SN
  23. uint16_t devTypeS; // 从设备类型
  24. uint32_t devSnS; // 从设备SN
  25. uint8_t bHave4G; // 是否有4G模块
  26. uint8_t baskIdentity; // 是否询问自己的身份
  27. uint8_t workMode;
  28. uint8_t ledred; // 红灯状态
  29. uint8_t ledgreen; //绿灯状态
  30. uint8_t bhavePrice; // 是否用单价屏
  31. uint8_t bHYdev; // 是否是鸿洋的设备
  32. }__attribute__((packed))DevMsg;
  33. extern DevMsg g_devMsg;
  34. typedef struct _dev_firm_msg_{
  35. uint32_t bootVer; // bootloader版本
  36. uint32_t ptVer; // pt版本
  37. uint32_t appVer; // app版本
  38. uint8_t uuid[12]; // UUID
  39. }__attribute__((packed))DevFirmMsg;
  40. extern DevFirmMsg g_devfirmMsg;
  41. enum {
  42. LOG_TYPE_NULL = 0x00, // 默认类型
  43. LOG_TYPE_7SEG = 0x01, // 错误去重七段码上报
  44. LOG_TYPE_LOG = 0x02, // 日志
  45. };
  46. typedef struct _log_msg_{
  47. uint8_t blogOpen; // 日志是否打开 0:未打开, 1:打开
  48. uint8_t logType; // 日志类型
  49. timeout_t timer; // 超时计时器
  50. }LogMsg;
  51. extern LogMsg g_logMsg;
  52. #define NODE_MAX_SIZE 8
  53. #define OFF_LINE_COUNT 5 // 5次读取不到,则判断为离线
  54. typedef struct _node_msg_{
  55. uint16_t devType;
  56. uint32_t devSn;
  57. uint8_t status;
  58. uint8_t readCount; // 读取次数
  59. uint8_t bSelf; // 是自己的设备类型和SN
  60. }__attribute__((packed))nodeMsg_t;
  61. typedef struct _node_run_info_{
  62. nodeMsg_t nodMsg[NODE_MAX_SIZE];
  63. uint8_t nIndex;
  64. uint8_t slaveNum; // 从的个数
  65. }__attribute__((packed))nodeRun_t;
  66. extern nodeRun_t g_runNode;
  67. typedef uint32_t u32;
  68. typedef uint16_t u16;
  69. typedef uint8_t u8;
  70. typedef const uint32_t uc32; /*!< Read Only */
  71. typedef const uint16_t uc16; /*!< Read Only */
  72. typedef const uint8_t uc8; /*!< Read Only */
  73. typedef __IO uint32_t vu32;
  74. typedef __IO uint16_t vu16;
  75. typedef __IO uint8_t vu8;
  76. typedef __I uint32_t vuc32; /*!< Read Only */
  77. typedef __I uint16_t vuc16; /*!< Read Only */
  78. typedef __I uint8_t vuc8; /*!< Read Only */
  79. extern void init_dev_msg(void);
  80. extern uint8_t check_dev_type_sn(uint16_t devType, uint32_t devSn);
  81. extern uint8_t check_dev_type_sn01(uint16_t devType, uint32_t devSn);
  82. extern uint16_t crc16_get(uint8_t *data, uint8_t size);
  83. extern uint16_t _crc16_get(uint8_t *_buff,uint32_t _len);
  84. extern int _ytsf_data_code(uint8_t *buff, uint8_t *len);
  85. extern int _ytsf_data_decode(uint8_t *buff, uint8_t *len);
  86. extern void printf_dev_msg(void);
  87. extern uint16_t set_updata_state(uint16_t data);
  88. extern uint8_t updata_state_cmp(uint16_t data);
  89. extern void app_check_crc(uint32_t addr, uint32_t len, uint32_t *checkdata);
  90. extern void epprom_read_reset_num(void);
  91. extern void epprom_init_config_table(void);
  92. extern void epprom_read_config_table(void);
  93. extern void epprom_write_config_table(uint8_t *data, uint8_t len);
  94. extern void epprom_init_com_config(void);
  95. extern void epprom_read_com_config(void);
  96. extern void epprom_write_com_config(uint8_t *data, uint8_t len);
  97. extern void epprom_init_pin_config(void);
  98. extern void epprom_read_pin_config(void);
  99. extern void epprom_write_pin_config(uint8_t *data, uint16_t len);
  100. extern void epprom_power_up_deal(void);
  101. extern void reset_work_mode(void);
  102. extern void uart_pt_task(uint8_t *data,uint16_t len);
  103. #endif