123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
-
- #ifndef __MYIAP_H
- #define __MYIAP_H
- /*****************************************************************/
- #include <stm32f10x.h>
- #include "includes.h"
- #define USING_LOCAL_TIME 0
- #define USING_SERVER_TIME 1
- #define DATA_DRAT_SIZE_PER_TIME 1024 //每一次数据请求包大小
- #define FOGA_RECV_BUFFER_SIZE DATA_DRAT_SIZE_PER_TIME+2 //两ASCII相当于一个数据,加两字节CRC
- #define FOTA_IAP_SOCKET 3
- #define ENABL_FOGA_BACK_DATA_PRINT 1 //是否允许空中升级过程打印接到数据的具体数据 数据量比较大
- //defautl: 1 不想看到具体数据
- //调试: 0 可以看到-调试用
- //注意,如果为0--要把 UART1_TX_BUFFER_SIZE 设置为1024+256才能看,否则内部可能会溢出
- #define FOTA_MAGIC 0x41544F46 // "FOTA"
- #define PCTA_MAGIC 0x41544350 // "PCTA"
- #define GOOD_UPDATE_STORAGE 0x9fedcba9
- #define FOTA_IAP_IP0 120
- #define FOTA_IAP_IP1 77
- #define FOTA_IAP_IP2 66
- #define FOTA_IAP_IP3 129
- #define FOTA_IAP_PORT 9137
- #define TASK_GET_FILEINFO 0x12
- #define TASK_GET_FILEDATA 0x25
- #define TASK_MODEM_UPDATE 0x36
- #define TASK_FILE_CHECK 0x47
- #define TASK_GOTO_APP 0X58
- #define TASK_EXIT 0xc2
- #define TICK_COUNT 500 //20ms
- #if 0
- #define APP_FILE_DATA_ADDR FILE_DATA_ADDR_END+1 //下载的APP存放首地址 0x20000 ~ 0x3FFFFF 下两M数据区
- #else
- #define APP_FILE_DATA_ADDR 0x200000
- #endif
- extern unsigned char Fota_Rcv_Pri_Flag;
- ///////////////////////////////////
- #define PACKET_HEAD 0xAB
- #define CMD_GET_FILE_INFO 0x6A
- #define CMD_GET_FILE_INFO_ACK 0x6B
- #define CMD_GET_FILE_DATA 0x7A
- #define CMD_GET_FILE_DATA_ACK 0x7B
- #define GET_FILE_TIMES 3 //最多重获取3次文件信息
- #define GET_DATA_TIMES 20 //最多重获取5次数据信息
- typedef struct SUT_FILE_INFO2
- {
- unsigned char encrypted; //文件数据是否已加密? 0--未加密 1--加密算法1:各字节和key直接异或运算; 2--加密算法2:将key转为key1后再与各字节异或运算; 3...其他
- unsigned char key; //加密用的key
- char FileName[20]; //文件名。一般情况下,文件名=ProductName_Vxxx 其中xxx为版本号
- unsigned int FileLength; //文件总长度
- unsigned char MD5[16]; //文件MD5码. 如果文件已加密,此MD5为加密后的文件的MD5
- }__attribute__((packed)) SUT_FILE_INFO2;
- ///////////////////////////////////////
- typedef struct IAP_UI_PRA
- {
- uint8_t update;
- uint32_t total_size;
- uint32_t down_size;
- }IAP_UI_PRA;//用来显示进度使用
-
- typedef struct SUT_NET_STATUS
- {
- unsigned char FotaTCP;
- unsigned short Tick10ms;
- unsigned char TaskStart;
- unsigned char TaskStatus;
- unsigned char FileReqOk;
- uint8_t timeTry;
- uint8_t resetModemTime;
- uint8_t getFileInfoTime;//请求文件次数计数
- uint8_t getDataInfoTime;//请求数据次数计数
- uint8_t errType;//失败退出时的错误信息
- unsigned char encrypted; //文件数据是否已加密? 0--未加密 1--加密算法1:各字节和key直接异或运算; 2--加密算法2:将key转为key1后再与各字节异或运算; 3...其他
- unsigned char key; //加密用的key
- unsigned int FileLength; //文件总长度
- unsigned int FileOffset;//文件偏移
- unsigned char MD5[16]; //文件MD5码. 如果文件已加密,此MD5为加密后的文件的MD5
- char FullFileName[20];
-
- IAP_UI_PRA iapUI;
-
- }SUT_NET_STATUS;
- typedef enum{
- MODE_HTTP_MCU,
- MODE_HTTP_MODEM
- }MODE_HTTP_TYPE;
- void FotaIap_Handle(unsigned char *msg);
- void SetUpAppricationVerPending(void);
- void SetUpAppricationVerShow(int);
- void SetUpAppricationVerResponse(void);
- void Fota_Update_Show(int Update);
- void TriggerHttpOn(MODE_HTTP_TYPE type);
- #endif
-
|