diff options
Diffstat (limited to 'modules/sensors/dynamic_sensor/HidRawSensor.cpp')
-rw-r--r-- | modules/sensors/dynamic_sensor/HidRawSensor.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/modules/sensors/dynamic_sensor/HidRawSensor.cpp b/modules/sensors/dynamic_sensor/HidRawSensor.cpp index 3759e7e9..c90f4f1a 100644 --- a/modules/sensors/dynamic_sensor/HidRawSensor.cpp +++ b/modules/sensors/dynamic_sensor/HidRawSensor.cpp @@ -1066,7 +1066,10 @@ bool HidRawSensor::getHeadTrackerEventData(const std::vector<uint8_t> &message, bool HidRawSensor::getSensorEventData(const std::vector<uint8_t> &message, sensors_event_t *event) { for (const auto &rec : mTranslateTable) { - int64_t v = (message[rec.byteOffset + rec.byteSize - 1] & 0x80) ? -1 : 0; + int64_t v = 0; + if (rec.minValue < 0) { + v = (message[rec.byteOffset + rec.byteSize - 1] & 0x80) ? -1 : 0; + } for (int i = static_cast<int>(rec.byteSize) - 1; i >= 0; --i) { v = (v << 8) | message[rec.byteOffset + i]; // HID is little endian } |