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