- Split implementation into multiple crates:
serial-core
contains core abstractions.serial-unix
provides Unix implementation.serial-windows
provides Windows implementation.serial
provides cross-platform interface.
- Renamed
serial::posix
module toserial::unix
.
- Removed implementation of
Default
forPortSettings
.
- Fixed bugs in the Windows implementation that did not reset parity, binary, or DTR control settings.
- (#16)
Added missing
Send
implementation for Windows COM ports. - (#18) Fixed bug to allow opening non-standard Windows COM ports by name.
- (#27)
Added missing
Debug
implementation for Unix TTY port settings.
- Added support for OpenBSD.
- (#10) Added support for OS-specific baud rates for termios-based serial ports.
- (#10)
Added
BaudRate::from_speed()
constructor.
- Upgraded
libc
dependency to v0.2.
- Added support for FreeBSD.
- Replaced dependence on
time
crate withstd::time
. - Minimum supported version of Rust is now 1.3.0.
- (#7)
Added
SystemPort
type alias for native serial port type.
- Added
SerialDevice
trait as implementation trait for new serial port types. All types that implementSerialDevice
will automatically implementSerialPort
. - Added new
ErrorKind
variant:NoDevice
.
- Changed
reconfigure()
method to be object-safe and moved fromSerialPortExt
toSerialPort
. - Changed return type of
serial::open()
fromio::Result
toserial::Result
. - Improved usefulness of errors returned by many methods by explicitly handling system error codes and using system error descriptions.
- Removed methods from
SerialPort
trait that required knowledge of the port'sSettings
type. Removed methods areread_settings()
andwrite_settings()
. They are still available viaSerialDevice
. - Removed
SerialPortExt
trait.
- (#4)
Made
SerialPort
usable as a trait object.SerialPort
objects can now be boxed asBox<SerialPort>
.
- Added support for control signals to
SerialPort
trait. RTS and DTR control signals are settable. CTS, DSR, RI, and CD signals are readable. - Implemented control signals for Unix TTY devices.
- Implemented control signals for Windows COM ports.
- (#5)
Fixed bug that kept PTY devices created with
socat
locked after closing device.
- When opening Unix TTY ports, they are now locked for exclusive access with
TIOCEXL
ioctl.
- Added support for stable release channel.
- Added
serial::Error
type to represent errors. - Added
SerialPort::configure()
method to configure port directly from aPortSettings
object. - Implemented
AsRawFd
for Unix TTY ports. - Implemented
AsRawHandle
for Windows COM ports.
- Renamed
SerialPort::settings()
toSerialPort::read_settings()
. - Renamed
SerialPort::apply_settings()
toSerialPort::write_settings()
. - Changed
io::Result
return types toserial::Result
. - Returning
serial::Result
fromSerialPort::set_timeout()
to allow function to perform I/O. - Changed return type of
SerialPortSettings
getter methods toOption<T>
, so undetermined settings can be represented asNone
. - Changed return type of
SerialPortSettings::set_baud_rate()
toserial::Result
to allow the method to return an error for unsupported baud rates.
- Removed uncommon baud rates: 50, 75, 134, 150, 200, 1800, and 230400 (still available with
BaudOther
).
- Added support for Windows COM ports.
- Added cross-platform function
serial::open()
for opening system serial ports.
- Return
io::Result
fromSerialPort::settings()
.
- Replaced use of built-in
libc
crate withlibc
package from crates.io. - (#1)
Replaced use of unstable
std::time
module withtime
package from crates.io.
- Updated to support Rust 1.0.0-beta compiler.
- Updated to support latest Rust nightly compiler.
- Migrated to new
std::io
module formstd::old_io
.
- Updated to support latest Rust nightly compiler.
- Basic support for Unix TTY devices.