wiringpi-ruby 2.0.0 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/wiringpi/WiringPi/devLib/ds1302.c +240 -0
- data/ext/wiringpi/WiringPi/devLib/ds1302.h +44 -0
- data/ext/wiringpi/WiringPi/devLib/font.h +2577 -0
- data/ext/wiringpi/WiringPi/devLib/gertboard.c +164 -0
- data/ext/wiringpi/WiringPi/devLib/gertboard.h +45 -0
- data/ext/wiringpi/WiringPi/devLib/lcd.c +495 -0
- data/ext/wiringpi/WiringPi/devLib/lcd.h +52 -0
- data/ext/wiringpi/WiringPi/devLib/lcd128x64.c +673 -0
- data/ext/wiringpi/WiringPi/devLib/lcd128x64.h +39 -0
- data/ext/wiringpi/WiringPi/devLib/maxdetect.c +238 -0
- data/ext/wiringpi/WiringPi/devLib/maxdetect.h +40 -0
- data/ext/wiringpi/WiringPi/devLib/piFace.c +112 -0
- data/ext/wiringpi/WiringPi/devLib/piFace.h +32 -0
- data/ext/wiringpi/WiringPi/devLib/piFaceOld.c +177 -0
- data/ext/wiringpi/WiringPi/devLib/piGlow.c +118 -0
- data/ext/wiringpi/WiringPi/devLib/piGlow.h +45 -0
- data/ext/wiringpi/WiringPi/devLib/piNes.c +113 -0
- data/ext/wiringpi/WiringPi/devLib/piNes.h +45 -0
- data/ext/wiringpi/WiringPi/devLib/scrollPhat.c +430 -0
- data/ext/wiringpi/WiringPi/devLib/scrollPhat.h +39 -0
- data/ext/wiringpi/WiringPi/devLib/scrollPhatFont.h +544 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/7segments.c +221 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/buttons.c +83 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/gertboard.c +96 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/record.c +60 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/temperature.c +78 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/voltmeter.c +73 -0
- data/ext/wiringpi/WiringPi/examples/Gertboard/vumeter.c +152 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/blink.c +59 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/buttons.c +103 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/ladder.c +337 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/metro.c +111 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/motor.c +120 -0
- data/ext/wiringpi/WiringPi/examples/PiFace/reaction.c +194 -0
- data/ext/wiringpi/WiringPi/examples/PiGlow/piGlow0.c +51 -0
- data/ext/wiringpi/WiringPi/examples/PiGlow/piGlow1.c +258 -0
- data/ext/wiringpi/WiringPi/examples/PiGlow/piglow.c +176 -0
- data/ext/wiringpi/WiringPi/examples/blink-thread.c +61 -0
- data/ext/wiringpi/WiringPi/examples/blink.c +48 -0
- data/ext/wiringpi/WiringPi/examples/blink12.c +111 -0
- data/ext/wiringpi/WiringPi/examples/blink12drcs.c +125 -0
- data/ext/wiringpi/WiringPi/examples/blink6drcs.c +115 -0
- data/ext/wiringpi/WiringPi/examples/blink8-drcn.c +61 -0
- data/ext/wiringpi/WiringPi/examples/blink8.c +57 -0
- data/ext/wiringpi/WiringPi/examples/clock.c +201 -0
- data/ext/wiringpi/WiringPi/examples/delayTest.c +102 -0
- data/ext/wiringpi/WiringPi/examples/ds1302.c +238 -0
- data/ext/wiringpi/WiringPi/examples/header.h +23 -0
- data/ext/wiringpi/WiringPi/examples/isr-osc.c +118 -0
- data/ext/wiringpi/WiringPi/examples/isr.c +110 -0
- data/ext/wiringpi/WiringPi/examples/lcd-adafruit.c +347 -0
- data/ext/wiringpi/WiringPi/examples/lcd.c +286 -0
- data/ext/wiringpi/WiringPi/examples/lowPower.c +68 -0
- data/ext/wiringpi/WiringPi/examples/max31855.c +60 -0
- data/ext/wiringpi/WiringPi/examples/nes.c +67 -0
- data/ext/wiringpi/WiringPi/examples/okLed.c +82 -0
- data/ext/wiringpi/WiringPi/examples/pwm.c +58 -0
- data/ext/wiringpi/WiringPi/examples/q2w/binary.c +79 -0
- data/ext/wiringpi/WiringPi/examples/q2w/blink-io.c +61 -0
- data/ext/wiringpi/WiringPi/examples/q2w/blink.c +50 -0
- data/ext/wiringpi/WiringPi/examples/q2w/bright.c +59 -0
- data/ext/wiringpi/WiringPi/examples/q2w/button.c +63 -0
- data/ext/wiringpi/WiringPi/examples/q2w/volts.c +62 -0
- data/ext/wiringpi/WiringPi/examples/rht03.c +86 -0
- data/ext/wiringpi/WiringPi/examples/scrollPhat/scphat.c +230 -0
- data/ext/wiringpi/WiringPi/examples/scrollPhat/test.c +115 -0
- data/ext/wiringpi/WiringPi/examples/serialRead.c +48 -0
- data/ext/wiringpi/WiringPi/examples/serialTest.c +75 -0
- data/ext/wiringpi/WiringPi/examples/servo.c +57 -0
- data/ext/wiringpi/WiringPi/examples/softPwm.c +89 -0
- data/ext/wiringpi/WiringPi/examples/softTone.c +54 -0
- data/ext/wiringpi/WiringPi/examples/speed.c +95 -0
- data/ext/wiringpi/WiringPi/examples/spiSpeed.c +118 -0
- data/ext/wiringpi/WiringPi/examples/wfi.c +161 -0
- data/ext/wiringpi/WiringPi/gpio/gpio.c +1538 -0
- data/ext/wiringpi/WiringPi/gpio/readall.c +403 -0
- data/ext/wiringpi/WiringPi/version.h +3 -0
- data/ext/wiringpi/WiringPi/wiringPi/ads1115.c +293 -0
- data/ext/wiringpi/WiringPi/wiringPi/ads1115.h +55 -0
- data/ext/wiringpi/WiringPi/wiringPi/bmp180.c +237 -0
- data/ext/wiringpi/WiringPi/wiringPi/bmp180.h +34 -0
- data/ext/wiringpi/WiringPi/wiringPi/drcNet.c +405 -0
- data/ext/wiringpi/WiringPi/wiringPi/drcNet.h +42 -0
- data/ext/wiringpi/WiringPi/wiringPi/drcSerial.c +196 -0
- data/ext/wiringpi/WiringPi/wiringPi/drcSerial.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/ds18b20.c +146 -0
- data/ext/wiringpi/WiringPi/wiringPi/ds18b20.h +34 -0
- data/ext/wiringpi/WiringPi/wiringPi/htu21d.c +150 -0
- data/ext/wiringpi/WiringPi/wiringPi/htu21d.h +34 -0
- data/ext/wiringpi/WiringPi/wiringPi/max31855.c +99 -0
- data/ext/wiringpi/WiringPi/wiringPi/max31855.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/max5322.c +84 -0
- data/ext/wiringpi/WiringPi/wiringPi/max5322.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23008.c +149 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23008.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23016.c +164 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23016.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23016reg.h +48 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23017.c +195 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23017.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23s08.c +188 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23s08.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23s17.c +235 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23s17.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23x08.h +73 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp23x0817.h +87 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3002.c +76 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3002.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3004.c +76 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3004.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3422.c +125 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp3422.h +43 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp4802.c +76 -0
- data/ext/wiringpi/WiringPi/wiringPi/mcp4802.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/pcf8574.c +126 -0
- data/ext/wiringpi/WiringPi/wiringPi/pcf8574.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/pcf8591.c +90 -0
- data/ext/wiringpi/WiringPi/wiringPi/pcf8591.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/piHiPri.c +51 -0
- data/ext/wiringpi/WiringPi/wiringPi/piThread.c +63 -0
- data/ext/wiringpi/WiringPi/wiringPi/pseudoPins.c +95 -0
- data/ext/wiringpi/WiringPi/wiringPi/pseudoPins.h +26 -0
- data/ext/wiringpi/WiringPi/wiringPi/rht03.c +252 -0
- data/ext/wiringpi/WiringPi/wiringPi/rht03.h +25 -0
- data/ext/wiringpi/WiringPi/wiringPi/sn3218.c +75 -0
- data/ext/wiringpi/WiringPi/wiringPi/sn3218.h +33 -0
- data/ext/wiringpi/WiringPi/wiringPi/softPwm.c +186 -0
- data/ext/wiringpi/WiringPi/wiringPi/softPwm.h +35 -0
- data/ext/wiringpi/WiringPi/wiringPi/softServo.c +211 -0
- data/ext/wiringpi/WiringPi/wiringPi/softServo.h +35 -0
- data/ext/wiringpi/WiringPi/wiringPi/softTone.c +150 -0
- data/ext/wiringpi/WiringPi/wiringPi/softTone.h +39 -0
- data/ext/wiringpi/WiringPi/wiringPi/sr595.c +109 -0
- data/ext/wiringpi/WiringPi/wiringPi/sr595.h +34 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPi.c +2507 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPi.h +269 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPiI2C.c +233 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPiI2C.h +42 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPiSPI.c +144 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringPiSPI.h +36 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringSerial.c +225 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringSerial.h +38 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringShift.c +83 -0
- data/ext/wiringpi/WiringPi/wiringPi/wiringShift.h +41 -0
- data/ext/wiringpi/WiringPi/wiringPi/wpiExtensions.c +928 -0
- data/ext/wiringpi/WiringPi/wiringPi/wpiExtensions.h +26 -0
- data/ext/wiringpi/WiringPi/wiringPiD/daemonise.c +82 -0
- data/ext/wiringpi/WiringPi/wiringPiD/daemonise.h +9 -0
- data/ext/wiringpi/WiringPi/wiringPiD/drcNetCmd.h +43 -0
- data/ext/wiringpi/WiringPi/wiringPiD/network.c +330 -0
- data/ext/wiringpi/WiringPi/wiringPiD/network.h +31 -0
- data/ext/wiringpi/WiringPi/wiringPiD/runRemote.c +126 -0
- data/ext/wiringpi/WiringPi/wiringPiD/runRemote.h +29 -0
- data/ext/wiringpi/WiringPi/wiringPiD/wiringpid.c +382 -0
- data/ext/wiringpi/wiringpi_wrap.c +636 -219
- data/lib/wiringpi.rb +25 -12
- data/lib/wiringpi/gpio.rb +90 -83
- data/lib/wiringpi/i2c.rb +29 -22
- data/lib/wiringpi/modules/mcp23017.rb +15 -0
- data/lib/wiringpi/modules/mcp23s17.rb +16 -0
- data/lib/wiringpi/scrollphat.rb +14 -14
- data/lib/wiringpi/serial.rb +8 -18
- data/lib/wiringpi/spi.rb +14 -11
- data/lib/wiringpi/watch.rb +24 -0
- metadata +160 -4
- data/lib/wiringpi/event.rb +0 -21
- data/lib/wiringpi/mcp23x17.rb +0 -31
data/lib/wiringpi.rb
CHANGED
@@ -1,10 +1,23 @@
|
|
1
1
|
require 'wiringpi/wiringpi'
|
2
|
+
|
2
3
|
module WiringPi
|
3
4
|
extend self
|
4
5
|
|
6
|
+
# GPIO WiringPi PIN layout mode
|
7
|
+
GPIO_WPI = 0
|
8
|
+
GPIO_NORMAL = 1
|
9
|
+
GPIO_PHYSICAL = 2
|
10
|
+
GPIO_SYSTEM = 3
|
11
|
+
|
12
|
+
# GPIO signal
|
5
13
|
HIGH = 1
|
6
14
|
LOW = 0
|
7
15
|
|
16
|
+
# GPIO signal event
|
17
|
+
FALLING = :falling
|
18
|
+
RISING = :rising
|
19
|
+
|
20
|
+
# PIN mode
|
8
21
|
INPUT = 0
|
9
22
|
OUTPUT = 1
|
10
23
|
PWM_OUTPUT = 1
|
@@ -18,25 +31,25 @@ module WiringPi
|
|
18
31
|
|
19
32
|
class Modules
|
20
33
|
class ModuleBase
|
21
|
-
|
22
|
-
@name = 'Unknown'
|
23
|
-
@pin_base = 0
|
24
|
-
@pin_count = 0
|
25
|
-
@pin_end = 0
|
26
|
-
|
27
34
|
attr_reader :name, :pin_base, :pin_count, :pin_end
|
28
35
|
|
36
|
+
def initialize
|
37
|
+
@name = 'Unknown'
|
38
|
+
@pin_base = 0
|
39
|
+
@pin_count = 0
|
40
|
+
@pin_end = 0
|
41
|
+
end
|
42
|
+
|
29
43
|
def new
|
30
44
|
@pin_end = @pin_base + @pin_count
|
31
|
-
|
45
|
+
update_name
|
32
46
|
end
|
33
47
|
|
34
|
-
def
|
35
|
-
@name =
|
48
|
+
def update_name
|
49
|
+
@name = " at offset #{@pin_base}"
|
36
50
|
end
|
37
|
-
|
38
51
|
end
|
39
52
|
end
|
40
|
-
|
41
53
|
end
|
42
|
-
|
54
|
+
|
55
|
+
Dir[File.dirname(__FILE__) + '/wiringpi/**/*.rb'].each { |file| require file }
|
data/lib/wiringpi/gpio.rb
CHANGED
@@ -1,139 +1,146 @@
|
|
1
1
|
module WiringPi
|
2
2
|
class GPIO
|
3
|
-
|
4
|
-
@modules = Array.new
|
5
|
-
@pins = Array.new
|
6
|
-
|
7
3
|
attr_reader :modules, :pins
|
8
4
|
|
9
|
-
def initialize(&block)
|
10
|
-
|
11
|
-
@pins =
|
5
|
+
def initialize(pin_layout = GPIO_WPI, &block)
|
6
|
+
@pin_layout = pin_layout
|
7
|
+
@pins = []
|
8
|
+
@modules = []
|
9
|
+
setup_wiring_pi
|
12
10
|
instance_eval &block if block_given?
|
13
11
|
end
|
14
12
|
|
15
13
|
def read_byte(starting_pin)
|
16
|
-
|
17
|
-
8.times do |time|
|
18
|
-
bits << Wiringpi.digitalRead(starting_pin + time)
|
19
|
-
end
|
20
|
-
bits.join
|
14
|
+
8.times.map { |time| Wiringpi.digitalRead(starting_pin + time) }.join
|
21
15
|
end
|
22
16
|
|
23
17
|
def write_byte(starting_pin, byte)
|
24
|
-
|
18
|
+
bits = byte.to_s(2) unless byte.length == 8
|
25
19
|
offset = starting_pin
|
26
|
-
|
20
|
+
bits.each_char do |bit|
|
27
21
|
Wiringpi.digitalWrite(offset, bit)
|
28
22
|
offset += 1
|
29
23
|
end
|
30
24
|
end
|
31
25
|
|
32
26
|
def digital_read(pin)
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
end
|
37
|
-
else
|
38
|
-
Wiringpi.digitalRead(pin)
|
39
|
-
end
|
27
|
+
pins = [pin] unless pin.is_a?(Array)
|
28
|
+
res = pins.collect { |pin| Wiringpi.digitalRead(pin) }
|
29
|
+
res.count == 1 ? res.first : res
|
40
30
|
end
|
41
31
|
|
42
32
|
def digital_write(pin, value)
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
33
|
+
pins = [pin] unless pin.is_a?(Array)
|
34
|
+
pins.each { |pin| Wiringpi.digitalWrite(pin, value) }
|
35
|
+
end
|
36
|
+
|
37
|
+
def analog_read(pin)
|
38
|
+
pins = [pin] unless pin.is_a?(Array)
|
39
|
+
res = pins.collect { |pin| Wiringpi.analogRead(pin) }
|
40
|
+
res.count == 1 ? res.first : res
|
41
|
+
end
|
42
|
+
|
43
|
+
def analog_write(pin, value)
|
44
|
+
pins = [pin] unless pin.is_a?(Array)
|
45
|
+
pins.each { |pin| Wiringpi.analogWrite(pin, value) }
|
50
46
|
end
|
51
47
|
|
52
48
|
def pin_mode(pin, mode)
|
53
49
|
Wiringpi.pinMode(pin, mode)
|
54
50
|
end
|
55
51
|
|
56
|
-
def pull_up_dn_control(pin,mode)
|
52
|
+
def pull_up_dn_control(pin, mode)
|
57
53
|
Wiringpi.pullUpDnControl(pin, mode)
|
58
54
|
end
|
59
55
|
|
60
|
-
|
61
|
-
|
62
|
-
|
56
|
+
def delay(ms)
|
57
|
+
Wiringpi.delay(ms)
|
58
|
+
end
|
63
59
|
|
64
|
-
|
65
|
-
|
66
|
-
|
60
|
+
def delay_microseconds(ms)
|
61
|
+
Wiringpi.delayMicroseconds(ms)
|
62
|
+
end
|
67
63
|
|
68
|
-
|
69
|
-
|
70
|
-
|
64
|
+
def millis
|
65
|
+
Wiringpi.millis
|
66
|
+
end
|
71
67
|
|
72
|
-
|
73
|
-
|
74
|
-
|
68
|
+
def micros
|
69
|
+
Wiringpi.micros
|
70
|
+
end
|
75
71
|
|
76
|
-
|
77
|
-
|
78
|
-
|
72
|
+
# NOTE: deprecated call to Wiringpi.piBoardRev
|
73
|
+
def pi_board_rev
|
74
|
+
Wiringpi.piBoardRev
|
75
|
+
end
|
79
76
|
|
80
|
-
|
81
|
-
|
82
|
-
|
77
|
+
def wpi_pin_to_gpio(pin)
|
78
|
+
Wiringpi.wpiPinToGpio(pin)
|
79
|
+
end
|
83
80
|
|
84
|
-
|
85
|
-
|
86
|
-
|
81
|
+
def phys_pin_to_gpio(pin)
|
82
|
+
Wiringpi.physPinToGpio(pin)
|
83
|
+
end
|
87
84
|
|
88
|
-
|
89
|
-
|
90
|
-
|
85
|
+
def pwm_set_mode(mode)
|
86
|
+
Wiringpi.pwmSetMode(mode)
|
87
|
+
end
|
91
88
|
|
92
|
-
|
93
|
-
|
94
|
-
|
89
|
+
def pwm_set_range(range)
|
90
|
+
Wiringpi.pwmSetRange(range)
|
91
|
+
end
|
95
92
|
|
96
|
-
|
97
|
-
|
98
|
-
|
93
|
+
def pwm_set_clock(divisor)
|
94
|
+
Wiringpi.pwmSetClock(divisor)
|
95
|
+
end
|
99
96
|
|
100
|
-
|
101
|
-
|
102
|
-
|
97
|
+
def soft_pwm_create(pin, initial_value, pwm_range)
|
98
|
+
Wiringpi.softPwmCreate(pin, initial_value, pwm_range)
|
99
|
+
end
|
103
100
|
|
104
|
-
|
105
|
-
|
106
|
-
|
101
|
+
def soft_pwm_write(pin, value)
|
102
|
+
Wiringpi.softPwmWrite(pin, value)
|
103
|
+
end
|
107
104
|
|
108
|
-
|
109
|
-
|
110
|
-
|
105
|
+
def gpio_clock_set(pin, freq)
|
106
|
+
Wiringpi.gpioClockSet(pin, freq)
|
107
|
+
end
|
111
108
|
|
112
|
-
|
113
|
-
|
114
|
-
|
109
|
+
def wait_for_interrupt(pin, ms)
|
110
|
+
Wiringpi.waitForInterrupt(pin, ms)
|
111
|
+
end
|
115
112
|
|
116
|
-
|
117
|
-
|
118
|
-
|
113
|
+
def wiringpi_isr(pin, mode, fn)
|
114
|
+
Wiringpi.wiringPiISR(pin, mode, fn)
|
115
|
+
end
|
119
116
|
|
120
|
-
|
121
|
-
|
122
|
-
|
117
|
+
def shift_out(dpin, cpin, order, val )
|
118
|
+
Wiringpi.shiftOut(dpin,cpin,order,val)
|
119
|
+
end
|
123
120
|
|
124
|
-
|
125
|
-
|
126
|
-
|
121
|
+
def shift_in(dpin, cpin, order)
|
122
|
+
Wiringpi.shiftIn(dpin,cpin,order)
|
123
|
+
end
|
127
124
|
|
128
125
|
def add_module(module_instance)
|
129
|
-
@modules = Array.new if @modules.nil?
|
130
|
-
|
131
126
|
@modules << module_instance
|
132
|
-
puts
|
127
|
+
puts "Added module #{module_instance.name}"
|
133
128
|
|
134
129
|
module_instance.pin_count.times do |offset|
|
135
130
|
@pins[offset + module_instance.pin_base] = 'ENABLED'
|
136
131
|
end
|
137
132
|
end
|
133
|
+
|
134
|
+
private
|
135
|
+
|
136
|
+
def setup_wiring_pi
|
137
|
+
case @pin_layout
|
138
|
+
when GPIO_WPI; Wiringpi.wiringPiSetup
|
139
|
+
when GPIO_NORMAL; Wiringpi.wiringPiSetupGpio
|
140
|
+
when GPIO_PHYSICAL; Wiringpi.wiringPiSetupPhys
|
141
|
+
when GPIO_SYSTEM; Wiringpi.wiringPiSetupSys
|
142
|
+
else raise 'unknown pin layout to setup'
|
143
|
+
end
|
144
|
+
end
|
138
145
|
end
|
139
146
|
end
|
data/lib/wiringpi/i2c.rb
CHANGED
@@ -1,26 +1,33 @@
|
|
1
1
|
module WiringPi
|
2
2
|
class I2C
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
3
|
+
attr_reader :device_id
|
4
|
+
|
5
|
+
def initialize(device_address)
|
6
|
+
@device_id = Wiringpi.wiringPiI2CSetup(device_address)
|
7
|
+
end
|
8
|
+
|
9
|
+
def read
|
10
|
+
Wiringpi.wiringPiI2CRead(@device_id)
|
11
|
+
end
|
12
|
+
|
13
|
+
def write(data)
|
14
|
+
Wiringpi.wiringPiI2CWrite(@device_id, data)
|
15
|
+
end
|
16
|
+
|
17
|
+
def read_reg_8(reg)
|
18
|
+
Wiringpi.wiringPiI2CReadReg8(@device_id, reg)
|
19
|
+
end
|
20
|
+
|
21
|
+
def write_reg_8(reg, data)
|
22
|
+
Wiringpi.wiringPiI2CWriteReg8(@device_id, reg, data)
|
23
|
+
end
|
24
|
+
|
25
|
+
def read_reg_16(reg)
|
26
|
+
Wiringpi.wiringPiI2CReadReg16(@device_id, reg)
|
27
|
+
end
|
28
|
+
|
29
|
+
def write_reg_16(reg, data)
|
30
|
+
Wiringpi.wiringPiI2CWriteReg16(@device_id, reg, data)
|
31
|
+
end
|
25
32
|
end
|
26
33
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module WiringPi
|
2
|
+
class Modules
|
3
|
+
class Mcp23017 < ModuleBase
|
4
|
+
attr_reader :i2c_address
|
5
|
+
|
6
|
+
def initialize(pin_base, i2c_address = 0x0)
|
7
|
+
super
|
8
|
+
@pin_base = pin_base
|
9
|
+
@pin_count = 16
|
10
|
+
@i2c_address = i2c_address
|
11
|
+
Wiringpi.mcp23017Setup(pin_base, i2c_address)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module WiringPi
|
2
|
+
class Modules
|
3
|
+
class Mcp23s17 < ModuleBase
|
4
|
+
attr_reader :spi_port, :device_id
|
5
|
+
|
6
|
+
def initialize(pin_base, spi_port, device_id)
|
7
|
+
super
|
8
|
+
@pin_base = pin_base
|
9
|
+
@pin_count = 16
|
10
|
+
@spi_port = spi_port || 0
|
11
|
+
@device_id = device_id || 0
|
12
|
+
Wiringpi.mcp23s17Setup(pin_base, spi_port, device_id)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/wiringpi/scrollphat.rb
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
module WiringPi
|
2
2
|
class ScrollPhat
|
3
|
-
def initialize
|
4
|
-
Wiringpi.scrollPhatSetup
|
3
|
+
def initialize
|
4
|
+
Wiringpi.scrollPhatSetup
|
5
5
|
end
|
6
6
|
|
7
7
|
def printf(text)
|
8
8
|
Wiringpi.scrollPhatPrintf(text)
|
9
9
|
end
|
10
10
|
|
11
|
-
def point(x, y,
|
12
|
-
Wiringpi.scrollPhatPoint(x, y,
|
11
|
+
def point(x, y, color)
|
12
|
+
Wiringpi.scrollPhatPoint(x, y, color)
|
13
13
|
end
|
14
14
|
|
15
|
-
def line(x0, y0, x1, y1,
|
16
|
-
Wiringpi.scrollPhatLine(x0, y0, x1, y1,
|
15
|
+
def line(x0, y0, x1, y1, color)
|
16
|
+
Wiringpi.scrollPhatLine(x0, y0, x1, y1, color)
|
17
17
|
end
|
18
18
|
|
19
|
-
def lineTo(x, y,
|
20
|
-
Wiringpi.scrollPhatLineTo(x, y,
|
19
|
+
def lineTo(x, y, color)
|
20
|
+
Wiringpi.scrollPhatLineTo(x, y, color)
|
21
21
|
end
|
22
22
|
|
23
|
-
def rectangle(x1, y1, x2, y2,
|
24
|
-
Wiringpi.scrollPhatRectangle(x1, y1, x2, y2,
|
23
|
+
def rectangle(x1, y1, x2, y2, color)
|
24
|
+
Wiringpi.scrollPhatRectangle(x1, y1, x2, y2, color)
|
25
25
|
end
|
26
26
|
|
27
|
-
def update
|
28
|
-
Wiringpi.scrollPhatUpdate
|
27
|
+
def update
|
28
|
+
Wiringpi.scrollPhatUpdate
|
29
29
|
end
|
30
30
|
|
31
|
-
def clear
|
32
|
-
Wiringpi.scrollPhatClear
|
31
|
+
def clear
|
32
|
+
Wiringpi.scrollPhatClear
|
33
33
|
end
|
34
34
|
|
35
35
|
def putChar(char)
|
data/lib/wiringpi/serial.rb
CHANGED
@@ -1,49 +1,39 @@
|
|
1
1
|
module WiringPi
|
2
2
|
class Serial
|
3
|
-
|
3
|
+
attr_reader :id, :device, :baud
|
4
4
|
@id = 0
|
5
5
|
@device = '/dev/ttyAMA0'
|
6
6
|
@baud = 9600
|
7
7
|
|
8
|
-
def initialize(device='/dev/ttyAMA0', baud=9600)
|
9
|
-
|
8
|
+
def initialize(device = '/dev/ttyAMA0', baud = 9600)
|
9
|
+
@id = Wiringpi.serialOpen(device, baud)
|
10
10
|
@device = device
|
11
11
|
@baud = baud
|
12
|
-
|
13
|
-
@id = Wiringpi.serialOpen(@device, @baud)
|
14
|
-
|
15
12
|
end
|
16
13
|
|
17
14
|
def serial_close
|
18
|
-
|
19
15
|
Wiringpi.serialClose(@id)
|
20
|
-
@id =
|
21
|
-
|
16
|
+
@id = nil
|
22
17
|
end
|
23
18
|
|
24
19
|
def serial_put_char(char)
|
25
|
-
|
20
|
+
raise 'serial connection is closed' if @id.nil?
|
26
21
|
Wiringpi.serialPutchar(@id, char)
|
27
|
-
|
28
22
|
end
|
29
23
|
|
30
24
|
def serial_puts(string)
|
31
|
-
|
25
|
+
raise 'serial connection is closed' if @id.nil?
|
32
26
|
Wiringpi.serialPuts(@id, string)
|
33
|
-
|
34
27
|
end
|
35
28
|
|
36
29
|
def serial_data_avail
|
37
|
-
|
30
|
+
raise 'serial connection is closed' if @id.nil?
|
38
31
|
Wiringpi.serialDataAvail(@id)
|
39
|
-
|
40
32
|
end
|
41
33
|
|
42
34
|
def serial_get_char
|
43
|
-
|
35
|
+
raise 'serial connection is closed' if @id.nil?
|
44
36
|
Wiringpi.serialGetchar(@id)
|
45
|
-
|
46
37
|
end
|
47
|
-
|
48
38
|
end
|
49
39
|
end
|