artoo 1.6.7 → 1.8.0
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/.gitignore +1 -0
- data/README.md +6 -20
- data/artoo.gemspec +7 -7
- data/bin/artoo +0 -8
- data/examples/ardrone_nav_video_wii.rb +1 -1
- data/examples/ardrone_nav_wiiclassic.rb +1 -1
- data/examples/ardrone_wiiclassic.rb +1 -1
- data/examples/firmata.rb +1 -1
- data/examples/firmata_button.rb +1 -1
- data/examples/hello_api_multiple.rb +1 -1
- data/examples/roomba_wiichuck.rb +1 -1
- data/examples/sphero.rb +2 -2
- data/examples/sphero_color.rb +1 -1
- data/examples/sphero_color_wiichuck.rb +2 -2
- data/examples/sphero_cycle.rb +1 -1
- data/examples/sphero_messages.rb +1 -1
- data/examples/sphero_pebble.rb +42 -0
- data/examples/sphero_wiichuck.rb +3 -3
- data/examples/test_bot.rb +23 -0
- data/examples/wiichuck.rb +1 -1
- data/examples/wiiclassic.rb +1 -1
- data/lib/artoo/api/api.rb +93 -30
- data/lib/artoo/api/device_event_client.rb +15 -10
- data/lib/artoo/api/route_helpers.rb +14 -3
- data/lib/artoo/connection.rb +8 -5
- data/lib/artoo/device.rb +29 -11
- data/lib/artoo/drivers/driver.rb +4 -0
- data/lib/artoo/drivers/{pinger.rb → ping.rb} +6 -6
- data/lib/artoo/interfaces/interface.rb +37 -0
- data/lib/artoo/interfaces/ping.rb +17 -0
- data/lib/artoo/interfaces/rover.rb +35 -0
- data/lib/artoo/master.rb +45 -3
- data/lib/artoo/robot.rb +33 -8
- data/lib/artoo/utility.rb +10 -0
- data/lib/artoo/version.rb +1 -1
- data/test/api/api_routes_test.rb +46 -0
- data/test/connection_test.rb +2 -2
- data/test/device_test.rb +8 -1
- data/test/interfaces/interface_test.rb +29 -0
- data/test/master_test.rb +13 -7
- metadata +32 -28
- data/Gemfile.lock +0 -88
- data/lib/artoo/commands/bluetooth.rb +0 -74
- data/lib/artoo/commands/scan.rb +0 -42
- data/lib/artoo/ext/actor.rb +0 -18
- data/lib/artoo/ext/timers.rb +0 -41
    
        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. | 
| 4 | 
            +
              version: 1.8.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ron Evans
         | 
| @@ -12,78 +12,78 @@ authors: | |
| 12 12 | 
             
            autorequire: 
         | 
| 13 13 | 
             
            bindir: bin
         | 
| 14 14 | 
             
            cert_chain: []
         | 
| 15 | 
            -
            date: 2014-04 | 
| 15 | 
            +
            date: 2014-08-04 00:00:00.000000000 Z
         | 
| 16 16 | 
             
            dependencies:
         | 
| 17 17 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 18 18 | 
             
              name: celluloid
         | 
| 19 19 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 20 20 | 
             
                requirements:
         | 
| 21 | 
            -
                - - " | 
| 21 | 
            +
                - - ">="
         | 
| 22 22 | 
             
                  - !ruby/object:Gem::Version
         | 
| 23 | 
            -
                    version: 0. | 
| 23 | 
            +
                    version: 0.16.0.pre
         | 
| 24 24 | 
             
              type: :runtime
         | 
| 25 25 | 
             
              prerelease: false
         | 
| 26 26 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 27 27 | 
             
                requirements:
         | 
| 28 | 
            -
                - - " | 
| 28 | 
            +
                - - ">="
         | 
| 29 29 | 
             
                  - !ruby/object:Gem::Version
         | 
| 30 | 
            -
                    version: 0. | 
| 30 | 
            +
                    version: 0.16.0.pre
         | 
| 31 31 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 32 32 | 
             
              name: celluloid-io
         | 
| 33 33 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 34 34 | 
             
                requirements:
         | 
| 35 | 
            -
                - - " | 
