Im Folgenden ein Beispiel, das die virtuelle SocketCAN-Netzwerkschnittstelle vcan0
mit Port A eines AnaGate CAN-Gateways mit der IP-Adresse 192.168.1.254 verbindet
und dessen Einstellungen explizit angibt.
$ sudo modprobe vcan
$ sudo ip link add dev vcan0 type vcan
$ sudo ip link set up vcan0
$ SocketCANGateway vcan0 --ipaddress=192.168.1.254 --baudrate=1000000 \
> --canport=0 --termination=1 --highspeed=1 --timestamp=0
****IP:192.168.1.254****
****Baudrate:1000000 1000000****
****Port:0****
****Termination:1****
****HighSpeed:1****
****Date/Time:0****
SocketCANGateway (Connection between SocketCAN and AnaGate
CAN), version 0.1.0 of Jul
Copyright (C) 2014 Analytica GmbH
Hardware=vcan0...OK!
Press ^C to abort.
Beispiel 10.1. Programmaufruf
10.3. SocketCAN-Beispielanwendung
Der folgende C-Code ist ein Beispiel für die Verwendung der SocketCAN-API. Er
versendet ein CAN-Telegram über die vcan0-Schnittstelle.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <net/if.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <linux/can.h>
#include <linux/can/raw.h>
int
main(void)
{
int s;
int nbytes;
struct sockaddr_can addr;
struct can_frame frame;
struct ifreq ifr;
char *ifname = "vcan0";
if((s = socket(PF_CAN, SOCK_RAW, CAN_RAW)) < 0) {
perror("Error while opening socket");
return -1;
}
Verwendung des
SocketCAN-Gateway
9 2014
96
© 2007-2015 Analytica GmbH