#include <string>
#include "uds/uds.h"
+#include "../can/can-message-set.hpp"
#include "../can/can-message.hpp"
#include "active-diagnostic-request.hpp"
INVALID
};
+class can_message_set_t;
+
///
/// @brief - A representation of an OBD-II PID.
///
-class diagnostic_message_t {
+class diagnostic_message_t
+{
private:
+ can_message_set_t* parent_; /*!< parent_ - Pointer to the CAN message set holding this diagnostic message */
uint8_t pid_; /*!< pid_ - The 1 byte PID.*/
std::string generic_name_; /*!< generic_name_ - A human readable name to use for this PID when published.*/
int min_; /*!< min_ - Minimum value that can take this pid */
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,
+ 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);
uint32_t get_pid();
- const std::string& get_generic_name() const;
+ const std::string get_generic_name() const;
const std::string get_name() const;
float get_frequency() const;
DiagnosticResponseDecoder get_decoder() const;
bool get_supported() const;
void set_supported(bool value);
-
+ void set_parent(can_message_set_t* parent);
const DiagnosticRequest build_diagnostic_request();
bool is_obd2_response(const can_message_t& can_message);