class BirdbrainDevice
Constants
- DEFAULT_DEVICE
- LEFT
- RIGHT
- VALID_DEVICES
Attributes
connected[RW]
device[RW]
state[RW]
Public Class Methods
connect(device = DEFAULT_DEVICE, raise_exception_if_no_connection = false)
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 20 def self.connect(device = DEFAULT_DEVICE, raise_exception_if_no_connection = false) device_object = new(device) raise(BirdbrainException, 'Missing device name') if device.nil? raise(BirdbrainException, "Invalid device name: #{device}") unless VALID_DEVICES.include?(device) device_object.connect raise(BirdbrainException, 'No connection') if raise_exception_if_no_connection && !device_object.connected? device_object end
find_device()
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 57 def self.find_device ('A'..'C').each do |device| connected_device = connect(device) return connected_device if connected_device.valid_device_type? rescue BirdbrainException next end new(nil) end
new(device = DEFAULT_DEVICE)
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 14 def initialize(device = DEFAULT_DEVICE) self.state = BirdbrainState.new self.device = remap_device(device) self.connected = nil end
Public Instance Methods
connect()
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 37 def connect self.connected = BirdbrainRequest.connected?(device) self.connected = nil unless valid_device_type? connected end
connected?()
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 43 def connected? !!connected end
connected_and_valid?(validate, valid_range)
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 87 def connected_and_valid?(validate, valid_range) valid?(validate, valid_range) && connected? end
disconnect()
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 47 def disconnect BirdbrainRequest.disconnect(device) if connected? state.microbit_display_map_clear unless state.nil? self.connected = nil self.device = nil self.state = nil end
finch?()
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 77 def finch? BirdbrainFinchInput.finch?(device) if connected? end
hummingbird?()
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 73 def hummingbird? BirdbrainHummingbirdInput.hummingbird?(device) if connected? end
microbit?()
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 69 def microbit? BirdbrainMicrobitInput.microbit?(device) if connected? end
remap_device(device = DEFAULT_DEVICE)
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 33 def remap_device(device = DEFAULT_DEVICE) device end
valid?(validate, valid_range)
click to toggle source
# File lib/birdbrain/birdbrain_device.rb, line 81 def valid?(validate, valid_range) return false if validate.nil? valid_range.include?(validate.to_s) end