Class: SDN::Message::SetMotorIP

Inherits:
SDN::Message show all
Defined in:
lib/sdn/messages/set.rb

Constant Summary collapse

MSG =
0x15
PARAMS_LENGTH =
4
TYPE =

for distribute, value is how many IPs to distribute over

{ delete: 0x00, current_position: 0x01, position_pulses: 0x02, position_percent: 0x03, distribute: 0x04 }.freeze

Instance Attribute Summary collapse

Attributes inherited from SDN::Message

#ack_requested, #dest, #reserved, #src

Instance Method Summary collapse

Methods inherited from SDN::Message

#class_inspect, #inspect, parse, readpartial, #serialize

Methods included from Helpers

#checksum, #from_number, #from_string, #is_group_address?, #parse_address, #print_address, #to_number, #to_string, #transform_param

Constructor Details

#initialize(dest = nil, type = :delete, ip = nil, value = nil, **kwargs) ⇒ SetMotorIP

Returns a new instance of SetMotorIP.



108
109
110
111
112
113
114
# File 'lib/sdn/messages/set.rb', line 108

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

Instance Attribute Details

#ipObject

Returns the value of attribute ip.



106
107
108
# File 'lib/sdn/messages/set.rb', line 106

def ip
  @ip
end

#typeObject

Returns the value of attribute type.



106
107
108
# File 'lib/sdn/messages/set.rb', line 106

def type
  @type
end

#valueObject

Returns the value of attribute value.



106
107
108
# File 'lib/sdn/messages/set.rb', line 106

def value
  @value
end

Instance Method Details

#paramsObject



139
140
141
# File 'lib/sdn/messages/set.rb', line 139

def params
  transform_param(TYPE[type]) + transform_param(ip || 0) + from_number(value || 0, 2)
end

#parse(params) ⇒ Object



116
117
118
119
120
121
122
123
# File 'lib/sdn/messages/set.rb', line 116

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