X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Futils%2Fsocketcan-j1939%2Fsocketcan-j1939.hpp;fp=low-can-binding%2Futils%2Fsocketcan-j1939%2Fsocketcan-j1939.hpp;h=c68500fb5eb279c77c740bf7761a6e14ef72d1c1;hb=43cc23cd9d0986ae370f5839aa952c6e3eb196d0;hp=1ae8d1c955ac5c56e4f234092e86b0a9d08a47b4;hpb=c57722b34d38c9843a728829204d2711aaadacbb;p=apps%2Fagl-service-can-low-level.git diff --git a/low-can-binding/utils/socketcan-j1939/socketcan-j1939.hpp b/low-can-binding/utils/socketcan-j1939/socketcan-j1939.hpp index 1ae8d1c9..c68500fb 100644 --- a/low-can-binding/utils/socketcan-j1939/socketcan-j1939.hpp +++ b/low-can-binding/utils/socketcan-j1939/socketcan-j1939.hpp @@ -29,6 +29,17 @@ #define J1939_NAME_ECU 0x1234 #endif +#define J1939_CAN_ID CAN_EFF_FLAG +#define J1939_CAN_MASK (CAN_EFF_FLAG | CAN_RTR_FLAG) + + +// PDU 1 = NO BROADCAST +// PDU 2 = BRODCAST +static inline bool j1939_pgn_is_pdu1(pgn_t pgn) +{ + return (pgn & 0xff00) < 0xf000; +} + namespace utils { @@ -54,6 +65,7 @@ namespace utils virtual std::shared_ptr read_message(int flag); virtual int write_message(message_t& obj); virtual int write_j1939_message(pgn_t pgn, std::vector &data, uint32_t len_data); + void define_opt(bool broadcast = true, bool promisc = false); protected: struct ifreq ifr_; @@ -61,7 +73,7 @@ namespace utils static std::condition_variable signal_address_claiming_; void define_tx_address(std::string device_name, name_t name, pgn_t pgn, uint8_t addr); int add_filter(name_t name, pgn_t pgn, uint8_t addr, name_t name_mask, pgn_t pgn_mask, uint8_t addr_mask); - void define_opt(bool promisc = true, bool recv_own_msgs = true, bool broadcast = true); + }; }