Use V5SerialConnection when an application needs direct status or transfer operations without the high-level state model.
Important methods include getDeviceStatus, getRadioStatus, getSystemFlags, getSystemStatus, getMatchStatus, file transfers, program transfers, loadProgram, stopProgram, setMatchMode, mockTouch, openScreen, readUserFifo, and writeUserFifo. readUserFifo and writeUserFifo move bytes between the host and a running user program. See Program output and input for the terminal session built on top of them. writeDataAsync(packet, timeout) uses a 1,000 ms timeout by default. File uploads and downloads are serialized per connection and use longer timeouts for specific transfer phases. The timeout resolves with AckType.TIMEOUT; it does not cancel work already executing on the device. open(use, askUser) returns Ok("opened") for success, Ok("busy") for an unusable selected port, or Ok("no-port") when no port is available or selected. It returns Err(VexSerialError) for serial open failures. Device file downloads reject invalid or oversized device-reported lengths before allocating their destination buffer. The default limit is 64 MiB and can be lowered for an application:
View source