39
Programming Watchdog Timer
Embedded and Industrial Computing
Appendix D
CMD2FUN c2f[] =
{
{“DIO_IN”
, mDIO_IN
},
{“DIO_OUT”
, mDIO_OUT
},
{“PIO”
, mPIO
},
{“RunLED”
, mRunLED
},
{“AlarmLED”
, mAlarmLED
},
{“GPS_LED”
, mGPS_LED
},
{“WirelessLED” , mWirelessLED },
{“CaseOpen” , mCaseOpen },
{“CaseOpen_Clear”,mCaseOpen_Clear},
{“Watchdog”
, mWatchDog
},
{“Sleep”
, mSleep
}
} ;
// Program start here
int main(int argc, char *argv[])
{
try
{
// The total argument allowed
int num = sizeof (c2f) / sizeof (c2f[0]) ;
// Too few argument
if (argc < 2)
RETMSG (-1, PARAMETER_HELP)
;
// Find the match argument and execute
the mapping function
for (int i = 0 ; i < num ; i++)
if (stricmp (argv[1], c2f[i].szCmd)
== 0)
return c2f[i].function
(argc, argv) ;
// No match argument
RETMSG (-1, “Wrong Argument\n”) ;
}
catch (char *str)
{
// Output the error message
printf (“\n%s\n”, str) ;
}
catch (...)
{
// Unknown exception
printf (“\nUnknown Exception\n”) ;
}
return -1 ;
}