numato-gpio 0.1 → 0.2
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 +5 -5
- data/.gitignore +2 -34
- data/Gemfile +3 -2
- data/README.md +3 -1
- data/Rakefile +9 -1
- data/lib/numato-gpio.rb +15 -27
- data/numato-gpio.gemspec +4 -9
- metadata +18 -21
- data/lib/numato-gpio/version.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 39b03bd4a2d74ed88c1853b0da07dd31b23a0045f2f59c425c62089692aac29b
|
4
|
+
data.tar.gz: f7d79edc76c542826a0342ac2939ab1a0f4f5b523ef30f37a8996a56cdb11edf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd0f5dc815b36a218b16f326180579122f391886a3acfebd1bfc080557ee382a9da7bce475f8221d600e1bd0d577f25f08abb6bd6b3d9581f2e85230635c5e2e
|
7
|
+
data.tar.gz: 982d9ed92e589d478f85de0feacbb961859dcfd2ca962158dcfd3651c09df06ea05cb13a50d92e52392fd1275d1b54ee3b75b0b6d4d06677c0932d0fa978c9ef
|
data/.gitignore
CHANGED
@@ -1,35 +1,3 @@
|
|
1
|
-
|
2
|
-
*.rbc
|
3
|
-
/.config
|
4
|
-
/coverage/
|
5
|
-
/InstalledFiles
|
6
|
-
/pkg/
|
7
|
-
/spec/reports/
|
8
|
-
/test/tmp/
|
9
|
-
/test/version_tmp/
|
10
|
-
/tmp/
|
11
|
-
|
12
|
-
## Specific to RubyMotion:
|
13
|
-
.dat*
|
14
|
-
.repl_history
|
15
|
-
build/
|
16
|
-
|
17
|
-
## Documentation cache and generated files:
|
18
|
-
/.yardoc/
|
19
|
-
/_yardoc/
|
20
|
-
/doc/
|
21
|
-
/rdoc/
|
22
|
-
|
23
|
-
## Environment normalisation:
|
24
|
-
/.bundle/
|
25
|
-
/vendor/bundle
|
26
|
-
/lib/bundler/man/
|
27
|
-
|
28
|
-
# for a library or gem, you might want to ignore these files since the code is
|
29
|
-
# intended to run in multiple environments; otherwise, check them in:
|
1
|
+
.DS_Store
|
30
2
|
Gemfile.lock
|
31
|
-
|
32
|
-
# .ruby-gemset
|
33
|
-
|
34
|
-
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
35
|
-
.rvmrc
|
3
|
+
*.gem
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# numato-gpio
|
2
2
|
|
3
|
-
Ruby gem to interface with Numato GPIO board via USB interface.
|
3
|
+
Ruby gem to interface with [Numato GPIO board](https://numato.com/product/32-channel-usb-gpio-module-with-analog-inputs/) via USB interface.
|
4
|
+
|
5
|
+
Technical information is here: [32 Channel USB GPIO Module With Analog Inputs](https://numato.com/docs/32-channel-usb-gpio-module-with-analog-inputs/)
|
4
6
|
|
5
7
|
Sorry for the lack of documentation. See source.
|
data/Rakefile
CHANGED
data/lib/numato-gpio.rb
CHANGED
@@ -1,31 +1,28 @@
|
|
1
1
|
require 'rubyserial'
|
2
2
|
|
3
|
-
require 'numato-gpio/version'
|
4
|
-
|
5
3
|
class NumatoGPIO
|
6
4
|
|
7
5
|
attr_accessor :device
|
8
|
-
attr_accessor :io_map
|
9
6
|
attr_accessor :mock
|
10
7
|
attr_accessor :verbose
|
11
8
|
|
12
9
|
def initialize(params={})
|
13
10
|
{
|
14
11
|
mock: false,
|
12
|
+
device: nil,
|
15
13
|
verbose: false,
|
16
|
-
io_map: {},
|
17
14
|
}.merge(params).each { |k, v| send("#{k}=", v) }
|
18
15
|
open_device
|
19
16
|
end
|
20
17
|
|
21
18
|
def open_device
|
22
19
|
return if @mock
|
23
|
-
unless @device
|
24
|
-
|
25
|
-
|
26
|
-
|
20
|
+
raise "No device set!" unless @device
|
21
|
+
begin
|
22
|
+
@port = Serial.new(@device)
|
23
|
+
rescue RubySerial::Error => e
|
24
|
+
raise "Can't open device #{@device.inspect}: #{e}"
|
27
25
|
end
|
28
|
-
@port = Serial.new(@device)
|
29
26
|
warn "connected to device #{@device}" if @verbose
|
30
27
|
end
|
31
28
|
|
@@ -43,15 +40,15 @@ class NumatoGPIO
|
|
43
40
|
end
|
44
41
|
|
45
42
|
def set(x)
|
46
|
-
command("gpio set #{
|
43
|
+
command("gpio set #{gpio_name(x)}", false)
|
47
44
|
end
|
48
45
|
|
49
46
|
def clear(x)
|
50
|
-
command("gpio clear #{
|
47
|
+
command("gpio clear #{gpio_name(x)}", false)
|
51
48
|
end
|
52
49
|
|
53
50
|
def read(x)
|
54
|
-
status = command("gpio read #{
|
51
|
+
status = command("gpio read #{gpio_name(x)}", true)
|
55
52
|
case status
|
56
53
|
when '1'
|
57
54
|
true
|
@@ -81,28 +78,19 @@ class NumatoGPIO
|
|
81
78
|
end
|
82
79
|
end
|
83
80
|
|
84
|
-
|
85
|
-
|
86
|
-
def gpio_str(x)
|
87
|
-
IONames[x] or raise "Can't convert GPIO number #{x.inspect} to string"
|
88
|
-
end
|
81
|
+
GPIONames = ('0'..'9').to_a + ('A'..'V').to_a.freeze
|
89
82
|
|
90
|
-
def
|
91
|
-
|
92
|
-
when Numeric
|
93
|
-
x
|
94
|
-
when Symbol
|
95
|
-
@io_map[x] or raise "No IO ID #{x.inspect}"
|
96
|
-
else
|
97
|
-
raise "Can't convert #{x.class} to IO: #{x.inspect}"
|
98
|
-
end
|
83
|
+
def gpio_name(x)
|
84
|
+
GPIONames[x] or raise "Can't convert GPIO number #{x.inspect} to name"
|
99
85
|
end
|
100
86
|
|
101
87
|
end
|
102
88
|
|
103
89
|
if $0 == __FILE__
|
104
90
|
|
105
|
-
gpio = NumatoGPIO.new(
|
91
|
+
gpio = NumatoGPIO.new(device: '/dev/tty.usbmodem1101', verbose: true)
|
92
|
+
|
93
|
+
puts "ID: #{gpio.id}"
|
106
94
|
|
107
95
|
gpio.clear(0)
|
108
96
|
gpio.clear(1)
|
data/numato-gpio.gemspec
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
#encoding: utf-8
|
2
2
|
|
3
|
-
lib = File.expand_path('../lib', __FILE__)
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
|
6
|
-
require 'numato-gpio/version'
|
7
|
-
|
8
3
|
Gem::Specification.new do |s|
|
9
4
|
s.name = 'numato-gpio'
|
10
|
-
s.version =
|
5
|
+
s.version = '0.2'
|
11
6
|
s.summary = 'Interfaces with Numato GPIO board via USB interface.'
|
12
7
|
s.author = 'John Labovitz'
|
13
8
|
s.email = 'johnl@johnlabovitz.com'
|
@@ -20,8 +15,8 @@ NumatoGPIO interfaces with Numato GPIO board via USB interface.
|
|
20
15
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
16
|
s.require_path = 'lib'
|
22
17
|
|
23
|
-
s.add_dependency 'rubyserial'
|
18
|
+
s.add_dependency 'rubyserial', '~> 0.6'
|
24
19
|
|
25
|
-
s.add_development_dependency 'bundler'
|
26
|
-
s.add_development_dependency 'rake'
|
20
|
+
s.add_development_dependency 'bundler', '~> 2.4'
|
21
|
+
s.add_development_dependency 'rake', '~> 13.1'
|
27
22
|
end
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: numato-gpio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Labovitz
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyserial
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '0.6'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '0.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2.4'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2.4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '13.1'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '13.1'
|
55
55
|
description: "\nNumatoGPIO interfaces with Numato GPIO board via USB interface.\n
|
56
56
|
\ "
|
57
57
|
email: johnl@johnlabovitz.com
|
@@ -65,12 +65,11 @@ files:
|
|
65
65
|
- README.md
|
66
66
|
- Rakefile
|
67
67
|
- lib/numato-gpio.rb
|
68
|
-
- lib/numato-gpio/version.rb
|
69
68
|
- numato-gpio.gemspec
|
70
69
|
homepage: http://github.com/jslabovitz/numato-gpio
|
71
70
|
licenses: []
|
72
71
|
metadata: {}
|
73
|
-
post_install_message:
|
72
|
+
post_install_message:
|
74
73
|
rdoc_options: []
|
75
74
|
require_paths:
|
76
75
|
- lib
|
@@ -85,10 +84,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
84
|
- !ruby/object:Gem::Version
|
86
85
|
version: '0'
|
87
86
|
requirements: []
|
88
|
-
|
89
|
-
|
90
|
-
signing_key:
|
87
|
+
rubygems_version: 3.4.22
|
88
|
+
signing_key:
|
91
89
|
specification_version: 4
|
92
90
|
summary: Interfaces with Numato GPIO board via USB interface.
|
93
91
|
test_files: []
|
94
|
-
has_rdoc:
|