/* * cmcng.h * * Created on: Aug 27, 2024 * Author: Thinkpad */ #ifndef INCLUDE_CMCNG_H_ #define INCLUDE_CMCNG_H_ #include #define PRODUCT_MODEL "DLD960GA" #define FIRMWARE_VER "1.02.05" #define HARDWARE_VER "1.0" #define FIRMWARE_VER_MAIN 1 #define FIRMWARE_VER_SUB 2 #define FIRMWARE_VER_SUBSUB 5 #define HARDWARE_VER_MAIN 1 #define HARDWARE_VER_SUB 1 #define BUFF_STACK_SIZE 64 #define MAX_UART_TXRX_LEN 32 #define MAX_TOUCHUAN_DISABLE_TIME 15 #define BT_DISABLE_IDLE_TIMEOUT 0 //10 // 蓝牙空闲超时 关闭时间,默认10 min typedef enum { DDType_DNT900 = 1, //1 区位有线 DNT900 DDType_WireDUS, //2超声波车位有线 DG DDType_4G_1, DDType_WireDus_Wb, //4 超声波车位有线 万泊 DDType_LoraAreaMain, //5 Lora 区位主机 DDType_LoraAreaSub, //6 Lora 区位从机 DDType_LoraLotMain, //7 Lora 车位主机 DDType_LoraLotSub, //8 Lora 车位从机 DDType_LoraBroadcast, //9 Lora 广播模式 DDType_LoraRelay, //10 Lora 中继, 使用 DLR101 DDType_Relay, //11 中继模式, 通过RS485-2 收发 DDType_4G_IOT, //12 4G 上报传感数据,使用MQTT DDType_Wire_Collect_IOT, //13 有线,上报传感数据,使用MQTT DDType_Wire_Display_IOT, //14 有线显示发布,使用MQTT DDType_Radar_Lot, //15 雷达车位 DDType_DLD950 = 20, //DLD950 DDType_DBN101 = 21, DDType_DNT910 = 22, //DNT910,DNT920 DDType_DNT920 = 23, DDType_DLD950V4 = 24, // DLD960 }DG_Device_Type; typedef enum { KEY_ET_None = 0, KEY_ET_BLE_ENABLE, //1 KEY_ET_REBOOT, KEY_ET_FACTORY, KEY_ET_NETBLE_FACTORY } KEY_EVENT_Type; typedef struct _SUB_CODE_ENABLE_ { uint16_t code_set; uint8_t net_enable; uint8_t iot_enable; uint8_t custom_enable; uint8_t loop_enable; // 流量计数 uint8_t dgdus_enable; uint8_t wbdus_enable; uint8_t radar_enable; uint8_t laser_enable; // lora激光雷达车位 uint8_t lora_enable; // Lora 车位 //uint8_t input_enable; } Sub_Code_Enable; extern Sub_Code_Enable g_sub_code_enable; typedef struct _PKG_UART_ { uint8_t flag; uint16_t offset; uint16_t len; uint8_t pkg[BUFF_STACK_SIZE]; uint32_t tick; }Pkg_Uart; extern Pkg_Uart g_pkg_uart_1; extern Pkg_Uart g_pkg_uart_2; typedef struct _DBN_BLE_STATE_ { uint8_t flag; // if need to report uint8_t enable; // 使能 uint8_t send_flag; uint8_t obj_amount; uint8_t cmd; uint8_t sens_type; uint8_t dat_len ; uint8_t dat_offset; uint8_t pkg_amount; uint8_t pkg_seq; uint16_t interval; uint32_t counter; uint8_t timeout_min; // minute uint32_t timeout_counter; } DBN_BLE_State; extern DBN_BLE_State g_dbn_ble_state_acs_enable; typedef struct _FLAG_COUNTER_ { uint32_t flag; uint32_t timeout; uint32_t tick; } Flag_Counter; extern Flag_Counter g_flag_counter_key; extern Flag_Counter g_flag_counter_ota; extern char g_flag_debug; extern uint8_t g_dev_number[6]; extern uint8_t g_dev_password[6]; extern uint8_t g_ble_safe_flag; extern uint32_t g_ble_safe_counter_ori; extern uint32_t g_ble_safe_counter_dst; // extern uint8_t MACAddr[6]; extern uint8_t gMacAddr[6]; extern char g_dev_number_str[13]; extern uint32_t g_activ_counter; extern uint8_t g_dg_sub_dev_type; extern uint8_t g_dg_device_type; extern uint8_t g_max_counter_bt_min; extern uint32_t g_max_counter_bt_timeout; extern uint8_t g_storage_uart_num; extern uint8_t g_storage_uart_num_2; extern uint32_t g_storage_uart_baud; extern uint32_t g_storage_uart_baud_2; extern uint8_t g_flag_bt_state; uint32_t mstick(void); void InitPkgUart(Pkg_Uart * pkg); void uart_init(void); void uart_srv(void); void UART2_SendString(uint8_t *buf, uint16_t len); void UART1_SendString(uint8_t *buf, uint16_t len); /* ---- 4G 通道: UART1 <-> Air780 (协议 §6.1 纯字节流透传) ---- */ void uart1_dma_init(void); /* 初始化 (DEBUG!=0 时为空实现) */ void uart1_dma_poll(void); /* DBN(CH32V208GBU6) 私有指令分发器 (dbn_ble_srv.c) —— 0x8F 帧, 4G 下行本地指令复用同一入口 */ void manage_dbn_ble_default(uint8_t *pkg, uint8_t len); /* 主循环轮询: 消费 DMA 缓冲 -> 分流 */ extern uint32_t g_uart1_fwd_to_air; /* 上行转发帧数 (UART2->UART1) */ extern uint32_t g_uart1_fwd_to_loop; /* 下行转发帧数 (UART1->UART2, 0x7F) */ extern uint32_t g_uart1_local_cnt; /* 下行本地处理帧数 (0x8F) */ extern uint32_t g_uart1_badchk; /* 下行校验失败帧数 */ extern uint32_t g_uart1_drop; /* 下行 DMA 溢出丢弃次数 */ #endif /* INCLUDE_CMCNG_H_ */