Class: BirdbrainMicrobitInput

Inherits:
BirdbrainRequest show all
Defined in:
lib/birdbrain/birdbrain_microbit_input.rb

Overview


Copyright © 2021 Base2 Incorporated–All Rights Reserved.


Constant Summary collapse

MICROBIT_ORIENTATIONS =
['Screen%20Up', 'Screen%20Down', 'Tilt%20Left', 'Tilt%20Right', 'Logo%20Up', 'Logo%20Down']
MICROBIT_ORIENTATION_RESULTS =
['Screen up', 'Screen down', 'Tilt left', 'Tilt right', 'Logo up', 'Logo down', 'In between']
MICROBIT_ORIENTATION_IN_BETWEEN =
'In between'

Constants inherited from BirdbrainRequest

BirdbrainRequest::BIRDBRAIN_TEST

Class Method Summary collapse

Methods inherited from BirdbrainRequest

bounds, calculate_angle, calculate_intensity, calculate_left_or_right, calculate_speed, connected?, disconnect, not_connected?, request_status, response, response_body, uri, xyz_response

Class Method Details

.microbit?(device) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 9

def self.microbit?(device)
  request_status(response_body('hummingbird', 'in', 'isHummingbird', 'static', device))
end

.microbit_accelerometer(device) ⇒ Object



13
14
15
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 13

def self.microbit_accelerometer(device)
  xyz_response(device, 'Accelerometer')
end

.microbit_button?(device, button) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 25

def self.microbit_button?(device, button)
  request_status(response_body('hummingbird', 'in', 'button', button, device))
end

.microbit_compass(device) ⇒ Object



17
18
19
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 17

def self.microbit_compass(device)
  (response = response_body('hummingbird', 'in', 'Compass', device)).nil? ? response : response.to_i
end

.microbit_magnetometer(device) ⇒ Object



21
22
23
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 21

def self.microbit_magnetometer(device)
  xyz_response(device, 'Magnetometer')
end

.microbit_orientation(device) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 33

def self.microbit_orientation(device)
  MICROBIT_ORIENTATIONS.each_with_index do |orientation, index|
    return nil if (response = response_body('hummingbird', 'in', 'orientation', orientation, device)).nil?

    return MICROBIT_ORIENTATION_RESULTS[index] if request_status(response)
  end

  MICROBIT_ORIENTATION_IN_BETWEEN
end

.microbit_orientation_logo_down?(device) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 63

def self.microbit_orientation_logo_down?(device)
  orientation_check(device, 5)
end

.microbit_orientation_logo_up?(device) ⇒ Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 59

def self.microbit_orientation_logo_up?(device)
  orientation_check(device, 4)
end

.microbit_orientation_screen_down?(device) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 47

def self.microbit_orientation_screen_down?(device)
  orientation_check(device, 1)
end

.microbit_orientation_screen_up?(device) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 43

def self.microbit_orientation_screen_up?(device)
  orientation_check(device, 0)
end

.microbit_orientation_tilt_left?(device) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 51

def self.microbit_orientation_tilt_left?(device)
  orientation_check(device, 2)
end

.microbit_orientation_tilt_right?(device) ⇒ Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 55

def self.microbit_orientation_tilt_right?(device)
  orientation_check(device, 3)
end

.microbit_shaking?(device) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/birdbrain/birdbrain_microbit_input.rb', line 29

def self.microbit_shaking?(device)
  request_status(response_body('hummingbird', 'in', 'orientation', 'Shake', device))
end