Class: LegoEv3::ColorSensor
- Inherits:
-
LegoSensor
- Object
- LegoSensor
- LegoEv3::ColorSensor
- Defined in:
- lib/sensors/color.rb
Instance Attribute Summary
Attributes inherited from LegoSensor
Instance Method Summary collapse
- #info ⇒ Object
-
#initialize(connection, id, port) ⇒ ColorSensor
constructor
A new instance of ColorSensor.
- #mode ⇒ Object
- #mode=(new_value) ⇒ Object
- #poll ⇒ Object
Constructor Details
#initialize(connection, id, port) ⇒ ColorSensor
Returns a new instance of ColorSensor.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/sensors/color.rb', line 3 def initialize(connection, id, port) super(connection, id, port, 'lego-ev3-color') @supported_modes = { reflect: 'COL-REFLECT', ambient: 'COL-AMBIENT', color: 'COL-COLOR', reflect_raw: 'REF-RAW', rgb: 'RGB-RAW' } @modes_value_parts = { reflect: 1, ambient: 1, color: 1, reflect_raw: 2, rgb: 3 } @value_to_color = [:none, :black, :blue, :green, :yellow, :red, :white, :brown] self.mode = :reflect end |
Instance Method Details
#info ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/sensors/color.rb', line 48 def info super.merge({ sub_type: :color, mode: @mode, value: @value }) end |
#mode ⇒ Object
27 28 29 |
# File 'lib/sensors/color.rb', line 27 def mode @mode = parse_mode(LegoEv3::Commands::LegoSensor.get_mode!(@connection, @id)) end |
#mode=(new_value) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/sensors/color.rb', line 31 def mode=(new_value) to_set = @supported_modes[new_value.to_sym] throw new InvalidModeException(:sensor, :color, new_value, @supported_modes.keys) unless to_set LegoEv3::Commands::LegoSensor.set_mode(@connection, @id, to_set) LegoEv3::Commands::LegoSensor.get_mode(@connection, @id) do |m| @mode = parse_mode(m) end @connection.flush @mode end |
#poll ⇒ Object
44 45 46 |
# File 'lib/sensors/color.rb', line 44 def poll @value = parse_value(poll_value(@modes_value_parts[@mode])) end |