diff options
Diffstat (limited to 'low-can-binding/utils/socketcan-j1939')
3 files changed, 11 insertions, 43 deletions
diff --git a/low-can-binding/utils/socketcan-j1939/socketcan-j1939-addressclaiming.cpp b/low-can-binding/utils/socketcan-j1939/socketcan-j1939-addressclaiming.cpp index df994f59..83ba71a3 100644 --- a/low-can-binding/utils/socketcan-j1939/socketcan-j1939-addressclaiming.cpp +++ b/low-can-binding/utils/socketcan-j1939/socketcan-j1939-addressclaiming.cpp @@ -139,9 +139,8 @@ namespace utils } else { - for (int i = start_addr; i <= end_addr; i++) { + for (int i = start_addr; i <= end_addr; i++) table_j1939_address_[i] = std::make_pair(0,true); - } } } } @@ -187,9 +186,7 @@ namespace utils if(table_j1939_address_[i].second && i!=current_address_) { if( table_j1939_address_[i].first >= htole64(J1939_NAME_ECU) || table_j1939_address_[i].first == 0) - { return (uint8_t) i; - } } } return J1939_IDLE_ADDR; @@ -344,9 +341,8 @@ namespace utils int ret = sendto(socket_, dat, sizeof(dat), 0, (const struct sockaddr *)&peername, sizeof(peername)); if(ret < 0) - { AFB_ERROR("Error pgn_request()"); - } + return ret; } */ @@ -362,9 +358,7 @@ namespace utils for(int i = 0; i < J1939_IDLE_ADDR; i++) { if(table_j1939_address_[i].first == name) - { return (uint8_t) i; - } } return J1939_IDLE_ADDR; } @@ -411,4 +405,4 @@ namespace utils return claiming_state_; } -}
\ No newline at end of file +} diff --git a/low-can-binding/utils/socketcan-j1939/socketcan-j1939-data.cpp b/low-can-binding/utils/socketcan-j1939/socketcan-j1939-data.cpp index b2f17c6e..4fd2b264 100644 --- a/low-can-binding/utils/socketcan-j1939/socketcan-j1939-data.cpp +++ b/low-can-binding/utils/socketcan-j1939/socketcan-j1939-data.cpp @@ -35,9 +35,8 @@ namespace utils if(ret >= 0) { if(tx_address_.can_addr.j1939.pgn != J1939_NO_PGN) - { add_filter(J1939_NO_NAME,tx_address_.can_addr.j1939.pgn,J1939_NO_ADDR,J1939_NO_NAME,J1939_NO_PGN,J1939_NO_ADDR); - } + define_opt(); } return ret; diff --git a/low-can-binding/utils/socketcan-j1939/socketcan-j1939.cpp b/low-can-binding/utils/socketcan-j1939/socketcan-j1939.cpp index d3996d4c..ea68f20a 100644 --- a/low-can-binding/utils/socketcan-j1939/socketcan-j1939.cpp +++ b/low-can-binding/utils/socketcan-j1939/socketcan-j1939.cpp @@ -51,12 +51,9 @@ namespace utils { filter.name = name; if(name_mask != J1939_NO_NAME) - { filter.name_mask = name_mask; - } else - { + else filter.name_mask = ~0ULL; - } ++filter_on; } @@ -64,30 +61,25 @@ namespace utils { filter.addr = addr; if(addr_mask != J1939_NO_ADDR) - { filter.addr_mask = addr_mask; - } else - { + else filter.addr_mask = ~0; - } + ++filter_on; } if (pgn <= J1939_PGN_MAX) { filter.pgn = pgn; if(pgn_mask != J1939_NO_PGN) - { filter.pgn_mask = pgn_mask; - } else - { + else filter.pgn_mask = ~0; - } + ++filter_on; } + if(filter_on) - { setopt(SOL_CAN_J1939, SO_J1939_FILTER, &filter, sizeof(filter)); - } } /** @@ -137,32 +129,18 @@ namespace utils if(addr <= 0 || addr >= UINT8_MAX ) - { tx_address_.can_addr.j1939.addr = J1939_NO_ADDR; - } else - { tx_address_.can_addr.j1939.addr = addr; - } - if(name <= 0 || name >= UINT64_MAX ) - { tx_address_.can_addr.j1939.name = J1939_NO_NAME; - } else - { tx_address_.can_addr.j1939.name = name; - } if(pgn <= 0 || pgn > J1939_PGN_MAX) - { tx_address_.can_addr.j1939.pgn = J1939_NO_PGN; - } else - { tx_address_.can_addr.j1939.pgn = pgn; - } - } @@ -229,9 +207,8 @@ namespace utils ssize_t nbytes = recvfrom(socket_, &data, sizeof(data), flag, (struct sockaddr *)&peername, &peernamelen); if(nbytes < 0) - { return nullptr; - } + //AFB_DEBUG("Data available: %i bytes read", (int)nbytes); struct timeval tv; @@ -270,9 +247,7 @@ namespace utils uint8_t data[jm.get_data_vector().size()]; for(int i=0; i<jm.get_data_vector().size(); i++) - { data[i] = jm.get_data_vector()[i]; - } if (sendto(socket_, &data, sizeof(data), 0, (const struct sockaddr *)&sockname, sizeof(sockname)) < 0) { |