|
|
@@ -7,10 +7,20 @@ LOG_EXTERN()
|
|
|
static DWORD dwWDTTime = 0;
|
|
|
static DWORD dwDelayTime = 0;
|
|
|
|
|
|
-WatchDogClassImpl::WatchDogClassImpl()
|
|
|
+WatchDogClassImpl::WatchDogClassImpl():
|
|
|
+ m_bDevOpen(false)
|
|
|
+ ,m_bDelayTimer(false)
|
|
|
+ ,m_bWDTTimer(false)
|
|
|
+ ,m_dwTimeOut(0)
|
|
|
+ ,m_dwRealTimeOut(0)
|
|
|
+ ,m_dwWDTDelayTime(0)
|
|
|
+ ,m_dwDelay(0)
|
|
|
+ ,m_dwDelayTime(0)
|
|
|
+ ,m_dwDelayRemain(0)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
m_TimerCtrl=new CTimerCtrl;
|
|
|
+ m_wfd=NULL;
|
|
|
}
|
|
|
|
|
|
WatchDogClassImpl::~WatchDogClassImpl()
|
|
|
@@ -67,28 +77,18 @@ ErrorCodeEnum WatchDogClassImpl::Reset()
|
|
|
if (!m_bDevOpen)
|
|
|
{
|
|
|
SaveErrorInfo("Reset m_bDevOpen is null!", Error_DevNotAvailable);
|
|
|
- //g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN,"WatchDogClassImpl::Reset()->Reset m_bDevOpen is null!");
|
|
|
- LogE("WatchDogClassImpl::Reset()->Reset m_bDevOpen is null!");
|
|
|
+ LogE("WatchDogClassImpl::Reset()->Reset m_bDevOpen is nullline=%d",__LINE__);
|
|
|
return Error_DevNotAvailable;
|
|
|
}
|
|
|
|
|
|
if(m_wfd == NULL)
|
|
|
{
|
|
|
SaveErrorInfo("Reset m_pMB330CRM is null!", Error_DevNotAvailable);
|
|
|
- //g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN,"WatchDogClassImpl::Reset()->Reset m_wfd is null!");
|
|
|
- LogE("WatchDogClassImpl::Reset()->Reset m_wfd is null!");
|
|
|
+ LogE("WatchDogClassImpl::Reset()->Reset m_wfd is null! line=%d",__LINE__);
|
|
|
return Error_DevNotAvailable;
|
|
|
}
|
|
|
-// if (ioctl(m_wfd, WDIOC_SETOPTIONS, WDIOS_ENABLECARD) == -1)
|
|
|
-// {
|
|
|
-// SaveErrorInfo("Reset IsAvailable fail!", Error_DevNotAvailable);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN,"WatchDogClassImpl::Reset()->Reset WDIOS_ENABLECARD fail!");
|
|
|
-// return Error_DevNotAvailable;
|
|
|
-// }
|
|
|
- //m_pMB330CRM->ResetWDT();
|
|
|
ioctl(m_wfd, WDIOC_SETOPTIONS, WDIOS_DISABLECARD);
|
|
|
- //g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN,"WatchDogClassImpl::Reset()->Reset is Execute success!");
|
|
|
- LogM("WatchDogClassImpl::Reset()->Reset is Execute success!");
|
|
|
+ LogM("WatchDogClassImpl::Reset()->Reset is Execute success! line=%d",__LINE__);
|
|
|
return Error_Succeed;
|
|
|
}
|
|
|
|
|
|
@@ -99,17 +99,14 @@ ErrorCodeEnum WatchDogClassImpl::DevClose()
|
|
|
if(m_wfd == NULL)
|
|
|
{
|
|
|
SaveErrorInfo("DevClose m_pMB330CRM is null!", Error_DevNotAvailable);
|
|
|
- //g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::DevClose()-> DevClose m_wfd is null!");
|
|
|
- LogE(" WatchDogClassImpl::DevClose()-> DevClose m_wfd is null!");
|
|
|
+ LogE(" WatchDogClassImpl::DevClose()-> DevClose m_wfd is null! line=%d",__LINE__);
|
|
|
return Error_DevNotAvailable;
|
|
|
}
|
|
|
- //m_pMB330CRM->ResetWDT(); //disable WDT
|
|
|
ioctl(m_wfd, WDIOC_SETOPTIONS, WDIOS_DISABLECARD) ;
|
|
|
char stopmagic='v';
|
|
|
write(m_wfd, &stopmagic, sizeof(stopmagic));
|
|
|
close(m_wfd);
|
|
|
- //g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::DevClose()-> DevClose DevClose is Execute success!");
|
|
|
- LogE("WatchDogClassImpl::DevClose()-> DevClose DevClose is Execute success!");
|
|
|
+ LogE("WatchDogClassImpl::DevClose()-> DevClose DevClose is Execute success! line=%d",__LINE__);
|
|
|
return Error_Succeed;
|
|
|
}
|
|
|
|
|
|
@@ -117,9 +114,7 @@ ErrorCodeEnum WatchDogClassImpl::GetLastErr(DevErrorInfo &devErrInfo)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
devErrInfo.dwErrMsgLen = strlen(m_szErrMsg);
|
|
|
- //memset(devErrInfo.szErrMsg, 0, MAX_DEV_ERR_MSG);
|
|
|
memset(devErrInfo.szErrMsg, 0, MAX_DEV_ERROR_MSG_LEN);
|
|
|
- //memcpy(devErrInfo.szErrMsg, m_szErrMsg, min(devErrInfo.dwErrMsgLen, MAX_DEV_ERR_MSG));
|
|
|
memcpy(devErrInfo.szErrMsg, m_szErrMsg, std::min((uint32_t)devErrInfo.dwErrMsgLen,(uint32_t) MAX_DEV_ERROR_MSG_LEN));
|
|
|
return Error_Succeed;
|
|
|
}
|
|
|
@@ -127,50 +122,93 @@ ErrorCodeEnum WatchDogClassImpl::GetLastErr(DevErrorInfo &devErrInfo)
|
|
|
ErrorCodeEnum WatchDogClassImpl::DevOpen()
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
+ int preset_timeout{0};
|
|
|
if(m_bDevOpen)
|
|
|
{
|
|
|
SaveErrorInfo("DevOpen DevAlreadyConnected!");
|
|
|
- LogE("DevOpen DevAlreadyConnected!");
|
|
|
+ LogW("DevOpen DevAlreadyConnected! line=%d",__LINE__);
|
|
|
return Error_DevAlreadyConnected;
|
|
|
}
|
|
|
ErrorCodeEnum eErr = Error_DevNotAvailable;
|
|
|
if(m_wfd==NULL)
|
|
|
{
|
|
|
- m_wfd = open(WATCHDOG, O_RDWR);
|
|
|
+ m_wfd = open(WATCHDOG0, O_RDWR);
|
|
|
+ if (m_wfd == -1)
|
|
|
+ {
|
|
|
+ eErr = Error_Failed;
|
|
|
+ LogE("WatchDogClassImpl::DevOpen Error_DevCommFailed=%d line=%d",eErr,__LINE__);
|
|
|
+ return Error_Failed;
|
|
|
+ }
|
|
|
+ ioctl(m_wfd, WDIOC_GETTIMEOUT, &preset_timeout);
|
|
|
+ LogW("ioctl(m_wfd, WDIOC_GETTIMEOUT, &preset_timeout=%d) line=%d",preset_timeout,__LINE__);
|
|
|
+ int config_timeout=178;
|
|
|
+ ioctl(m_wfd, WDIOC_SETTIMEOUT, &config_timeout);
|
|
|
+ int flag=WDIOS_DISABLECARD;
|
|
|
+ if(-1== ioctl(m_wfd, WDIOC_SETOPTIONS, &flag))
|
|
|
+ {
|
|
|
+ LogW("-1==ioctl(m_wfd, WDIOC_SETOPTIONS, &flag=WDIOS_DISABLECARD); line=%d",__LINE__);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ LogW("ioctl(m_wfd, WDIOC_SETOPTIONS, WDIOS_DISABLECARD) sucessfull line=%d",__LINE__);
|
|
|
+ }
|
|
|
}
|
|
|
if(m_wfd)
|
|
|
{
|
|
|
eErr = Error_Succeed;
|
|
|
m_bDevOpen=true;
|
|
|
+ /*测试能否获取看门狗打开后,默认的时间*/
|
|
|
+ if(-1==ioctl(m_wfd, WDIOC_GETTIMEOUT, &preset_timeout))
|
|
|
+ {
|
|
|
+ LogW("-1==ioctl(m_wfd, WDIOC_GETTIMEOUT, &preset_timeout=%d) line=%d",preset_timeout,__LINE__);
|
|
|
+ char stopmagic = 'V';
|
|
|
+ if (write(m_wfd, &stopmagic, sizeof(stopmagic)) != sizeof(stopmagic))
|
|
|
+ {
|
|
|
+ LogW("Watchdog magic stop write error line=%d",__LINE__);
|
|
|
+ }
|
|
|
+ close(m_wfd);
|
|
|
+ LogW("Watchdog gettimeout ioctl error %s line=%d", strerror(errno),__LINE__);
|
|
|
+ return Error_Failed;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ LogW("Watchdog preset timeout is %d line=%d",preset_timeout,__LINE__);
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
eErr = Error_DevCommFailed;
|
|
|
- LogE("WatchDogClassImpl::DevOpen Error_DevCommFailed=%d",eErr);
|
|
|
+ LogE("WatchDogClassImpl::DevOpen Error_DevCommFailed=%d line=%d",eErr,__LINE__);
|
|
|
}
|
|
|
return eErr;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
ErrorCodeEnum WatchDogClassImpl::StartWatch(DWORD dwDelay, DWORD dwTimeout)
|
|
|
{
|
|
|
LOG_FUNCTION();
|
|
|
+ LogE("StartWatch dwDelay=%d,dwTimeout=%d",dwDelay,dwTimeout);
|
|
|
if (!m_bDevOpen)
|
|
|
{
|
|
|
SaveErrorInfo("StartWatch m_bDevOpen is null!");
|
|
|
- LogE("StartWatch m_bDevOpen is null!");
|
|
|
+ LogE("StartWatch m_bDevOpen is null! line=%d",__LINE__);
|
|
|
return Error_DevNotAvailable;
|
|
|
}
|
|
|
if(m_wfd == NULL)
|
|
|
{
|
|
|
SaveErrorInfo("StartWatch m_pMB330CRM is null!");
|
|
|
- LogE("StartWatch m_pMB330CRM is null! Error_DevNotAvailable=%d",Error_DevNotAvailable);
|
|
|
+ LogE("StartWatch m_pMB330CRM is null! Error_DevNotAvailable=%d line=%d",Error_DevNotAvailable,__LINE__);
|
|
|
return Error_DevNotAvailable;
|
|
|
}
|
|
|
- if (dwTimeout == 0)
|
|
|
+ if (dwDelay == 0 && dwTimeout == 0)
|
|
|
{
|
|
|
- SaveErrorInfo("StartWatch Check Param fail!");
|
|
|
- LogE("StartWatch Check Param fail!");
|
|
|
+ //SaveErrorInfo("StartWatch Check Param fail!");
|
|
|
+ LogE("StartWatch Check two Param are 0! line=%d",__LINE__);
|
|
|
+ int flag=WDIOS_ENABLECARD;
|
|
|
+ if(-1== ioctl(m_wfd, WDIOC_SETOPTIONS, &flag))
|
|
|
+ {
|
|
|
+ LogW("-1==ioctl(m_wfd, WDIOC_SETOPTIONS, &flag=WDIOS_ENABLECARD); line=%d",__LINE__);
|
|
|
+ }
|
|
|
+ ioctl(m_wfd,WDIOC_SETTIMEOUT,&dwTimeout);
|
|
|
return Error_Param;
|
|
|
}
|
|
|
//Initiate variable
|
|
|
@@ -180,13 +218,14 @@ ErrorCodeEnum WatchDogClassImpl::StartWatch(DWORD dwDelay, DWORD dwTimeout)
|
|
|
{
|
|
|
m_dwTimeOut = dwTimeout % 178;
|
|
|
m_dwWDTDelayTime = (dwTimeout - m_dwTimeOut) / 178;
|
|
|
+ LogW("m_dwTimeOut=%d,m_dwWDTDelayTime=%d line=%d,",m_dwTimeOut,m_dwWDTDelayTime,__LINE__);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
m_dwTimeOut = dwTimeout;
|
|
|
}
|
|
|
m_dwRealTimeOut = dwTimeout;
|
|
|
-
|
|
|
+ LogE("m_dwRealTimeOut=%d line=%d" ,m_dwRealTimeOut , __LINE__);
|
|
|
|
|
|
//Start DelayTimer
|
|
|
if ( dwDelay != 0 )
|
|
|
@@ -194,26 +233,27 @@ ErrorCodeEnum WatchDogClassImpl::StartWatch(DWORD dwDelay, DWORD dwTimeout)
|
|
|
if (m_bDelayTimer)
|
|
|
{
|
|
|
m_TimerCtrl->EndTimer_ptr(m_mmDelayTimerID);
|
|
|
- LogW(" StartWatch(dwDelay=%d, dwTimeout=%d) StartWatch Delay timeKillEvent m_mmDelayTimerID = %d !",
|
|
|
- dwDelay, dwTimeout,m_mmDelayTimerID);
|
|
|
+ LogW("line=%d StartWatch(dwDelay=%d, dwTimeout=%d) StartWatch Delay timeKillEvent m_mmDelayTimerID = %d !",
|
|
|
+ __LINE__,dwDelay, dwTimeout,m_mmDelayTimerID);
|
|
|
}
|
|
|
|
|
|
if (dwDelay > 178)
|
|
|
{
|
|
|
m_dwDelayRemain = dwDelay % 178;
|
|
|
+ LogW(" m_dwDelayRemain = %d !line=%d ",m_dwDelayRemain, __LINE__);
|
|
|
m_dwDelayTime = (dwDelay - m_dwDelayRemain) / 178;
|
|
|
+ LogW("m_dwDelayTime = %d line=%d !",m_dwDelayTime, __LINE__);
|
|
|
m_TimerCtrl->SetTimerFunction(DelayTimer);
|
|
|
m_TimerCtrl->StartTimer_ptr(m_mmDelayTimerID,this,_TIMER_DELAY,FALSE);
|
|
|
- //g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::StartWatch->StartWatch Delay timeSetEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID);
|
|
|
- LogW(" WatchDogClassImpl::StartWatch->StartWatch Delay timeSetEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID);
|
|
|
+ LogW("WatchDogClassImpl::StartWatch->StartWatch Delay timeSetEvent m_mmDelayTimerID = %d line=%d !",m_mmDelayTimerID, __LINE__);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
m_dwDelayTime = 0;
|
|
|
+ LogW("m_dwDelayTime = %d line=%d !", m_dwDelayTime,__LINE__);
|
|
|
m_TimerCtrl->SetTimerFunction(DelayTimer);
|
|
|
m_TimerCtrl->StartTimer_ptr(m_mmDelayTimerID,this,dwDelay*1000,TRUE);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::StartWatch->StartWatch Delay timeSetEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID);
|
|
|
- LogW("WatchDogClassImpl::StartWatch->StartWatch Delay timeSetEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID);
|
|
|
+ LogW("WatchDogClassImpl::StartWatch->StartWatch Delay timeSetEvent m_mmDelayTimerID = %d line=%d !", m_mmDelayTimerID,__LINE__);
|
|
|
}
|
|
|
|
|
|
m_bDelayTimer = true;
|
|
|
@@ -227,25 +267,28 @@ ErrorCodeEnum WatchDogClassImpl::StartWatch(DWORD dwDelay, DWORD dwTimeout)
|
|
|
if (m_bWDTTimer)
|
|
|
{
|
|
|
m_TimerCtrl->EndTimer_ptr(m_mmWDTTimerID);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::StartWatch->StartWatch no Delay Timeout timeKillEvent m_mmWDTTimerID = %d !", m_mmDelayTimerID);
|
|
|
- LogW("WatchDogClassImpl::StartWatch->StartWatch no Delay Timeout timeKillEvent m_mmWDTTimerID = %d !", m_mmDelayTimerID);
|
|
|
+ LogW("WatchDogClassImpl::StartWatch->StartWatch no Delay Timeout timeKillEvent m_mmWDTTimerID = %d ! line=%d", m_mmDelayTimerID ,__LINE__);
|
|
|
}
|
|
|
//m_mmWDTTimerID = timeSetEvent( _TIMER_DELAY, 1, &WDTTimer, (DWORD)this, TIME_PERIODIC );
|
|
|
m_TimerCtrl->SetTimerFunction(WDTTimer);
|
|
|
- m_TimerCtrl->StartTimer_ptr(m_mmWDTTimerID,this,dwDelay*1000,TRUE);
|
|
|
+ m_TimerCtrl->StartTimer_ptr(m_mmWDTTimerID,this,_TIMER_DELAY,TRUE);//TRUE表示循环定时器
|
|
|
+ LogW(" m_TimerCtrl->StartTimer_ptr(m_mmWDTTimerID,this,dwDelay*1000=%d,TRUE) ! line=%d", dwDelay*1000,__LINE__);
|
|
|
m_bWDTTimer = true;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//设置没有喂看门狗超时重启时间
|
|
|
+ int flag=WDIOS_ENABLECARD;
|
|
|
+ if(-1== ioctl(m_wfd, WDIOC_SETOPTIONS, &flag))
|
|
|
+ {
|
|
|
+ LogW("-1==ioctl(m_wfd, WDIOC_SETOPTIONS, &flag=WDIOS_ENABLECARD); line=%d",__LINE__);
|
|
|
+ }
|
|
|
ioctl(m_wfd,WDIOC_SETTIMEOUT,&dwTimeout);
|
|
|
//m_pMB330CRM->SetWDT(true, (BYTE)(dwTimeout));
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::StartWatch->StartWatch no Delay SetWDT dwTimeout = %d !", dwTimeout);
|
|
|
- LogW(" WatchDogClassImpl::StartWatch->StartWatch no Delay SetWDT dwTimeout = %d !", dwTimeout);
|
|
|
+ LogW(" WatchDogClassImpl::StartWatch->StartWatch no Delay SetWDT dwTimeout = %d ! line=%d", dwTimeout,__LINE__);
|
|
|
}
|
|
|
}
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::StartWatch->StartWatch is Execute success!");
|
|
|
- LogW(" WatchDogClassImpl::StartWatch->StartWatch is Execute success!");
|
|
|
+ LogW(" WatchDogClassImpl::StartWatch->StartWatch is Execute success!,line=%d",__LINE__);
|
|
|
|
|
|
return Error_Succeed;
|
|
|
}
|
|
|
@@ -256,7 +299,6 @@ ErrorCodeEnum WatchDogClassImpl::StopWatch()
|
|
|
if (!m_bDevOpen)
|
|
|
{
|
|
|
SaveErrorInfo("StopWatch m_bDevOpen is null!");
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::StopWatch()->StopWatch m_bDevOpen is null !");
|
|
|
LogE(" WatchDogClassImpl::StopWatch()->StopWatch m_bDevOpen is null !");
|
|
|
return Error_DevNotAvailable;
|
|
|
}
|
|
|
@@ -265,7 +307,6 @@ ErrorCodeEnum WatchDogClassImpl::StopWatch()
|
|
|
dwDelayTime = 0;
|
|
|
//timeKillEvent(m_mmDelayTimerID);
|
|
|
m_TimerCtrl->EndTimer_ptr(m_mmDelayTimerID);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::StopWatch()->Delay timeKillEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID );
|
|
|
LogW(" WatchDogClassImpl::StopWatch()->Delay timeKillEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID );
|
|
|
m_bDelayTimer = false;
|
|
|
}
|
|
|
@@ -275,7 +316,6 @@ ErrorCodeEnum WatchDogClassImpl::StopWatch()
|
|
|
dwWDTTime = 0;
|
|
|
//timeKillEvent(m_mmWDTTimerID);
|
|
|
m_TimerCtrl->EndTimer_ptr(m_mmWDTTimerID);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::StopWatch()->WDTTimer timeKillEvent m_mmWDTTimerID = %d !", m_mmWDTTimerID);
|
|
|
LogW(" WatchDogClassImpl::StopWatch()->WDTTimer timeKillEvent m_mmWDTTimerID = %d !", m_mmWDTTimerID);
|
|
|
m_bWDTTimer = false;
|
|
|
}
|
|
|
@@ -288,7 +328,6 @@ ErrorCodeEnum WatchDogClassImpl::StopWatch()
|
|
|
char stopmagic = 'V';
|
|
|
write(m_wfd, &stopmagic, sizeof(stopmagic));
|
|
|
}
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN,"WatchDogClassImpl::StopWatch()->StopWatch is Execute success! !");
|
|
|
LogW("WatchDogClassImpl::StopWatch()->StopWatch is Execute success! !");
|
|
|
return Error_Succeed;
|
|
|
|
|
|
@@ -300,15 +339,13 @@ ErrorCodeEnum WatchDogClassImpl::RefreshDog()
|
|
|
if (!m_bDevOpen)
|
|
|
{
|
|
|
SaveErrorInfo("RefreshDog m_bDevOpen is null!");
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::RefreshDog()->RefreshDog m_bDevOpen is null!");
|
|
|
- LogW("WatchDogClassImpl::RefreshDog()->RefreshDog m_bDevOpen is null!");
|
|
|
+ LogW("WatchDogClassImpl::RefreshDog()->RefreshDog m_bDevOpen is false!");
|
|
|
return Error_DevNotAvailable;
|
|
|
}
|
|
|
|
|
|
if(m_wfd == NULL)
|
|
|
{
|
|
|
SaveErrorInfo("RefreshDog m_pMB330CRM is null!");
|
|
|
- //g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::RefreshDog()->RefreshDog m_wfd is null!");
|
|
|
LogE(" WatchDogClassImpl::RefreshDog()->RefreshDog m_wfd is null!");
|
|
|
return Error_DevNotAvailable;
|
|
|
}
|
|
|
@@ -316,14 +353,12 @@ ErrorCodeEnum WatchDogClassImpl::RefreshDog()
|
|
|
{
|
|
|
//timeKillEvent(m_mmDelayTimerID);
|
|
|
m_TimerCtrl->EndTimer_ptr(m_mmDelayTimerID);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::RefreshDog()->RefreshDog m_bDelayTimer timeKillEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID);
|
|
|
LogW("WatchDogClassImpl::RefreshDog()->RefreshDog m_bDelayTimer timeKillEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID);
|
|
|
if (m_dwDelay > 178)
|
|
|
{
|
|
|
//m_mmDelayTimerID = timeSetEvent( _TIMER_DELAY, 1, &DelayTimer, (DWORD)this, TIME_PERIODIC );
|
|
|
m_TimerCtrl->SetTimerFunction(DelayTimer);
|
|
|
m_TimerCtrl->StartTimer_ptr(m_mmDelayTimerID,this,_TIMER_DELAY,FALSE);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::RefreshDog()->RefreshDog Delay > 178 timeSetEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID);
|
|
|
LogW("WatchDogClassImpl::RefreshDog()->RefreshDog Delay > 178 timeSetEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID);
|
|
|
}
|
|
|
else
|
|
|
@@ -331,7 +366,6 @@ ErrorCodeEnum WatchDogClassImpl::RefreshDog()
|
|
|
//m_mmDelayTimerID = timeSetEvent( m_dwDelay*1000, 1, &DelayTimer, (DWORD)this, TIME_ONESHOT );
|
|
|
m_TimerCtrl->SetTimerFunction(DelayTimer);
|
|
|
m_TimerCtrl->StartTimer_ptr(m_mmDelayTimerID,this, m_dwDelay*1000,TRUE);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::RefreshDog()->RefreshDog Delay < 178 timeSetEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID );
|
|
|
LogW("WatchDogClassImpl::RefreshDog()->RefreshDog Delay < 178 timeSetEvent m_mmDelayTimerID = %d !", m_mmDelayTimerID );
|
|
|
}
|
|
|
m_bDelayTimer = true;
|
|
|
@@ -349,13 +383,10 @@ ErrorCodeEnum WatchDogClassImpl::RefreshDog()
|
|
|
{
|
|
|
//timeKillEvent(m_mmWDTTimerID);
|
|
|
m_TimerCtrl->EndTimer_ptr(m_mmWDTTimerID);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::RefreshDog()->RefreshDog Kill m_mmWDTTimerID = %d !", m_mmWDTTimerID );
|
|
|
LogW("WatchDogClassImpl::RefreshDog()->RefreshDog Kill m_mmWDTTimerID = %d !", m_mmWDTTimerID );
|
|
|
}
|
|
|
- //m_mmWDTTimerID = timeSetEvent( _TIMER_DELAY, 1, &WDTTimer, (DWORD)this, TIME_PERIODIC );
|
|
|
m_TimerCtrl->SetTimerFunction(WDTTimer);
|
|
|
m_TimerCtrl->StartTimer_ptr(m_mmDelayTimerID,this, _TIMER_DELAY,TRUE);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::RefreshDog()->RefreshDog timeSetEvent m_mmWDTTimerID = %d !", m_mmWDTTimerID );
|
|
|
LogW("WatchDogClassImpl::RefreshDog()->RefreshDog timeSetEvent m_mmWDTTimerID = %d !", m_mmWDTTimerID );
|
|
|
m_bWDTTimer = true;
|
|
|
dwWDTTime = 0;
|
|
|
@@ -364,10 +395,8 @@ ErrorCodeEnum WatchDogClassImpl::RefreshDog()
|
|
|
{
|
|
|
//m_pMB330CRM->TimeOutFresh();
|
|
|
ioctl(m_wfd, WDIOC_KEEPALIVE, 0);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::RefreshDog()->RefreshDog TimeOutFresh ok!");
|
|
|
LogW("WatchDogClassImpl::RefreshDog()->RefreshDog TimeOutFresh ok!");
|
|
|
}
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::RefreshDog()->RefreshDog is Execute success!");
|
|
|
LogW("WatchDogClassImpl::RefreshDog()->RefreshDog is Execute success!");
|
|
|
return Error_Succeed;
|
|
|
}
|
|
|
@@ -402,6 +431,7 @@ void WatchDogClassImpl::DelayTimer(sigval_t ptr)
|
|
|
//pThis->m_mmDelayTimerID = timeSetEvent( pThis->m_dwDelayRemain*1000, 1, &DelayTimer, (DWORD)pThis, TIME_ONESHOT );
|
|
|
pThis->m_TimerCtrl->SetTimerFunction(DelayTimer);
|
|
|
pThis->m_TimerCtrl->StartTimer_ptr(pThis->m_mmDelayTimerID,pThis,pThis->m_dwDelayRemain*1000,FALSE);
|
|
|
+ LogW("WatchDogClassImpl::DelayTimer->DelayTimer TimeOut timeSetEvent m_mmWDTTimerID = %d ! TIME_ONESHOT line=%d ", pThis->m_mmWDTTimerID ,__LINE__);
|
|
|
pThis->m_bDelayTimer = true;
|
|
|
bTimeSet = true;
|
|
|
if (bTimeSet)
|
|
|
@@ -417,26 +447,25 @@ void WatchDogClassImpl::DelayTimer(sigval_t ptr)
|
|
|
//pThis->m_mmWDTTimerID = timeSetEvent( _TIMER_DELAY, 1, &WDTTimer, (DWORD)pThis, TIME_PERIODIC );
|
|
|
pThis->m_TimerCtrl->SetTimerFunction(WDTTimer);
|
|
|
pThis->m_TimerCtrl->StartTimer_ptr(pThis->m_mmWDTTimerID,pThis,_TIMER_DELAY,TRUE);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::DelayTimer->DelayTimer TimeOut timeSetEvent m_mmWDTTimerID = %d !", pThis->m_mmWDTTimerID );
|
|
|
- LogW("WatchDogClassImpl::DelayTimer->DelayTimer TimeOut timeSetEvent m_mmWDTTimerID = %d !", pThis->m_mmWDTTimerID );
|
|
|
+ LogW("WatchDogClassImpl::DelayTimer->DelayTimer TimeOut timeSetEvent m_mmWDTTimerID = %d ! TIME_PERIODIC line=%d ", pThis->m_mmWDTTimerID ,__LINE__);
|
|
|
pThis->m_bWDTTimer = true;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//pThis->m_pMB330CRM->SetWDT(true, (BYTE)(pThis->m_dwTimeOut));
|
|
|
+ int flag = WDIOS_ENABLECARD;
|
|
|
+ ioctl(pThis->m_wfd,WDIOC_SETOPTIONS,&flag);
|
|
|
+ LogW(" ioctl(pThis->m_wfd,WDIOC_SETOPTIONS,&flag=WDIOS_ENABLECARD) line=%d", __LINE__ );
|
|
|
ioctl(pThis->m_wfd,WDIOC_SETTIMEOUT,&pThis->m_dwTimeOut);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::DelayTimer->DelayTimer SetWDT m_dwTimeOut = %d !", pThis->m_dwTimeOut );
|
|
|
- LogW(" WatchDogClassImpl::DelayTimer->DelayTimer SetWDT m_dwTimeOut = %d !", pThis->m_dwTimeOut );
|
|
|
+ LogW("ioctl(pThis->m_wfd,WDIOC_SETTIMEOUT,&pThis->m_dwTimeOut= %d line=%d!) ",pThis->m_dwTimeOut ,__LINE__);
|
|
|
}
|
|
|
|
|
|
//timeKillEvent(pThis->m_mmDelayTimerID);
|
|
|
pThis->m_TimerCtrl->EndTimer_ptr(pThis->m_mmDelayTimerID);
|
|
|
-// g_Trace.TraceInFormat(TRM_INT, TRM_LV_COMMN," WatchDogClassImpl::DelayTimer->DelayTimer Kill m_mmDelayTimerID = %d !", pThis->m_mmDelayTimerID );
|
|
|
- LogW(" WatchDogClassImpl::DelayTimer->DelayTimer Kill m_mmDelayTimerID = %d !", pThis->m_mmDelayTimerID );
|
|
|
+ LogW(" WatchDogClassImpl::DelayTimer->DelayTimer Kill m_mmDelayTimerID = %d line=%d!", pThis->m_mmDelayTimerID ,__LINE__);
|
|
|
pThis->m_bDelayTimer = false;
|
|
|
bTimeSet = false;
|
|
|
dwDelayTime = 0;
|
|
|
-
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -452,8 +481,11 @@ void WatchDogClassImpl::WDTTimer(sigval_t ptr)
|
|
|
}
|
|
|
//Set WDT
|
|
|
//pThis->m_pMB330CRM->SetWDT(true, (BYTE)(pThis->m_dwTimeOut));
|
|
|
- ioctl(pThis->m_wfd,WDIOC_SETTIMEOUT,pThis->m_dwTimeOut);
|
|
|
- ioctl(pThis->m_wfd,WDIOC_SETOPTIONS,WDIOS_ENABLECARD);
|
|
|
+ int flag = WDIOS_ENABLECARD;
|
|
|
+ ioctl(pThis->m_wfd,WDIOC_SETOPTIONS,&flag);
|
|
|
+ LogW(" ioctl(pThis->m_wfd,WDIOC_SETOPTIONS,&flag=WDIOS_ENABLECARD) line=%d", __LINE__ );
|
|
|
+ ioctl(pThis->m_wfd,WDIOC_SETTIMEOUT,&(pThis->m_dwTimeOut));
|
|
|
+ LogW(" ioctl(pThis->m_wfd,WDIOC_SETTIMEOUT,pThis->m_dwTimeOut=%d) line=%d", pThis->m_mmDelayTimerID,__LINE__ );
|
|
|
//timeKillEvent(pThis->m_mmWDTTimerID);
|
|
|
pThis->m_TimerCtrl->EndTimer_ptr(pThis->m_mmWDTTimerID);
|
|
|
pThis->m_bWDTTimer = false;
|