X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Futils%2Fsocketcan.cpp;h=f542f4e8b0b4d99ffe5665769fa1cbb767b1d986;hb=ccf35c0dc912e9a29721fa04244fc7f932282d18;hp=71588a6e038bc6e74a3bba2ce535dadbab9c2454;hpb=32e25cbca210a359b09768537b6f443fe90a3070;p=apps%2Fagl-service-can-low-level.git diff --git a/low-can-binding/utils/socketcan.cpp b/low-can-binding/utils/socketcan.cpp index 71588a6e..f542f4e8 100644 --- a/low-can-binding/utils/socketcan.cpp +++ b/low-can-binding/utils/socketcan.cpp @@ -29,7 +29,9 @@ namespace utils /// @brief Construct a default, invalid, socket. socketcan_t::socketcan_t() : socket_{INVALID_SOCKET} - {} + { + ::memset(&tx_address_, 0, sizeof(tx_address_)); + } /// @brief Construct a socket by moving an existing one. socketcan_t::socketcan_t(socketcan_t&& s) @@ -94,4 +96,32 @@ namespace utils { return socket_; } -} \ No newline at end of file + + /// @brief Connect the socket. + /// @return 0 if success. + int socketcan_t::connect(const struct sockaddr* addr, socklen_t len) + { + return socket_ != INVALID_SOCKET ? ::connect(socket_, addr, len) : 0; + } + + /// @brief Bind the socket. + /// @return 0 if success. + int socketcan_t::bind(const struct sockaddr* addr, socklen_t len) + { + return socket_ != INVALID_SOCKET ? ::bind(socket_, addr, len) : 0; + } + + int socketcan_t::write_message(std::vector& vobj) + { + for(int i=0;i