/**************************************************************************** * * Copy right: Qx.Chen Jie * File name: TcpTask.h * Description: 网络发送接收任务 * History: 2021-03-07 * ****************************************************************************/ #define PROC_TCP_TASK_STACK_SIZE (2048) #define QMSG_ID_BASE (0x160) #define QMSG_ID_NW_IP_READY (QMSG_ID_BASE) #define QMSG_ID_NW_IP_SUSPEND (QMSG_ID_BASE + 1) #define QMSG_ID_NW_IP_NOREACHABLE (QMSG_ID_BASE + 2) #define QMSG_ID_SOCK_SENDPKG (QMSG_ID_BASE + 4) #define QMSG_ID_SOCK_RECVPKG (QMSG_ID_BASE + 5) #define QMSG_ID_SOCK_EXIT (QMSG_ID_BASE + 6) #define APP_EVENT_QUEUE_SIZE (10) // #define QX_TCP_IPADRRES "120.26.68.165" // #define QX_TCP_PORT 14319 #define QX_TCP_IPADRRES "47.97.127.222" #define QX_TCP_PORT 8712 #define BATT_SN_LEN 17 #define TCP_START_SYM1 0x23 #define TCP_START_SYM2 0x23 #define TCP_CMD_SYM 0x02 #define TCP_ANS_SYM 0xFE //encrypt methord #define TCP_ENCPT_ENABLE 0x00 #define TCP_ENCPT_DISABLE 0x01 //message type mark #define BATTMSG 0x80 #define GPSMSG 0x82 #define VERSIONMSG 0x86 typedef struct BattInfoType { UINT8 sendTimeUTC[6]; UINT8 msgMark; UINT8 msgCollectionTimeUTC[6]; UINT8 signalStrength; UINT8 errClass; UINT8 errCode[2]; UINT8 battI[2]; UINT8 battLinkVol[2]; UINT8 battPackVol[2]; UINT8 chrgState; UINT8 battSOC; UINT8 battSOH; UINT8 batCellBalenceState[4]; //uint32 should change to uint8[]: each bit stand for 1 cell, up to 1024 UINT8 battCellNum; //uint8 should change to uint16 (0~65535) //zhengchao UINT8 battCellU[BATT_CELL_VOL_NUM_2]; UINT8 battTempNum; //uint8 should change to uint16 (0~65535) UINT8 battCellTemp[BATT_TEMP_NUM]; UINT8 battWorkState; UINT8 battHeatState; UINT8 battMosTemp; UINT8 battEnvTemp; }BattInfoType; typedef struct BattMsgtoTcpType { UINT8 startSymbol[2]; UINT8 cmdSymbol; UINT8 ansSymbol; UINT8 SN[BATT_SN_LEN]; UINT8 encryptMethod; UINT8 dataLength[2]; BattInfoType battInfo; UINT8 CRC; }BattMsgtoTcpType; /*---------------------------------------------------------------------------*/ typedef struct _GPSInfoType { UINT8 sendTimeUTC[6]; UINT8 msgMark; UINT8 msgCollectionTimeUTC[6]; UINT8 locateMark; UINT8 satelliteNum; UINT8 direction[2]; UINT8 speed[2]; UINT8 altitude[2]; UINT8 latitude[4]; UINT8 longitude[4]; }GPSInfoType; typedef struct GPSMsgtoTcpType { UINT8 startSymbol[2]; UINT8 cmdSymbol; UINT8 ansSymbol; UINT8 SN[BATT_SN_LEN]; UINT8 encryptMethod; UINT8 dataLength[2]; GPSInfoType gpsInfo; UINT8 CRC; }GPSMsgtoTcpType; /*---------------------------------------------------------------------------*/ typedef struct _VerInfoType { UINT8 sendTimeUTC[6]; UINT8 msgMark; UINT8 msgCollectionTimeUTC[6]; UINT8 ICCID[20]; UINT8 IMEI[15]; UINT8 BMSHwVersion; UINT8 BMSSwVersion; UINT8 NBHwVersion[2]; UINT8 BLVersion[4]; UINT8 DRVVersion[4]; UINT8 APPVersion[4]; }VerInfoType; typedef struct VersionMsgtoTcpType { UINT8 startSymbol[2]; UINT8 cmdSymbol; UINT8 ansSymbol; UINT8 SN[BATT_SN_LEN]; UINT8 encryptMethod; UINT8 dataLength[2]; VerInfoType VerInfo; UINT8 CRC; }VersionMsgtoTcpType; /*---------------------------------------------------------------------------*/ typedef enum { APP_SOCKET_CONNECTION_CLOSED, APP_SOCKET_CONNECTION_CONNECTING, APP_SOCKET_CONNECTION_CONNECTED, }AppSocketConnectionStatus; typedef struct AppSocketConnectionContext_Tag { INT32 id; INT32 status; }AppSocketConnectionContext; typedef struct Fota_Type { bool Fota_update_flag ; bool Fota_update_error ; UINT32 Fota_All_Data_Len ; UINT32 Fota_Current_Addres ; UINT8 Fota_Recv_Data_Len ; UINT8 Fota_Recv_Data[100] ; UINT32 Fota_Flash_Addres; UINT8 Fota_CRC ; }Fota_Type; typedef enum { PROCESS_TCP_STATE_IDLE = 0, PROCESS_TCP_STATE_SEND, PROCESS_TCP_STATE_RECV, PROCESS_TCP_STATE_SLEEP }process_TCP; void TcpTaskInit(void *arg); void TcpTaskDeInit(void *arg);