summaryrefslogtreecommitdiffstats
path: root/src/diagnostic/diagnostic-message.cpp
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-03-15 23:16:59 +0100
committerRomain Forlot <romain.forlot@iot.bzh>2017-03-16 17:21:57 +0100
commit0a9f3524f442ff055fb1075f92bd85f9b4522910 (patch)
treea2aef99c4c596d13992173c015cb4d6f0d1a2fe0 /src/diagnostic/diagnostic-message.cpp
parent53cd923a034162273fea2f4fb045b28686f51df5 (diff)
Rename class and 1:1 map to JSON description file
Added decoder and callback member that will be set by generator and taken at submission to be used later, storing them into an active diagnostic request instance, when response CAN message comes in. Change-Id: I9ded05de3bb28ec55e4e007d72d0e1924141a6a6 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'src/diagnostic/diagnostic-message.cpp')
-rw-r--r--src/diagnostic/diagnostic-message.cpp29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/diagnostic/diagnostic-message.cpp b/src/diagnostic/diagnostic-message.cpp
index a460ac5..b7c5d45 100644
--- a/src/diagnostic/diagnostic-message.cpp
+++ b/src/diagnostic/diagnostic-message.cpp
@@ -33,36 +33,45 @@ const char *UNIT_NAMES[10] = {
"NM"
};
-obd2_signal_t::obd2_signal_t(uint8_t pid, const char* generic_name, const int min, const int max, enum UNIT unit, int frequency, bool supported)
- : pid_{pid}, generic_name_{generic_name}, min_{min}, max_{max}, unit_{unit}, frequency_{frequency}, supported_{supported}
-{
-}
+diagnostic_message_t::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)
+ : pid_{pid}, generic_name_{generic_name}, min_{min}, max_{max}, unit_{unit}, frequency_{frequency}, decoder_{decoder}, callback_{callback}, supported_{supported}
+{}
-uint32_t obd2_signal_t::get_pid()
+uint32_t diagnostic_message_t::get_pid()
{
return (uint32_t)pid_;
}
-const std::string& obd2_signal_t::get_generic_name() const
+const std::string& diagnostic_message_t::get_generic_name() const
{
return generic_name_;
}
-const std::string obd2_signal_t::get_name() const
+const std::string diagnostic_message_t::get_name() const
{
return active_diagnostic_request_t::get_prefix() + "." + generic_name_;
}
-int obd2_signal_t::get_frequency() const
+float diagnostic_message_t::get_frequency() const
{
return frequency_;
}
+DiagnosticResponseDecoder diagnostic_message_t::get_decoder() const
+{
+ return decoder_;
+}
+DiagnosticResponseCallback diagnostic_message_t::get_callback() const
+{
+ return callback_;
+}
+
/**
* @brief Build a DiagnosticRequest struct to be passed
* to diagnostic manager instance.
*/
-const DiagnosticRequest obd2_signal_t::build_diagnostic_request()
+const DiagnosticRequest diagnostic_message_t::build_diagnostic_request()
{
return {/*arbitration_id: */OBD2_FUNCTIONAL_BROADCAST_ID,
/*mode: */0x1,
@@ -80,7 +89,7 @@ const DiagnosticRequest obd2_signal_t::build_diagnostic_request()
*
* @return true if the request is a mode 1 request and it has a 1 byte PID.
*/
-bool obd2_signal_t::is_obd2_request(const DiagnosticRequest* request)
+bool diagnostic_message_t::is_obd2_request(const DiagnosticRequest* request)
{
return request->mode == 0x1 && request->has_pid && request->pid < 0xff;
}