Class: PiPiper::I2C
- Inherits:
-
Object
- Object
- PiPiper::I2C
- Defined in:
- lib/pi_piper/i2c.rb
Overview
I2C support
Class Method Summary collapse
Instance Method Summary collapse
Constructor Details
Class Method Details
.begin(&block) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/pi_piper/i2c.rb', line 16 def self.begin(&block) instance = I2C.new begin if block.arity > 0 block.call instance else instance.instance_exec &block end ensure instance.end end end |
.clock=(clock) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/pi_piper/i2c.rb', line 29 def self.clock=(clock) valid_clocks = PiPiper.driver.i2c_allowed_clocks raise ArgumentError, "Invalid clock rate. Valid clocks are 100 kHz, 399.3610 kHz, 1.666 MHz and 1.689 MHz" unless valid_clocks.include? clock PiPiper.driver.i2c_set_clock clock end |
Instance Method Details
#read(bytes) ⇒ Object
45 46 47 |
# File 'lib/pi_piper/i2c.rb', line 45 def read(bytes) PiPiper.driver.i2c_read_bytes(bytes) end |
#write(params) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/pi_piper/i2c.rb', line 36 def write(params) data = params[:data] address = params[:to] raise ArgumentError, ":data must be enumerable" unless data.class.include? Enumerable PiPiper.driver.i2c_set_address address PiPiper.driver.i2c_transfer_bytes data end |