| 35 | 
            +
                - - ">="
         | 
| 36 36 | 
             
                  - !ruby/object:Gem::Version
         | 
| 37 | 
            -
                    version: 0. | 
| 37 | 
            +
                    version: 0.16.0.pre
         | 
| 38 38 | 
             
              type: :runtime
         | 
| 39 39 | 
             
              prerelease: false
         | 
| 40 40 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 41 | 
             
                requirements:
         | 
| 42 | 
            -
                - - " | 
| 42 | 
            +
                - - ">="
         | 
| 43 43 | 
             
                  - !ruby/object:Gem::Version
         | 
| 44 | 
            -
                    version: 0. | 
| 44 | 
            +
                    version: 0.16.0.pre
         | 
| 45 45 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 46 46 | 
             
              name: http
         | 
| 47 47 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 48 48 | 
             
                requirements:
         | 
| 49 49 | 
             
                - - "~>"
         | 
| 50 50 | 
             
                  - !ruby/object:Gem::Version
         | 
| 51 | 
            -
                    version: 0. | 
| 51 | 
            +
                    version: 0.6.1
         | 
| 52 52 | 
             
              type: :runtime
         | 
| 53 53 | 
             
              prerelease: false
         | 
| 54 54 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 55 55 | 
             
                requirements:
         | 
| 56 56 | 
             
                - - "~>"
         | 
| 57 57 | 
             
                  - !ruby/object:Gem::Version
         | 
| 58 | 
            -
                    version: 0. | 
| 58 | 
            +
                    version: 0.6.1
         | 
| 59 59 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 60 60 | 
             
              name: reel
         | 
| 61 61 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 62 62 | 
             
                requirements:
         | 
| 63 63 | 
             
                - - "~>"
         | 
| 64 64 | 
             
                  - !ruby/object:Gem::Version
         | 
| 65 | 
            -
                    version: 0. | 
| 65 | 
            +
                    version: 0.5.0
         | 
| 66 66 | 
             
              type: :runtime
         | 
| 67 67 | 
             
              prerelease: false
         | 
| 68 68 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 69 69 | 
             
                requirements:
         | 
| 70 70 | 
             
                - - "~>"
         | 
| 71 71 | 
             
                  - !ruby/object:Gem::Version
         | 
| 72 | 
            -
                    version: 0. | 
| 72 | 
            +
                    version: 0.5.0
         | 
| 73 73 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 74 74 | 
             
              name: multi_json
         | 
| 75 75 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 76 76 | 
             
                requirements:
         | 
| 77 77 | 
             
                - - "~>"
         | 
| 78 78 | 
             
                  - !ruby/object:Gem::Version
         | 
| 79 | 
            -
                    version: 1. | 
| 79 | 
            +
                    version: 1.10.1
         | 
| 80 80 | 
             
              type: :runtime
         | 
| 81 81 | 
             
              prerelease: false
         | 
| 82 82 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 83 83 | 
             
                requirements:
         | 
| 84 84 | 
             
                - - "~>"
         | 
| 85 85 | 
             
                  - !ruby/object:Gem::Version
         | 
| 86 | 
            -
                    version: 1. | 
| 86 | 
            +
                    version: 1.10.1
         | 
| 87 87 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 88 88 | 
             
              name: rake
         | 
| 89 89 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -118,28 +118,28 @@ dependencies: | |
| 118 118 | 
             
                requirements:
         | 
| 119 119 | 
             
                - - "~>"
         | 
| 120 120 | 
             
                  - !ruby/object:Gem::Version
         | 
| 121 | 
            -
                    version: 0. | 
| 121 | 
            +
                    version: 0.19.1
         | 
| 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. | 
| 128 | 
            +
                    version: 0.19.1
         | 
| 129 129 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 130 130 | 
             
              name: robeaux
         | 
| 131 131 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 132 132 | 
             
                requirements:
         | 
| 133 | 
            -
                - -  | 
| 133 | 
            +
                - - '='
         | 
| 134 134 | 
             
                  - !ruby/object:Gem::Version
         | 
| 135 | 
            -
                    version: 0.0 | 
| 135 | 
            +
                    version: 0.2.0
         | 
| 136 136 | 
             
              type: :runtime
         | 
| 137 137 | 
             
              prerelease: false
         | 
| 138 138 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 139 139 | 
             
                requirements:
         | 
| 140 | 
            -
                - -  | 
| 140 | 
            +
                - - '='
         | 
| 141 141 | 
             
                  - !ruby/object:Gem::Version
         | 
| 142 | 
            -
                    version: 0.0 | 
| 142 | 
            +
                    version: 0.2.0
         | 
| 143 143 | 
             
            description: Ruby-based microframework for robotics
         | 
| 144 144 | 
             
            email:
         | 
| 145 145 | 
             
            - artoo@hybridgroup.com
         | 
| @@ -156,7 +156,6 @@ files: | |
| 156 156 | 
             
            - ".yardopts"
         | 
| 157 157 | 
             
            - CONTRIBUTORS.md
         | 
| 158 158 | 
             
            - Gemfile
         | 
| 159 | 
            -
            - Gemfile.lock
         | 
| 160 159 | 
             
            - LICENSE
         | 
| 161 160 | 
             
            - README.md
         | 
| 162 161 | 
             
            - Rakefile
         | 
| @@ -192,7 +191,9 @@ files: | |
| 192 191 | 
             
            - examples/sphero_firmata.rb
         | 
| 193 192 | 
             
            - examples/sphero_messages.rb
         | 
| 194 193 | 
             
            - examples/sphero_multiple.rb
         | 
| 194 | 
            +
            - examples/sphero_pebble.rb
         | 
| 195 195 | 
             
            - examples/sphero_wiichuck.rb
         | 
| 196 | 
            +
            - examples/test_bot.rb
         | 
| 196 197 | 
             
            - examples/wiichuck.rb
         | 
| 197 198 | 
             
            - examples/wiiclassic.rb
         | 
| 198 199 | 
             
            - lib/artoo.rb
         | 
| @@ -206,11 +207,9 @@ files: | |
| 206 207 | 
             
            - lib/artoo/api/device_event_client.rb
         | 
| 207 208 | 
             
            - lib/artoo/api/route_helpers.rb
         | 
| 208 209 | 
             
            - lib/artoo/basic.rb
         | 
| 209 | 
            -
            - lib/artoo/commands/bluetooth.rb
         | 
| 210 210 | 
             
            - lib/artoo/commands/commands.rb
         | 
| 211 211 | 
             
            - lib/artoo/commands/generate.rb
         | 
| 212 212 | 
             
            - lib/artoo/commands/install.rb
         | 
| 213 | 
            -
            - lib/artoo/commands/scan.rb
         | 
| 214 213 | 
             
            - lib/artoo/commands/socket.rb
         | 
| 215 214 | 
             
            - lib/artoo/connection.rb
         | 
| 216 215 | 
             
            - lib/artoo/delegator.rb
         | 
| @@ -219,14 +218,12 @@ files: | |
| 219 218 | 
             
            - lib/artoo/drivers/device_info.rb
         | 
| 220 219 | 
             
            - lib/artoo/drivers/driver.rb
         | 
| 221 220 | 
             
            - lib/artoo/drivers/passthru.rb
         | 
| 222 | 
            -
            - lib/artoo/drivers/ | 
| 221 | 
            +
            - lib/artoo/drivers/ping.rb
         | 
| 223 222 | 
             
            - lib/artoo/drivers/random.rb
         | 
| 224 223 | 
             
            - lib/artoo/drivers/test.rb
         | 
| 225 224 | 
             
            - lib/artoo/events.rb
         | 
| 226 225 | 
             
            - lib/artoo/exceptions.rb
         | 
| 227 | 
            -
            - lib/artoo/ext/actor.rb
         | 
| 228 226 | 
             
            - lib/artoo/ext/numeric.rb
         | 
| 229 | 
            -
            - lib/artoo/ext/timers.rb
         | 
| 230 227 | 
             
            - lib/artoo/generators/adaptor.rb
         | 
| 231 228 | 
             
            - lib/artoo/generators/adaptor/Gemfile.tt
         | 
| 232 229 | 
             
            - lib/artoo/generators/adaptor/LICENSE
         | 
