Update function to encode and decode message
[apps/agl-service-can-low-level.git] / low-can-binding / can / can-encoder.hpp
index 294b167..d4505f0 100644 (file)
 
 #pragma once
 
-#include "can-signals.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 canfd_frame build_frame(const std::shared_ptr<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 message_t* build_message(const std::shared_ptr<signal_t>& signal, uint64_t value, bool factor=true, bool offset=true);
+       static message_t* build_frame(const std::shared_ptr<signal_t>& signal, uint64_t value, message_t *message, bool factor=true, bool offset=true);
+       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 void encode_data(std::shared_ptr<signal_t> sig, std::vector<uint8_t> &data, bool filter=false, bool factor=true, bool offset=true);
 
-       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);
+};
\ No newline at end of file