Using Watchdog » watchdog.h
1 |
#include <semaphore.h>
|
---|---|
2 |
|
3 |
namespace MityDSP { |
4 |
|
5 |
/**
|
6 |
* The tcWatchdog class provides a simple abstraction for the linux
|
7 |
* watchdog device management. Typical use pattern:
|
8 |
*
|
9 |
* @code {
|
10 |
*
|
11 |
* tcWatchdog* pW = new tcWatchdog();
|
12 |
* int handle = pW->RegisterCheckpoint();
|
13 |
* pW->StartWatchDog(10);
|
14 |
*
|
15 |
* while (!done)
|
16 |
* {
|
17 |
* /// do stuff
|
18 |
* pW->Checkin(handle);
|
19 |
* }
|
20 |
*
|
21 |
* delete pW;
|
22 |
*
|
23 |
* @code }
|
24 |
*/
|
25 |
class tcWatchdog |
26 |
{
|
27 |
public:
|
28 |
tcWatchdog(const char* apDevice = "/dev/watchdog"); |
29 |
virtual ~tcWatchdog(void); |
30 |
|
31 |
int StartWatchDog(int TimeoutSecs); |
32 |
|
33 |
int RegisterCheckpoint(void); |
34 |
|
35 |
int UnRegisterCheckpoint(int handle); |
36 |
|
37 |
int Checkin(int Checkpoint); |
38 |
|
39 |
protected:
|
40 |
volatile int mnMask; |
41 |
volatile int mnSet; |
42 |
sem_t mhSem; |
43 |
char* mpFileName; |
44 |
int mnFd; |
45 |
};
|
46 |
|
47 |
}
|