Class: SDN::Message::PostMotorIP

Inherits:
Message
  • Object
show all
Defined in:
lib/sdn/message/post.rb

Overview

Response carrying a stored intermediate position value.

Constant Summary collapse

MSG =

Protocol message number

0x35
PARAMS_LENGTH =

Number of protocol parameter bytes expected

4

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ip = nil, position_pulses = nil, position_percent = nil) ⇒ PostMotorIP

Creates a motor IP response message.

Parameters:

  • ip (Integer, nil) (defaults to: nil)

    intermediate position slot

  • position_pulses (Integer, nil) (defaults to: nil)

    stored pulse value

  • position_percent (Integer, nil) (defaults to: nil)

    stored percentage value



95
96
97
98
99
100
# File 'lib/sdn/message/post.rb', line 95

def initialize(ip = nil, position_pulses = nil, position_percent = nil, **)
  super(**)
  self.ip = ip
  self.position_pulses = position_pulses
  self.position_percent = position_percent
end

Instance Attribute Details

#ipInteger?

Reported intermediate position slot.

Returns:

  • (Integer, nil)


82
83
84
# File 'lib/sdn/message/post.rb', line 82

def ip
  @ip
end

#position_percentInteger?

Returns:

  • (Integer, nil)


88
89
90
# File 'lib/sdn/message/post.rb', line 88

def position_percent
  @position_percent
end

#position_pulsesInteger?

Returns:

  • (Integer, nil)


85
86
87
# File 'lib/sdn/message/post.rb', line 85

def position_pulses
  @position_pulses
end

Instance Method Details

#params<Integer>

Returns the protocol-specific payload bytes for this message.

Returns:

  • (<Integer>)


111
112
113
# File 'lib/sdn/message/post.rb', line 111

def params
  from_number(ip) + from_number(position_pulses, 2) + from_number(position_percent)
end

#parse(params) ⇒ void

This method returns an undefined value.

Parses protocol-specific parameter bytes into this message instance.

Parameters:

  • params (<Integer>)

    raw parameter bytes

Raises:



103
104
105
106
107
108
# File 'lib/sdn/message/post.rb', line 103

def parse(params)
  super
  self.ip = to_number(params[0])
  self.position_pulses = to_number(params[1..2], nillable: true)
  self.position_percent = to_number(params[3], nillable: true)
end