summaryrefslogtreecommitdiffstats
path: root/src/can
diff options
context:
space:
mode:
Diffstat (limited to 'src/can')
-rw-r--r--src/can/can-decoder.cpp12
-rw-r--r--src/can/can-signals.cpp91
-rw-r--r--src/can/can-signals.hpp26
3 files changed, 117 insertions, 12 deletions
diff --git a/src/can/can-decoder.cpp b/src/can/can-decoder.cpp
index 9059f979..49fd1513 100644
--- a/src/can/can-decoder.cpp
+++ b/src/can/can-decoder.cpp
@@ -21,8 +21,8 @@
float decoder_t::parseSignalBitfield(can_signal_t& signal, const can_message_t& message)
{
return bitfield_parse_float(message.get_data(), CAN_MESSAGE_SIZE,
- signal.bitPosition, signal.bitSize, signal.factor,
- signal.offset);
+ signal.get_bit_position(), signal.get_bit_size(), signal.get_factor(),
+ signal.get_offset());
}
openxc_DynamicField decoder_t::noopDecoder(can_signal_t& signal,
@@ -96,16 +96,16 @@ openxc_DynamicField decoder_t::translateSignal(can_signal_t& signal, can_message
openxc_DynamicField decoded_value = decoder_t::decodeSignal(signal,
value, signals, &send);
- signal.received_ = true;
- signal.last_value_ = value;
+ signal.set_received(true);
+ signal.set_last_value(value);
return decoded_value;
}
openxc_DynamicField decoder_t::decodeSignal( can_signal_t& signal,
float value, const std::vector<can_signal_t>& signals, bool* send)
{
- SignalDecoder decoder = signal.decoder == NULL ?
- noopDecoder : signal.decoder;
+ SignalDecoder decoder = signal.get_decoder() == NULL ?
+ noopDecoder : signal.get_decoder();
openxc_DynamicField decoded_value = decoder(signal, signals,
value, send);
return decoded_value;
diff --git a/src/can/can-signals.cpp b/src/can/can-signals.cpp
index af957699..faecdaa6 100644
--- a/src/can/can-signals.cpp
+++ b/src/can/can-signals.cpp
@@ -24,16 +24,26 @@
#include "obd2/obd2-signals.hpp"
#include "low-can-binding.hpp"
-can_message_definition_t& can_signal_t::get_message() const
+can_message_definition_t& can_signal_t::get_message()
{
return message_;
}
-std::string& can_signal_t::get_generic_name() const
+std::string& can_signal_t::get_generic_name()
{
return generic_name_;
}
+uint8_t can_signal_t::get_bit_position() const
+{
+ return bit_position_;
+}
+
+uint8_t can_signal_t::get_bit_size() const
+{
+ return bit_size_;
+}
+
/**
* @fn void find_can_signals(const openxc_DynamicField& key, std::vector<can_signal_t*>& found_signals)
* @brief return signals name found searching through CAN_signals and OBD2 pid
@@ -58,4 +68,81 @@ void find_can_signals(const openxc_DynamicField& key, std::vector<can_signal_t*>
break;
}
DEBUG(binder_interface, "Found %d signal(s)", (int)found_signals.size());
+float can_signal_t::get_factor() const
+{
+ return factor_;
+}
+
+float can_signal_t::get_offset() const
+{
+ return offset_;
+}
+
+float can_signal_t::get_min_value() const
+{
+ return min_value_;
+}
+
+float can_signal_t::get_max_value() const
+{
+ return max_value_;
+}
+
+FrequencyClock& can_signal_t::get_frequency()
+{
+ return frequency_;
+}
+
+bool can_signal_t::get_send_same() const
+{
+ return send_same_;
+}
+
+bool can_signal_t::get_force_send_changed() const
+{
+ return force_send_changed_;
+}
+
+std::map<int, std::string> can_signal_t::get_state() const
+{
+ return states_;
+}
+
+size_t can_signal_t::get_state_count() const
+{
+ return states_.size();
+}
+
+bool can_signal_t::get_writable() const
+{
+ return writable_;
+}
+
+SignalDecoder& can_signal_t::get_decoder()
+{
+ return decoder_;
+}
+
+SignalEncoder& can_signal_t::get_encoder()
+{
+ return encoder_;
+}
+
+bool can_signal_t::get_received() const
+{
+ return received_;
+}
+float can_signal_t::get_last_value() const
+{
+ return last_value_;
+}
+
+void can_signal_t::set_received(bool r)
+{
+ received_ = r;
+}
+
+void can_signal_t::set_last_value(float val)
+{
+ last_value_ = val;
}
diff --git a/src/can/can-signals.hpp b/src/can/can-signals.hpp
index 1100ab10..a4f01eb2 100644
--- a/src/can/can-signals.hpp
+++ b/src/can/can-signals.hpp
@@ -107,8 +107,26 @@ private:
* this value is undefined. */
public:
- can_message_definition_t& get_message() const;
- std::string& get_generic_name() const;
-};
+ can_message_definition_t& get_message();
+ std::string& get_generic_name();
+ uint8_t get_bit_position() const;
+ uint8_t get_bit_size() const;
+ float get_factor() const;
+ float get_offset() const;
+ float get_min_value() const;
+ float get_max_value() const;
+ FrequencyClock& get_frequency();
+ bool get_send_same() const;
+ bool get_force_send_changed() const;
+ std::map<int, std::string> get_state() const;
+ size_t get_state_count() const;
+ bool get_writable() const;
+ SignalDecoder& get_decoder();
+ SignalEncoder& get_encoder();
+ bool get_received() const;
+ float get_last_value() const;
-void find_can_signals(const openxc_DynamicField &key, std::vector<can_signal_t*>& found_signals); \ No newline at end of file
+ void set_received(bool r);
+void find_can_signals(const openxc_DynamicField &key, std::vector<can_signal_t*>& found_signals); void set_received(bool r);
+ void set_last_value(float val);
+}; \ No newline at end of file