📄 dload_interface.c
字号:
/***********************************************************************
* File name: dload.c
* Author: Version: Date: likun
* Description: 下载模块的的接口实现
*
* Others:
* Function List:
* 1. ....
* History:
* 1. Date:2008-3-31
* Author:likun create this file
* Modification:
* 2. ...
*************************************************************************/
#include "hos.h"
#include "Dload.h"
#include "Dload_interface.h"
#ifdef __cplusplus
extern "C" {
#endif
int DLoadAddNewTask(DLoadNewTask *pNewTask)
{
DLoadMsgAddATask addNewTask;
addNewTask.stMsgHdl.ulDstInst = 0;
addNewTask.stMsgHdl.ulDstModID = MODULEID_DLOAD;
strncpy(addNewTask.stNewTask.FileID , pNewTask->FileID, 20);
addNewTask.stNewTask.ProtocolType = pNewTask->ProtocolType;
addNewTask.stMsgHdl.ulMsgType = DLOAD_SYNC_DLOAD_ADDTASK;
/* likun */
addNewTask.stMsgHdl.ulSrcModID = MODULEID_BUTT;
addNewTask.stMsgHdl.ulSrcInst = 0;
return HOS_MsgSnd(NULL,(TMsg *)&addNewTask, sizeof(DLoadMsgAddATask));
}
int DLoadStarTask(DLoadTaskHandle hTaskHandle)
{
/*likun 增加消息的源*/
DLoadMsgCtrCmd startCmd;
startCmd.hTaskHandle = hTaskHandle;
startCmd.cmd = DLOAD_CMD_START;
startCmd.stMsgHdl.ulDstInst = 0;
startCmd.stMsgHdl.ulDstModID = MODULEID_DLOAD;
startCmd.stMsgHdl.ulMsgType = DLOAD_ASYN_DLOAD_CTRLCMD;
/* likun */
startCmd.stMsgHdl.ulSrcModID = MODULEID_BUTT;
startCmd.stMsgHdl.ulSrcInst = 0;
return HOS_MsgSnd(NULL,(TMsg *)&startCmd, sizeof(DLoadMsgCtrCmd));
}
int DLoadPauseTask(DLoadTaskHandle hTaskHandle)
{
/*likun 增加消息的源*/
DLoadMsgCtrCmd startCmd;
startCmd.hTaskHandle = hTaskHandle;
startCmd.cmd = DLOAD_CMD_PAUSE;
startCmd.stMsgHdl.ulDstInst = 0;
startCmd.stMsgHdl.ulDstModID = MODULEID_DLOAD;
startCmd.stMsgHdl.ulMsgType = DLOAD_ASYN_DLOAD_CTRLCMD;
/* likun */
startCmd.stMsgHdl.ulSrcModID = MODULEID_BUTT;
startCmd.stMsgHdl.ulSrcInst = 0;
return HOS_MsgSnd(NULL,(TMsg *)&startCmd, sizeof(DLoadMsgCtrCmd));
}
int DLoadResumeTask(DLoadTaskHandle hTaskHandle)
{
/*likun 增加消息的源*/
DLoadMsgCtrCmd startCmd;
startCmd.hTaskHandle = hTaskHandle;
startCmd.cmd = DLOAD_CMD_RESUME;
startCmd.stMsgHdl.ulDstInst = 0;
startCmd.stMsgHdl.ulDstModID = MODULEID_DLOAD;
startCmd.stMsgHdl.ulMsgType = DLOAD_ASYN_DLOAD_CTRLCMD;
/* likun */
startCmd.stMsgHdl.ulSrcModID = MODULEID_BUTT;
startCmd.stMsgHdl.ulSrcInst = 0;
return HOS_MsgSnd(NULL,(TMsg *)&startCmd, sizeof(DLoadMsgCtrCmd));
}
int DLoadDeleteTask(DLoadTaskHandle hTaskHandle)
{
/*likun 增加消息的源*/
DLoadMsgCtrCmd startCmd;
startCmd.hTaskHandle = hTaskHandle;
startCmd.cmd = DLOAD_CMD_DEL;
startCmd.stMsgHdl.ulDstInst = 0;
startCmd.stMsgHdl.ulDstModID = MODULEID_DLOAD;
startCmd.stMsgHdl.ulMsgType = DLOAD_ASYN_DLOAD_CTRLCMD;
/* likun */
startCmd.stMsgHdl.ulSrcModID = MODULEID_BUTT;
startCmd.stMsgHdl.ulSrcInst = 0;
return HOS_MsgSnd(NULL,(TMsg *)&startCmd, sizeof(DLoadMsgCtrCmd));
}
int DLoadGetTaskNum(HMSGQ hMsgQ,int *total)
{
TMsg SndMsg;
int ret;
DLoadMsgTaskNum RcvMsg;
if(!hMsgQ || !total)
{
return -1;
}
memset(&SndMsg, 0, sizeof(TMsg));
memset(&RcvMsg, 0, sizeof(DLoadMsgTaskNum));
SndMsg.stMsgHdl.ulDstInst = 0;
SndMsg.stMsgHdl.ulDstModID = MODULEID_DLOAD;
SndMsg.stMsgHdl.ulMsgType = DLOAD_SYNC_DLOAD_GET_TASKNUM;
SndMsg.stMsgHdl.usSeq = 0;
ret = HOS_MsgSendAndRcv(hMsgQ, (TMsg *)&SndMsg, sizeof(TMsg),
(TMsg *)&RcvMsg, sizeof(DLoadMsgTaskNum), DLOAD_MSG_TIMEOUT);
if(ret>0)
*total = RcvMsg.taskNum;
else
return -1;
return 0;
}
DLoadRetCode DLoadGetFirstTaskInfo(HMSGQ hMsgQ, DLoadTaskPubInfo *para)
{
TMsg SndMsg;
int ret;
int retcode;
DLoadMsgTaskPubInfo RcvMsg;
if(!hMsgQ || !para)
{
return -1;
}
memset(&SndMsg, 0, sizeof(TMsg));
memset(&RcvMsg, 0, sizeof(DLoadMsgTaskPubInfo));
SndMsg.stMsgHdl.ulDstInst = 0;
SndMsg.stMsgHdl.ulDstModID = MODULEID_DLOAD;
SndMsg.stMsgHdl.ulMsgType = DLOAD_SYNC_DLOAD_GETFIRSTTASK_INFO;
SndMsg.stMsgHdl.usSeq = 0;
ret = HOS_MsgSendAndRcv(hMsgQ, (TMsg *)&SndMsg, sizeof(TMsg),
(TMsg *)&RcvMsg, sizeof(DLoadMsgTaskPubInfo), DLOAD_MSG_TIMEOUT);
if(ret>0)
{
if(0==RcvMsg.pubInfo.RetCode)
memcpy(para, &(RcvMsg.pubInfo), sizeof(DLoadTaskPubInfo));
else
return DLOAD_RETCODE_NOTASK;
}
else
return DLOAD_RETCODE_GETFAIL;
return DLOAD_RETCODE_GETSUCC;
}
int DLoadGetTaskInfoByHandle(HMSGQ hMsgQ, DLoadTaskHandle hDloadTask, DLoadTaskPubInfo *para)
{
int ret;
DLoadMsgGetInfo SndMsg;
DLoadMsgTaskPubInfo RcvMsg;
if(!hMsgQ || !para)
{
return -1;
}
SndMsg.stMsgHdl.ulDstInst = 0;
SndMsg.stMsgHdl.ulDstModID = MODULEID_DLOAD;
SndMsg.stMsgHdl.ulMsgType = DLOAD_SYNC_DLOAD_GETTASK_INFO_BYHANDLE;
SndMsg.stMsgHdl.usSeq = 0;
SndMsg.hTaskHandle = hDloadTask;
ret = HOS_MsgSendAndRcv(hMsgQ, (TMsg *)&SndMsg, sizeof(DLoadMsgGetInfo),
(TMsg *)&RcvMsg, sizeof(DLoadMsgTaskPubInfo), DLOAD_MSG_TIMEOUT);
if(ret>0)
memcpy(para, &(RcvMsg.pubInfo), sizeof(DLoadTaskPubInfo));
else
return -1;
return 0;
}
DLoadRetCode DLoadGetNextTaskInfoByHandle(HMSGQ hMsgQ, DLoadTaskHandle hDloadTask, DLoadTaskPubInfo *para)
{
int ret;
DLoadMsgGetInfo SndMsg;
DLoadMsgTaskPubInfo RcvMsg;
if(!hMsgQ || !para)
{
return -1;
}
SndMsg.stMsgHdl.ulDstInst = 0;
SndMsg.stMsgHdl.ulDstModID = MODULEID_DLOAD;
SndMsg.stMsgHdl.ulMsgType = DLOAD_SYNC_DLOAD_GETNEXTTASK_INFO_BYHANDLE;
SndMsg.stMsgHdl.usSeq = 0;
SndMsg.hTaskHandle = hDloadTask;
ret = HOS_MsgSendAndRcv(hMsgQ, (TMsg *)&SndMsg, sizeof(DLoadMsgGetInfo),
(TMsg *)&RcvMsg, sizeof(DLoadMsgTaskPubInfo), DLOAD_MSG_TIMEOUT);
if(ret>0)
{
if(0==RcvMsg.pubInfo.RetCode)
memcpy(para, &(RcvMsg.pubInfo), sizeof(DLoadTaskPubInfo));
else
return DLOAD_RETCODE_TAIL;
}
else
return DLOAD_RETCODE_GETFAIL;
return DLOAD_RETCODE_GETSUCC;
}
#ifdef _cplusplus
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -