← Back

Module serial

enum BaudRate

Source: serial.joule:9

fn value(&self) -> u32

Source: serial.joule:26

enum DataBits

Source: serial.joule:47

enum StopBits

Source: serial.joule:56

enum Parity

Source: serial.joule:63

enum FlowControl

Source: serial.joule:73

struct SerialConfig

Source: serial.joule:81

fn default() -> Self

Source: serial.joule:92

fn standard(baud_rate: BaudRate) -> Self

Create config with common 8N1 settings

Source: serial.joule:107

struct SerialPortInfo

Source: serial.joule:117

enum SerialPortType

Source: serial.joule:136

struct SerialPort

Serial port handle

Source: serial.joule:148

fn list() -> Result<Vec<SerialPortInfo>, DeviceError>

Source: serial.joule:157

fn open(name: &str) -> Result<Self, DeviceError>

Source: serial.joule:181

fn open_with_config(name: &str, config: SerialConfig) -> Result<Self, DeviceError>

Source: serial.joule:187

fn name(&self) -> &str

Get port name

Source: serial.joule:205

fn config(&self) -> &SerialConfig

Get current configuration

Source: serial.joule:210

fn set_baud_rate(&mut self, baud_rate: BaudRate) -> Result<(), DeviceError>

Source: serial.joule:216

fn set_read_timeout(&mut self, timeout_ms: Option<u32>) -> Result<(), DeviceError>

Set read timeout

Source: serial.joule:222

fn apply_config(&self) -> Result<(), DeviceError>

Apply current configuration to hardware

Source: serial.joule:228

fn bytes_available(&self) -> Result<usize, DeviceError>

Source: serial.joule:247

fn ioctl(fd: i32, request: u64, ...) -> i32;

Source: serial.joule:251

const FIONREAD: u64

Source: serial.joule:253

fn flush_output(&self) -> Result<(), DeviceError>

Source: serial.joule:271

fn tcdrain(fd: i32) -> i32;

Source: serial.joule:275

fn discard_input(&self) -> Result<(), DeviceError>

Source: serial.joule:286

fn tcflush(fd: i32, queue_selector: i32) -> i32;

Source: serial.joule:290

const TCIFLUSH: i32

Source: serial.joule:292

fn discard_output(&self) -> Result<(), DeviceError>

Source: serial.joule:302

fn tcflush(fd: i32, queue_selector: i32) -> i32;

Source: serial.joule:306

const TCOFLUSH: i32

Source: serial.joule:308

fn set_rts(&self, state: bool) -> Result<(), DeviceError>

Source: serial.joule:318

fn ioctl(fd: i32, request: u64, ...) -> i32;

Source: serial.joule:322

const TIOCMGET: u64

Source: serial.joule:324

const TIOCMSET: u64

Source: serial.joule:325

const TIOCM_RTS: i32

Source: serial.joule:326

fn set_dtr(&self, state: bool) -> Result<(), DeviceError>

Source: serial.joule:348

fn ioctl(fd: i32, request: u64, ...) -> i32;

Source: serial.joule:352

const TIOCMGET: u64

Source: serial.joule:354

const TIOCMSET: u64

Source: serial.joule:355

const TIOCM_DTR: i32

Source: serial.joule:356

fn get_cts(&self) -> Result<bool, DeviceError>

Source: serial.joule:378

fn ioctl(fd: i32, request: u64, ...) -> i32;

Source: serial.joule:382

const TIOCMGET: u64

Source: serial.joule:384

const TIOCM_CTS: i32

Source: serial.joule:385

fn get_dsr(&self) -> Result<bool, DeviceError>

Source: serial.joule:402

fn ioctl(fd: i32, request: u64, ...) -> i32;

Source: serial.joule:406

const TIOCMGET: u64

Source: serial.joule:408

const TIOCM_DSR: i32

Source: serial.joule:409

fn get_cd(&self) -> Result<bool, DeviceError>

Source: serial.joule:426

fn ioctl(fd: i32, request: u64, ...) -> i32;

Source: serial.joule:430

const TIOCMGET: u64

Source: serial.joule:432

const TIOCM_CAR: i32

Source: serial.joule:433

fn send_break(&self, duration_ms: u32) -> Result<(), DeviceError>

Source: serial.joule:450

fn tcsendbreak(fd: i32, duration: i32) -> i32;

Source: serial.joule:454

fn read(&mut self, buf: &mut [u8]) -> Result<usize, std::io::Error>

Source: serial.joule:467

fn read(fd: i32, buf: *mut u8, count: usize) -> isize;

Source: serial.joule:471

fn write(&mut self, buf: &[u8]) -> Result<usize, std::io::Error>

Source: serial.joule:489

fn write(fd: i32, buf: *const u8, count: usize) -> isize;

Source: serial.joule:493

fn flush(&mut self) -> Result<(), std::io::Error>

Source: serial.joule:508

fn drop(&mut self)

Source: serial.joule:517

fn close(fd: i32) -> i32;

Source: serial.joule:521

fn open_unix_port(name: &str, config: &SerialConfig) -> Result<SerialPort, DeviceError>

Source: serial.joule:531

fn open(path: *const i8, flags: i32) -> i32;

Source: serial.joule:533

const O_RDWR: i32

Source: serial.joule:536

const O_NOCTTY: i32

Source: serial.joule:537

const O_NONBLOCK: i32

Source: serial.joule:538

fn apply_unix_config(fd: i32, config: &SerialConfig) -> Result<(), DeviceError>

Source: serial.joule:564

fn tcgetattr(fd: i32, termios: *mut Termios) -> i32;

Source: serial.joule:566

fn tcsetattr(fd: i32, optional_actions: i32, termios: *const Termios) -> i32;

Source: serial.joule:567

fn cfsetispeed(termios: *mut Termios, speed: u32) -> i32;

Source: serial.joule:568

fn cfsetospeed(termios: *mut Termios, speed: u32) -> i32;

Source: serial.joule:569

struct Termios

Source: serial.joule:573

const TCSANOW: i32

Source: serial.joule:658

fn list_linux_ports() -> Result<Vec<SerialPortInfo>, DeviceError>

Source: serial.joule:667

fn list_macos_ports() -> Result<Vec<SerialPortInfo>, DeviceError>

Source: serial.joule:698

fn list_windows_ports() -> Result<Vec<SerialPortInfo>, DeviceError>

Source: serial.joule:733

fn open_windows_port(name: &str, config: &SerialConfig) -> Result<SerialPort, DeviceError>

Source: serial.joule:739

fn apply_windows_config(fd: i32, config: &SerialConfig) -> Result<(), DeviceError>

Source: serial.joule:744