class SDN::Message::SetMotorIP

Constants

MSG
PARAMS_LENGTH
TYPE

for distribute, value is how many IPs to distribute over

Attributes

ip[R]
type[R]
value[R]

Public Class Methods

new(dest = nil, type = :delete, ip = nil, value = nil, **kwargs) click to toggle source
Calls superclass method SDN::Message::new
# File lib/sdn/message/set.rb, line 104
def initialize(dest = nil, type = :delete, ip = nil, value = nil, **kwargs)
  kwargs[:dest] ||= dest
  super(**kwargs)
  self.type = type
  self.ip = ip
  self.value = value
end

Public Instance Methods

ip=(value) click to toggle source
# File lib/sdn/message/set.rb, line 126
def ip=(value)
  raise ArgumentError, "ip must be in range 1..16 or nil" unless ip.nil? || (1..16).include?(ip)
  @ip = value
end
params() click to toggle source
# File lib/sdn/message/set.rb, line 135
def params
  transform_param(TYPE[type]) + transform_param(ip || 0) + from_number(value || 0, 2)
end
parse(params) click to toggle source
Calls superclass method SDN::Message::parse
# File lib/sdn/message/set.rb, line 112
def parse(params)
  super
  self.type = TYPE.invert[to_number(params[0])]
  ip = to_number(params[1])
  ip = nil if ip == 0
  self.ip = ip
  self.value = to_number(params[2..3])
end
type=(value) click to toggle source
# File lib/sdn/message/set.rb, line 121
def type=(value)
  raise ArgumentError, "type must be one of :delete, :current_position, :position_pulses, :position_percent, :distribute" unless TYPE.keys.include?(value)
  @type = value
end
value=(value) click to toggle source
# File lib/sdn/message/set.rb, line 131
def value=(value)
  @value = value &. & 0xffff
end