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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 01a1c4e0c688be24b237155ef8958a86515efae4
4
- data.tar.gz: 31044e1d6f588ea3f45edb2fb3dc575508caa9da
3
+ metadata.gz: ae7b18135589bcb43797bce679c5d1a4ec093f51
4
+ data.tar.gz: a49b60e57149655c2242612994dadb348a86648d
5
5
  SHA512:
6
- metadata.gz: d5be365ff9e98fad14a67ba8922f3450cf23093a27d1443b9e09547e20a8cc7d4cc28c2259f03c1ea6762559fd2ae896388d821641e6cab7ed9085cdcd17fb53
7
- data.tar.gz: 1eaff222417c95031107ee21b7723a6caf2655b7f6f9275ff6483c58b27046b6e516fdf9535146062b4d73907ae7588095a027c1b1f3bf38f6aa1c0e2523952a
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",
@@ -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, [Integer] buf) -> Integer
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) -> Integer
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 INT2NUM(wave_tx_busy(NUM2INT(pi)));
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
@@ -1,3 +1,3 @@
1
1
  class Pigpio
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
@@ -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.7
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-21 00:00:00.000000000 Z
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: