class ModBus::Client

@abstract

Public Class Methods

connect(*args, &block)
Alias for: new
new(*args) { |self| ... } click to toggle source

Initialized client (alias :connect) @example

Client.new(any_args) do |client|
  client.closed? #=> false
end

@param *args depends on implementation @yield return client object and close it before exit @return [Client] client object

# File lib/rmodbus/client.rb, line 18
def initialize(*args, &block)
  # Defaults
  @logger = nil
  @raise_exception_on_mismatch = false
  @read_retry_timeout = 1
  @read_retries = 1

  @io = open_connection(*args)
  if block_given?
    begin
      yield self
    ensure
      close
    end
  else
    self
  end
end
Also aliased as: connect

Public Instance Methods

close() click to toggle source

Close connections

# File lib/rmodbus/client.rb, line 70
def close
  @io.close unless @io.closed?
end
closed?() click to toggle source

Check connections @return [Boolean]

# File lib/rmodbus/client.rb, line 65
def closed?
  @io.closed?
end
with_slave(uid) { |slave| ... } click to toggle source

Given slave object @example

cl = Client.new
cl.with_slave(1) do |slave|
  slave.holding_registers[0..100]
end

@param [Integer, read] uid slave devise @return [Slave] slave object

# File lib/rmodbus/client.rb, line 50
def with_slave(uid, &block)
  slave = get_slave(uid, @io)
  slave.logger = logger
  slave.raise_exception_on_mismatch = raise_exception_on_mismatch
  slave.read_retries = read_retries
  slave.read_retry_timeout = read_retry_timeout
  if block_given?
    yield slave
  else
    slave
  end
end

Protected Instance Methods

get_slave(uid,io) click to toggle source
# File lib/rmodbus/client.rb, line 90
def get_slave(uid,io)
  Slave.new(uid, io)
end
open_connection(*args) click to toggle source
# File lib/rmodbus/client.rb, line 75
def open_connection(*args)
  #Stub conn object
  @io = Object.new

  @io.instance_eval """
    def close
    end

    def closed?
      true
    end
    """
  @io
end