MyFoTa.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /********************************************************************************
  2. * File Name: MyFoTa.h
  3. * Function Describe: Header file for MyFoTa.c
  4. * Explain:
  5. * Writer: ShiLiangWen
  6. * Date: 2019-2-17
  7. *******************************************************************************/
  8. #ifndef __MY_FOTA_H
  9. #define __MY_FOTA_H
  10. //-------------------------------------------------------------------------------
  11. #include "ProductPara.h"
  12. #include "ModemTask.h"
  13. #define TCP_PACKET_HEAD 0xAB
  14. //以下CMD用于FOTA数据上行和下行命令
  15. #define CMD_GET_FILE_INFO 0x6A
  16. #define CMD_GET_FILE_INFO_ACK 0x6B
  17. #define CMD_GET_FILE_DATA 0x7A
  18. #define CMD_GET_FILE_DATA_ACK 0x7B
  19. #define APP_FILE_DATA_ADDR EXFLASH_FILE_DATA_ADDR //保存在外部FLASH哪个位置开始
  20. #define FOTA_RE_SEND_CT_MAX 5
  21. typedef enum
  22. {
  23. FOTA_END=0, //完成操作
  24. FOTA_GET_FILEINFO,//获取文件信息
  25. FOTA_GET_FILEDATA,//拉取文件内容
  26. }FOTA_STATUS;
  27. typedef struct SUT_FILE_INFO
  28. {
  29. unsigned char encrypted; //文件数据是否已加密? 0--未加密 1--加密算法1:各字节和key直接异或运算; 2--加密算法2:将key转为key1后再与各字节异或运算; 3...其他
  30. unsigned char key; //加密用的key
  31. char FileName[20]; //文件名。一般情况下,文件名=ProductName_Vxxx 其中xxx为版本号
  32. unsigned int FileLength; //文件总长度
  33. unsigned char MD5[16]; //文件MD5码. 如果文件已加密,此MD5为加密后的文件的MD5
  34. }__attribute__((packed)) SUT_FILE_INFO;
  35. typedef struct
  36. {
  37. FOTA_STATUS fotaStatus;
  38. unsigned char getFileInfoCt;//升级次数计数器
  39. unsigned char reSendCt;//不能间隔太快发连接TCP指令,这是间隔计数
  40. unsigned int time_10ms_cnt;
  41. unsigned char retryTime;
  42. unsigned short targetVersion;
  43. ////////////////////////////////////////////
  44. unsigned int fileLength;
  45. unsigned int lastOffset;//上一次 偏移
  46. unsigned int nextOffset;//下一次 偏移
  47. unsigned char encrypted;
  48. unsigned char key;
  49. unsigned char MD5[16];
  50. }__attribute__((packed)) SUT_FOTA_PARA;
  51. extern SUT_FOTA_PARA sutFotaPara;
  52. void MyFoTaInit(void);
  53. M_RESULT FoTaGetFileInfo(int type);
  54. M_RESULT FoTaGetFileData(int type);
  55. void FoTaRecvData(unsigned char *pData,unsigned short DataLen);
  56. //-------------------------------------------------------------------------------
  57. #endif