Appendix a, Programming watchdog timer – Lanner LEC-7050 User Manual

Page 23

Advertising
background image

22

Programming Watchdog Timer

Embedded and Industrial Computing

Appendix A

//

Make

sure

the

argument

is

numeric

void

CheckNumeric

(char

*szBuf)

{

int

nLen

=

strlen

(szBuf)

;

for (int i = 0 ; i < nLen ; i++)

if (!strchr (“01234567890ABCDEFabcdef”, szBuf[i]) )

throw “Wrong argument\n” ;

}

// Common GPIO output function definition

#define GPIO_OUT(a,b,c)

\

int a (int argc, char *argv[])

\

{

\

CHECK_ARGC (4) ;

\

CheckNumeric (argv[2]) ;

\

CheckNumeric (argv[3]) ;

\

\

int nPort = atoi (argv[2]) ; \

int nValue = atoi (argv[3]) ;

\

\

c (nPort, nValue) ;

\

\

printf (b “ #%d = %d\n”, nPort, nValue) ;

\

\

return

0

;

\

}

// Function generate by common function definition

GPIO_OUT

(mDIO_

OUT

, “DIO_OUT”

, Write_DIO)

G

P

I

O

_

O

U

T

(mPIO

, “DIO_OUT”

, PIO)

G

P

I

O

_

O

U

T

(mRunLED

, “RunLED”

, RunLED)

G

P

I

O

_

O

U

T

(mAlarmLED

, “AlarmLED”

, AlarmLED)

GPIO_OUT

(mGPS_

LED

, “GPS_LED”

,

GPS_LED)

G

P

I

O

_

O

U

T

(mWirelessLED , “WirelessLED” ,

WirelessLED)

// Check case open
int mCaseOpen (int argc, char* argv[])
{

CHECK_ARGC (2) ;

BOOL bOpen = CaseOpen () ;

printf (“Case is %s\n”, bOpen ? “Open” : “Close”) ;

return bOpen ;

}

// Clear case open state
int mCaseOpen_Clear (int argc, char* argv[])
{

CHECK_ARGC (2) ;

CaseOpen_Clear () ;

BOOL bOpen = CaseOpen () ;

printf (“CaseOpen state %s”, bOpen ? “not cleared”

: “cleared”) ;

return bOpen ;

}

// Get DIO_IN state
int

mDIO_IN

(int

argc,

char*

argv[])

{

CHECK_ARGC (3) ;

CheckNumeric (argv[2]) ;

int nPort = atoi (argv[2]) ;

Advertising