X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Fdiagnostic%2Fdiagnostic-message.hpp;h=c2f31e35f6d24ad997288207b53b358b7daf537a;hb=99682db67048b828705c9afe14d53b8305a07392;hp=873c7ff22716921e55aea2b2b024c6eba14e78a8;hpb=ddd4374f35df2d8b8e9b4ecf4890abba6fab3734;p=apps%2Fagl-service-can-low-level.git diff --git a/low-can-binding/diagnostic/diagnostic-message.hpp b/low-can-binding/diagnostic/diagnostic-message.hpp index 873c7ff2..c2f31e35 100644 --- a/low-can-binding/diagnostic/diagnostic-message.hpp +++ b/low-can-binding/diagnostic/diagnostic-message.hpp @@ -60,10 +60,25 @@ class diagnostic_message_t bool supported_; /*!< supported_ - boolean indicating whether this pid is supported by the vehicle or not.*/ + uint64_t last_timestamp_; /*!< last_timestamp_ - the last time (in microseconds since epoch) + * that the message has been received. */ + + bool received_; /*!< received_ - True if this signal has ever been received. */ + float last_value_; /*!< last_value_ - The last received value of the diagnostic message. + * If 'received_' is false, this value is undefined. */ + public: const char* generic_name = generic_name_.c_str(); - diagnostic_message_t(uint8_t pid, const std::string& generic_name, const int min, const int max, enum UNIT unit, float frequency, - DiagnosticResponseDecoder decoder, DiagnosticResponseCallback callback, bool supported); + diagnostic_message_t(uint8_t pid, + const std::string& generic_name, + const int min, + const int max, + enum UNIT unit, + float frequency, + DiagnosticResponseDecoder decoder, + DiagnosticResponseCallback callback, + bool supported, + bool received); uint32_t get_pid(); const std::string get_generic_name() const; @@ -73,6 +88,14 @@ class diagnostic_message_t DiagnosticResponseCallback get_callback() const; bool get_supported() const; + bool get_received() const; + float get_last_value() const; + std::pair get_last_value_with_timestamp() const; + + void set_received(bool r); + void set_last_value(float val); + void set_timestamp(uint64_t timestamp); + void set_supported(bool value); void set_parent(can_message_set_t* parent); const DiagnosticRequest build_diagnostic_request() const;