From 62f0942e2d16132a5b91a7b746ab1ea459be9ac3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=8B=D1=87=D0=BA=D0=BE=D0=B2=20=D0=90=D0=BD=D0=B4?= =?UTF-8?q?=D1=80=D0=B5=D0=B9?= Date: Thu, 10 May 2018 13:41:05 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/pip@613 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5 --- src_main/io/pican.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src_main/io/pican.cpp b/src_main/io/pican.cpp index a124d279..e7dcaa1f 100644 --- a/src_main/io/pican.cpp +++ b/src_main/io/pican.cpp @@ -37,25 +37,27 @@ PICAN::PICAN(const PIString & path, PIIODevice::DeviceMode mode) : PIIODevice(pa bool PICAN::openDevice() { #ifdef PIP_CAN + piCout << "PICAN OpenDevice()"; sock = socket(PF_CAN, SOCK_RAW, CAN_RAW); if(sock < 0){ piCoutObj << "Error! while opening socket"; return false; } - struct ifreq ifr; + ifreq ifr; strcpy(ifr.ifr_name, path().dataAscii()); if(ioctl(sock, SIOCGIFINDEX, &ifr) < 0){ piCoutObj << "Error! while determin the interface ioctl"; return false; } // bind socket to all CAN interface - struct sockaddr_can addr; + sockaddr_can addr; addr.can_family = AF_CAN; addr.can_ifindex = ifr.ifr_ifindex; if(bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0){ piCoutObj << "Error! while binding socket"; return false; } + piCout << "PICAN Open OK!"; return true; #else piCoutObj << "PICAN not implemented on windows"; @@ -74,6 +76,7 @@ bool PICAN::closeDevice() { int PICAN::readDevice(void * read_to, int max_size) { #ifdef PIP_CAN + piCout << "PICAN read"; can_frame frame; int ret = 0; ret = ::read(sock, &frame, sizeof(can_frame)); @@ -88,6 +91,7 @@ int PICAN::readDevice(void * read_to, int max_size) { int PICAN::writeDevice(const void * data, int max_size) { #ifdef PIP_CAN + piCout << "PICAN write" << can_id << max_size; if (max_size > 8) {piCoutObj << "Can't send CAN frame bigger than 8 bytes (requested " << max_size << ")!"; return -1;} can_frame frame; frame.can_id = can_id;