64 uint8_t syscall_ceiling);
217 uint8_t syscall_ceiling);
nx_result_t nx_adc_port_stream_service(const nx_adc_port_t *port)
Explicitly resume discrete block acquisition after consumer drain.
nx_result_t nx_adc_port_attach_observer(const nx_adc_port_t *port, nx_adc_observer_t *observer)
Attach optional observer storage before acquisition starts.
nx_result_t nx_adc_port_sample(const nx_adc_port_t *port, uint16_t *samples, size_t capacity, nx_time_us_t deadline, size_t *count)
Sample the fixed single/scan sequence by bounded polling.
nx_result_t nx_adc_port_sequence_info(const nx_adc_port_t *port, nx_adc_sequence_info_t *info)
Read fixed channel order and complete-scan timing facts.
nx_result_t nx_adc_port_attach_wake(const nx_adc_port_t *port, const nx_irq_wake_t *wake, uint8_t syscall_ceiling)
Attach an optional hint sink after checking publisher IRQ priority.
struct nx_adc_port nx_adc_port_t
nx_result_t nx_adc_port_info(const nx_adc_port_t *port, nx_adc_info_t *info)
Query the fixed reviewed ADC sequence and raw-count format.
nx_result_t nx_adc_port_stream_stop(const nx_adc_port_t *port)
Stop trigger and memory sources without revoking consumer loans.
nx_result_t nx_adc_port_block_observation(const nx_adc_port_t *port, const nx_stream_block_t *block, nx_adc_observation_t *observation)
Query one live consumer loan's software completion record.
nx_result_t nx_adc_port_stream_start(const nx_adc_port_t *port, nx_stream_t *stream, uint32_t trigger_hz)
Start selected trigger/block acquisition with caller storage.
Optional caller-owned ADC publication observations.
nx_result_t
Operation result; success at submission means admission only.
Bounded caller-owned blocks with explicit producer/consumer loans.
Raw count facts; nominal Vref is not a calibrated physical measurement.
One loan's software observation, never a sample aperture.
Optional caller-owned observer control and exact records.
Shared read-only methods using one provider state.
nx_result_t(* block_observation)(const void *context, const nx_stream_block_t *block, nx_adc_observation_t *observation)
nx_result_t(* sample)(void *context, uint16_t *samples, size_t capacity, nx_time_us_t deadline, size_t *count)
nx_result_t(* stream_stop)(void *context)
nx_result_t(* stream_service)(void *context)
nx_result_t(* sequence_info)(const void *context, nx_adc_sequence_info_t *info)
nx_result_t(* stream_start)(void *context, nx_stream_t *stream, uint32_t trigger_hz)
nx_result_t(* attach_observer)(void *context, nx_adc_observer_t *observer)
nx_result_t(* info)(const void *context, nx_adc_info_t *info)
nx_result_t(* attach_wake)(void *context, const nx_irq_wake_t *wake, uint8_t syscall_ceiling)
Immutable interface pointing to caller-owned state.
Immutable complete-scan timing facts for the selected mode.
const uint8_t * sample_times
uint16_t conversion_cycles
const uint16_t * sample_cycles
Optional immutable wake target borrowed by an IRQ provider.
Immutable consumer loan, valid until matching release succeeds.
Caller-owned stream control, initialized before publication.
Absolute monotonic microsecond deadlines and wrap extension.
uint64_t nx_time_us_t
Microseconds in one boot/clock domain; no wall-clock semantics.
Explicit borrowed IRQ wake target and syscall-ceiling check.