pigpio 0.1.11 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
data/lib/pigpio/gpio.rb CHANGED
@@ -1,30 +1,37 @@
1
- class Pigpio
2
- class GPIO
3
- attr_reader :pi,:gpio
4
- def initialize(pi,gpio)
5
- @pi=pi #0-15
6
- @gpio=gpio #0-53
7
- end
8
- def mode=(mode)
9
- ret=IF.set_mode(@pi,@gpio,mode)
10
- end
11
- def mode
12
- ret=IF.get_mode(@pi,@gpio)
13
- end
14
- def pud=(pud)
15
- ret=IF.set_pull_up_down(@pi,@gpio,pud)
16
- end
17
- def read
18
- ret=IF.gpio_read(@pi,@gpio)
19
- end
20
- def write(level)
21
- ret=IF.gpio_write(@pi,@gpio,level)
22
- end
23
- def hardware_clock(clkfreq)
24
- ret=IF.hardware_clock(@pi,@gpio,clkfreq)
25
- end
26
- def hardware_PWM(vPWMfreq,vPWMduty)
27
- ret=IF.hardware_PWM(@pi,@gpio,vPWMfreq,vPWMduty)
28
- end
29
- end
30
- end
1
+ class Pigpio
2
+ class GPIO
3
+ attr_reader :pi, :gpio
4
+ def initialize(pi, gpio)
5
+ @pi = pi # 0-15
6
+ @gpio = gpio # 0-53
7
+ end
8
+
9
+ def mode=(mode)
10
+ ret = IF.set_mode(@pi, @gpio, mode)
11
+ end
12
+
13
+ def mode
14
+ ret = IF.get_mode(@pi, @gpio)
15
+ end
16
+
17
+ def pud=(pud)
18
+ ret = IF.set_pull_up_down(@pi, @gpio, pud)
19
+ end
20
+
21
+ def read
22
+ ret = IF.gpio_read(@pi, @gpio)
23
+ end
24
+
25
+ def write(level)
26
+ ret = IF.gpio_write(@pi, @gpio, level)
27
+ end
28
+
29
+ def hardware_clock(clkfreq)
30
+ ret = IF.hardware_clock(@pi, @gpio, clkfreq)
31
+ end
32
+
33
+ def hardware_PWM(vPWMfreq, vPWMduty)
34
+ ret = IF.hardware_PWM(@pi, @gpio, vPWMfreq, vPWMduty)
35
+ end
36
+ end
37
+ end
data/lib/pigpio/i2c.rb CHANGED
@@ -1,60 +1,77 @@
1
- class Pigpio
2
- class I2C
3
- attr_reader :pi,:handle
4
- def initialize(pi,i2c_bus,i2c_addr)
5
- @pi=pi
6
- @handle=IF.i2c_open(@pi,i2c_bus,i2c_addr,0)
7
- end
8
- def close()
9
- IF.i2c_close(@pi,@handle)
10
- end
11
- def write_quick(bit)
12
- IF.i2c_write_quick(@pi,@handle,bit)
13
- end
14
- def write_byte(bVal)
15
- IF.i2c_write_byte(@pi,@handle,bVal)
16
- end
17
- def read_byte()
18
- IF.i2c_read_byte(@pi,@handle)
19
- end
20
- def write_byte_data(i2c_reg,bVal)
21
- IF.i2c_write_byte_data(@pi,@handle,i2c_reg,bVal)
22
- end
23
- def write_word_data(i2c_reg,wVal)
24
- IF.i2c_write_word_data(@pi,@handle,i2c_reg,wVal)
25
- end
26
- def read_byte_data(i2c_reg)
27
- IF.i2c_read_byte_data(@pi,@handle,i2c_reg)
28
- end
29
- def read_word_data(i2c_reg)
30
- IF.i2c_read_word_data(@pi,@handle,i2c_reg)
31
- end
32
- def process_call(i2c_reg,wVal)
33
- IF.i2c_process_call(@pi,@handle,i2c_reg,wVal)
34
- end
35
- def read_block_data(i2c_reg)
36
- IF.i2c_read_block_data(@pi,@handle,i2c_reg)
37
- end
38
- def read_i2c_block_data(i2c_reg,count)
39
- IF.i2c_read_i2c_block_data(@pi,@handle,i2c_reg,count)
40
- end
41
- def write_block_data(i2c_reg,buf)
42
- IF.i2c_write_block_data(@pi,@handle,i2c_reg,buf)
43
- end
44
- def write_i2c_block_data(i2c_reg,buf)
45
- IF.i2c_write_i2c_block_data(@pi,@handle,i2c_reg,buf)
46
- end
47
- def block_process_call(i2c_reg,buf)
48
- IF.i2c_block_process_call(@pi,@handle,i2c_reg,buf)
49
- end
50
- def read_device(count)
51
- IF.i2c_read_device(@pi,@handle,count)
52
- end
53
- def write_device(buf)
54
- IF.i2c_write_device(@pi,@handle,buf)
55
- end
56
- def zip(inBuf,outLen)
57
- IF.i2c_zip(@pi,@handle,inBuf,outLen)
58
- end
59
- end
60
- end
1
+ class Pigpio
2
+ class I2C
3
+ attr_reader :pi, :handle
4
+ def initialize(pi, i2c_bus, i2c_addr)
5
+ @pi = pi
6
+ @handle = IF.i2c_open(@pi, i2c_bus, i2c_addr, 0)
7
+ end
8
+
9
+ def close
10
+ IF.i2c_close(@pi, @handle)
11
+ end
12
+
13
+ def write_quick(bit)
14
+ IF.i2c_write_quick(@pi, @handle, bit)
15
+ end
16
+
17
+ def write_byte(bVal)
18
+ IF.i2c_write_byte(@pi, @handle, bVal)
19
+ end
20
+
21
+ def read_byte
22
+ IF.i2c_read_byte(@pi, @handle)
23
+ end
24
+
25
+ def write_byte_data(i2c_reg, bVal)
26
+ IF.i2c_write_byte_data(@pi, @handle, i2c_reg, bVal)
27
+ end
28
+
29
+ def write_word_data(i2c_reg, wVal)
30
+ IF.i2c_write_word_data(@pi, @handle, i2c_reg, wVal)
31
+ end
32
+
33
+ def read_byte_data(i2c_reg)
34
+ IF.i2c_read_byte_data(@pi, @handle, i2c_reg)
35
+ end
36
+
37
+ def read_word_data(i2c_reg)
38
+ IF.i2c_read_word_data(@pi, @handle, i2c_reg)
39
+ end
40
+
41
+ def process_call(i2c_reg, wVal)
42
+ IF.i2c_process_call(@pi, @handle, i2c_reg, wVal)
43
+ end
44
+
45
+ def read_block_data(i2c_reg)
46
+ IF.i2c_read_block_data(@pi, @handle, i2c_reg)
47
+ end
48
+
49
+ def read_i2c_block_data(i2c_reg, count)
50
+ IF.i2c_read_i2c_block_data(@pi, @handle, i2c_reg, count)
51
+ end
52
+
53
+ def write_block_data(i2c_reg, buf)
54
+ IF.i2c_write_block_data(@pi, @handle, i2c_reg, buf)
55
+ end
56
+
57
+ def write_i2c_block_data(i2c_reg, buf)
58
+ IF.i2c_write_i2c_block_data(@pi, @handle, i2c_reg, buf)
59
+ end
60
+
61
+ def block_process_call(i2c_reg, buf)
62
+ IF.i2c_block_process_call(@pi, @handle, i2c_reg, buf)
63
+ end
64
+
65
+ def read_device(count)
66
+ IF.i2c_read_device(@pi, @handle, count)
67
+ end
68
+
69
+ def write_device(buf)
70
+ IF.i2c_write_device(@pi, @handle, buf)
71
+ end
72
+
73
+ def zip(inBuf, outLen)
74
+ IF.i2c_zip(@pi, @handle, inBuf, outLen)
75
+ end
76
+ end
77
+ end
data/lib/pigpio/pwm.rb CHANGED
@@ -1,38 +1,48 @@
1
- class Pigpio
2
- class PWM
3
- def initialize(pi,gpio)
4
- @pi=pi
5
- @gpio=gpio
6
- end
7
- def start(dutycycle)
8
- ret=IF.set_PWM_dutycycle(@pi,@gpio,dutycycle)
9
- end
10
- def dutycycle=(dutycycle)
11
- ret=IF.set_PWM_dutycycle(@pi,@gpio,dutycycle)
12
- end
13
- def dutycycle
14
- ret=IF.get_PWM_dutycycle(@pi,@gpio)
15
- end
16
- def range=(range)
17
- ret=IF.set_PWM_range(@pi,@gpio,range)
18
- end
19
- def range
20
- ret=IF.get_PWM_range(@pi,@gpio)
21
- end
22
- def real_range
23
- ret=IF.get_PWM_real_range(@pi,@gpio)
24
- end
25
- def frequency=(frequency)
26
- ret=IF.set_PWM_frequency(@pi,@gpio,frequency)
27
- end
28
- def frequency
29
- ret=IF.get_PWM_frequency(@pi,@gpio)
30
- end
31
- def servo_pulsewidth=(pulsewidth)
32
- ret=IF.set_servo_pulsewidth(@pi,@gpio,pulsewidth)
33
- end
34
- def servo_pulsewidth
35
- ret=IF.get_servo_pulsewidth(@pi,@gpio)
36
- end
37
- end
38
- end
1
+ class Pigpio
2
+ class PWM
3
+ def initialize(pi, gpio)
4
+ @pi = pi
5
+ @gpio = gpio
6
+ end
7
+
8
+ def start(dutycycle)
9
+ ret = IF.set_PWM_dutycycle(@pi, @gpio, dutycycle)
10
+ end
11
+
12
+ def dutycycle=(dutycycle)
13
+ ret = IF.set_PWM_dutycycle(@pi, @gpio, dutycycle)
14
+ end
15
+
16
+ def dutycycle
17
+ ret = IF.get_PWM_dutycycle(@pi, @gpio)
18
+ end
19
+
20
+ def range=(range)
21
+ ret = IF.set_PWM_range(@pi, @gpio, range)
22
+ end
23
+
24
+ def range
25
+ ret = IF.get_PWM_range(@pi, @gpio)
26
+ end
27
+
28
+ def real_range
29
+ ret = IF.get_PWM_real_range(@pi, @gpio)
30
+ end
31
+
32
+ def frequency=(frequency)
33
+ ret = IF.set_PWM_frequency(@pi, @gpio, frequency)
34
+ end
35
+
36
+ def frequency
37
+ ret = IF.get_PWM_frequency(@pi, @gpio)
38
+ end
39
+
40
+ def servo_pulsewidth=(pulsewidth)
41
+ ret = IF.set_servo_pulsewidth(@pi, @gpio, pulsewidth)
42
+ end
43
+
44
+ def servo_pulsewidth
45
+ ret = IF.get_servo_pulsewidth(@pi, @gpio)
46
+ end
47
+ end
48
+ end
data/lib/pigpio/serial.rb CHANGED
@@ -1,29 +1,35 @@
1
- class Pigpio
2
- class Serial
3
- attr_reader :pi,:handle
4
- TTY=%w(/dev/tty /dev/serial)
5
- Baud=[50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400]
6
- def initialize(pi,ser_tty,baud)
7
- @pi=pi
8
- @handle=IF.serial_open(pi,ser_tty,baud=19200,0)
9
- end
10
- def close
11
- IF.serial_close(@pi,@handle)
12
- end
13
- def byte=(bVal)
14
- IF.serial_write_byte(@pi,@handle,bVal)
15
- end
16
- def byte
17
- IF.serial_read_byte(@pi,@handle)
18
- end
19
- def write(buf)
20
- IF.serial_write(@pi,@handle,buf)
21
- end
22
- def read(count)
23
- IF.serial_read(@pi,@handle,count)
24
- end
25
- def size
26
- IF.serial_data_available(@pi,@handle)
27
- end
28
- end
29
- end
1
+ class Pigpio
2
+ class Serial
3
+ attr_reader :pi, :handle
4
+ TTY = %w[/dev/tty /dev/serial]
5
+ Baud = [50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400]
6
+ def initialize(pi, ser_tty, baud)
7
+ @pi = pi
8
+ @handle = IF.serial_open(pi, ser_tty, baud = 19200, 0)
9
+ end
10
+
11
+ def close
12
+ IF.serial_close(@pi, @handle)
13
+ end
14
+
15
+ def byte=(bVal)
16
+ IF.serial_write_byte(@pi, @handle, bVal)
17
+ end
18
+
19
+ def byte
20
+ IF.serial_read_byte(@pi, @handle)
21
+ end
22
+
23
+ def write(buf)
24
+ IF.serial_write(@pi, @handle, buf)
25
+ end
26
+
27
+ def read(count)
28
+ IF.serial_read(@pi, @handle, count)
29
+ end
30
+
31
+ def size
32
+ IF.serial_data_available(@pi, @handle)
33
+ end
34
+ end
35
+ end
data/lib/pigpio/spi.rb CHANGED
@@ -1,33 +1,37 @@
1
- class Pigpio
2
- class SPI
3
- attr_reader :pi,:handle
4
- def initialize(pi,spi_channel=0,enable_cex=1,baud=500000,bits_per_word: 8,first_MISO: false,first_MOSI: false,idol_bytes: 0,is_3wire: false,active_low_cex: 0,spi_mode: 0)
5
- is_aux=(spi_channel!=0)
6
- flg=((spi_mode.to_i & 0x03 ) |
7
- ((active_low_cex.to_i & 0x07 )<< 2) |
8
- ((enable_cex.to_i & 0x07 )<< 5) |
9
- ((is_aux ? 1 : 0) << 8) |
10
- ((is_3wire ? 1 : 0) << 9) |
11
- ((idol_bytes.to_i & 0x0f )<< 10) |
12
- ((first_MOSI ? 1 : 0) << 14) |
13
- ((first_MISO ? 1 : 0) << 15) |
14
- ((bits_per_word.to_i & 0x3f )<< 16)
15
- )
16
- @pi=pi
17
- @byte_per_word=(bits_per_word/8.0).ceil
18
- @handle=IF.spi_open(@pi,spi_channel,baud,flg)
19
- end
20
- def close
21
- IF.spi_close(@pi,@handle)
22
- end
23
- def read(words=1)
24
- IF.spi_read(@pi,@handle,words*@byte_per_word)
25
- end
26
- def write(buf)
27
- IF.spi_write(@pi,@handle,buf)
28
- end
29
- def xfer(buf)
30
- IF.spi_xfer(@pi,@handle,buf)
31
- end
32
- end
33
- end
1
+ class Pigpio
2
+ class SPI
3
+ attr_reader :pi, :handle
4
+ def initialize(pi, spi_channel = 0, enable_cex = 1, baud = 500000, bits_per_word: 8, first_MISO: false, first_MOSI: false, idol_bytes: 0, is_3wire: false, active_low_cex: 0, spi_mode: 0)
5
+ is_aux = (spi_channel != 0)
6
+ flg = ((spi_mode.to_i & 0x03) |
7
+ ((active_low_cex.to_i & 0x07) << 2) |
8
+ ((enable_cex.to_i & 0x07) << 5) |
9
+ ((is_aux ? 1 : 0) << 8) |
10
+ ((is_3wire ? 1 : 0) << 9) |
11
+ ((idol_bytes.to_i & 0x0f) << 10) |
12
+ ((first_MOSI ? 1 : 0) << 14) |
13
+ ((first_MISO ? 1 : 0) << 15) |
14
+ ((bits_per_word.to_i & 0x3f) << 16)
15
+ )
16
+ @pi = pi
17
+ @byte_per_word = (bits_per_word / 8.0).ceil
18
+ @handle = IF.spi_open(@pi, spi_channel, baud, flg)
19
+ end
20
+
21
+ def close
22
+ IF.spi_close(@pi, @handle)
23
+ end
24
+
25
+ def read(words = 1)
26
+ IF.spi_read(@pi, @handle, words * @byte_per_word)
27
+ end
28
+
29
+ def write(buf)
30
+ IF.spi_write(@pi, @handle, buf)
31
+ end
32
+
33
+ def xfer(buf)
34
+ IF.spi_xfer(@pi, @handle, buf)
35
+ end
36
+ end
37
+ end
@@ -1,27 +1,33 @@
1
- require_relative "./gpio"
2
- class Pigpio
3
- class UserGPIO < GPIO
4
- def watchdog(timeout)
5
- ret=IF.set_watchdog(@pi,@gpio,timeout)
6
- end
7
- def glitch_filter(steady)
8
- ret=IF.set_glitch_filter(@pi,@gpio,steady)
9
- end
10
- def noise_filter(steady,active)
11
- ret=IF.set_noise_filter(@pi,@gpio,steady,active)
12
- end
13
- def callback(edge,&blk)
14
- return nil unless blk
15
- IF.callback(@pi,@gpio,edge,&blk)
16
- end
17
- def wait_for_edge(edge,timeout)
18
- ret=IF.wait_for_edge(@pi,@gpio,edge,timeout)
19
- end
20
- def trigger(pulseLen,level)
21
- ret=IF.gpio_trigger(@pi,@gpio,pulseLen,level)
22
- end
23
- def pwm
24
- PWM.new(@pi,@gpio)
25
- end
26
- end
27
- end
1
+ require_relative "./gpio"
2
+ class Pigpio
3
+ class UserGPIO < GPIO
4
+ def watchdog(timeout)
5
+ ret = IF.set_watchdog(@pi, @gpio, timeout)
6
+ end
7
+
8
+ def glitch_filter(steady)
9
+ ret = IF.set_glitch_filter(@pi, @gpio, steady)
10
+ end
11
+
12
+ def noise_filter(steady, active)
13
+ ret = IF.set_noise_filter(@pi, @gpio, steady, active)
14
+ end
15
+
16
+ def callback(edge, &blk)
17
+ return nil unless blk
18
+ IF.callback(@pi, @gpio, edge, &blk)
19
+ end
20
+
21
+ def wait_for_edge(edge, timeout)
22
+ ret = IF.wait_for_edge(@pi, @gpio, edge, timeout)
23
+ end
24
+
25
+ def trigger(pulseLen, level)
26
+ ret = IF.gpio_trigger(@pi, @gpio, pulseLen, level)
27
+ end
28
+
29
+ def pwm
30
+ PWM.new(@pi, @gpio)
31
+ end
32
+ end
33
+ end
@@ -1,3 +1,3 @@
1
1
  class Pigpio
