115 lines
3.2 KiB
C
115 lines
3.2 KiB
C
#ifndef _USER_OTA_SERVER_H_
|
||
#define _USER_OTA_SERVER_H_
|
||
|
||
#include "sys_config.h"
|
||
|
||
#include "ble_protocol.h"
|
||
|
||
|
||
#define FILE_NAME_LENGTH_MAX (72) // 固件文件名最大长度
|
||
#define APP_WAIT_TIME_MAX 3
|
||
|
||
|
||
/********************************
|
||
*4.12.1 APP通知升级状态
|
||
**********************************/
|
||
enum
|
||
{
|
||
PackageVersionType=1,
|
||
FileLenghtType,
|
||
OtaModelType,
|
||
OtaStatusType,
|
||
BatteryThresholdType,
|
||
AppWaitTimeOutType,
|
||
OtaMTUSizeType,
|
||
};
|
||
|
||
/********************************
|
||
*4.12.2 APP 通知设备升级状态
|
||
**********************************/
|
||
enum
|
||
{
|
||
AppOtaStatusType=1,
|
||
};
|
||
|
||
/********************************
|
||
*4.2 OTA服务下面的命令ID
|
||
**********************************/
|
||
enum
|
||
{
|
||
CheckIFOtaModeID=1, //4.12.1 询问是否可以进入OTA 模式
|
||
AppNoticeOTAStatusID=2, //4.12.2 APP 通知设备升级状态
|
||
RequestOTAFileDataID=3, //4.12.3 设备根据文件信息分帧请求文件内容
|
||
ReceiveOTAFileDataID=4, //4.12.4 APP 根据设备的分帧请求返回文件内容
|
||
NoticeReceiveOTAFileSuccessID=5, //4.12.5 设备通知APP 升级包接收完
|
||
NoticeOTAUpdateTypeID=6, //4.12.6 设备回复手机文件接收完毕校验,并指定由谁开启OTA 流程
|
||
DeviceOTAErrReportID=7, //4.12.7 设备端OTA 状态上报
|
||
AppCancelOTAID=8, //4.12.8 取消升级
|
||
Ota_server_max_ID
|
||
};
|
||
|
||
/********************************
|
||
*4.12.3 设备根据文件信息分帧请求文件内容
|
||
**********************************/
|
||
enum
|
||
{
|
||
OtaFileOffsetType=1,
|
||
OtaRequestDataLenType,
|
||
OtaTotalFileSizeType,
|
||
OtaReceivedFileLenType
|
||
};
|
||
|
||
/********************************
|
||
4.12.5 设备通知APP 升级包接收完
|
||
**********************************/
|
||
enum
|
||
{
|
||
OtaReceivedEndtype=1,
|
||
};
|
||
/********************************
|
||
4.12.6 设备回复手机文件接收完毕校验,并指定由谁开启OTA 流程
|
||
**********************************/
|
||
enum
|
||
{
|
||
PkgValidityType=1,
|
||
WhichStartOtaType,
|
||
AppStartOtaType
|
||
};
|
||
|
||
/********************************
|
||
4.12.7 设备端OTA 状态上报
|
||
**********************************/
|
||
enum
|
||
{
|
||
OtaErrorResultype=1,
|
||
};
|
||
|
||
/********************************
|
||
4.12.8 取消升级
|
||
**********************************/
|
||
enum
|
||
{
|
||
CancelOtaType=1,
|
||
};
|
||
|
||
|
||
//ota 固件信息参数
|
||
typedef struct
|
||
{
|
||
uint32_t OtaFlieLenFromAPP; // APP发送的固件长度(有可能和实际收到的固件长度不一样)
|
||
uint8_t OtaFileName[FILE_NAME_LENGTH_MAX]; // 从APP端接收的固件文件名信息内容
|
||
uint8_t OtaWorkMode; // 升级模式 前台/后台
|
||
uint8_t DeviceOtaStatus; // 0:可以升级 1:不可以升级
|
||
uint8_t AppOtaStatus; // 0:可以升级 1:不可以升级
|
||
}ota_fw_info_t;
|
||
|
||
|
||
extern void ota_clear_disconnect(void);
|
||
extern void OtaCreatRestartTimer(void);
|
||
|
||
|
||
extern const p_func_t user_Ota_server_func[Ota_server_max_ID];
|
||
|
||
|
||
#endif
|