diff options
author | 2020-09-23 16:07:53 -0400 | |
---|---|---|
committer | 2020-09-25 20:27:50 +0000 | |
commit | 6fc3a6da4f0d311d205672a9232d097aa512a84b (patch) | |
tree | a5974ec0005836f935c372eee455064ea8c267fd /src/openxc/signal.hpp | |
parent | 69b65a1551f25e8c05b20061770dedad6f2d1a29 (diff) |
Update to match current binding expectations
Changes:
- Reworked header, footer, message structure definition, etc. to
match the contents of the current generated files in the binding.
- To enable the above, added some code to derive the API name for
the app controller CAPI macro from the name given for the message
set in the JSON. The name is lower-cased and spaces converted to
dashes, this matches all the examples in the generated files in
the binding.
- Added logic to default message length to 8 if not set in JSON,
this is required to match explicit checks and signal JSON changes
in the binding.
- Replaced is_bigendian and is_signed fields with new sign and
bit_sign_position fields in JSON parsing and generated signal
output. The sign field value enum has been copied from the binding
to provide a reference for the values.
- Update per-signal flags generation, to enable this updated flag
#defines from binding's current can-message.hpp. Added a comment
to document which flags are known to be used.
- Removed "package" from "all" target in Makefile, as it is attached
to widget packaging rules that are not applicable for the
generator, which is built for host or toolchain usage.
- Removed unused src/main.hpp header to avoid confusion.
Bug-AGL: SPEC-3551
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I9ef3df0ebcfbddc23c789b50e1575fc42031970d
(cherry picked from commit 0a3e354c3d81866e1a755367ab5592b3ced868bb)
Diffstat (limited to 'src/openxc/signal.hpp')
-rwxr-xr-x | src/openxc/signal.hpp | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/openxc/signal.hpp b/src/openxc/signal.hpp index 750926b..ce0a2e1 100755 --- a/src/openxc/signal.hpp +++ b/src/openxc/signal.hpp @@ -8,27 +8,36 @@ namespace openxc
{
+ enum sign_t
+ {
+ UNSIGNED = 0,
+ SIGN_BIT = 1,
+ ONES_COMPLEMENT = 2,
+ TWOS_COMPLEMENT = 3,
+ SIGN_BIT_EXTERN = 4
+ };
+
class signal
{
private:
std::string id_;
std::string generic_name_;
- std::uint32_t bit_position_;
- std::uint32_t bit_size_;
+ std::uint32_t bit_position_;
+ std::uint32_t bit_size_;
float factor_;
float offset_;
std::string decoder_;
bool ignore_;
bool enabled_;
- std::map<std::string, std::vector<std::uint32_t>> states_;
+ std::map<std::string, std::vector<std::uint32_t>> states_;
float max_frequency_;
bool send_same_;
bool force_send_changed_;
bool writable_;
std::string encoder_;
- std::pair<bool,int> multiplex_;
- bool is_big_endian_;
- bool is_signed_;
+ std::pair<bool,int> multiplex_;
+ sign_t sign_;
+ std::int32_t bit_sign_position_;
std::string unit_;
public:
@@ -49,8 +58,8 @@ namespace openxc bool writable() const;
std::string encoder() const;
std::pair<bool,int> multiplex() const;
- bool is_big_endian() const;
- bool is_signed() const;
+ sign_t sign() const;
+ std::int32_t bit_sign_position() const;
std::string unit() const;
void from_json(const nlohmann::json& j);
|