在QNX中将硬件计时器设置为自定义值-devctl命令

时间:2019-01-18 08:28:28

标签: c++ timer qnx

正在启动硬件计时器,并使用devctl命令定期检查倒计时。

    MsgType tData;

    tData.sFacadeNo = IohFac_SIO;  // has value 8
    tData.sCmdNo    = IohSIO_startOvertempTimer;  // has value 6
    tData.sStatus   = IOH_STAT_RMGRERR;           // has value 4
    tData.tSpecData.tStandardMsg.uiValue1 = 1;

    devctl( iFD, (int) DEVDIR_TOFROM, &tData, (unsigned) (int) tData.sLen, (int*) NULL );

    return tData.sStatus;

iFD是从/ dev / SomeDeviceCustomTous中的设备的open64命令获取的文件描述符。设备的类型为“ n”,表示“命名特殊”(共享内存区域,例如/ dev / shmem / Pg101e0001。)

在tData中获得响应。

一些相关的枚举

struct MsgTag {
short sCmdNo;       //## attribute sCmdNo
short sFacadeNo;        //## attribute sFacadeNo
short sLen;     //## attribute sLen
short sStatus;      //## attribute sStatus
tSpecDataTag tSpecData;     //## attribute tSpecData
MsgTag()
{
    sLen=sizeof(MsgTag);
}
};
//#]

union tSpecDataTag {
    HndlMsgType tHndlMsg;       
    StandardMsgType tStandardMsg;       
};


typedef MsgTag MsgType;

struct HndlMsgTag {
void * pPortID;     
unsigned int uiValue1;      
unsigned int uiValue2;      
};


typedef HndlMsgTag HndlMsgType;


struct StandardMsgTag {
    int iSetID;     
    unsigned int uiTimeout;     
    unsigned int uiValue1;      
    unsigned int uiValue2;      
    };


typedef StandardMsgTag StandardMsgType;

问题
硬件计时器默认设置为30分钟,并且倒计时直到变为0并变为非活动状态。我不确定将其设置为30的位置。我们的要求是将倒计时更改为10分钟,但我认为代码中的任何位置都没有设置。

欢迎提出任何建议。

0 个答案:

没有答案