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