equal
deleted
inserted
replaced
55 {\ |
55 {\ |
56 EnterMutex();\ |
56 EnterMutex();\ |
57 setState(&nodename##_Data, Stopped);\ |
57 setState(&nodename##_Data, Stopped);\ |
58 LeaveMutex();\ |
58 LeaveMutex();\ |
59 canClose(&nodename##_Data);\ |
59 canClose(&nodename##_Data);\ |
60 #if !defined(WIN32) || defined(__CYGWIN__)\ |
|
61 TimerCleanup();\ |
|
62 #endif\ |
|
63 } |
60 } |
64 |
61 |
65 void __cleanup_%(locstr)s() |
62 void __cleanup_%(locstr)s() |
66 { |
63 { |
67 %(nodes_close)s |
64 %(nodes_close)s |
68 |
65 |
69 // Stop timer thread |
66 // Stop timer thread |
70 if(init_level-- > 0) |
67 if(init_level-- > 0) |
71 StopTimerLoop(&Exit); |
68 StopTimerLoop(&Exit); |
72 |
69 |
|
70 #if !defined(WIN32) || defined(__CYGWIN__) |
|
71 TimerCleanup(); |
|
72 #endif |
73 } |
73 } |
74 |
74 |
75 #define NODE_OPEN(nodename)\ |
75 #define NODE_OPEN(nodename)\ |
76 #if !defined(WIN32) || defined(__CYGWIN__)\ |
76 nodename##_Data.preOperational = nodename##_preOperational;\ |
77 TimerInit();\ |
|
78 #endif\ |
|
79 nodename##_Data.preOperational = nodename##_preOperational;\ |
|
80 if(!canOpen(&nodename##Board,&nodename##_Data)){\ |
77 if(!canOpen(&nodename##Board,&nodename##_Data)){\ |
81 printf("Cannot open " #nodename " Board (%%s,%%s)\n",nodename##Board.busname, nodename##Board.baudrate);\ |
78 printf("Cannot open " #nodename " Board (%%s,%%s)\n",nodename##Board.busname, nodename##Board.baudrate);\ |
82 return -1;\ |
79 return -1;\ |
83 }\ |
80 }\ |
84 init_level++; |
81 init_level++; |
90 if( !LoadCanDriver("%(candriver)s") ){ |
87 if( !LoadCanDriver("%(candriver)s") ){ |
91 fprintf(stderr, "Cannot load CAN interface library for CanFestival (%(candriver)s)\n");\ |
88 fprintf(stderr, "Cannot load CAN interface library for CanFestival (%(candriver)s)\n");\ |
92 return -1; |
89 return -1; |
93 } |
90 } |
94 #endif |
91 #endif |
95 |
92 #if !defined(WIN32) || defined(__CYGWIN__) |
|
93 TimerInit(); |
|
94 #endif |
|
95 |
96 %(nodes_open)s |
96 %(nodes_open)s |
97 |
97 |
98 // Start timer thread |
98 // Start timer thread |
99 StartTimerLoop(&InitNodes); |
99 StartTimerLoop(&InitNodes); |
100 init_level++; |
100 init_level++; |