aboutsummaryrefslogtreecommitdiffstats
path: root/src/can
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-03-08 02:41:56 +0100
committerRomain Forlot <romain.forlot@iot.bzh>2017-03-16 17:09:03 +0100
commit2049aca0927b55f2a256fd60ff686616b73eecb7 (patch)
treeeb4e195c796aa5cc69bdedd772a659b4f83fe9d9 /src/can
parent64d3ead0ce87091a3489dd9796a9f77f241c468b (diff)
Beginning of work of get central configuration object
that will be used by the binding to access generated elements. It will hold generated structure/objects and make a resume to the binding configuration. Idea is to have an object that can be inherited in the generated code to extend its functionnalities or change some of its behoviors. Change-Id: If2ce5cbe2eb98a74a8e3f13000ee02855674216f Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'src/can')
-rw-r--r--src/can/can-message.hpp15
-rw-r--r--src/can/can-signals.cpp50
-rw-r--r--src/can/can-signals.hpp17
3 files changed, 15 insertions, 67 deletions
diff --git a/src/can/can-message.hpp b/src/can/can-message.hpp
index b118ce7..38a8e59 100644
--- a/src/can/can-message.hpp
+++ b/src/can/can-message.hpp
@@ -130,6 +130,21 @@ typedef struct CanMessageDefinition CanMessageDefinition;
unsigned short commandCount; /*!< commandCount - The number of CanCommmands defined for this message set.*/
} CanMessageSet;
+class can_message_set_t
+{
+ private:
+ uint8_t index; /*!<index - A numerical ID for the message set, ideally the index in an array
+ * for fast lookup*/
+ const std::string name; /*!< name - The name of the message set.*/
+ uint8_t can_bus_count; /*!< busCount - The number of CAN buses defined for this message set.*/
+ unsigned short can_message_count; /*!< messageCount - The number of CAN messages (across all buses) defined for
+ * this message set.*/
+ unsigned short can_signal_count; /*!< signalCount - The number of CAN signals (across all messages) defined for
+ * this message set.*/
+ unsigned short can_command_count; /*!< commandCount - The number of CanCommmands defined for this message set.*/
+ unsigned short obd2_signal_count; /*!< commandCount - The number of obd2 signals defined for this message set.*/
+};
+
/** Public: Return the currently active CAN configuration. */
CanMessageSet* getActiveMessageSet();
diff --git a/src/can/can-signals.cpp b/src/can/can-signals.cpp
index 64980b0..bbd172b 100644
--- a/src/can/can-signals.cpp
+++ b/src/can/can-signals.cpp
@@ -24,56 +24,6 @@
#include "obd2/obd2-signals.hpp"
#include "low-can-binding.hpp"
-std::vector<std::vector<CanMessageDefinition>> CAN_MESSAGES = {
- {
- {0x620, CanMessageFormat::STANDARD, {10, 0, nullptr}, false, (uint8_t)NULL},
- {0x442, CanMessageFormat::STANDARD, {10, 0, nullptr}, false, (uint8_t)NULL},
- },
-};
-
-/**
- * @brief Dumb SIGNALS array. It is composed by CanMessageSet
- * SIGNALS[MESSAGE_SET_ID][CanSignal]
- */
-std::vector<std::vector<CanSignal>> SIGNALS = {
- {
- {&(CAN_MESSAGES[MESSAGE_SET_ID][0]), "can.driver_door.open", 2, 4, 1.000000, 0.000000, 0.000000, 0.000000, {10, 0, nullptr}, false, true, nullptr, 0, false, decoder_t::booleanDecoder, nullptr, false, 0.0},
- {&(CAN_MESSAGES[MESSAGE_SET_ID][1]), "can.driver_door.close", 0, 4, 1.000000, 0.000000, 0.000000, 0.000000, {10, 0, nullptr}, false, true, nullptr, 0, false, decoder_t::booleanDecoder, nullptr, false, 0.0}
- },
-};
-
-/**
- * @fn std::vector<CanSignal>& get_can_signals()
- *
- * @return A reference to a vector of signals
- */
-std::vector<CanSignal>& get_can_signals()
-{
- return SIGNALS[MESSAGE_SET_ID];
-}
-
-/**
- * @fn size_t getSignalCount()
- *
- * @return the length of the array returned by get_can_signals().
- */
-size_t getSignalCount()
-{
- return SIGNALS[MESSAGE_SET_ID].size();
-}
-
-/**
- * @brief Retrieve can arbitration id of a given CanSignal
- *
- * @param[in] CanSignal& - a const reference to a CanSignal
- *
- * @return uint32_t - unsigned integer representing the arbitration id.
- */
-uint32_t get_signal_id(const CanSignal& sig)
-{
- return sig.message->id;
-}
-
/**
* @fn void find_can_signals(const openxc_DynamicField& key, std::vector<CanSignal*>& found_signals)
* @brief return signals name found searching through CAN_signals and OBD2 pid
diff --git a/src/can/can-signals.hpp b/src/can/can-signals.hpp
index b5b87eb..17b189c 100644
--- a/src/can/can-signals.hpp
+++ b/src/can/can-signals.hpp
@@ -37,17 +37,6 @@ extern "C"
#define MESSAGE_SET_ID 0
-extern std::mutex subscribed_signals_mutex;
-std::mutex& get_subscribed_signals_mutex();
-
-/**
- * @brief return the subscribed_signals map.
- *
- * return std::map<std::string, struct afb_event> - map of subscribed signals.
- */
-extern std::map<std::string, struct afb_event> subscribed_signals;
-std::map<std::string, struct afb_event>& get_subscribed_signals();
-
/**
* @brief The type signature for a CAN signal decoder.
*
@@ -133,10 +122,4 @@ struct CanSignal {
};
typedef struct CanSignal CanSignal;
-std::vector<CanSignal>& get_can_signals();
-
-size_t getSignalCount();
-
void find_can_signals(const openxc_DynamicField &key, std::vector<CanSignal*>& found_signals);
-
-uint32_t get_signal_id(const CanSignal& sig); \ No newline at end of file