Class: Twib::Interface

Inherits:
Object
  • Object
show all
Defined in:
lib/twib/interface.rb

Overview

Base class for Ruby bindings to a remote interface. An instance of this class represents a remote bridge object.

This class and any subclasses should not typically be instantiated directly. Rather, instances should be returned from either TwibConnection#open_device or a remote command binding.

Instance Method Summary collapse

Constructor Details

#initialize(connection, device_id, object_id) ⇒ Interface

Returns a new instance of Interface.

Parameters:

  • connection (TwibConnection)

    Twib connection to use for transport

  • device_id (Integer)

    ID of the device this object exists on

  • object_id (Integer)

    ID of the remote object this object is bound to



13
14
15
16
17
# File 'lib/twib/interface.rb', line 13

def initialize(connection, device_id, object_id)
  @connection = connection
  @device_id = device_id
  @object_id = object_id
end

Instance Method Details

#send(command_id, payload = String.new) {|rs| ... } ⇒ ActiveRequest

Sends a request to the remote object this instance is bound to.

object.send(10, [1234].pack("L<")) do |rs|
  puts "got back: " + rs.assert_ok.payload
end

object.send(10, [1234].pack("L<")).wait_ok
# => #<Twib::TwibConnection::Response>

Parameters:

  • command_id (Integer)

    ID of remtoe command to invoke

  • payload (String) (defaults to: String.new)

    Data to send along with the request

Yields:

  • (rs)

    Calls the block (in a separate thread) when a response is received, if present.

Yield Parameters:

Returns:



33
34
35
# File 'lib/twib/interface.rb', line 33

def send(command_id, payload=String.new, &block)
  @connection.send(@device_id, @object_id, command_id, payload, &block)
end