| @@ -240,6 +237,9 @@ files: | |
| 240 237 | 
             
            - lib/artoo/generators/adaptor/test/adaptors/%adaptor_name%_adaptor_test.rb.tt
         | 
| 241 238 | 
             
            - lib/artoo/generators/adaptor/test/drivers/%adaptor_name%_driver_test.rb.tt
         | 
| 242 239 | 
             
            - lib/artoo/generators/adaptor/test/test_helper.rb
         | 
| 240 | 
            +
            - lib/artoo/interfaces/interface.rb
         | 
| 241 | 
            +
            - lib/artoo/interfaces/ping.rb
         | 
| 242 | 
            +
            - lib/artoo/interfaces/rover.rb
         | 
| 243 243 | 
             
            - lib/artoo/main.rb
         | 
| 244 244 | 
             
            - lib/artoo/master.rb
         | 
| 245 245 | 
             
            - lib/artoo/port.rb
         | 
| @@ -249,6 +249,7 @@ files: | |
| 249 249 | 
             
            - lib/artoo/version.rb
         | 
| 250 250 | 
             
            - test/adaptors/adaptor_test.rb
         | 
| 251 251 | 
             
            - test/adaptors/loopback_test.rb
         | 
| 252 | 
            +
            - test/api/api_routes_test.rb
         | 
| 252 253 | 
             
            - test/api/api_test.rb
         | 
| 253 254 | 
             
            - test/artoo_test.rb
         | 
| 254 255 | 
             
            - test/connection_test.rb
         | 
| @@ -256,6 +257,7 @@ files: | |
| 256 257 | 
             
            - test/device_test.rb
         | 
| 257 258 | 
             
            - test/drivers/driver_test.rb
         | 
| 258 259 | 
             
            - test/ext/numeric_test.rb
         | 
| 260 | 
            +
            - test/interfaces/interface_test.rb
         | 
| 259 261 | 
             
            - test/master_test.rb
         | 
| 260 262 | 
             
            - test/port_test.rb
         | 
| 261 263 | 
             
            - test/robot_test.rb
         | 
| @@ -289,6 +291,7 @@ summary: Ruby-based microframework for robotics | |
| 289 291 | 
             
            test_files:
         | 
| 290 292 | 
             
            - test/adaptors/adaptor_test.rb
         | 
| 291 293 | 
             
            - test/adaptors/loopback_test.rb
         | 
| 294 | 
            +
            - test/api/api_routes_test.rb
         | 
| 292 295 | 
             
            - test/api/api_test.rb
         | 
| 293 296 | 
             
            - test/artoo_test.rb
         | 
| 294 297 | 
             
            - test/connection_test.rb
         | 
| @@ -296,6 +299,7 @@ test_files: | |
| 296 299 | 
             
            - test/device_test.rb
         | 
| 297 300 | 
             
            - test/drivers/driver_test.rb
         | 
| 298 301 | 
             
            - test/ext/numeric_test.rb
         | 
| 302 | 
            +
            - test/interfaces/interface_test.rb
         | 
| 299 303 | 
             
            - test/master_test.rb
         | 
| 300 304 | 
             
            - test/port_test.rb
         | 
| 301 305 | 
             
            - test/robot_test.rb
         | 
    
        data/Gemfile.lock
    DELETED
    
    | @@ -1,88 +0,0 @@ | |
| 1 | 
            -
            PATH
         | 
| 2 | 
            -
              remote: .
         | 
| 3 | 
            -
              specs:
         | 
| 4 | 
            -
                artoo (1.6.7)
         | 
| 5 | 
            -
                  celluloid (~> 0.15.0)
         | 
| 6 | 
            -
                  celluloid-io (~> 0.15.0)
         | 
| 7 | 
            -
                  http (~> 0.5.0)
         | 
| 8 | 
            -
                  multi_json (~> 1.6.0)
         | 
| 9 | 
            -
                  pry (~> 0.9.0)
         | 
| 10 | 
            -
                  rake
         | 
| 11 | 
            -
                  reel (~> 0.4.0)
         | 
| 12 | 
            -
                  robeaux (~> 0.0.4)
         | 
| 13 | 
            -
                  thor (~> 0.18.1)
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            GEM
         | 
