diff options
Diffstat (limited to 'src/can')
-rw-r--r-- | src/can/can-decoder.cpp | 12 | ||||
-rw-r--r-- | src/can/can-signals.cpp | 91 | ||||
-rw-r--r-- | src/can/can-signals.hpp | 26 |
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 |