pigpio 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/check.txt +18 -18
- data/example/simple/readme.md +22 -0
- data/example/simple/wave.rb +24 -0
- data/ext/pigpio/pigpio.c +27 -3
- data/lib/pigpio.rb +4 -0
- data/lib/pigpio/version.rb +1 -1
- data/lib/pigpio/wave.rb +78 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae7b18135589bcb43797bce679c5d1a4ec093f51
|
4
|
+
data.tar.gz: a49b60e57149655c2242612994dadb348a86648d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec4005fd2cc6357b47ea11a92149a3892c87a474f55ee51997bbe7ff626dd81189b64155409b5921269b99e093b570cf0108fe4c3cc86b7053ad85396da7dbb1
|
7
|
+
data.tar.gz: 01cdfa852106e01722161e337834c5d446f6cff73757549b9d8748acd9e01dfc9b6c776400bccc729950c28decfe208ffba9226f5689ab24b4fe0f1ccc467ca4
|
data/check.txt
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
o "pigpio_start",
|
2
2
|
o "pigpio_stop",
|
3
|
-
"set_mode",
|
4
|
-
"get_mode",
|
5
|
-
"set_pull_up_down",
|
6
|
-
"gpio_read",
|
7
|
-
"gpio_write",
|
3
|
+
- "set_mode",
|
4
|
+
- "get_mode",
|
5
|
+
- "set_pull_up_down",
|
6
|
+
- "gpio_read",
|
7
|
+
- "gpio_write",
|
8
8
|
o "time_time",
|
9
9
|
o "pigpio_error",
|
10
10
|
o "pigpiod_if_version",
|
11
11
|
"set_watchdog",
|
12
|
-
"set_glitch_filter",
|
12
|
+
- "set_glitch_filter",
|
13
13
|
"set_noise_filter",
|
14
14
|
o "get_current_tick",
|
15
15
|
o "get_hardware_revision",
|
@@ -34,15 +34,15 @@ o "get_pigpio_version",
|
|
34
34
|
"wave_get_high_cbs",
|
35
35
|
"wave_get_max_cbs",
|
36
36
|
"gpio_trigger",
|
37
|
-
"set_PWM_dutycycle",
|
38
|
-
"get_PWM_dutycycle",
|
39
|
-
"set_PWM_range",
|
40
|
-
"get_PWM_range",
|
41
|
-
"get_PWM_real_range",
|
42
|
-
"set_PWM_frequency",
|
43
|
-
"get_PWM_frequency",
|
44
|
-
"set_servo_pulsewidth",
|
45
|
-
"get_servo_pulsewidth",
|
37
|
+
- "set_PWM_dutycycle",
|
38
|
+
- "get_PWM_dutycycle",
|
39
|
+
- "set_PWM_range",
|
40
|
+
- "get_PWM_range",
|
41
|
+
- "get_PWM_real_range",
|
42
|
+
- "set_PWM_frequency",
|
43
|
+
- "get_PWM_frequency",
|
44
|
+
- "set_servo_pulsewidth",
|
45
|
+
- "get_servo_pulsewidth",
|
46
46
|
"notify_open",
|
47
47
|
"notify_begin",
|
48
48
|
"notify_pause",
|
@@ -57,9 +57,9 @@ o "get_pigpio_version",
|
|
57
57
|
"hardware_PWM",
|
58
58
|
"wave_add_generic",
|
59
59
|
"wave_add_serial",
|
60
|
-
"wave_chain",
|
61
|
-
"callback",
|
62
|
-
"callback_cancel",
|
60
|
+
o "wave_chain",
|
61
|
+
- "callback",
|
62
|
+
- "callback_cancel",
|
63
63
|
"wait_for_edge",
|
64
64
|
"event_callback",
|
65
65
|
"event_callback_cancel",
|
data/example/simple/readme.md
CHANGED
@@ -4,6 +4,17 @@
|
|
4
4
|
|
5
5
|
![board_image](./board.svg)
|
6
6
|
|
7
|
+
## GPIO sample
|
8
|
+
|
9
|
+
[Script is here.](./led.rb)
|
10
|
+
|
11
|
+
LED will light 3 times.
|
12
|
+
|
13
|
+
```sh
|
14
|
+
$ sudo pigpiod
|
15
|
+
$ ruby led.rb
|
16
|
+
```
|
17
|
+
|
7
18
|
## PWM sample
|
8
19
|
|
9
20
|
[Script is here.](./pwm.rb)
|
@@ -25,3 +36,14 @@ LED will light, while you release the button.
|
|
25
36
|
$ sudo pigpiod
|
26
37
|
$ ruby callback.rb
|
27
38
|
```
|
39
|
+
|
40
|
+
## WAVE sample
|
41
|
+
|
42
|
+
[Script is here.](./wave.rb)
|
43
|
+
|
44
|
+
LED will light 3 times.
|
45
|
+
|
46
|
+
```sh
|
47
|
+
$ sudo pigpiod
|
48
|
+
$ ruby wave.rb
|
49
|
+
```
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "pigpio"
|
2
|
+
include Pigpio::Constant
|
3
|
+
pi=Pigpio.new()
|
4
|
+
unless pi.connect
|
5
|
+
exit -1
|
6
|
+
end
|
7
|
+
|
8
|
+
led=pi.gpio(4)
|
9
|
+
led.mode=PI_OUTPUT
|
10
|
+
led.pud=PI_PUD_OFF
|
11
|
+
|
12
|
+
wave=pi.wave
|
13
|
+
wave.add_new
|
14
|
+
wave.add_generic([
|
15
|
+
wave.pulse(0x10,0x00,1000000),
|
16
|
+
wave.pulse(0x00,0x10,1000000),
|
17
|
+
])
|
18
|
+
wid=wave.create
|
19
|
+
wave.chain([255,0,wid,255,1,3,0])
|
20
|
+
while wave.tx_busy
|
21
|
+
sleep 0.1
|
22
|
+
end
|
23
|
+
wave.clear
|
24
|
+
|
data/ext/pigpio/pigpio.c
CHANGED
@@ -130,6 +130,9 @@ void pigpio_rbst_callback_id_dmark(void* _self){
|
|
130
130
|
}
|
131
131
|
void pigpio_rbst_callback_id_dfree(void* _self){
|
132
132
|
callback_id_t *self=(callback_id_t *)_self;
|
133
|
+
if(self->id >= 0){
|
134
|
+
(*(self->cancel))(self->id);
|
135
|
+
}
|
133
136
|
xfree(self);
|
134
137
|
return;
|
135
138
|
}
|
@@ -1387,11 +1390,31 @@ The code is currently dimensioned to support a chain with roughly
|
|
1387
1390
|
|
1388
1391
|
|
1389
1392
|
:call-seq:
|
1390
|
-
wave_chain(Integer pi,
|
1393
|
+
wave_chain(Integer pi, Object buf) -> Integer
|
1394
|
+
|
1395
|
+
The arg buf is binary stirng or integer array.
|
1391
1396
|
|
1392
1397
|
See also: {pigpio site}[http://abyz.me.uk/rpi/pigpio/pdif2.html#wave_chain]
|
1393
1398
|
*/
|
1394
1399
|
VALUE pigpio_rbfn_wave_chain(VALUE self,VALUE pi, VALUE buf){
|
1400
|
+
VALUE rbuf;
|
1401
|
+
int ret;
|
1402
|
+
switch (TYPE(buf)) {
|
1403
|
+
case T_STRING:
|
1404
|
+
rbuf=buf;
|
1405
|
+
break;
|
1406
|
+
case T_ARRAY:
|
1407
|
+
rbuf=rb_funcall((VALUE)buf, rb_intern("pack"), 1,rb_str_new2("c*"));
|
1408
|
+
break;
|
1409
|
+
case T_FIXNUM:
|
1410
|
+
default:
|
1411
|
+
rb_raise(rb_eTypeError, "not valid value");
|
1412
|
+
break;
|
1413
|
+
}
|
1414
|
+
ret=wave_chain(NUM2INT(pi),StringValuePtr(rbuf), RSTRING_LEN(rbuf));
|
1415
|
+
RB_GC_GUARD(rbuf);
|
1416
|
+
return INT2NUM(ret);
|
1417
|
+
/*
|
1395
1418
|
unsigned bufSize=rb_array_len(buf);
|
1396
1419
|
char bufc[bufSize];
|
1397
1420
|
unsigned i;
|
@@ -1399,6 +1422,7 @@ VALUE pigpio_rbfn_wave_chain(VALUE self,VALUE pi, VALUE buf){
|
|
1399
1422
|
bufc[i]=(char)FIX2INT(rb_ary_entry(buf,i));
|
1400
1423
|
}
|
1401
1424
|
return INT2NUM( wave_chain(NUM2INT(pi),bufc, bufSize));
|
1425
|
+
*/
|
1402
1426
|
}
|
1403
1427
|
/*
|
1404
1428
|
This function returns the id of the waveform currently being
|
@@ -1432,12 +1456,12 @@ transmitted.
|
|
1432
1456
|
Returns 1 if a waveform is currently being transmitted, otherwise 0.
|
1433
1457
|
|
1434
1458
|
:call-seq:
|
1435
|
-
wave_tx_busy(Integer pi) ->
|
1459
|
+
wave_tx_busy(Integer pi) -> Boolean
|
1436
1460
|
|
1437
1461
|
See also: {pigpio site}[http://abyz.me.uk/rpi/pigpio/pdif2.html#wave_tx_busy]
|
1438
1462
|
*/
|
1439
1463
|
VALUE pigpio_rbfn_wave_tx_busy(VALUE self,VALUE pi){
|
1440
|
-
return
|
1464
|
+
return wave_tx_busy(NUM2INT(pi)) ? Qtrue : Qfalse ;
|
1441
1465
|
}
|
1442
1466
|
/*
|
1443
1467
|
This function stops the transmission of the current waveform.
|
data/lib/pigpio.rb
CHANGED
@@ -5,6 +5,7 @@ require "pigpio/gpio"
|
|
5
5
|
require "pigpio/user_gpio"
|
6
6
|
require "pigpio/pwm"
|
7
7
|
require "pigpio/bank"
|
8
|
+
require "pigpio/wave"
|
8
9
|
|
9
10
|
class Pigpio
|
10
11
|
def initialize(addr=nil,port=nil,&blk)
|
@@ -40,5 +41,8 @@ class Pigpio
|
|
40
41
|
def gpio(gpio)
|
41
42
|
(gpio<32 ? UserGPIO : GPIO).new(@pi,gpio)
|
42
43
|
end
|
44
|
+
def wave()
|
45
|
+
Wave.new(@pi)
|
46
|
+
end
|
43
47
|
|
44
48
|
end
|
data/lib/pigpio/version.rb
CHANGED
data/lib/pigpio/wave.rb
ADDED
@@ -0,0 +1,78 @@
|
|
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,tick)
|
74
|
+
Pulse.make(on,off,tick)
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pigpio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nak1114
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -93,6 +93,7 @@ files:
|
|
93
93
|
- example/simple/led.rb
|
94
94
|
- example/simple/pwm.rb
|
95
95
|
- example/simple/readme.md
|
96
|
+
- example/simple/wave.rb
|
96
97
|
- ext/pigpio/extconf.rb
|
97
98
|
- ext/pigpio/pigpio.c
|
98
99
|
- lib/pigpio.rb
|
@@ -102,6 +103,7 @@ files:
|
|
102
103
|
- lib/pigpio/pwm.rb
|
103
104
|
- lib/pigpio/user_gpio.rb
|
104
105
|
- lib/pigpio/version.rb
|
106
|
+
- lib/pigpio/wave.rb
|
105
107
|
- pigpio.gemspec
|
106
108
|
homepage: http://www.github.com/nak1114/ruby-extension-pigpio
|
107
109
|
licenses:
|