equal
deleted
inserted
replaced
173 struct ifreq ifr; |
173 struct ifreq ifr; |
174 struct sockaddr_can addr; |
174 struct sockaddr_can addr; |
175 int err; |
175 int err; |
176 CAN_HANDLE fd0 = malloc (sizeof (int)); |
176 CAN_HANDLE fd0 = malloc (sizeof (int)); |
177 #ifdef RTCAN_SOCKET |
177 #ifdef RTCAN_SOCKET |
|
178 nanosecs_rel_t tx_timeout; |
178 can_baudrate_t *baudrate; |
179 can_baudrate_t *baudrate; |
179 can_mode_t *mode; |
180 can_mode_t *mode; |
180 #endif |
181 #endif |
181 |
182 |
182 if(!fd0) |
183 if(!fd0) |
234 fprintf (stderr, "Binding failed: %s\n", strerror (CAN_ERRNO (err))); |
235 fprintf (stderr, "Binding failed: %s\n", strerror (CAN_ERRNO (err))); |
235 goto error_close; |
236 goto error_close; |
236 } |
237 } |
237 |
238 |
238 #ifdef RTCAN_SOCKET |
239 #ifdef RTCAN_SOCKET |
|
240 tx_timeout = 10000000; /* XXX Timeout is temporarily set to 10 ms */ |
|
241 err = CAN_IOCTL (*(int *) fd0, RTCAN_RTIOC_SND_TIMEOUT, &tx_timeout); |
|
242 if (err) |
|
243 { |
|
244 fprintf (stderr, |
|
245 "Setting TX timeout %d failed: %s\n", |
|
246 *baudrate, strerror (CAN_ERRNO (err))); |
|
247 goto error_close; |
|
248 } |
|
249 |
239 baudrate = (can_baudrate_t *) & ifr.ifr_ifru; |
250 baudrate = (can_baudrate_t *) & ifr.ifr_ifru; |
240 *baudrate = TranslateBaudRate (board->baudrate); |
251 *baudrate = TranslateBaudRate (board->baudrate); |
241 if (!*baudrate) |
252 if (!*baudrate) |
242 goto error_close; |
253 goto error_close; |
243 |
254 |