Class: EventMachine::SerialPort
- Inherits:
-
StreamObject
- Object
- StreamObject
- EventMachine::SerialPort
- Defined in:
- lib/em-rubyserial.rb
Class Method Summary collapse
Instance Method Summary collapse
- #eventable_read ⇒ Object
-
#initialize(io) ⇒ SerialPort
constructor
A new instance of SerialPort.
Constructor Details
#initialize(io) ⇒ SerialPort
Returns a new instance of SerialPort.
56 57 58 |
# File 'lib/em-rubyserial.rb', line 56 def initialize(io) super end |
Class Method Details
.open(dev, baud, databits) ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'lib/em-rubyserial.rb', line 46 def self.open(dev, baud, databits) serialport = ::Serial.new(dev, baud, databits) if RUBY_PLATFORM == "java" io = FFI::FileDescriptorIO.new(serialport.instance_variable_get(:@fd).to_i) else io = IO.new(serialport.instance_variable_get(:@fd), 'r+') end self.new(io) end |
Instance Method Details
#eventable_read ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/em-rubyserial.rb', line 60 def eventable_read @last_activity = Reactor.instance.current_loop_time begin if io.respond_to?(:read_nonblock) 10.times { data = io.read_nonblock(4096) EventMachine::event_callback uuid, ConnectionData, data } else data = io.sysread(4096) EventMachine::event_callback uuid, ConnectionData, data end rescue Errno::EAGAIN, Errno::EWOULDBLOCK, EOFError # no-op rescue Errno::ECONNRESET, Errno::ECONNREFUSED @close_scheduled = true EventMachine::event_callback uuid, ConnectionUnbound, nil end end |