TI中文支持网
TI专业的中文技术问题搜集分享网站

DM8168,System_linkControl()改变参数信息之后,送到AlgLink_tskMain()中接收,如何处理?

HI:

大家好!

DM8168,DVR RDK ,DVRRDK_03.00.00.00版本。

问题:System_linkControl()改变参数信息之后,送到algLink_tsk.c文件中AlgLink_tskMain()接收,如果case中处理时间过长,使得数据拥堵,不能接收新的link发来的数据,case SYSTEM_CMD_NEW_DATA不再执行,该如何解决?

例如:

1、chains_singleChCapOsdDis.c中,执行System_linkControl(osdid,  ALG_LINK_OSD_CMD_SET_CHANNEL_WIN_PRM,  NULL,  0,  TRUE);

2、algLink_tsk.c文件中AlgLink_tskMain()函数中,执行到case ALG_LINK_OSD_CMD_SET_CHANNEL_WIN_PRM:      

            case ALG_LINK_OSD_CMD_SET_CHANNEL_WIN_PRM:
                 {
                   AlgLink_OsdChWinParams *params;

                   params = (AlgLink_OsdChWinParams *) Utils_msgGetPrm(pMsg);
                   AlgLink_OsdalgSetChOsdWinPrm(&pObj->osdAlg, params);
                   Utils_tskAckOrFreeMsg(pMsg, status);
                 }
                break;   【原函数】

 变为:

            case ALG_LINK_OSD_CMD_SET_CHANNEL_WIN_PRM:
                 {
                   AlgLink_OsdChWinParams *params;

                   sleep(60); /* 用意:给这个处理一个延时*/

                   params = (AlgLink_OsdChWinParams *) Utils_msgGetPrm(pMsg);
                   AlgLink_OsdalgSetChOsdWinPrm(&pObj->osdAlg, params);
                   Utils_tskAckOrFreeMsg(pMsg, status);
                 }
                break;   【原函数】

3、之后运行不正常,在case SYSTEM_CMD_NEW_DATA:中,AlgLink_algProcessData(pObj);函数,frameList.numFrames值变为10,上游link发送过来的帧数据堵塞,运行完for(frameId=0; frameId<frameList.numFrames; frameId++)之后,程序卡死,接收不到新的SYSTEM_CMD_NEW_DATA,此处该如何处理?

谢谢您看了这么多描述,不知道有没有描述清楚,感谢您的答复!

 

tao chai:

你可以试试有timeout的System_linkControlWithTimeout 这个可以设置超时时间,第三个问题可以做一个应答么,或者delay一下再发么

yoyo only:

回复 tao chai:

你好,

感谢您的耐心指导,上一个link传送过来的帧数据给下一个link,这里系统运行起来之后不能控制。delay一下该段代码我试过,还是数据堵塞。

System_linkControlWithTimeout ,我试过了,很不错的延时处理函数。

再次感谢!

shupeng hu:

你好,在AlgLink_init中Utils_tskCreate创建AlgLink_tskMain为什么识别,好像卡在Utils_mbxRecvMsg,请问这个该怎么解决呢

shupeng hu:

回复 shupeng hu:

在AlgLink_init中Utils_tskCreate创建AlgLink_tskMain为什么失败

赞(0)
未经允许不得转载:TI中文支持网 » DM8168,System_linkControl()改变参数信息之后,送到AlgLink_tskMain()中接收,如何处理?
分享到: 更多 (0)