#ifndef _PUBLIC_H_ #define _PUBLIC_H_ #include "../User/gd32f10x_it.h" #include "../Hardware/boardinit.h" extern uint8_t g_bhavePrice; #define DEV_TYPE 0x0904 #define APP_VERSION 0x0904302F #define BROADCAST_SN 0xFFFFFFFF // 广播地址 #define BROADCAST_TYPE 0xFFFF // 广播设备类型 #define CRC_INIT_VALUE 0x0000 enum { // workMode WORK_NOINIT = 0x01, // 未初始化模式 WORK_NORMAL = 0x02, // 正常模式 WORK_UPDATE = 0x03, // 升级模式 }; enum { B4G_NOHAVE = 0x00, // 无4G模块 B4G_HAVE = 0x01, // 有4G模块 }; typedef struct _dev_msg_{ uint16_t devType; // 主设备类型 uint32_t devSn; // 主设备SN uint16_t devTypeS; // 从设备类型 uint32_t devSnS; // 从设备SN uint8_t bHave4G; // 是否有4G模块 uint8_t baskIdentity; // 是否询问自己的身份 uint8_t workMode; uint8_t ledred; // 红灯状态 uint8_t ledgreen; //绿灯状态 uint8_t bhavePrice; // 是否用单价屏 uint8_t bHYdev; // 是否是鸿洋的设备 }__attribute__((packed))DevMsg; extern DevMsg g_devMsg; typedef struct _dev_firm_msg_{ uint32_t bootVer; // bootloader版本 uint32_t ptVer; // pt版本 uint32_t appVer; // app版本 uint8_t uuid[12]; // UUID }__attribute__((packed))DevFirmMsg; extern DevFirmMsg g_devfirmMsg; enum { LOG_TYPE_NULL = 0x00, // 默认类型 LOG_TYPE_7SEG = 0x01, // 错误去重七段码上报 LOG_TYPE_LOG = 0x02, // 日志 }; typedef struct _log_msg_{ uint8_t blogOpen; // 日志是否打开 0:未打开, 1:打开 uint8_t logType; // 日志类型 timeout_t timer; // 超时计时器 }LogMsg; extern LogMsg g_logMsg; #define NODE_MAX_SIZE 8 #define OFF_LINE_COUNT 5 // 5次读取不到,则判断为离线 typedef struct _node_msg_{ uint16_t devType; uint32_t devSn; uint8_t status; uint8_t readCount; // 读取次数 uint8_t bSelf; // 是自己的设备类型和SN }__attribute__((packed))nodeMsg_t; typedef struct _node_run_info_{ nodeMsg_t nodMsg[NODE_MAX_SIZE]; uint8_t nIndex; uint8_t slaveNum; // 从的个数 }__attribute__((packed))nodeRun_t; extern nodeRun_t g_runNode; typedef uint32_t u32; typedef uint16_t u16; typedef uint8_t u8; typedef const uint32_t uc32; /*!< Read Only */ typedef const uint16_t uc16; /*!< Read Only */ typedef const uint8_t uc8; /*!< Read Only */ typedef __IO uint32_t vu32; typedef __IO uint16_t vu16; typedef __IO uint8_t vu8; typedef __I uint32_t vuc32; /*!< Read Only */ typedef __I uint16_t vuc16; /*!< Read Only */ typedef __I uint8_t vuc8; /*!< Read Only */ extern void init_dev_msg(void); extern uint8_t check_dev_type_sn(uint16_t devType, uint32_t devSn); extern uint8_t check_dev_type_sn01(uint16_t devType, uint32_t devSn); extern uint16_t crc16_get(uint8_t *data, uint8_t size); extern uint16_t _crc16_get(uint8_t *_buff,uint32_t _len); extern int _ytsf_data_code(uint8_t *buff, uint8_t *len); extern int _ytsf_data_decode(uint8_t *buff, uint8_t *len); extern void printf_dev_msg(void); extern uint16_t set_updata_state(uint16_t data); extern uint8_t updata_state_cmp(uint16_t data); extern void app_check_crc(uint32_t addr, uint32_t len, uint32_t *checkdata); extern void epprom_read_reset_num(void); extern void epprom_init_config_table(void); extern void epprom_read_config_table(void); extern void epprom_write_config_table(uint8_t *data, uint8_t len); extern void epprom_init_com_config(void); extern void epprom_read_com_config(void); extern void epprom_write_com_config(uint8_t *data, uint8_t len); extern void epprom_init_pin_config(void); extern void epprom_read_pin_config(void); extern void epprom_write_pin_config(uint8_t *data, uint16_t len); extern void epprom_power_up_deal(void); extern void reset_work_mode(void); extern void uart_pt_task(uint8_t *data,uint16_t len); #endif