#ifndef __CONFIGMACROS_H #define __CONFIGMACROS_H #include "oled.h" #define open4G 1 #define openBT 1 #define updateMenu 1 #define debugkeyinfo 0 #define open16 11 //开字 #define open16 11 //开字 #define close16 12 //关字 #define Sn1StatusAddr ((uint32_t)0x8070000) #define Sn2StatusAddr ((uint32_t)0x8071000) #define Sn3StatusAddr ((uint32_t)0x8072000) #define Sn4StatusAddr ((uint32_t)0x8073000) #define serialNum1Addr ((uint32_t)0x8073800) #define serialNum2Addr ((uint32_t)0x8074000) #define serialNum3Addr ((uint32_t)0x8074800) #define serialNum4Addr ((uint32_t)0x8075000) #define resetDevAddr ((uint32_t)0x8075000) #define DevstatusAddr ((uint32_t)0x8075800) #define Sn1Addr ((uint32_t)0x8076000) #define Sn2Addr ((uint32_t)0x8076800) #define Sn3Addr ((uint32_t)0x8077700) #define Sn4Addr ((uint32_t)0x8077800) #define PCMQTTADDR "118.31.22.26" #define PCMQTTPORT 7883 #define PCMQTTUSER "test" #define PCMQTTPSWD "test123" #define PCMQTTTOPIC "world" #define QOS 1 #define RETAIN 0 #define DUP 0 #define BUFFER_SIZE 2048 #define BYTE uint8_t #define WORD uint16_t #define DWORD uint32_t #define TT808FLAG 0x7E #define TCPHeadBYTE 0x2A #define TCPTAILBYTE 0x23 #define TCPJMFSRSA 0x001 #define TCPJMFSNULL 0x000 #define JLPTIP "121.199.29.128" #define JLPTPORT 7342 #define LockStatusOpen 0x60 #define LockStatusClose 0x40 #define LockStatusNull 0xAA #define XXIDzdy 0x1234 #define XXIDxfMac1 0x1235 #define XXIDxfMac2 0x1236 #define XXIDxfMac3 0x1237 #define XXIDxfMac4 0x1238 #define XXIDzdjq 0x0102 #define XXIDzdxt 0x0002 //心跳 #define XXIDzddz 0x0200 #define XXIDpttyyd 0x8001 //通用应答 #define XXIDptxxtc 0x8900 //下行透传 #define XXIDzdtyyd 0x0001 //终端通用应答 #define TIM_Start(htim) HAL_TIM_Base_Start_IT(htim) #define LED_TOGGLE(pin) HAL_GPIO_TogglePin(GPIOC, (pin)) //运行灯 #define RXNE_UART(huart) __HAL_UART_ENABLE_IT(huart, UART_IT_RXNE) #define PRINT_MENU_STATUS(key) printf("--->%s pressed\t%d %d %x %d\n", key, menu.current, menu.up, (menu.next&0xf), menu.enter) #define HELLO(message) printf("%s\r\n", message) #define PRINT_UUID(message) printf("#%s符合设置项\n",message) #define PRINT_NUUID(message) printf("%s不符合\n",message) /* SYETEM init */ #define START_PROCESS() \ do { \ printf("JL_DTU_BL01-start...\r\n"); \ menu.current = 0xBB; \ tipsflag = Starting; \ Jump_interface(menu); \ OLED_Refresh(); \ } while(0) /* WDI */ #define TOGGLE_WDI_PIN(htim_instance) \ do { \ if ((htim_instance)->Instance == TIM2) { \ HAL_GPIO_TogglePin(WDI_GPIO_Port, WDI_Pin); \ } \ } while(0) /* OLED显示 */ #define OLED_DISPLAY(color, display) do { \ OLED_Init(); \ OLED_ColorTurn(color); \ OLED_DisplayTurn(display); \ } while(0) /* U1-U4 DMA */ #define IDLE_DMA_UART(huart) \ do {\ __HAL_UART_ENABLE_IT(huart, UART_IT_IDLE); \ } while(0) #define SET_MENU_STATUS(current_value, up_value, next_value, enter_value) \ do { \ menu.current = current_value; \ menu.up = up_value; \ menu.next = next_value; \ menu.enter = enter_value; \ refresh = true;\ } while(0) #define RESET_4G_MODULE() \ do { \ if(reset4Gmodule) { \ reset4Gmodule = false; \ HAL_Delay(2000); \ ML307A_Init(); \ } \ } while(0) #define HANDLE_RETURN_INTERFACE() \ do { \ if(returnInterface) { \ returnInterface = false; \ SET_MENU_STATUS(0, 0, 0, 0); \ } \ } while(0) typedef struct { uint8_t current; //当前状态索引号 uint8_t up; //向下一个 uint8_t next; //向下一个 uint8_t enter; //确定 uint32_t home; uint8_t S1sjf; uint8_t S2sjf; uint8_t S3sjf; uint8_t S4sjf; char* SN1; char* SN1F; char* SN1D; char* SN1name; char* SN2; char* SN2F; char* SN2D; char* SN2name; char* SN3; char* SN3F; char* SN3D; char* SN3name; char* SN4; char* SN4F; char* SN4D; char* SN4name; uint8_t PreNext; char* LOCJ; char* LOCW; char* LOCJW; } Menu_table; struct keys { unsigned char judge_sta; //判断按键按键按下的动作到了第几步 bool key_sta; //如果按键被按下,为0 bool key_flag; //如果确认被按下,为1 bool long_flag; //如果确认被按下,为1 uint8_t key_time; }; typedef struct { uint32_t serialNum1; //4字节流水号 uint32_t serialNum2; //4字节流水号 uint32_t serialNum3; //4字节流水号 uint32_t serialNum4; //4字节流水号 uint32_t userId; //4字节userid uint32_t Ntime; //4字节时间 uint8_t Autoseal; //1字节自动施封 } BtFrame; typedef enum { BtStepDefault = 0, UUIDS = 1, UUIDN = 2, UUIDW = 3, TxPower = 4 } BtStep; typedef enum { Default = 0, InProgress = 1, Abnormal_motor = 2, Starting = 3 , Nosnset = 4 , Carfail = 5 } TipsFlag; // 定义结构体来存储对应信息 struct BtMenuItem { int key; char *name; char *command; char *feedback; }; // 定义一个结构体存储对应关系 typedef struct { char *command; char *connected_msg; char *disconnected_msg; uint16_t value; } MenuInfo; typedef struct { uint8_t year; uint8_t month; uint8_t day; uint8_t hour; uint8_t minute; uint8_t second; } Time; typedef struct { uint8_t LSH; uint8_t L1Lockstatus; uint8_t L2Lockstatus; uint8_t L3Lockstatus; uint8_t L4Lockstatus; } TT808; typedef struct { uint16_t Xxid; //消息ID uint16_t Xxtsx; //消息体属性 uint8_t CidNum[6]; //终端ID号 uint16_t Xxlsh; //消息流水号 uint8_t workcmd; //锁操作命令 uint8_t Cmd; //Cmd uint32_t LockID; //锁ID uint8_t Gate; //Gate uint8_t Bill[8]; //Bill uint16_t LineCode; //LineCode uint8_t Key[6]; uint8_t VaildTime; //VaildTime uint32_t standby; //备用 uint8_t Time[6]; uint8_t crc; uint8_t Tcrc;//后crc } TCPCenterD; typedef struct { uint8_t workcmd; //锁操作命令 uint8_t Cmd; //Cmd uint32_t LockID; //锁ID uint8_t Gate; //Gate uint8_t Bill[8]; //Bill uint8_t Voltage; //Voltage uint8_t LockStatus;//LockStatus uint8_t MotoStatus;//MotoStatus uint16_t LineCode; //LineCode uint8_t OperationIdNum[8];//操作识别号 uint8_t cmdSRC; //cmdSRC uint8_t Time[6]; } TCPClientD; #endif /*__CONFIGMACROS_H*/