| 16 | 
            -
              remote: http://rubygems.org/
         | 
| 17 | 
            -
              specs:
         | 
| 18 | 
            -
                celluloid (0.15.2)
         | 
| 19 | 
            -
                  timers (~> 1.1.0)
         | 
| 20 | 
            -
                celluloid-io (0.15.0)
         | 
| 21 | 
            -
                  celluloid (>= 0.15.0)
         | 
| 22 | 
            -
                  nio4r (>= 0.5.0)
         | 
| 23 | 
            -
                coderay (1.1.0)
         | 
| 24 | 
            -
                dotenv (0.9.0)
         | 
| 25 | 
            -
                foreman (0.63.0)
         | 
| 26 | 
            -
                  dotenv (>= 0.7)
         | 
| 27 | 
            -
                  thor (>= 0.13.6)
         | 
| 28 | 
            -
                foreman (0.63.0-java)
         | 
| 29 | 
            -
                  dotenv (>= 0.7)
         | 
| 30 | 
            -
                  thor (>= 0.13.6)
         | 
| 31 | 
            -
                http (0.5.0)
         | 
| 32 | 
            -
                  http_parser.rb
         | 
| 33 | 
            -
                http_parser.rb (0.6.0)
         | 
| 34 | 
            -
                json (1.7.7)
         | 
| 35 | 
            -
                json (1.7.7-java)
         | 
| 36 | 
            -
                kramdown (1.2.0)
         | 
| 37 | 
            -
                libv8 (3.16.14.3)
         | 
| 38 | 
            -
                metaclass (0.0.1)
         | 
| 39 | 
            -
                method_source (0.8.2)
         | 
| 40 | 
            -
                minitest (5.0.8)
         | 
| 41 | 
            -
                minitest-happy (1.0.0)
         | 
| 42 | 
            -
                mocha (0.14.0)
         | 
| 43 | 
            -
                  metaclass (~> 0.0.1)
         | 
| 44 | 
            -
                multi_json (1.6.1)
         | 
| 45 | 
            -
                nio4r (1.0.0)
         | 
| 46 | 
            -
                pry (0.9.12.6)
         | 
| 47 | 
            -
                  coderay (~> 1.0)
         | 
| 48 | 
            -
                  method_source (~> 0.8)
         | 
| 49 | 
            -
                  slop (~> 3.4)
         | 
| 50 | 
            -
                rake (10.2.2)
         | 
| 51 | 
            -
                reel (0.4.0)
         | 
| 52 | 
            -
                  celluloid (>= 0.15.1)
         | 
| 53 | 
            -
                  celluloid-io (>= 0.15.0)
         | 
| 54 | 
            -
                  http (>= 0.5.0)
         | 
| 55 | 
            -
                  http_parser.rb (>= 0.6.0.beta.2)
         | 
| 56 | 
            -
                  websocket_parser (>= 0.1.4)
         | 
| 57 | 
            -
                ref (1.0.5)
         | 
| 58 | 
            -
                robeaux (0.0.4)
         | 
| 59 | 
            -
                slop (3.5.0)
         | 
| 60 | 
            -
                therubyracer (0.12.0)
         | 
| 61 | 
            -
                  libv8 (~> 3.16.14.0)
         | 
| 62 | 
            -
                  ref
         | 
| 63 | 
            -
                therubyrhino (2.0.2)
         | 
| 64 | 
            -
                  therubyrhino_jar (>= 1.7.3)
         | 
| 65 | 
            -
                therubyrhino_jar (1.7.4)
         | 
| 66 | 
            -
                thor (0.18.1)
         | 
| 67 | 
            -
                timers (1.1.0)
         | 
| 68 | 
            -
                websocket_parser (0.1.6)
         | 
| 69 | 
            -
                yard (0.8.7.2)
         | 
| 70 | 
            -
                yard-sinatra (1.0.0)
         | 
| 71 | 
            -
                  yard (~> 0.7)
         | 
| 72 | 
            -
             | 
| 73 | 
            -
            PLATFORMS
         | 
| 74 | 
            -
              java
         | 
| 75 | 
            -
              ruby
         | 
| 76 | 
            -
             | 
