Add feature to build messages and fix some functions
[apps/agl-service-can-low-level.git] / low-can-binding / can / can-encoder.hpp
index f7e8394..c37521f 100644 (file)
 
 #pragma once
 
-#include "can-signals.hpp"
-#include "can-message.hpp"
+#include "signals.hpp"
+#include "message/can-message.hpp"
 #include "openxc.pb.h"
+#include "message/can-message.hpp"
+#ifdef USE_FEATURE_J1939
+#include "message/j1939-message.hpp"
+#endif
 
 class encoder_t
 {
 public:
-       static const can_frame build_frame(const can_signal_t& signal, uint64_t value);
-       static uint64_t encode_state(const can_signal_t& signal, const std::string& value, bool* send);
-       static uint64_t encode_boolean(const can_signal_t& signal, bool value, bool* send);
-       static uint64_t encode_number(const can_signal_t& signal, float value, bool* send);
+       static const canfd_frame build_frame(const std::shared_ptr<signal_t>& signal, uint64_t value);
+       static message_t* build_message(const std::shared_ptr<signal_t>& signal, uint64_t value);
+       static message_t* build_one_frame_message(const std::shared_ptr<signal_t>& signal, uint64_t value, message_t *message);
+       static message_t* build_multi_frame_message(const std::shared_ptr<signal_t>& signal, uint64_t value, message_t *message);
+       static uint64_t encode_state(const signal_t& signal, const std::string& value, bool* send);
+       static uint64_t encode_boolean(const signal_t& signal, bool value, bool* send);
+       static uint64_t encode_number(const signal_t& signal, float value, bool* send);
 
-       static uint64_t encode_DynamicField(can_signal_t& signal, const openxc_DynamicField& field, bool* send);
+       static uint64_t encode_DynamicField(signal_t& signal, const openxc_DynamicField& field, bool* send);
 };