Class: SDN::Message::SetMotorRollingSpeed

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

Overview

Command that updates a motor's rolling speeds.

Constant Summary collapse

MSG =

Protocol message number

0x13
PARAMS_LENGTH =

Number of protocol parameter bytes expected

3

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dest = nil, up_speed: nil, down_speed: nil, slow_speed: nil, **kwargs) ⇒ SetMotorRollingSpeed

Creates a rolling-speed write command.

Parameters:

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

    destination address

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

    upward speed

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

    downward speed

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

    slow speed

  • kwargs (Hash)

    additional message options



346
347
348
349
350
351
352
# File 'lib/sdn/message/set.rb', line 346

def initialize(dest = nil, up_speed: nil, down_speed: nil, slow_speed: nil, **kwargs)
  kwargs[:dest] ||= dest
  super(**kwargs)
  self.up_speed = up_speed
  self.down_speed = down_speed
  self.slow_speed = slow_speed
end

Instance Attribute Details

#down_speedInteger?

Returns:

  • (Integer, nil)


332
333
334
# File 'lib/sdn/message/set.rb', line 332

def down_speed
  @down_speed
end

#slow_speedInteger?

Returns:

  • (Integer, nil)


337
338
339
# File 'lib/sdn/message/set.rb', line 337

def slow_speed
  @slow_speed
end

#up_speedInteger?

Returns:

  • (Integer, nil)


327
328
329
# File 'lib/sdn/message/set.rb', line 327

def up_speed
  @up_speed
end

Instance Method Details

#params<Integer>

Returns the protocol-specific payload bytes for this message.

Returns:

  • (<Integer>)


363
364
365
# File 'lib/sdn/message/set.rb', line 363

def params
  transform_param(up_speed || 0xff) + transform_param(down_speed || 0xff) + transform_param(slow_speed || 0xff)
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:



355
356
357
358
359
360
# File 'lib/sdn/message/set.rb', line 355

def parse(params)
  super
  self.up_speed = to_number(params[0])
  self.down_speed = to_number(params[1])
  self.slow_speed = to_number(params[2])
end