class SDN::Message::SetMotorLimits

Constants

MSG
PARAMS_LENGTH
TARGET
TYPE

Attributes

target[R]
type[R]
value[R]

Public Class Methods

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

Public Instance Methods

params() click to toggle source
# File lib/sdn/message/set.rb, line 177
def params
  param = value || 0
  param /= 10 if target == :jog_ms
  transform_param(TYPE[type]) + transform_param(TARGET[target]) + from_number(param, 2)
end
parse(params) click to toggle source
Calls superclass method SDN::Message::parse
# File lib/sdn/message/set.rb, line 156
def parse(params)
  super
  self.type = TYPE.invert[to_number(params[0])]
  self.target = TARGET.invert[to_number(params[1])]
  self.value = to_number(params[2..3])
end
target=(value) click to toggle source
# File lib/sdn/message/set.rb, line 168
def target=(value)
  raise ArgumentError, "target must be one of :up, :down" unless TARGET.keys.include?(value)
  @target = value
end
type=(value) click to toggle source
# File lib/sdn/message/set.rb, line 163
def type=(value)
  raise ArgumentError, "type must be one of :delete, :current_position, :specified_position, :jog_ms, :jog_pulses" unless TYPE.keys.include?(value)
  @type = value
end
value=(value) click to toggle source
# File lib/sdn/message/set.rb, line 173
def value=(value)
  @value = value&. & 0xffff
end