drivers/can_socket/can_socket.c
changeset 796 1c87f7a8cb8a
parent 631 08b6b903f84a
child 799 6d3ad380dcd3
equal deleted inserted replaced
795:8dc7a42d38b1 796:1c87f7a8cb8a
   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