Skip to main content

UART Functions

dev.io.uart - wire path i\u - generated from fwMenuUART.

u_art_write

Write. Writes data to a specific I2C Address

Wire command: i\u\w

ArgWire type
data_byteshexbytes

Returns: none (Ok/Err only)

dev.io.uart.u_art_write(data_bytes: bytes | bytearray) -> Result
ow_status ow_io_uart_u_art_write(ow_device* dev, const uint8_t* data_bytes, size_t data_bytes_len);
dev.io().uart().u_art_write(data_bytes: &[u8]) -> Result<(), OwError>

The C and Rust signatures above are also the WASM guest signatures - the device API surface is identical; only the transport differs (ow_open_wasm(&dev) in C, OneWili::open() in Rust).

dev.io.uart.u_art_write(data_bytes) # check dev.ok

toggle_stream

Enable UART Read Events. Reads the number from the address

Wire command: i\u\r

Returns: data_bytes (hexbytes)

dev.io.uart.toggle_stream() -> Result
ow_status ow_io_uart_toggle_stream(ow_device* dev, uint8_t* data_bytes, size_t data_bytes_cap, size_t* data_bytes_len);
dev.io().uart().toggle_stream() -> Result<Vec<u8>, OwError>

The C and Rust signatures above are also the WASM guest signatures - the device API surface is identical; only the transport differs (ow_open_wasm(&dev) in C, OneWili::open() in Rust).

dev.io.uart.toggle_stream() # returns value; check dev.ok

uart_enable_api_mode

Enable UART API mode. Tests all addresses for I2C Response

Wire command: i\u\t

Returns: none (Ok/Err only)

dev.io.uart.uart_enable_api_mode() -> Result
ow_status ow_io_uart_uart_enable_api_mode(ow_device* dev);
dev.io().uart().uart_enable_api_mode() -> Result<(), OwError>

The C and Rust signatures above are also the WASM guest signatures - the device API surface is identical; only the transport differs (ow_open_wasm(&dev) in C, OneWili::open() in Rust).

dev.io.uart.uart_enable_api_mode() # check dev.ok

show_uart_settings

UART Settings. Opens the persistent UART settings menu

Wire command: i\u\s

Returns: none (Ok/Err only)

dev.io.uart.show_uart_settings() -> Result
ow_status ow_io_uart_show_uart_settings(ow_device* dev);
dev.io().uart().show_uart_settings() -> Result<(), OwError>

The C and Rust signatures above are also the WASM guest signatures - the device API surface is identical; only the transport differs (ow_open_wasm(&dev) in C, OneWili::open() in Rust).

dev.io.uart.show_uart_settings() # check dev.ok

Events

Spontaneous frames this menu emits (not command responses). Text events arrive as [*<id> ...] frames (Python: Transport.events; C: ow_poll_text_event; Rust: poll_event -> Event::Text); binary events use the binary API below. The on-device rthon binding does not receive event streams in v1.

uart1 (text)

uart receive frame

Payload fieldWire type
data_byteshexbytes