git-svn-id: svn://db.shs.com.ru/pip@615 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -37,7 +37,7 @@ PICAN::PICAN(const PIString & path, PIIODevice::DeviceMode mode) : PIIODevice(pa
|
|||||||
|
|
||||||
bool PICAN::openDevice() {
|
bool PICAN::openDevice() {
|
||||||
#ifdef PIP_CAN
|
#ifdef PIP_CAN
|
||||||
piCout << "PICAN OpenDevice()";
|
piCout << "PICAN open device" << path();
|
||||||
sock = socket(PF_CAN, SOCK_RAW, CAN_RAW);
|
sock = socket(PF_CAN, SOCK_RAW, CAN_RAW);
|
||||||
if(sock < 0){
|
if(sock < 0){
|
||||||
piCoutObj << "Error! while opening socket";
|
piCoutObj << "Error! while opening socket";
|
||||||
@@ -45,6 +45,7 @@ bool PICAN::openDevice() {
|
|||||||
}
|
}
|
||||||
ifreq ifr;
|
ifreq ifr;
|
||||||
strcpy(ifr.ifr_name, path().dataAscii());
|
strcpy(ifr.ifr_name, path().dataAscii());
|
||||||
|
piCout << "PICAN try to get interface index...";
|
||||||
if(ioctl(sock, SIOCGIFINDEX, &ifr) < 0){
|
if(ioctl(sock, SIOCGIFINDEX, &ifr) < 0){
|
||||||
piCoutObj << "Error! while determin the interface ioctl";
|
piCoutObj << "Error! while determin the interface ioctl";
|
||||||
return false;
|
return false;
|
||||||
@@ -53,6 +54,7 @@ bool PICAN::openDevice() {
|
|||||||
sockaddr_can addr;
|
sockaddr_can addr;
|
||||||
addr.can_family = AF_CAN;
|
addr.can_family = AF_CAN;
|
||||||
addr.can_ifindex = ifr.ifr_ifindex;
|
addr.can_ifindex = ifr.ifr_ifindex;
|
||||||
|
piCout << "PICAN try to bind socket to interface" << ifr.ifr_ifindex;
|
||||||
if(bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0){
|
if(bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0){
|
||||||
piCoutObj << "Error! while binding socket";
|
piCoutObj << "Error! while binding socket";
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user