2
- VERSION = "0.1.11"
2
+ VERSION = "0.1.12"
3
3
  end
data/lib/pigpio/wave.rb CHANGED
@@ -1,78 +1,100 @@
1
- class Pigpio
2
- class Wave
3
- def initialize(pi)
4
- @pi=pi
5
- IF.wave_clear(pi)
6
- end
7
- def clear
8
- IF.wave_clear(@pi)
9
- end
10
- def add_new
11
- IF.wave_add_new(@pi)
12
- end
13
- def add_generic(pulses)
14
- IF.wave_add_generic(@pi,pulses)
15
- end
16
- def add_serial(user_gpio,baud,data_bits,stop_bits,offset,str)
17
- IF.wave_add_serial(@pi,user_gpio,baud,data_bits,stop_bits,offset,str)
18
- end
19
- def create
20
- IF.wave_create(@pi)
21
- end
22
- def delete(id)
23
- IF.wave_delete(@pi,id)
24
- end
25
- def send_once(id)
26
- IF.wave_delete(@pi,id)
27
- end
28
- def send_repeat(id)
29
- IF.wave_delete(@pi,id)
30
- end
31
- def send_using_mode(id,mode)
32
- IF.wave_delete(@pi,id,mode)
33
- end
34
- def chain(buf)
35
- IF.wave_chain(@pi,buf)
36
- end
37
- def tx_at
38
- IF.wave_tx_at(@pi)
39
- end
40
- def tx_busy
41
- IF.wave_tx_busy(@pi)
42
- end
43
- def tx_stop
44
- IF.wave_tx_stop(@pi)
45
- end
46
- def micros
47
- IF.wave_get_micros(@pi)
48
- end
49
- def high_micros
50
- IF.wave_get_high_micros(@pi)
51
- end
52
- def max_micros
53
- IF.wave_get_max_micros(@pi)
54
- end
55
- def pulses
56
- IF.wave_get_pulses(@pi)
57
- end
58
- def high_pulses
59
- IF.wave_get_high_pulses(@pi)
60
- end
61
- def max_pulses
62
- IF.wave_get_max_pulses(@pi)
63
- end
64
- def cbs
65
- IF.wave_get_cbs(@pi)
66
- end
67
- def high_cbs
68
- IF.wave_get_high_cbs(@pi)
69
- end
70
- def max_cbs
71
- IF.wave_get_max_cbs(@pi)
72
- end
73
- def pulse(on,off,us)
74
- Pulse.make(on,off,us)
75
- end
76
-
77
- end
78
- end
1
+ class Pigpio
2
+ class Wave
3
+ def initialize(pi)
4
+ @pi = pi
5
+ IF.wave_clear(pi)
6
+ end
7
+
8
+ def clear
9
+ IF.wave_clear(@pi)
10
+ end
11
+
12
+ def add_new
13
+ IF.wave_add_new(@pi)
14
+ end
15
+
16
+ def add_generic(pulses)
17
+ IF.wave_add_generic(@pi, pulses)
18
+ end
19
+
20
+ def add_serial(user_gpio, baud, data_bits, stop_bits, offset, str)
21
+ IF.wave_add_serial(@pi, user_gpio, baud, data_bits, stop_bits, offset, str)
22
+ end
23
+
24
+ def create
25
+ IF.wave_create(@pi)
26
+ end
27
+
28
+ def delete(id)
29
+ IF.wave_delete(@pi, id)
30
+ end
31
+
32
+ def send_once(id)
33
+ IF.wave_send_once(@pi, id)
34
+ end
35
+
36
+ def send_repeat(id)
37
+ IF.wave_send_repeat(@pi, id)
38
+ end
39
+
40
+ def send_using_mode(id, mode)
41
+ IF.wave_send_using_mode(@pi, id, mode)
42
+ end
43
+
44
+ def chain(buf)
45
+ IF.wave_chain(@pi, buf)
46
+ end
47
+
48
+ def tx_at
49
+ IF.wave_tx_at(@pi)
50
+ end
51
+
52
+ def tx_busy
53
+ IF.wave_tx_busy(@pi)
54
+ end
55
+
56
+ def tx_stop
57
+ IF.wave_tx_stop(@pi)
58
+ end
59
+
60
+ def micros
61
+ IF.wave_get_micros(@pi)
62
+ end
63
+
64
+ def high_micros
65
+ IF.wave_get_high_micros(@pi)
66
+ end
67
+
68
+ def max_micros
69
+ IF.wave_get_max_micros(@pi)
70
+ end
71
+
72
+ def pulses
73
+ IF.wave_get_pulses(@pi)
74
+ end
75
+
76
+ def high_pulses
77
+ IF.wave_get_high_pulses(@pi)
78
+ end
79
+
80
+ def max_pulses
81
+ IF.wave_get_max_pulses(@pi)
82
+ end
83
+
84
+ def cbs
85
+ IF.wave_get_cbs(@pi)
86
+ end
87
+
88
+ def high_cbs
89
+ IF.wave_get_high_cbs(@pi)
90
+ end
91
+
92
+ def max_cbs
93
+ IF.wave_get_max_cbs(@pi)
94
+ end
95
+
96
+ def pulse(on, off, us)
97
+ Pulse.make(on, off, us)
98
+ end
99
+ end
100
+ end