Skip to content

Does not appear to return the correct values #8

@mistyron

Description

@mistyron

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions