The get_raw_axes() function does not appear to return the correct values when used with an ADXL355.
|
def get_axes(self): |
|
""" |
|
Gets the current data from the axes. |
|
|
|
Returns: |
|
dict: Current value for x, y and z axis |
|
""" |
|
|
|
# Reading data |
|
raw_data = self.read_multiple_data( |
|
[XDATA1, XDATA2, XDATA3, YDATA1, YDATA2, YDATA3, ZDATA1, ZDATA2, ZDATA3] |
|
) |
|
x_data = raw_data[0:3] |
|
y_data = raw_data[3:6] |
|
z_data = raw_data[6:9] |
|
|
|
# Join data |
|
x_data = (x_data[0] >> 4) + (x_data[1] << 4) + (x_data[2] << 12) |
|
y_data = (y_data[0] >> 4) + (y_data[1] << 4) + (y_data[2] << 12) |
|
z_data = (z_data[0] >> 4) + (z_data[1] << 4) + (z_data[2] << 12) |
|
|
|
# Apply two complement |
|
if x_data & 0x80000 == 0x80000: |
|
x_data = ~x_data + 1 |
|
|
|
if y_data & 0x80000 == 0x80000: |
|
y_data = ~y_data + 1 |
|
|
|
if z_data & 0x80000 == 0x80000: |
|
z_data = ~z_data + 1 |
|
|
|
# Return values |
|
return {'x': x_data, 'y': y_data, 'z': z_data} |
I can open a PR with my function that I've added to your class to return gravity per axis. If you're interested, let me know!
The get_raw_axes() function does not appear to return the correct values when used with an ADXL355.
adxl355-python/lib/adxl355.py
Lines 124 to 156 in 5fcd5e4
I can open a PR with my function that I've added to your class to return gravity per axis. If you're interested, let me know!