hybridgroup / rubyserial

FFI Ruby library for RS-232 serial port communication
https://rubygems.org/gems/rubyserial
Other
154 stars 27 forks source link

Implemented ioctl call to set custom baud rate on OSX #48

Open khovansky-al opened 5 years ago

khovansky-al commented 5 years ago

On OSX it is impossible to set baud rates higher than standard using tcsetattr. Attempting to do so will throw an EINVAL error. However, it is possible to set arbitrary baud rates using ioctl call. Example can be found here

This PR attaches ioctl and in case of undefined baud rate on OSX attempts to set speed using that call. The only caveat here is that I have been unable to write tests for it due to pty's opened by socat not supporting setting speed at all. ioctl throws ENOTTY when attempted. On real hardware it works well though (needed these changes for my arduino project). Not sure what we can do about it.