class SDN::Message::MoveTo

Move to absolute position

Constants

MSG
PARAMS_LENGTH
SPEED
TARGET_TYPE

Attributes

speed[R]
target[R]
target_type[R]

Public Class Methods

new(dest= nil, target_type = :down_limit, target = nil, speed = :up, **kwargs) click to toggle source
Calls superclass method SDN::Message::new
# File lib/sdn/message/control.rb, line 141
def initialize(dest= nil, target_type = :down_limit, target = nil, speed = :up, **kwargs)
  kwargs[:dest] ||= dest
  super(**kwargs)
  self.target_type = target_type
  self.target = target
  self.speed = speed
end

Public Instance Methods

params() click to toggle source
# File lib/sdn/message/control.rb, line 171
def params
  transform_param(TARGET_TYPE[target_type]) + from_number(target || 0xffff, 2) + transform_param(SPEED[speed])
end
parse(params) click to toggle source
Calls superclass method SDN::Message::parse
# File lib/sdn/message/control.rb, line 149
def parse(params)
  super
  self.target_type = TARGET_TYPE.invert[to_number(params[0])]
  self.target = to_number(params[1..2], nillable: true)
  self.speed = SPEED.invert[to_number(params[3])]
end
speed=(value) click to toggle source
# File lib/sdn/message/control.rb, line 166
def speed=(value)
  raise ArgumentError, "speed must be one of :up, :down, or :slow" unless SPEED.keys.include?(value)
  @speed = value
end
target=(value) click to toggle source
# File lib/sdn/message/control.rb, line 161
def target=(value)
  value &= 0xffff if value
  @target = value
end
target_type=(value) click to toggle source
# File lib/sdn/message/control.rb, line 156
def target_type=(value)
  raise ArgumentError, "target_type must be one of :down_limit, :up_limit, :ip, :position_pulses, or :position_percent" unless TARGET_TYPE.keys.include?(value)
  @target_type = value
end