]> rtime.felk.cvut.cz Git - CanFestival-3.git/blobdiff - examples/kerneltest/TestMasterSlave.c
kerneltest updated for the new api
[CanFestival-3.git] / examples / kerneltest / TestMasterSlave.c
index b28dea847e45851defca8f693ebfb8aff271df5d..609f4e409c8913bff70395b4ebd63b575ca1d676 100644 (file)
@@ -35,8 +35,20 @@ static void InitNodes(CO_Data* d, UNS32 id)
        }
 }
 
+/***************************  EXIT  *****************************************/
+void Exit(CO_Data* d, UNS32 id)
+{
+       masterSendNMTstateChange(&TestMaster_Data, 0x02, NMT_Reset_Node);    
+
+       //Stop master
+       setState(&TestMaster_Data, Stopped);
+}
+
+
 int TestMasterSlave_start (void)
 {
+       TimerInit();
+
        if(strcmp(SlaveBoard.baudrate, "none")){
                
                TestSlave_Data.heartbeatError = TestSlave_heartbeatError;
@@ -83,21 +95,13 @@ void TestMasterSlave_stop (void)
 {
        eprintf("Finishing.\n");
        
-       EnterMutex();
-       masterSendNMTstateChange (&TestMaster_Data, 0x02, NMT_Reset_Node);
-       LeaveMutex();
-       
-       // Stop master
-       EnterMutex();
-       setState(&TestMaster_Data, Stopped);
-       LeaveMutex();
-       
        // Stop timer thread
-       StopTimerLoop();
+       StopTimerLoop(&Exit);
        
        // Close CAN devices (and can threads)
        if(strcmp(SlaveBoard.baudrate, "none")) canClose(&TestSlave_Data);
        if(strcmp(MasterBoard.baudrate, "none")) canClose(&TestMaster_Data);
 
+       TimerCleanup();
        eprintf("End.\n");
 }