| 77 | 
            -
            DEPENDENCIES
         | 
| 78 | 
            -
              artoo!
         | 
| 79 | 
            -
              foreman
         | 
| 80 | 
            -
              json (~> 1.7.7)
         | 
| 81 | 
            -
              kramdown
         | 
| 82 | 
            -
              minitest (~> 5.0.1)
         | 
| 83 | 
            -
              minitest-happy
         | 
| 84 | 
            -
              mocha (~> 0.14.0)
         | 
| 85 | 
            -
              therubyracer
         | 
| 86 | 
            -
              therubyrhino
         | 
| 87 | 
            -
              yard
         | 
| 88 | 
            -
              yard-sinatra
         | 
| @@ -1,74 +0,0 @@ | |
| 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
         | 
    
        data/lib/artoo/commands/scan.rb
    DELETED
    
    | @@ -1,42 +0,0 @@ | |
| 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
         | 
    
        data/lib/artoo/ext/actor.rb
    DELETED
    
    | @@ -1,18 +0,0 @@ | |
| 1 | 
            -
            # Monkeypatches for Celluloid Actor class
         | 
| 2 | 
            -
            module Celluloid
         | 
| 3 | 
            -
              def timers
         | 
| 4 | 
            -
                Actor.timers
         | 
| 5 | 
            -
              end
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              class Actor
         | 
| 8 | 
            -
                attr_accessor :timers
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                class << self
         | 
| 11 | 
            -
                  def timers
         | 
| 12 | 
            -
                    actor = Thread.current[:celluloid_actor]
         | 
| 13 | 
            -
                    raise NotActorError, "not in actor scope" unless actor
         | 
| 14 | 
            -
                    actor.timers
         | 
| 15 | 
            -
                  end
         | 
| 16 | 
            -
                end
         | 
| 17 | 
            -
              end
         | 
| 18 | 
            -
            end
         | 
    
        data/lib/artoo/ext/timers.rb
    DELETED
    
    | @@ -1,41 +0,0 @@ | |
| 1 | 
            -
            # Monkeypatches for Timers & Timer classes used by Celluloid
         | 
| 2 | 
            -
            class Timers
         | 
| 3 | 
            -
              def initialize
         | 
| 4 | 
            -
                @timers = SortedSet.new
         | 
| 5 | 
            -
                @paused_timers = SortedSet.new
         | 
| 6 | 
            -
              end
         | 
| 7 | 
            -
             | 
| 8 | 
            -
              def pause(timer = nil)
         | 
| 9 | 
            -
                return pause_all if timer.nil?
         | 
| 10 | 
            -
                raise TypeError, "not a Timers::Timer" unless timer.is_a? Timers::Timer
         | 
| 11 | 
            -
                @timers.delete timer
         | 
| 12 | 
            -
                @paused_timers.add timer
         | 
| 13 | 
            -
              end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
              def pause_all
         | 
| 16 | 
            -
                @timers.each {|timer| timer.pause}
         | 
| 17 | 
            -
              end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
              def continue(timer = nil)
         | 
| 20 | 
            -
                return continue_all if timer.nil?
         | 
| 21 | 
            -
                raise TypeError, "not a Timers::Timer" unless timer.is_a? Timers::Timer
         | 
| 22 | 
            -
                @paused_timers.delete timer
         | 
| 23 | 
            -
                @timers.add timer
         | 
| 24 | 
            -
              end
         | 
| 25 | 
            -
             | 
| 26 | 
            -
              def continue_all
         | 
| 27 | 
            -
                @paused_timers.each {|timer| timer.continue}
         | 
| 28 | 
            -
              end
         | 
| 29 | 
            -
             | 
| 30 | 
            -
              class Timer
         | 
| 31 | 
            -
                # Pause this timer
         | 
| 32 | 
            -
                def pause
         | 
| 33 | 
            -
                  @timers.pause self
         | 
| 34 | 
            -
                end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                # Continue this timer
         | 
| 37 | 
            -
                def continue
         | 
| 38 | 
            -
                  @timers.continue self
         | 
| 39 | 
            -
                end
         | 
| 40 | 
            -
              end
         | 
| 41 | 
            -
            end
         |