--- a/examples/TestMasterSlaveLSS/TestMasterSlaveLSS.c Tue Apr 29 13:54:23 2008 +0200
+++ b/examples/TestMasterSlaveLSS/TestMasterSlaveLSS.c Fri May 02 17:30:37 2008 +0200
@@ -57,7 +57,7 @@
}
#endif
-void help()
+void help(void)
{
printf("**************************************************************\n");
printf("* TestMasterSlaveLSS *\n");
@@ -122,6 +122,19 @@
}
}
+/*************************** EXIT *****************************************/
+void Exit(CO_Data* d, UNS32 id)
+{
+ eprintf("Finishing.\n");
+ masterSendNMTstateChange (&TestMaster_Data, 0x00, NMT_Stop_Node);
+
+ eprintf("reset\n");
+
+ // Stop master
+ setState(&TestMaster_Data, Stopped);
+
+}
+
/****************************************************************************/
/*************************** MAIN *****************************************/
/****************************************************************************/
@@ -202,6 +215,7 @@
/* install signal handler for manual break */
signal(SIGTERM, catch_signal);
signal(SIGINT, catch_signal);
+ TimerInit();
#endif
#ifndef NOT_USE_DYNAMIC_LOADING
@@ -274,19 +288,8 @@
pause();
- eprintf("Finishing.\n");
- EnterMutex();
- masterSendNMTstateChange (&TestMaster_Data, 0x00, NMT_Stop_Node);
- LeaveMutex();
-
- eprintf("reset\n");
- // Stop master
- EnterMutex();
- setState(&TestMaster_Data, Stopped);
- LeaveMutex();
-
// Stop timer thread
- StopTimerLoop();
+ StopTimerLoop(&Exit);
// Close CAN devices (and can threads)
if(strcmp(MasterBoard.baudrate, "none")) canClose(&TestMaster_Data);
@@ -295,5 +298,6 @@
fail_slaveB:
if(strcmp(SlaveBoardA.baudrate, "none")) canClose(&TestSlaveA_Data);
fail_slaveA:
+ TimerCleanup();
return 0;
}