usbutils 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -9
- data/bin/usb-devices +1 -0
- data/lib/usbutils.rb +22 -24
- data/lib/usbutils/cli.rb +12 -19
- data/lib/usbutils/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f457bb52154815702f858cad6f446efaff89b0c4
|
4
|
+
data.tar.gz: cbb7883c2b255c2b26f86495686f593a87e80a78
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f8b83a7d53c7f8d90122827eb1ce06f59296d3e4bb2042a9e010d47b5dc7c9bd31183413881e7247479d4bbd1389d862ab211858b09d323b9a38e6adbed6852
|
7
|
+
data.tar.gz: eb1881bdc559095a7c5d6890ca2504e52ac27c8e1e7939a7a37edb3b83ca6b4bf384f1b56f6a8670e40d26eafed5f0e5bd8b5c6c17cdd6c8e8a2784d5c121348
|
data/README.md
CHANGED
@@ -1,24 +1,30 @@
|
|
1
1
|
# USBUtils
|
2
2
|
|
3
|
-
|
3
|
+
Utilities to control the USB devices.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
|
-
|
7
|
+
$ gem install usbutils
|
8
8
|
|
9
|
-
|
9
|
+
## Usage
|
10
10
|
|
11
|
-
|
11
|
+
show command list
|
12
12
|
|
13
|
-
$
|
13
|
+
$ usbutils
|
14
|
+
Commands:
|
15
|
+
usbutils devices # list all usb devices
|
16
|
+
usbutils help [COMMAND] # Describe available commands or one specific command
|
17
|
+
usbutils reset <serial no> # reset device
|
14
18
|
|
15
|
-
|
19
|
+
show usb devices
|
16
20
|
|
17
|
-
$
|
21
|
+
$ usbutils devices
|
22
|
+
serial=0000:00:06.0 product=OHCI Host Controller manufacturer=Linux 3.2.0-23-generic ohci_hcd
|
23
|
+
serial=01498A4D15005015 product=Galaxy Nexus manufacturer=samsung
|
18
24
|
|
19
|
-
|
25
|
+
reset(reconnect) usb device
|
20
26
|
|
21
|
-
|
27
|
+
$ usbutils reset 01498A4D15005015
|
22
28
|
|
23
29
|
## Contributing
|
24
30
|
|
data/bin/usb-devices
CHANGED
@@ -107,6 +107,7 @@ print_device() {
|
|
107
107
|
fi
|
108
108
|
speed=`cat speed`
|
109
109
|
maxchild=`cat maxchild`
|
110
|
+
printf "\nPATH: $devpath"
|
110
111
|
printf "\nT: Bus=%02i Lev=%02i Prnt=%02i Port=%02i Cnt=%02i Dev#=%3i Spd=%-3s MxCh=%2i\n" \
|
111
112
|
$busnum $level $parent $port $count $devnum $speed $maxchild
|
112
113
|
|
data/lib/usbutils.rb
CHANGED
@@ -6,9 +6,6 @@ require "usbutils/cli"
|
|
6
6
|
|
7
7
|
module USBUtils
|
8
8
|
class << self
|
9
|
-
def reset(serial)
|
10
|
-
end
|
11
|
-
|
12
9
|
def find_by(by, value)
|
13
10
|
devices.each do |device|
|
14
11
|
return device if device[by.to_sym] == value
|
@@ -21,14 +18,12 @@ module USBUtils
|
|
21
18
|
Dir.glob("/sys/bus/usb/devices/usb*") do |device|
|
22
19
|
set_device(devices, device, 0, 0)
|
23
20
|
end
|
24
|
-
devices
|
25
|
-
|
26
21
|
usb = LIBUSB::Context.new
|
27
22
|
usb.devices.each do |usbdev|
|
28
23
|
idvendor = format("%04x", usbdev.idVendor)
|
29
|
-
|
24
|
+
idproduct = format("%04x", usbdev.idProduct)
|
30
25
|
device = devices.select {|item| item[:idvendor] == idvendor && item[:idproduct] == idproduct}.first
|
31
|
-
|
26
|
+
device[:usbdev] = usbdev if device
|
32
27
|
end
|
33
28
|
devices
|
34
29
|
end
|
@@ -36,23 +31,26 @@ module USBUtils
|
|
36
31
|
def set_device(devices, devpath, parent, level)
|
37
32
|
return unless FileTest::directory?(devpath)
|
38
33
|
Dir.chdir(devpath) do
|
39
|
-
next unless File.exists? "
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
34
|
+
next unless File.exists? "busnum"
|
35
|
+
busnum = `cat busnum`.chomp
|
36
|
+
if File.exists? "serial"
|
37
|
+
devnum = `cat devnum`.chomp
|
38
|
+
idvendor = `cat idVendor`.chomp
|
39
|
+
idproduct = `cat idProduct`.chomp
|
40
|
+
manufacturer = `cat manufacturer`.chomp
|
41
|
+
product = `cat product`.chomp
|
42
|
+
serial = `cat serial`.chomp
|
43
|
+
devices << {
|
44
|
+
:serial => serial,
|
45
|
+
:idvendor => idvendor,
|
46
|
+
:idproduct => idproduct,
|
47
|
+
:manufacturer => manufacturer,
|
48
|
+
:product => product,
|
49
|
+
}
|
50
|
+
end
|
51
|
+
Dir.glob("#{devpath}/#{busnum}-*") do |subdev|
|
52
|
+
subdev = subdev.chomp
|
53
|
+
set_device devices, subdev, devnum, level + 1
|
56
54
|
end
|
57
55
|
end
|
58
56
|
end
|
data/lib/usbutils/cli.rb
CHANGED
@@ -4,30 +4,23 @@ require 'thor'
|
|
4
4
|
|
5
5
|
module USBUtils
|
6
6
|
class CLI < Thor
|
7
|
-
desc "
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
7
|
+
desc "devices", "list all usb devices"
|
8
|
+
option :detail, :aliases => "d"
|
9
|
+
def devices
|
10
|
+
devices = USBUtils.devices
|
11
|
+
USBUtils.devices.each do |device|
|
12
|
+
if options[:detail]
|
13
|
+
pp device
|
14
|
+
else
|
15
|
+
print "serial=#{device[:serial]}\tproduct=#{device[:product]}\tmanufacturer=#{device[:manufacturer]}\n"
|
16
|
+
end
|
17
|
+
end
|
16
18
|
end
|
17
19
|
|
18
20
|
desc "reset <serial no>", "reset device"
|
19
21
|
def reset(serial)
|
20
22
|
device = USBUtils.find_by(:serial, serial)
|
21
|
-
|
22
|
-
p device[:usbdev].open
|
23
|
-
#device[:usbdev].open.reset_device
|
24
|
-
end
|
25
|
-
|
26
|
-
desc "devices", "list all usb devices"
|
27
|
-
def devices
|
28
|
-
USBUtils.devices.each do |device|
|
29
|
-
pp device
|
30
|
-
end
|
23
|
+
device[:usbdev].open.reset_device
|
31
24
|
end
|
32
25
|
end
|
33
26
|
end
|
data/lib/usbutils/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: usbutils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- k-yamada
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|