class Syskit::Robot::SlaveDeviceInstance

A SlaveDeviceInstance represents slave devices, i.e. data services that are provided by other devices. For instance, a camera image from a stereocamera device.

Attributes

master_device[R]

The MasterDeviceInstance that we depend on

service[R]

The actual service on #master_device's task model

Public Class Methods

new(master_device, service) click to toggle source
# File lib/syskit/robot/slave_device_instance.rb, line 43
def initialize(master_device, service)
    @master_device = master_device
    @service = service
end

Public Instance Methods

==(other) click to toggle source
# File lib/syskit/robot/slave_device_instance.rb, line 84
def ==(other)
    other.kind_of?(SlaveDeviceInstance) &&
        other.master_device == master_device &&
        other.name == name
end
burst(*args) click to toggle source
Calls superclass method
# File lib/syskit/robot/slave_device_instance.rb, line 64
def burst(*args)
    if args.empty?
        super || master_device.burst
    else
        super
    end
end
device_model() click to toggle source
# File lib/syskit/robot/slave_device_instance.rb, line 24
def device_model
    service.model
end
each_fullfilled_model(&block) click to toggle source
# File lib/syskit/robot/slave_device_instance.rb, line 12
def each_fullfilled_model(&block)
    service.model.each_fullfilled_model(&block)
end
full_name() click to toggle source
# File lib/syskit/robot/slave_device_instance.rb, line 34
def full_name
    "#{master_device.name}.#{name}"
end
name() click to toggle source

The slave name. It is the same name than the corresponding service on the task model

# File lib/syskit/robot/slave_device_instance.rb, line 30
def name
    service.name
end
period(*args) click to toggle source
Calls superclass method
# File lib/syskit/robot/slave_device_instance.rb, line 50
def period(*args)
    if args.empty?
        super || master_device.period
    else
        super
    end
end
robot() click to toggle source
# File lib/syskit/robot/slave_device_instance.rb, line 16
def robot
    master_device.robot
end
sample_size(*args) click to toggle source
Calls superclass method
# File lib/syskit/robot/slave_device_instance.rb, line 57
def sample_size(*args)
    if args.empty?
        super || master_device.sample_size
    else
        super
    end
end
short_name() click to toggle source

Defined to be consistent with task and data service models

# File lib/syskit/robot/slave_device_instance.rb, line 39
def short_name
    "#{name}[#{service.model.short_name}]"
end
task() click to toggle source
# File lib/syskit/robot/slave_device_instance.rb, line 48
def task; master_device.task end
task_model() click to toggle source
# File lib/syskit/robot/slave_device_instance.rb, line 20
def task_model
    master_device.task_model
end
to_instance_requirements() click to toggle source

Returns the InstanceRequirements object that can be used to represent this device

# File lib/syskit/robot/slave_device_instance.rb, line 74
def to_instance_requirements
    req = master_device.to_instance_requirements
    req.select_service(service)
    req
end
to_s() click to toggle source
# File lib/syskit/robot/slave_device_instance.rb, line 80
def to_s
    "device(#{device_model.short_name}, :as => #{full_name}).#{name}_srv"
end