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