Update to match current binding expectations
[src/low-level-can-generator.git] / src / openxc / signal.hpp
index 750926b..ce0a2e1 100755 (executable)
@@ -8,27 +8,36 @@
 \r
 namespace openxc\r
 {\r
+       enum sign_t\r
+       {\r
+               UNSIGNED = 0,\r
+               SIGN_BIT = 1,\r
+               ONES_COMPLEMENT = 2,\r
+               TWOS_COMPLEMENT = 3,\r
+               SIGN_BIT_EXTERN = 4\r
+       };\r
+\r
        class signal\r
        {\r
        private:\r
                std::string                                                                                     id_;\r
                std::string                                                                                     generic_name_;\r
-               std::uint32_t                                                                           bit_position_;\r
-               std::uint32_t                                                                           bit_size_;\r
+               std::uint32_t                                                                                   bit_position_;\r
+               std::uint32_t                                                                                   bit_size_;\r
                float                                                                                           factor_;\r
                float                                                                                           offset_;\r
                std::string                                                                                     decoder_;\r
                bool                                                                                            ignore_;\r
                bool                                                                                            enabled_;\r
-               std::map<std::string, std::vector<std::uint32_t>>       states_;\r
+               std::map<std::string, std::vector<std::uint32_t>>                                               states_;\r
                float                                                                                           max_frequency_;\r
                bool                                                                                            send_same_;\r
                bool                                                                                            force_send_changed_;\r
                bool                                                                                            writable_;\r
                std::string                                                                                     encoder_;\r
-               std::pair<bool,int>                                                                     multiplex_;\r
-               bool                                                                                            is_big_endian_;\r
-               bool                                                                                            is_signed_;\r
+               std::pair<bool,int>                                                                             multiplex_;\r
+               sign_t                                                                                          sign_;\r
+               std::int32_t                                                                                    bit_sign_position_;\r
                std::string                                                                                     unit_;\r
 \r
        public:\r
@@ -49,8 +58,8 @@ namespace openxc
                bool writable() const;\r
                std::string encoder() const;\r
                std::pair<bool,int> multiplex() const;\r
-               bool is_big_endian() const;\r
-               bool is_signed() const;\r
+               sign_t sign() const;\r
+               std::int32_t bit_sign_position() const;\r
                std::string unit() const;\r
 \r
                void from_json(const nlohmann::json& j);\r