| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- #ifndef __UPGRADE_H__
- #define __UPGRADE_H__
- #include <stdint.h>
- #define UPG_KEY_PATH "/tmp"
- #define UPG_KEY_SN 123
- #if (CHIP_TYPE == CHIP_T113i)
- #define RUN_FOLDER "/mnt/UDISK/run"
- #define BAK_FOLDER "/mnt/UDISK/bak"
- #define UPG_FOLDER "/mnt/UDISK/upg" //用于存放升级过程文件
- #define DOWN_FOLDER "/mnt/UDISK/dl" //网页下载到该目录,然后移到UPG_FOLDER目录
- #else
- #define DOWN_FOLDER "/mnt/UDISK/dl"
- #define BAK_FOLDER "/mnt/UDISK/bak"
- #define UPG_FOLDER "/mnt/UDISK/upg" //用于存放升级过程文件
- #define RUN_FOLDER "/mnt/UDISK/dl" //网页下载到该目录,然后移到UPG_FOLDER目录
- #endif
- #define UPG_PKG_NAME "pdupkg" //所有文件需要打包成一个文件,包括文件头,校验码
- #define UPG_HDR_NAME "pduhdr" //升级头文件
- #define UPG_TAR_NAME "pdutar" //升级数据包
- #define UPG_LOG_PATH UPG_FOLDER"/log.txt"
- #define UPG_PKT_MAGIC 0xdeadbeer
- #define UPG_FILE_MAGIC 0xfacebeef
- enum { //升级状态state
- UPGRADE_EVT_APP_RUNNING=0x12,
- UPGRADE_EVT_UPG_RUNNING,
- UPGRADE_EVT_UPLOAD_FINISH,
-
- UPGRADE_EVT_MAX,
- };
- enum { //升级状态state
- UPGRADE_STAT_NONE=0,
- UPGRADE_STAT_GOING,
- UPGRADE_STAT_FAILED,
- UPGRADE_STAT_MAX,
- };
- enum { //升级数据来源source
- UPGRADE_SRC_NONE=0,
- UPGRADE_SRC_TCP,
- UPGRADE_SRC_HTTP,
- UPGRADE_SRC_MQTT,
- UPGRADE_SRC_UDISK,
- UPGRADE_SRC_TCARD,
- UPGRADE_SRC_RS485,
- UPGRADE_SRC_MAX,
- };
- enum { //升级对象object, 可以同时升级多个
- UPGRADE_OBJ_PWR=(1<<0),
- UPGRADE_OBJ_WEB=(1<<1),
- UPGRADE_OBJ_APP=(1<<2),
- };
- enum { //升级策略strategy
- UPGRADE_STRA_OLD=0, //升级版本或编译/修改时间较老的设备
- UPGRADE_STRA_FORCE, //强制升级
- UPGRADE_STRA_MAX,
- };
- enum { //升级对象的数量number
- UPGRADE_NUM_SINGLE=0, //单个设备升级
- UPGRADE_NUM_BAT, //批量升级
- UPGRADE_NUM_ALL, //全部升级
- UPGRADE_NUM_MAX,
- };
- enum { //升级进度step
- UPGRADE_STEP_NONE=0,
- UPGRADE_STEP_DOWN,
- UPGRADE_STEP_SPLIT,
- UPGRADE_STEP_COVER,
- UPGRADE_STEP_FINISH,
- UPGRADE_STEP_SUCCESS,
- UPGRADE_STEP_MAX,
- };
- #pragma pack(1)
- typedef struct { //升级目标数据结构
- uint32_t evt; //upgrade_evt
- uint32_t flag; //reserved
- }upgrade_msg_t;
- typedef struct { //升级目标数据结构
- uint8_t num; //obj number
- uint8_t stra; //obj strategy
- char obj1[64]; //obj1 addr or name
- char obj2[64]; //obj2 addr or name
- }upgrade_obj_t;
- typedef struct {
- uint32_t magic; //UPG_PKT_MAGIC
- uint8_t addr; //device modbus addr
- uint16_t dataLen;
- uint8_t data[0];
- }upgrade_pkt_t;
- typedef struct {
- char data[32];
- }md5_t;
- typedef struct {
- uint32_t magic; //UPG_FILE_MAGIC
- upgrade_obj_t obj;
- uint32_t dlen;
- uint8_t data[0];
- /*
- uint8_t data[x];
- md5_t md5;
- */
- }upgrade_file_t;
- #pragma pack()
- typedef struct {
- long type;
- uint32_t evt;
- }msgbuf_t;
- #endif
|