beautypg.com

Moxa Technologies UC-7420/7410 User Manual

Page 84

background image

UC-7420/7410 User’s Manual

Programmer’s Guide

5-8

#include
#include
#include
#include
#include

static void mydelay(unsigned long msec)
{
struct timeval time;

time.tv_sec = msec / 1000;
time.tv_usec = (msec % 1000) * 1000;
select(1, NULL, NULL, NULL, &time);
}

static int swtdfd;
static int stopflag=0;

static void stop_swatchdog()
{
stopflag = 1;
}

static void do_swatchdog(void)
{
swtd_enable(swtdfd, 500);
while ( stopflag == 0 ) {
mydelay(250);
swtd_ack(swtdfd);
}
swtd_disable(swtdfd);
}

int main(int argc, char *argv[])
{

pid_t sonpid;


signal(SIGUSR1, stop_swatchdog);
swtdfd = swtd_open();
if ( swtdfd < 0 ) {
printf(“Open sWatchDog device fail !\n”);
exit(1);
}
if ( (sonpid=fork()) == 0 )
do_swatchdog();
// do user application main function
…..
…..
…..
// end user application
kill(sonpid, SIGUSR1);
swtd_close(swtdfd);
exit(1);
}

The makefile is shown below:

all:
mxscaleb-gcc –o xxxx xxxx.c –lmoxalib