class SDN::Message::ILT2::SetMotorPosition
Constants
- MSG
- PARAMS_LENGTH
- TARGET_TYPE
Attributes
target[R]
target_type[R]
Public Class Methods
new(dest = nil, target_type = :up_limit, target = 0, **kwargs)
click to toggle source
Calls superclass method
SDN::Message::new
# File lib/sdn/message/ilt2/set.rb, line 118 def initialize(dest = nil, target_type = :up_limit, target = 0, **kwargs) kwargs[:dest] ||= dest super(**kwargs) self.target_type = target_type self.target = target end
Public Instance Methods
params()
click to toggle source
# File lib/sdn/message/ilt2/set.rb, line 151 def params param = target param = (param * 255 / 100).to_i if target_type == :position_percent param -= 1 if target_type == :ip transform_param(TARGET_TYPE[target_type]) + from_number(param, 2) end
parse(params)
click to toggle source
Calls superclass method
SDN::Message::parse
# File lib/sdn/message/ilt2/set.rb, line 125 def parse(params) super self.target_type = TARGET_TYPE.invert[to_number(params[0])] target = to_number(params[1..2]) if target_type == :position_percent target = target.to_f / 255 * 100 end if target_type == :ip target += 1 end self.target = target end
target=(value)
click to toggle source
# File lib/sdn/message/ilt2/set.rb, line 143 def target=(value) if target_type == :position_percent && value @target = [[0, value].max, 100].min else @target = value&. & 0xffff end end
target_type=(value)
click to toggle source
# File lib/sdn/message/ilt2/set.rb, line 138 def target_type=(value) raise ArgumentError, "target_type must be one of :up_limit, :down_limit, :stop, :ip, :next_ip_up, :next_ip_down, :jog_up, :jog_down, or :position_percent" unless TARGET_TYPE.keys.include?(value) @target_type = value end