X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Fcan%2Fmessage%2Fj1939-message.hpp;h=a513e94e550ca35b1bfda92add743a49e0d2524c;hb=refs%2Fchanges%2F53%2F22253%2F4;hp=74b625e03606f1de21ba7dce76a543e0e5ca9ae6;hpb=d2d2620bbb8f0aad0181e67e9f6affc3d6cb4a51;p=apps%2Fagl-service-can-low-level.git diff --git a/low-can-binding/can/message/j1939-message.hpp b/low-can-binding/can/message/j1939-message.hpp index 74b625e0..a513e94e 100644 --- a/low-can-binding/can/message/j1939-message.hpp +++ b/low-can-binding/can/message/j1939-message.hpp @@ -16,58 +16,67 @@ */ #pragma once -#include + #include -#include "./message.hpp" +#include "message.hpp" + #define J1939_MAX_MULTIPACKETS 255 #define J1939_MAX_DLEN J1939_MAX_MULTIPACKETS * CAN_MAX_DLEN + class j1939_message_t : public message_t { - private: - /* J1939 NAME - * - * bit 0-20 : Identity Number - * bit 21-31 : Manufacturer Code - * bit 32-34 : ECU Instance - * bit 35-39 : Function Instance - * bit 40-47 : Function - * bit 48 : Reserved - * bit 49-55 : Vehicle System - * bit 56-59 : Vehicle System Instance - * bit 60-62 : Industry Group - * bit 63 : Arbitrary Address Capable - */ - name_t name_; - - /* J1939 Parameter Group Number - * - * bit 0-7 : PDU Specific (PS) - * bit 8-15 : PDU Format (PF) - * bit 16 : Data Page (DP) - * bit 17 : Reserved (R) - * bit 19-31 : set to zero - */ - pgn_t pgn_; + private: + /* J1939 NAME + * + * bit 0-20 : Identity Number + * bit 21-31 : Manufacturer Code + * bit 32-34 : ECU Instance + * bit 35-39 : Function Instance + * bit 40-47 : Function + * bit 48 : Reserved + * bit 49-55 : Vehicle System + * bit 56-59 : Vehicle System Instance + * bit 60-62 : Industry Group + * bit 63 : Arbitrary Address Capable + */ + name_t name_; + /* J1939 Parameter Group Number + * + * bit 0-7 : PDU Specific (PS) + * bit 8-15 : PDU Format (PF) + * bit 16 : Data Page (DP) + * bit 17 : Reserved (R) + * bit 19-31 : set to zero + */ + pgn_t pgn_; - /* J1939 Address - */ - uint8_t addr_; - public: - j1939_message_t(); - j1939_message_t(uint8_t length, can_message_format_t format, std::vector& data, uint64_t timestamp, name_t name, pgn_t pgn, uint8_t addr); - uint64_t get_name() const; - uint32_t get_pgn() const; - uint8_t get_addr() const; - static std::shared_ptr convert_from_addr(struct sockaddr_can& addr, uint8_t (&data)[128], size_t nbytes, uint64_t timestamp); - bool is_set(); - std::string get_debug_message(); - uint32_t get_id() const; - struct bcm_msg get_bcm_msg(); - void set_bcm_msg(struct bcm_msg bcm_msg); -}; + /* J1939 Address + 0-255 + */ + uint8_t addr_; + /** + * @brief The sockanme to send a message to + * an other ECU + */ + struct sockaddr_can sockname_; + public: + j1939_message_t(); + j1939_message_t(uint32_t length, std::vector& data, uint64_t timestamp, name_t name, pgn_t pgn, uint8_t addr); + uint64_t get_name() const; + uint32_t get_pgn() const; + uint8_t get_addr() const; + static std::shared_ptr convert_from_addr(struct sockaddr_can& addr, uint8_t (&data)[128], size_t nbytes, uint64_t timestamp); + bool is_set(); + std::string get_debug_message(); + uint32_t get_id() const; + void set_id(const canid_t id); + struct sockaddr_can get_sockname(); + void set_sockname(struct sockaddr_can sockname); + void set_sockname(pgn_t pgn, name_t name, uint8_t addr); +}; \ No newline at end of file