6#ifndef NEXUS_COMPONENTS_BMP280_H
7#define NEXUS_COMPONENTS_BMP280_H
81 uint32_t raw_temperature,
82 uint32_t raw_pressure,
nx_result_t nx_bmp280_compensate(const nx_bmp280_calibration_t *calibration, uint32_t raw_temperature, uint32_t raw_pressure, nx_bmp280_sample_t *sample)
Compensate one raw sample using checked integer arithmetic.
void nx_bmp280_stop(nx_bmp280_t *device)
Stop software use after all synchronous calls have exited.
nx_result_t nx_bmp280_poll(nx_bmp280_t *device, nx_bmp280_sample_t *sample)
Poll conversion without an implicit worker or blocking delay.
nx_result_t nx_bmp280_init(nx_bmp280_t *device, nx_bmp280_transport_port_t transport, nx_time_us_t deadline)
Validate chip ID and load calibration, without scanning.
nx_result_t nx_bmp280_begin(nx_bmp280_t *device, nx_time_us_t deadline)
Start one forced temperature/pressure conversion.
nx_result_t nx_bmp280_parse_calibration(const uint8_t *bytes, size_t length, nx_bmp280_calibration_t *calibration)
Parse the exact 24-byte little-endian calibration block.
nx_result_t
Operation result; success at submission means admission only.
Register calibration, owned by one device instance.
Output is valid only on successful conversion/compensation.
Explicit device context, no Board pins or automatic sampling task.
nx_bmp280_calibration_t calibration
nx_time_us_t earliest_ready
nx_bmp280_transport_port_t transport
Synchronous settled SPI transaction port.
nx_result_t(* exchange)(void *, const uint8_t *, uint8_t *, size_t, nx_time_us_t deadline)
An explicitly injected clock; its context outlives all borrowers.
Absolute monotonic microsecond deadlines and wrap extension.
uint64_t nx_time_us_t
Microseconds in one boot/clock domain; no wall-clock semantics.