pigpio 0.1.7 → 0.1.8
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/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
|

|
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:
|