-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
The get_raw_axes() function does not appear to return the correct values when used with an ADXL355.
Lines 124 to 156 in 5fcd5e4
| 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!
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels