aboutsummaryrefslogtreecommitdiffstats
path: root/CAN-binder/low-can-binding/utils
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-04-22 17:38:23 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-04-22 17:38:23 +0200
commit8817dc24a26eb829930d0a3c3f4c8a04b748387f (patch)
treeab4ca342900db65da308efecdbf1f01a5686f1e3 /CAN-binder/low-can-binding/utils
parent1ee784aca5696286f567a4504b22a11cdaa0d0f8 (diff)
Use BCM socket as default cleaning up the old RAW socket code.
Also use CAN FD frames by default. Change-Id: I5bad10e537653b1a96c2e3012d38dde8627d3caa Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'CAN-binder/low-can-binding/utils')
-rw-r--r--CAN-binder/low-can-binding/utils/socket.cpp20
-rw-r--r--CAN-binder/low-can-binding/utils/socket.hpp2
2 files changed, 5 insertions, 17 deletions
diff --git a/CAN-binder/low-can-binding/utils/socket.cpp b/CAN-binder/low-can-binding/utils/socket.cpp
index f4a30111..9decaa8e 100644
--- a/CAN-binder/low-can-binding/utils/socket.cpp
+++ b/CAN-binder/low-can-binding/utils/socket.cpp
@@ -104,15 +104,12 @@ namespace utils
/// @param[in] device_name is the kernel network device name of the CAN interface.
///
/// @return Upon successful completion, shall return a non-negative integer, the socket file descriptor. Otherwise, a value of -1 shall be returned and errno set to indicate the error.
- int socketcan_t::open(std::string device_name, bool bcm)
+ int socketcan_t::open(std::string device_name)
{
close();
struct ifreq ifr;
- if(bcm)
- socket_ = ::socket(PF_CAN, SOCK_DGRAM, CAN_BCM);
- else
- socket_ = ::socket(PF_CAN, SOCK_RAW, CAN_RAW);
+ socket_ = ::socket(PF_CAN, SOCK_DGRAM, CAN_BCM);
// Attempts to open a socket to CAN bus
::strcpy(ifr.ifr_name, device_name.c_str());
@@ -127,18 +124,9 @@ namespace utils
txAddress_.can_family = AF_CAN;
txAddress_.can_ifindex = ifr.ifr_ifindex;
- if(bcm)
- {
- if(connect((struct sockaddr *)&txAddress_, sizeof(txAddress_)) < 0)
- {
- ERROR(binder_interface, "%s: Connect failed. %s", __FUNCTION__, strerror(errno));
- close();
- }
- }
- // It's a RAW socket request, bind it to txAddress
- else if(bind((struct sockaddr *)&txAddress_, sizeof(txAddress_)) < 0)
+ if(connect((struct sockaddr *)&txAddress_, sizeof(txAddress_)) < 0)
{
- ERROR(binder_interface, "%s: Bind failed. %s", __FUNCTION__, strerror(errno));
+ ERROR(binder_interface, "%s: Connect failed. %s", __FUNCTION__, strerror(errno));
close();
}
}
diff --git a/CAN-binder/low-can-binding/utils/socket.hpp b/CAN-binder/low-can-binding/utils/socket.hpp
index 2da2dfe5..b981ad3e 100644
--- a/CAN-binder/low-can-binding/utils/socket.hpp
+++ b/CAN-binder/low-can-binding/utils/socket.hpp
@@ -34,7 +34,7 @@ namespace utils
explicit operator bool() const;
int socket() const;
- int open(std::string device_name, bool bcm=false);
+ int open(std::string device_name);
int setopt(int level, int optname, const void* optval, socklen_t optlen);
ssize_t send(const struct canfd_frame& f);
int close();