add S300AI

Change-Id: Ice89434e8dc7b3be506380729d716f50aa75df14
diff --git a/lynq/S300AI/ap/app/wefota/wefota_main.h b/lynq/S300AI/ap/app/wefota/wefota_main.h
new file mode 100755
index 0000000..8b06861
--- /dev/null
+++ b/lynq/S300AI/ap/app/wefota/wefota_main.h
@@ -0,0 +1,110 @@
+#ifndef _WEFOTA_MAIN_H_

+#define _WEFOTA_MAIN_H_

+

+#define WEFOTA_HEADER_MAGIC 0x41544F46

+#define WEFOTA_HEADER_PROTOCOL 0x80

+#define WEFOTA_HEADER_TID 0x0A

+

+#define WEFOTA_HEADER_SIZE 107

+#define WEFOTA_REQ_MAX_LEN (WEFOTA_HEADER_SIZE + 68)

+

+#define WEFOTA_DIFF_PACK_DATA_MAX_LEN 1024

+#define WEFOTA_RESP_DIFF_PACK_DATA_MAX_LEN (WEFOTA_DIFF_PACK_DATA_MAX_LEN + 39)

+#define WEFOTA_RESP_MAX_LEN (WEFOTA_HEADER_SIZE + WEFOTA_RESP_DIFF_PACK_DATA_MAX_LEN)

+

+#define WEFOTA_MAX_RETRIES 3

+#define WEFOTA_TIMEOUT_SEC 1

+#define WEFOTA_MAX_RETRY_COUNT 60

+

+typedef enum _FOTA_Status{

+    FOTA_STATUS_IDLE = 0,

+    FOTA_STATUS_GET_IP_1,

+    FOTA_STATUS_CHECK_TASK,

+    FOTA_STATUS_GET_IP_2,

+    FOTA_STATUS_GET_VER_ID,

+    FOTA_STATUS_GET_DIFF_PACK_ID,

+    FOTA_STATUS_GET_DIFF_PACK_DATA,

+    FOTA_STATUS_GET_DIFF_PACK_END,

+    FOTA_STATUS_INSTALL_DIFF_PACK,

+    FOTA_STATUS_MAX

+} FOTA_Status;

+

+typedef struct _WeFOTA_MSG{

+    FOTA_Status status;

+    unsigned char req_code;

+    unsigned short req_count;

+    unsigned char resp_code;

+    unsigned short resp_count;

+} WeFOTA_MSG;

+

+#pragma pack(1)

+typedef struct _WeFOTAHeader{

+    unsigned int magic;        // 4 bytes

+    unsigned char protocol;      // 1 byte

+    unsigned char code;          // 1 byte

+    unsigned char cgi[9];        // 9 bytes

+    unsigned char imsi[15];      // 15 bytes

+    unsigned char iccid[20];     // 20 bytes

+    unsigned char devid[32];     // 32 bytes,16 meid and 16 imei

+    unsigned char gps[20];       // 20 bytes

+    unsigned char sig;           // 1 byte

+    unsigned short tid;          // 2 bytes

+    unsigned short count;        // 2 bytes

+} WeFOTAHeader;

+

+typedef struct _ServerAddr{

+    char ip[16];

+    unsigned short port;

+} ServerAddr;

+

+typedef struct _FotaTask{

+    unsigned char flag; 

+    unsigned int interval;

+    unsigned int delay;

+    char destVersion[32];

+} FotaTask;

+

+typedef struct _Version{

+    char product[8];

+    char orig_version[30];

+    char dest_version[30];

+} Version;

+

+typedef struct _VerID{

+    char product[8];

+    unsigned short orig_verid;

+    unsigned short dest_verid;

+} VerID;

+

+typedef struct _DiffPackInfo{

+    unsigned char diffPackID[15];

+    unsigned char MD5[16];

+    unsigned int size;

+} DiffPackInfo;

+

+typedef struct _DiffPackDataReq{

+    unsigned char diffPackID[15];

+    unsigned int offset;

+    unsigned int length;

+} DiffPackDataReq;

+

+typedef struct _DiffPackDataResp{

+    unsigned char diffPackID[15];

+    unsigned char MD5[16];

+    unsigned int offset;

+    unsigned int length;

+    unsigned char data[1024];

+} DiffPackDataResp;

+

+typedef struct _DiffPackEnd{

+    unsigned char diffPackID[15];

+    unsigned int costTime;

+} DiffPackEnd;

+

+#pragma pack()

+

+int wefaota_header_init(WeFOTAHeader *hdr);

+void set_fota_status(FOTA_Status status);

+FOTA_Status get_fota_status(void);

+

+#endif
\ No newline at end of file