artoo 1.6.1 → 1.6.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 +4 -4
- data/.ruby-version +1 -1
- data/Gemfile.lock +13 -3
- data/artoo.gemspec +1 -1
- data/bin/artoo +10 -6
- data/lib/artoo/commands/bluetooth.rb +74 -0
- data/lib/artoo/commands/commands.rb +1 -1
- data/lib/artoo/commands/scan.rb +42 -0
- data/lib/artoo/commands/socket.rb +43 -0
- data/lib/artoo/version.rb +1 -1
- metadata +8 -6
- data/lib/artoo/commands/connect.rb +0 -83
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e658b80b5b9aa14f41900900289cbd09888384b
|
4
|
+
data.tar.gz: a2613c23ca45cc5a48d93326d5da716c00df6f86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3199bf1714b0254bea7bd409c14441b33f077bacc6e05881257603f6a9982dd8acea58e02637f29b582c795e0c65d1b5146271086640f0a6132234274c89a48
|
7
|
+
data.tar.gz: 1825a2500d229156dfdd75cb59674b48e77815b8a053b891e8adcbca64262a059ff76f22d44ccdfb7879a6c0d23a08bd13cb3eae1ffd949884d315b8be235de2
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.1.
|
1
|
+
ruby-2.1.1
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
artoo (1.6.
|
4
|
+
artoo (1.6.2)
|
5
5
|
celluloid (~> 0.15.0)
|
6
6
|
celluloid-io (~> 0.15.0)
|
7
7
|
multi_json (~> 1.6)
|
8
8
|
pry (~> 0.9)
|
9
9
|
rake
|
10
10
|
reel (~> 0.4.0)
|
11
|
-
robeaux (~> 0.0.
|
11
|
+
robeaux (~> 0.0.4)
|
12
12
|
thor (~> 0.18.1)
|
13
13
|
|
14
14
|
GEM
|
@@ -21,6 +21,7 @@ GEM
|
|
21
21
|
nio4r (>= 0.5.0)
|
22
22
|
coderay (1.1.0)
|
23
23
|
dotenv (0.9.0)
|
24
|
+
ffi (1.9.3-java)
|
24
25
|
foreman (0.63.0)
|
25
26
|
dotenv (>= 0.7)
|
26
27
|
thor (>= 0.13.6)
|
@@ -30,6 +31,7 @@ GEM
|
|
30
31
|
http (0.5.0)
|
31
32
|
http_parser.rb
|
32
33
|
http_parser.rb (0.6.0)
|
34
|
+
http_parser.rb (0.6.0-java)
|
33
35
|
json (1.7.7)
|
34
36
|
json (1.7.7-java)
|
35
37
|
kramdown (1.2.0)
|
@@ -42,10 +44,16 @@ GEM
|
|
42
44
|
metaclass (~> 0.0.1)
|
43
45
|
multi_json (1.8.4)
|
44
46
|
nio4r (1.0.0)
|
47
|
+
nio4r (1.0.0-java)
|
45
48
|
pry (0.9.12.4)
|
46
49
|
coderay (~> 1.0)
|
47
50
|
method_source (~> 0.8)
|
48
51
|
slop (~> 3.4)
|
52
|
+
pry (0.9.12.4-java)
|
53
|
+
coderay (~> 1.0)
|
54
|
+
method_source (~> 0.8)
|
55
|
+
slop (~> 3.4)
|
56
|
+
spoon (~> 0.0)
|
49
57
|
rake (10.1.1)
|
50
58
|
reel (0.4.0)
|
51
59
|
celluloid (>= 0.15.1)
|
@@ -54,8 +62,10 @@ GEM
|
|
54
62
|
http_parser.rb (>= 0.6.0.beta.2)
|
55
63
|
websocket_parser (>= 0.1.4)
|
56
64
|
ref (1.0.5)
|
57
|
-
robeaux (0.0.
|
65
|
+
robeaux (0.0.4)
|
58
66
|
slop (3.4.7)
|
67
|
+
spoon (0.0.4)
|
68
|
+
ffi
|
59
69
|
therubyracer (0.12.0)
|
60
70
|
libv8 (~> 3.16.14.0)
|
61
71
|
ref
|
data/artoo.gemspec
CHANGED
data/bin/artoo
CHANGED
@@ -3,10 +3,12 @@ require 'rubygems'
|
|
3
3
|
require 'thor'
|
4
4
|
require 'thor/group'
|
5
5
|
require 'artoo/robot'
|
6
|
-
require 'artoo/commands/commands'
|
7
6
|
require 'artoo/commands/generate'
|
8
|
-
require 'artoo/commands/
|
7
|
+
require 'artoo/commands/commands'
|
9
8
|
require 'artoo/commands/install'
|
9
|
+
require 'artoo/commands/scan'
|
10
|
+
require 'artoo/commands/socket'
|
11
|
+
require 'artoo/commands/bluetooth'
|
10
12
|
|
11
13
|
Celluloid.logger = nil
|
12
14
|
|
@@ -34,15 +36,17 @@ module CLI
|
|
34
36
|
run("ruby #{robot}")
|
35
37
|
end
|
36
38
|
|
37
|
-
desc "generate SUBCOMMAND ...ARGS", "Generates a new robot or adaptor"
|
39
|
+
desc "generate <SUBCOMMAND> ...ARGS", "Generates a new robot or adaptor"
|
38
40
|
subcommand "generate", Artoo::Commands::Generate
|
39
41
|
|
40
|
-
desc "
|
41
|
-
subcommand "
|
42
|
+
desc "bluetooth <SUBCOMMAND> ...ARGS", "Scans, pairs and Connects to a bluetooth device"
|
43
|
+
subcommand "bluetooth", Artoo::Commands::Bluetooth
|
42
44
|
|
43
|
-
desc "install SUBCOMMAND ...ARGS", "Installs utility programs"
|
45
|
+
desc "install <SUBCOMMAND> ...ARGS", "Installs utility programs, like socat"
|
44
46
|
subcommand "install", Artoo::Commands::Install
|
45
47
|
|
48
|
+
desc "scan <type> ...ARGS", "Installs utility programs"
|
49
|
+
subcommand "scan", Artoo::Commands::Scan
|
46
50
|
end
|
47
51
|
end
|
48
52
|
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'thor/group'
|
3
|
+
|
4
|
+
module Artoo
|
5
|
+
module Commands
|
6
|
+
class Bluetooth < Commands
|
7
|
+
package_name "bluetooth"
|
8
|
+
|
9
|
+
desc "scan", "Scan for bluetooth devices"
|
10
|
+
def scan
|
11
|
+
Artoo::Commands::Scan.new().bluetooth()
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "bind [ADDRESS] [NAME]", "Binds a Bluetooth device to a serial port"
|
15
|
+
option :comm, :aliases => "-c", :default => 0, :desc => "Comm number"
|
16
|
+
option :radio, :aliases => "-r", :default => "hci0", :desc => "Bluetooth radio address"
|
17
|
+
def bind(address, name)
|
18
|
+
case os
|
19
|
+
when :linux
|
20
|
+
run("sudo rfcomm -i #{options[:radio]} bind /dev/rfcomm#{options[:comm]} #{address} 1")
|
21
|
+
run("sudo ln -s /dev/rfcomm#{options[:comm]} /dev/#{name}")
|
22
|
+
when :macosx
|
23
|
+
say "OSX binds devices on its own volition."
|
24
|
+
else
|
25
|
+
say "OS not yet supported..."
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
desc "unbind [ADDRESS] [NAME]", "Unbinds a Bluetooth device from a serial port"
|
30
|
+
def unbind(address, name)
|
31
|
+
case os
|
32
|
+
when :linux
|
33
|
+
run("sudo rfcomm unbind #{address}")
|
34
|
+
run("sudo rm /dev/#{name}")
|
35
|
+
when :macosx
|
36
|
+
say "OSX binds devices on its own volition."
|
37
|
+
else
|
38
|
+
say "OS not yet supported..."
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
desc "connect [NAME] [PORT]", "Connect a serial device to a TCP socket using socat"
|
43
|
+
option :retries, :aliases => "-r", :default => 0, :desc => "Number of times to retry connecting on failure"
|
44
|
+
option :baudrate, :aliases => "-b", :default => 57600, :desc => "Baud rate to use to connect to the serial device"
|
45
|
+
def connect(name, port)
|
46
|
+
Artoo::Commands::Socket.new().connect(name, port, options[:retries], options[:baudrate])
|
47
|
+
end
|
48
|
+
|
49
|
+
desc "pair [ADDRESS]", "Pairs a Bluetooth device"
|
50
|
+
def pair(address)
|
51
|
+
case os
|
52
|
+
when :linux
|
53
|
+
run("bluez-simple-agent hci0 #{ address }")
|
54
|
+
when :macosx
|
55
|
+
say "OS X manages Bluetooth pairing itself."
|
56
|
+
else
|
57
|
+
say "OS not yet supported..."
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
desc "unpair [ADDRESS]", "Unpairs a Bluetooth device"
|
62
|
+
def unpair(address)
|
63
|
+
case os
|
64
|
+
when :linux
|
65
|
+
run("bluez-simple-agent hci0 #{ address } remove")
|
66
|
+
when :macosx
|
67
|
+
say "OS X manages Bluetooth unpairing itself."
|
68
|
+
else
|
69
|
+
say "OS not yet supported..."
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'thor/group'
|
3
|
+
|
4
|
+
module Artoo
|
5
|
+
module Commands
|
6
|
+
class Scan < Commands
|
7
|
+
package_name "scan"
|
8
|
+
|
9
|
+
desc "serial", "Scan for connected serial devices"
|
10
|
+
def serial
|
11
|
+
case os
|
12
|
+
when :linux
|
13
|
+
run("ls /dev/tty*")
|
14
|
+
when :macosx
|
15
|
+
run("ls /dev/{tty,cu}.*")
|
16
|
+
else
|
17
|
+
say("OS not yet supported...")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
desc "usb", "Scan for connected usb devices"
|
22
|
+
def usb
|
23
|
+
case os
|
24
|
+
when :linux
|
25
|
+
run("lsusb")
|
26
|
+
else
|
27
|
+
say "OS not yet supported..."
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "bluetooth", "Scan for bluetooth devices"
|
32
|
+
def bluetooth
|
33
|
+
case os
|
34
|
+
when :linux
|
35
|
+
run("hcitool scan")
|
36
|
+
else
|
37
|
+
say "OS not yet supported..."
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Artoo
|
2
|
+
module Commands
|
3
|
+
class Socket < Commands
|
4
|
+
|
5
|
+
desc "connect [NAME] [PORT]", "Connect a serial device to a TCP socket using socat"
|
6
|
+
option :retries, :aliases => "-r", :default => 0, :desc => "Number of times to retry connecting on failure"
|
7
|
+
option :baudrate, :aliases => "-b", :default => 57600, :desc => "Baud rate to use to connect to the serial device"
|
8
|
+
def connect(name, port, retries = nil, baudrate = nil)
|
9
|
+
retries |= (1 + options[:retries].to_i)
|
10
|
+
baudrate |= options[:baudrate].to_i
|
11
|
+
|
12
|
+
# check that Socat is installed
|
13
|
+
system("socat -V &> /dev/null")
|
14
|
+
unless $?.success?
|
15
|
+
say "Socat not installed. Cannot bind serial to TCP."
|
16
|
+
say "Please install with 'artoo install socat' and try again."
|
17
|
+
return
|
18
|
+
end
|
19
|
+
|
20
|
+
case os
|
21
|
+
when :linux
|
22
|
+
run("sudo chmod a+rw /dev/#{name}")
|
23
|
+
|
24
|
+
while(retries > 0) do
|
25
|
+
run("socat -d -d FILE:/dev/#{name},nonblock,raw,b#{ baudrate },echo=0 TCP-LISTEN:#{port},fork")
|
26
|
+
break unless $? == 1
|
27
|
+
retries -= 1
|
28
|
+
end
|
29
|
+
|
30
|
+
when :macosx
|
31
|
+
while(retries > 0) do
|
32
|
+
run("socat -d -d -b#{ baudrate } FILE:/dev/#{name},nonblock,raw,echo=0 TCP-LISTEN:#{port},fork")
|
33
|
+
break unless $? == 1
|
34
|
+
retries -= 1
|
35
|
+
end
|
36
|
+
|
37
|
+
else
|
38
|
+
say "OS not yet supported..."
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/lib/artoo/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: artoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ron Evans
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2014-
|
15
|
+
date: 2014-04-04 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: celluloid
|
@@ -118,14 +118,14 @@ dependencies:
|
|
118
118
|
requirements:
|
119
119
|
- - "~>"
|
120
120
|
- !ruby/object:Gem::Version
|
121
|
-
version: 0.0.
|
121
|
+
version: 0.0.4
|
122
122
|
type: :runtime
|
123
123
|
prerelease: false
|
124
124
|
version_requirements: !ruby/object:Gem::Requirement
|
125
125
|
requirements:
|
126
126
|
- - "~>"
|
127
127
|
- !ruby/object:Gem::Version
|
128
|
-
version: 0.0.
|
128
|
+
version: 0.0.4
|
129
129
|
description: Ruby-based microframework for robotics
|
130
130
|
email:
|
131
131
|
- artoo@hybridgroup.com
|
@@ -192,10 +192,12 @@ files:
|
|
192
192
|
- lib/artoo/api/device_event_client.rb
|
193
193
|
- lib/artoo/api/route_helpers.rb
|
194
194
|
- lib/artoo/basic.rb
|
195
|
+
- lib/artoo/commands/bluetooth.rb
|
195
196
|
- lib/artoo/commands/commands.rb
|
196
|
-
- lib/artoo/commands/connect.rb
|
197
197
|
- lib/artoo/commands/generate.rb
|
198
198
|
- lib/artoo/commands/install.rb
|
199
|
+
- lib/artoo/commands/scan.rb
|
200
|
+
- lib/artoo/commands/socket.rb
|
199
201
|
- lib/artoo/connection.rb
|
200
202
|
- lib/artoo/delegator.rb
|
201
203
|
- lib/artoo/device.rb
|
@@ -266,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
266
268
|
version: '0'
|
267
269
|
requirements: []
|
268
270
|
rubyforge_project: artoo
|
269
|
-
rubygems_version: 2.2.
|
271
|
+
rubygems_version: 2.2.2
|
270
272
|
signing_key:
|
271
273
|
specification_version: 4
|
272
274
|
summary: Ruby-based microframework for robotics
|
@@ -1,83 +0,0 @@
|
|
1
|
-
require 'thor'
|
2
|
-
require 'thor/group'
|
3
|
-
|
4
|
-
module Artoo
|
5
|
-
module Commands
|
6
|
-
class Connect < Commands
|
7
|
-
package_name "connect"
|
8
|
-
|
9
|
-
desc "scan", "Scan for connected devices"
|
10
|
-
option :type, :aliases => "-t", :default => "bluetooth", :desc => "type of scan [bluetooth, serial]"
|
11
|
-
def scan
|
12
|
-
case os
|
13
|
-
when :linux
|
14
|
-
case options[:type]
|
15
|
-
when 'bluetooth'
|
16
|
-
run("hcitool scan")
|
17
|
-
when 'serial'
|
18
|
-
run("ls /dev/tty*")
|
19
|
-
when 'usb'
|
20
|
-
run("lsusb")
|
21
|
-
else
|
22
|
-
say "ERROR: scan type '#{options[:type]}' not supported!"
|
23
|
-
end
|
24
|
-
when :macosx
|
25
|
-
run("ls /dev/tty*")
|
26
|
-
else
|
27
|
-
say "OS not yet supported..."
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
desc "bind [ADDRESS] [NAME]", "Binds a Bluetooth device to some connected hardware"
|
32
|
-
option :comm, :aliases => "-c", :default => 0, :desc => "Comm number"
|
33
|
-
option :radio, :aliases => "-r", :default => "hci0", :desc => "Bluetooth radio address"
|
34
|
-
def bind(address, name)
|
35
|
-
case os
|
36
|
-
when :linux
|
37
|
-
run("sudo rfcomm -i #{options[:radio]} bind /dev/rfcomm#{options[:comm]} #{address} 1")
|
38
|
-
run("sudo ln -s /dev/rfcomm#{options[:comm]} /dev/#{name}")
|
39
|
-
when :macosx
|
40
|
-
say "OSX binds devices on its own volition."
|
41
|
-
else
|
42
|
-
say "OS not yet supported..."
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
desc "serial [NAME] [PORT]", "Connect a serial device to a TCP socket using socat"
|
47
|
-
option :retries, :aliases => "-r", :default => 0, :desc => "Number of times to retry connecting on failure"
|
48
|
-
option :baudrate, :aliases => "-b", :default => 57600, :desc => "Baud rate to use to connect to the serial device"
|
49
|
-
def serial(name, port)
|
50
|
-
attempts = 1 + options[:retries].to_i
|
51
|
-
|
52
|
-
# check that Socat is installed
|
53
|
-
system("socat -V &> /dev/null")
|
54
|
-
unless $?.success?
|
55
|
-
say "Socat not installed. Cannot bind serial to TCP."
|
56
|
-
say "Please install with 'artoo install socat' and try again."
|
57
|
-
return
|
58
|
-
end
|
59
|
-
|
60
|
-
case os
|
61
|
-
when :linux
|
62
|
-
run("sudo chmod a+rw /dev/#{name}")
|
63
|
-
|
64
|
-
while(attempts > 0) do
|
65
|
-
run("socat -d -d FILE:/dev/#{name},nonblock,raw,b#{options[:baudrate]},echo=0 TCP-LISTEN:#{port},fork")
|
66
|
-
break unless $? == 1
|
67
|
-
attempts -= 1
|
68
|
-
end
|
69
|
-
|
70
|
-
when :macosx
|
71
|
-
while(attempts > 0) do
|
72
|
-
run("socat -d -d -b#{options[:baudrate]} FILE:/dev/#{name},nonblock,raw,echo=0 TCP-LISTEN:#{port},fork")
|
73
|
-
break unless $? == 1
|
74
|
-
attempts -= 1
|
75
|
-
end
|
76
|
-
|
77
|
-
else
|
78
|
-
say "OS not yet supported..."
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|