class ModBus::RTUServer

RTU server implementation @example

srv = RTUServer.new('/dev/ttyS1', 9600, 1)
srv.coils = [1,0,1,1]
srv.discrete_inputs = [1,1,0,0]
srv.holding_registers = [1,2,3,4]
srv.input_registers = [1,2,3,4]
srv.debug = true
srv.start

Public Class Methods

new(port, baud=9600, uid=1, opts = {}) click to toggle source

Init RTU server @param [Integer] uid slave device @see SP#open_serial_port

# File lib/rmodbus/rtu_server.rb, line 20
def initialize(port, baud=9600, uid=1, opts = {})
  Thread.abort_on_exception = true
  @sp = open_serial_port(port, baud, opts)
  @uid = uid
end

Public Instance Methods

join() click to toggle source

Join server

# File lib/rmodbus/rtu_server.rb, line 42
def join
  @serv.join
end
start() click to toggle source

Start server

# File lib/rmodbus/rtu_server.rb, line 27
def start
  @serv = Thread.new do
    serv_rtu_requests(@sp) do |msg|
      exec_req(msg[1..-3], @coils, @discrete_inputs, @holding_registers, @input_registers)
    end
  end
end
stop() click to toggle source

Stop server

# File lib/rmodbus/rtu_server.rb, line 36
def stop
  Thread.kill(@serv)
  @sp.close
end