#ifndef __CONFIGMACROS_H #define __CONFIGMACROS_H #include "oled.h" #include "mba32a.h" #include "ml307a.h" #include #include "interface.h" #include #define BUFFER_SIZE 256 #define timingPush 1//定时出入库,外出测试 #define open4G 1 #define openBT 1 #define openUpload 1 #define updateMenu 1 #define debugkeyinfo 0 #define open16 11 //开字 #define open16 11 //开字 #define close16 12 //关字 #define PDA_MODE 0x0000 #define DTU_MODE 0x0001 #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 PRINT_UUID(message) printf("#%s符合设置项\n",message) #define PRINT_NUUID(message) printf("%s不符合\n",message) #define Sn1InfoAddr ((uint32_t)0x8050000) #define Sn2InfoAddr ((uint32_t)0x8050100) #define Sn3InfoAddr ((uint32_t)0x8050200) #define Sn4InfoAddr ((uint32_t)0x8050300) #define serialNum1Addr ((uint32_t)0x8050400) #define serialNum2Addr ((uint32_t)0x8050500) #define serialNum3Addr ((uint32_t)0x8050600) #define serialNum4Addr ((uint32_t)0x8050700) #define resetDevAddr ((uint32_t)0x8050800) #define SysModeAddr ((uint32_t)0x8050900) #define tt808serialNum ((uint32_t)0x8051000) #define phoneNumADDR ((uint32_t)0x8051100) #define ReIPAddr ((uint32_t)0x8051200) #define LocDbHeadStart ((uint32_t)0x8060000) #define LocDbBodyStart ((uint32_t)0x8060800) #define EveDbHeadStart ((uint32_t)0x8070000) #define EveDbBodyStart ((uint32_t)0x8070800) //*tt808 #define JLPTIP "121.199.29.128" #define JLPTPORT 7342 //测试平台 //#define JLPTPORT 9021 //正式平台 //#define JLPTIP "118.31.22.26"//徐工平台 //#define JLPTPORT 8901 #define MessageID_authentication 0x0102 //鉴权 #define MessageID_heartbeat 0x0002 //心跳 #define MessageID_location 0x0200 //地址 #define MessageID_Retrans 0x0704 //地址补传 #define TCPJMFSRSA 0x001 #define TCPJMFSNULL 0x000 #define TT808FLAG 0x7E #define TCPHeadBYTE 0x2A #define TCPTAILBYTE 0x23 #define XXID_pttyyd 0x8001 //通用应答 #define XXID_ptxxtc 0x8900 //下行透传 #define XXID_zdtyyd 0x0001 //终端通用应答 #define YES 0x00 #define NO 0x01 #define phoneNum 0x000016000008 #define phoneNumxy 0x12345699601 /* 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) /* SYETEM init */ #define START_PROCESS() \ do { \ printf("go\r\n"); \ menu.current = 0xBB; \ tipsflag = Starting; \ Jump_interface(); \ OLED_Refresh(); \ } 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) typedef struct { uint8_t current; //当前状态索引号 uint8_t up; //向下一个 uint8_t next; //向下一个 uint8_t enter; //确定 uint32_t home; uint8_t PreNext; } Menu_table; #define RESET_4G_MODULE() \ do { \ if(reset4Gmodule) { \ reset4Gmodule = false; \ ML307A_Init(); \ } \ } while(0) typedef struct { //四位数字(施解封显示) char SN1name[5]; char SN2name[5]; char SN3name[5]; char SN4name[5]; //AT连接字符串 char* SN1CONN; char* SN1ED; char* SN1DIS; char* SN2CONN; char* SN2ED; char* SN2DIS; char* SN3CONN; char* SN3ED; char* SN3DIS; char* SN4CONN; char* SN4ED; char* SN4DIS; //MAC uint16_t mac1[3]; uint16_t mac2[3]; uint16_t mac3[3]; uint16_t mac4[3]; //Status uint8_t L1status; uint8_t L2status; uint8_t L3status; uint8_t L4status; } LockInfo; typedef enum { Starting = 0, Btconn = 1, ConnOK = 2, ConnFail=3, Nosn =4, Timeout = 5, Working =6, FinshOK =7, Fail4G =8, Nosignal =9, Disconn = 0xA, NoSIM = 0xB, SendOK = 0xC, Back = 0xD } TipsFlag; struct keys { unsigned char judge_sta; //判断按键按键按下的动作到了第几步 bool key_sta; //如果按键被按下,为0 bool key_flag; //如果确认被按下,为1 bool long_flag; //如果确认被按下,为1 uint8_t key_time; }; // 定义结构体来存储对应信息 struct BtMenuItem { int key; char *name; char *command; char *feedback; }; // 定义一个结构体存储对应关系 typedef struct { char *command; char *connected_msg; char *disconnected_msg; uint64_t mac; } MenuInfo; typedef struct { uint32_t serialNum1; //4字节流水号 uint32_t serialNum2; //4字节流水号 uint32_t serialNum3; //4字节流水号 uint32_t serialNum4; //4字节流水号 uint32_t userId; //4字节userid uint8_t Autoseal; //1字节自动施封 } BtFrame; typedef enum { BtStepDefault = 0, UUIDS = 1, UUIDN = 2, UUIDW = 3, TxPower = 4 } BtStep; typedef struct { uint16_t LSH; uint8_t Rtime[6]; uint32_t C_Seconds; uint8_t L1Lockstatus; uint8_t L2Lockstatus; uint8_t L3Lockstatus; uint8_t L4Lockstatus; } TT808; typedef struct { uint32_t timeStamp; //*上传数据 uint16_t alarmFlagH; //报警标志 uint16_t alarmFlagL; //报警标志 uint16_t statusFlagH; //状态标志 uint16_t statusFlagL; //状态标志 uint16_t latitudeH; //纬度 uint16_t latitudeL; //纬度 uint16_t longitudeH; //经度 uint16_t longitudeL; //经度 uint16_t height; //高度 uint16_t speed; //速度 uint16_t direction; //方向 uint8_t timeBCD[6]; //时间戳(世纪秒)BCD uint8_t signalCmd; //信号关键字 uint8_t signalCmd_len; //信号关键字长度 uint8_t CSQ; //信号强度 uint8_t atellitesCmd; //卫星关键字 uint8_t atellitesCmd_len;//卫星关键字长度 uint8_t satellitesNum; //卫星数量 } LocationData; typedef struct { uint16_t loc_pushIndex; //入库指针 uint16_t loc_pullIndex; //出库指针 uint16_t loc_pushSize; //入库刻度 uint16_t loc_pullSize; //出库刻度 uint32_t loc_Conter; //地址总擦计数 uint16_t eve_pushIndex; //入库指针 uint16_t eve_pullIndex; //出库指针 uint16_t eve_pushSize; //入库刻度 uint16_t eve_pullSize; //出库刻度 uint32_t eve_Conter; //地址总擦计数 } Headinfo; typedef struct { uint16_t loc_pushIndex; //入库指针 uint16_t loc_pullIndex; //出库指针 uint16_t loc_pushSize; //入库刻度 uint16_t loc_pullSize; //出库刻度 uint32_t loc_Conter; //地址总擦计数 uint16_t eve_pushIndex; //入库指针 uint16_t eve_pullIndex; //出库指针 uint16_t eve_pushSize; //入库刻度 uint16_t eve_pullSize; //出库刻度 uint32_t eve_Conter; //地址总擦计数 uint16_t alarmFlagH; //报警标志 uint16_t alarmFlagL; //报警标志 uint16_t statusFlagH; //状态标志 uint16_t statusFlagL; //状态标志 uint16_t latitudeH; //纬度 uint16_t latitudeL; //纬度 uint16_t longitudeH; //经度 uint16_t longitudeL; //经度 uint16_t height; //高度 uint16_t speed; //速度 uint16_t direction; //方向 uint8_t timeBCD[6]; //时间戳(世纪秒)BCD uint8_t signalCmd; //信号关键字 uint8_t signalCmd_len; //信号关键字长度 uint8_t CSQ; //信号强度 uint8_t atellitesCmd; //卫星关键字 uint8_t atellitesCmd_len;//卫星关键字长度 uint8_t satellitesNum; //卫星数量 } TestTemp; typedef struct { Headinfo headinfo; LocationData location; TestTemp temppush; TestTemp temppull; } DatabaseLoc; typedef struct { Headinfo headinfo; LocationData location; uint64_t LockSn; //锁编号 uint16_t OperationType; //操作类型 uint16_t OperationResults; //操作结果 uint32_t perators; //操作人 uint16_t ElectricityLevel; //电量 TestTemp temppush; TestTemp temppull; } DatabaseEvent; typedef struct { uint16_t IP0; uint16_t IP1; uint16_t IP2; uint16_t IP3; uint16_t IPp; } Ipaddr; #endif /*__CONFIGMACROS_H*/