aboutsummaryrefslogtreecommitdiffstats
path: root/src/openxc/signal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/openxc/signal.cpp')
-rwxr-xr-xsrc/openxc/signal.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/openxc/signal.cpp b/src/openxc/signal.cpp
index e60c3ee..858f64b 100755
--- a/src/openxc/signal.cpp
+++ b/src/openxc/signal.cpp
@@ -88,12 +88,14 @@ namespace openxc
return multiplex_;
}
- bool signal::is_big_endian() const{
- return is_big_endian_;
+ sign_t signal::sign() const
+ {
+ return sign_;
}
- bool signal::is_signed() const{
- return is_signed_;
+ std::int32_t signal::bit_sign_position() const
+ {
+ return bit_sign_position_;
}
std::string signal::unit() const{
@@ -134,11 +136,10 @@ namespace openxc
{
multiplex_ = std::make_pair(false,0);
}
- is_big_endian_ = j.count("is_big_endian") ? j["is_big_endian"].get<bool>() : false;
- is_signed_ = j.count("is_signed") ? j["is_signed"].get<bool>() : false;
- unit_ = j.count("unit") ? j["unit"].get<std::string>() : "";
-
+ bit_sign_position_ = j.count("bit_sign_position") ? j["bit_sign_position"].get<std::int32_t>() : -1;
+ sign_ = j.count("signed") ? (sign_t) j["signed"].get<std::uint32_t>() : sign_t::UNSIGNED;
+ unit_ = j.count("unit") ? j["unit"].get<std::string>() : "";
if (j.count("states"))
{
@@ -185,10 +186,8 @@ namespace openxc
j["multiplex"] = multi;
-
-
- j["is_big_endian"] = is_big_endian_;
- j["is_signed"] = is_signed_;
+ j["bit_sign_position"] = bit_sign_position_;
+ j["signed"] = static_cast<std::uint32_t>(sign_);
j["unit"] = unit_;
return j;
}