#include "sr_sunrise.h"

#define OTA_NET_ADT_NAME "luat"
#define OTA_URL_DEFAULT  "http://api-aep.xiot.senthink.com/senthink/aep/ota/v1/firm/down/762DF087/73AF9252/DEV0001/34554449"

static char shellUrl[128]={0};
static char *httpUrl=0;


void UserOtaEventCb(SR_OTA_EVT_T event,SR_OTA_STA_T status)
{
	switch(event)
	{
		case SR_OTA_EVT_OK:    //下载并校验成功，可以复位
			SR_LOG(INFO,"[OTA] down and verify OK,status=%d",status);
		break;

		case SR_OTA_EVT_FAIL:  //失败，失败原因为status		
			SR_LOG(INFO,"[OTA] ota fail,status=%d",status);
		break;
	}
}



static int OtaExample(int argc, char *argv[])
{
	int ret =-1;
	httpUrl = OTA_URL_DEFAULT;

	if(argc >= 2)
	{
		strcpy(shellUrl,argv[1]);
		httpUrl = shellUrl;
	}	
	SR_LOG(INFO,"[OTA] url: %s",httpUrl);

	//1、OTA初始化
	SR_OTA_INIT_PARAMS_T params={0};
	params.proteType = SR_OTA_PROTO_HTTP;  //http协议
	params.storeType = SR_OTA_STORE_FOTA;  //FOTA接口方式升级
	params.url = httpUrl; //下载地址
	params.storeName =0;  //FOTA接口方式填0
	params.verifyCode=0;  //预留,待完善
	params.netAdpName = OTA_NET_ADT_NAME;  //网络适配器名字
	ret =  SR_OtaFwDownloadInit(&params);  //OTA初始化
	if(ret!=0) goto _END;

	//2、注册回调
	SR_OtaSetEventCb(UserOtaEventCb,SR_NULL);
	
	//3、固件异步下载(非阻塞)
	ret =SR_OtaFwDownloadAsync();

_END:
	return ret;
}
SR_SHELL_CMD_EXPORT(ota_exmp, OtaExample);










