summaryrefslogtreecommitdiffstats
path: root/CAN-binder/low-can-binding/can/can-signals.hpp
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-05-10 18:39:25 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-05-10 18:45:56 +0200
commitd253ada94487232ccd33b68a69fd44ff7840fab7 (patch)
tree67f5959138d0ddcad413f9ee692d087200e0b4df /CAN-binder/low-can-binding/can/can-signals.hpp
parent3e2be4237ac6f3e8bcec8b10d295182cefe67330 (diff)
Use a tree instead of separated object lists. WIP
Now we respect JSON description file, which is can_message_set contains can_message_definition which contains can_signals. Diagnostic messages aren't processed for now. Change-Id: I94aaf5eded14dd84395bd4fd749df58dee5f533e Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'CAN-binder/low-can-binding/can/can-signals.hpp')
-rw-r--r--CAN-binder/low-can-binding/can/can-signals.hpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/CAN-binder/low-can-binding/can/can-signals.hpp b/CAN-binder/low-can-binding/can/can-signals.hpp
index 75faedf..6497a3c 100644
--- a/CAN-binder/low-can-binding/can/can-signals.hpp
+++ b/CAN-binder/low-can-binding/can/can-signals.hpp
@@ -19,15 +19,14 @@
#include <map>
#include <mutex>
-#include <queue>
#include <vector>
#include <string>
+#include <memory>
#include "openxc.pb.h"
#include "../utils/timer.hpp"
#include "../utils/socketcan-bcm.hpp"
#include "can-message.hpp"
-#include "can-message-definition.hpp"
#include "../diagnostic/diagnostic-message.hpp"
extern "C"
@@ -39,6 +38,7 @@ extern "C"
#define MESSAGE_SET_ID 0
class can_signal_t;
+class can_message_definition_t;
///
/// @brief The type signature for a CAN signal decoder.
@@ -76,9 +76,8 @@ typedef uint64_t (*SignalEncoder)(can_signal_t* signal,
class can_signal_t
{
private:
+ std::shared_ptr<can_message_definition_t> parent_; /*!< parent_ - pointer to the parent message definition holding this signal*/
utils::socketcan_bcm_t socket_; /*!< socket_ - Specific BCM socket that filter the signal read from CAN device */
- std::uint8_t message_set_id_; ///< message_set_id_ - Index number to the message_set_id container object
- std::uint8_t message_id_; ///< message_id_ - Index number to the message_definition_t container object
std::string generic_name_; /*!< generic_name_ - The name of the signal to be output.*/
static std::string prefix_; /*!< prefix_ - generic_name_ will be prefixed with it. It has to reflect the used protocol.
* which make easier to sort message when the come in.*/
@@ -112,9 +111,8 @@ private:
* this value is undefined. */
public:
+ //can_signal_t(const can_signal_t& b);
can_signal_t(
- std::uint8_t message_set_id,
- std::uint8_t message_id,
std::string generic_name,
uint8_t bit_position,
uint8_t bit_size,
@@ -132,7 +130,7 @@ public:
bool received);
utils::socketcan_bcm_t get_socket() const;
- can_message_definition_t& get_message() const;
+ std::shared_ptr<can_message_definition_t> get_message() const;
const std::string& get_generic_name() const;
const std::string get_name() const;
const std::string& get_prefix() const;
@@ -154,6 +152,7 @@ public:
bool get_received() const;
float get_last_value() const;
+ void set_parent(std::shared_ptr<can_message_definition_t> parent);
void set_prefix(std::string val);
void set_received(bool r);
void set_last_value(float val);