rocket_launcher 0.0.2 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2f5329b904dac9417e7d967a6698d4c27f89c71d
4
- data.tar.gz: bac90e02abc8fb0d3ef4ce19839010816b214718
3
+ metadata.gz: c97bf626bf96f4a7faad7b80ea5e3b46a608cd74
4
+ data.tar.gz: 4c3d82b3f5a7ec58a3b914d4e7c9568ff680adf6
5
5
  SHA512:
6
- metadata.gz: a5435a3bba6ca65e8e801f81ac6ddd880fdc36cd7147b34bd71f77110aa3e77c820934607efd34ee8dd90dcd0c49eafe918a93aab758888b4d18a95d64bd8e38
7
- data.tar.gz: 66b77c7e11db0d9441a0e8e45dddee90faa1bba6e117eecd0f7405e63b7d59d8623654bb53510f1933c3a512ba6a7e52abd875fb7bf0c4fd6e4438af9755004d
6
+ metadata.gz: 8c7bd5eab27a279a95026fc5d63d864da474d51eb6310a12851ce96acb976e6d72f8d6cc1f3e8a6976160b5a2458a1a8b931db93c1abab896f9aab5c6c592d84
7
+ data.tar.gz: 5f04b8c069941e71d1d2eb7c6cf50a3ae73d28ee40fa297699071fd1bc3cb3a6623269d6db6f8c652630559cdf40f15e7e6fcdbab8b57ce8468bec14262b3897
data/bin/rl CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- #$LOAD_PATH << 'lib' << 'ext'
3
+ $LOAD_PATH << 'lib' << 'ext'
4
4
 
5
5
  require 'readline'
6
6
  require 'etc'
@@ -14,11 +14,11 @@ parser = OptionParser.new do |opts|
14
14
  opts.separator 'Controls an USB rocket launcher device.'
15
15
  opts.separator 'Valid commands are:' #{RocketLauncher::ACTIONS.keys.join(', ')}."
16
16
 
17
- opts.separator ' down : moves the turret down. Accept a time param. (donw 0.5)'
17
+ opts.separator ' down : moves the turret down. Accept a time param in seconds. (down 0.5)'
18
18
  opts.separator ' up : moves the turret up. Accept a time param. (up 0.5)'
19
19
  opts.separator ' left : turns the turret to the left. Accept a time param. (left 3)'
20
20
  opts.separator ' right : turns the turret to the right. Accept a time param. (right 3)'
21
- opts.separator ' fire : shots a missile. Accept the number of missile to shot. (fire 2)'
21
+ opts.separator ' fire : shots a missile. (fire)'
22
22
  opts.separator ' stop : interrupt current action. (stop)'
23
23
  opts.separator ' park : moves the turret to the start position. (park)'
24
24
  opts.separator ''
@@ -98,4 +98,4 @@ elsif options[:c]
98
98
  rl.close
99
99
  else
100
100
  puts parser.help; exit
101
- end
101
+ end
@@ -6,14 +6,12 @@ require 'mkmf'
6
6
 
7
7
  INCLUDE_DIRS = [
8
8
  RbConfig::CONFIG['includedir'],
9
- '/opt/local/include',
10
9
  '/usr/local/include',
11
10
  '/usr/include'
12
11
  ]
13
12
 
14
13
  LIB_DIRS = [
15
14
  RbConfig::CONFIG['libdir'],
16
- '/opt/local/lib',
17
15
  '/usr/local/lib',
18
16
  '/usr/lib'
19
17
  ]
data/ext/usb.c CHANGED
@@ -56,10 +56,11 @@ rl_close_device (VALUE self)
56
56
  }
57
57
 
58
58
  VALUE
59
- rl_write (VALUE self, VALUE cmd)
59
+ rl_write (VALUE self, VALUE cmd, VALUE mode)
60
60
  {
61
61
  USB *usb;
62
62
  Data_Get_Struct (self, USB, usb);
63
+ DATA[0] = mode == Qtrue ? 0x03 : 0x02;
63
64
  DATA[1] = NUM2CHR (cmd);
64
65
  if (libusb_control_transfer (usb->handler, 0x21, 0x9, 0, 0, DATA, 8, 0) != 8)
65
66
  rb_raise (error, "Write error");
@@ -74,5 +75,5 @@ Init_usb ()
74
75
  rb_define_alloc_func (usb, rl_usb_alloc);
75
76
  rb_define_method (usb, "open", rl_open_device, 2);
76
77
  rb_define_method (usb, "close", rl_close_device, 0);
77
- rb_define_method (usb, "write", rl_write, 1);
78
+ rb_define_method (usb, "write", rl_write, 2);
78
79
  }
@@ -10,7 +10,7 @@ class RocketLauncher
10
10
  :park => 0x00
11
11
  }
12
12
 
13
- def initialize(vendor_id = 8483, product_id = 4112)
13
+ def initialize(vendor_id = 0x2123, product_id = 0x1010)
14
14
  @usb = USB.new
15
15
  @usb.open(vendor_id, product_id)
16
16
  end
@@ -20,32 +20,35 @@ class RocketLauncher
20
20
  end
21
21
 
22
22
  def stop
23
- @usb.write(ACTIONS[:stop])
23
+ @usb.write(ACTIONS[:stop], false)
24
24
  end
25
25
 
26
- def fire(missiles = 1)
27
- missiles = 4 if missiles > 4
28
- missiles.to_i.times do
29
- @usb.write(ACTIONS[:fire])
30
- sleep 4
31
- stop
32
- end
26
+ def fire
27
+ light(true)
28
+ @usb.write(ACTIONS[:fire], false)
29
+ sleep 3.5
30
+ @usb.write(ACTIONS[:stop], false)
31
+ light(false)
33
32
  end
34
33
 
35
34
  [:down, :up, :left, :right].each do |dir|
36
35
  define_method dir do |time = 0.1|
37
- @usb.write(ACTIONS[dir])
36
+ @usb.write(ACTIONS[dir], false)
38
37
  sleep time
39
38
  stop
40
39
  end
41
40
  end
42
41
 
43
42
  def park
44
- @usb.write(ACTIONS[:down])
43
+ @usb.write(ACTIONS[:down], false)
45
44
  sleep 1
46
- @usb.write(ACTIONS[:left])
45
+ @usb.write(ACTIONS[:left], false)
47
46
  sleep 6
48
47
  stop
49
48
  end
50
49
 
50
+ def light(status)
51
+ @usb.write(status ? 0x01 : 0x00, true)
52
+ end
53
+
51
54
  end
@@ -1,3 +1,3 @@
1
1
  class RocketLauncher
2
- VERSION = '0.0.2'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocket_launcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Enrico Pilotto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-27 00:00:00.000000000 Z
11
+ date: 2018-01-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Ruby library to control your USB Rocket Launcher device.
14
14
  email:
@@ -52,7 +52,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - 'libusb1.0 - Debian package name: libusb-1.0-0-dev - Mac port package name: libusb-devel'
54
54
  rubyforge_project: rocket_launcher
55
- rubygems_version: 2.4.5
55
+ rubygems_version: 2.6.13
56
56
  signing_key:
57
57
  specification_version: 4
58
58
  summary: A Ruby library to control your USB Rocket Launcher device