phidgets 0.0.1
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.
- data/GNU_GPL.txt +340 -0
- data/History.txt +4 -0
- data/Manifest.txt +16 -0
- data/PostInstall.txt +3 -0
- data/README.rdoc +64 -0
- data/Rakefile +28 -0
- data/lib/phidgets.rb +10 -0
- data/lib/phidgets/common.rb +395 -0
- data/lib/phidgets/interfacekit.rb +78 -0
- data/lib/phidgets/rfid.rb +83 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/test/test_helper.rb +3 -0
- data/test/test_interfacekit.rb +194 -0
- data/test/test_phidgets.rb +2 -0
- metadata +95 -0
@@ -0,0 +1,83 @@
|
|
1
|
+
|
2
|
+
#require 'phidgets/common'
|
3
|
+
|
4
|
+
module Phidgets
|
5
|
+
|
6
|
+
class RFID < Common
|
7
|
+
@@create = nil
|
8
|
+
@@output_count = nil
|
9
|
+
@@get_output_state = nil
|
10
|
+
@@set_output_state = nil
|
11
|
+
@@get_antenna_on = nil
|
12
|
+
@@set_antenna_on = nil
|
13
|
+
@@get_led_on = nil
|
14
|
+
@@set_led_on = nil
|
15
|
+
@@get_last_tag = nil
|
16
|
+
@@get_tag_status = nil
|
17
|
+
@@on_tag_handler = nil
|
18
|
+
@@tag_lost_handler = nil
|
19
|
+
|
20
|
+
def initialize(serial_number=-1, timeout=0)
|
21
|
+
super()
|
22
|
+
create
|
23
|
+
open(serial_number, timeout) if timeout > 0
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def create
|
29
|
+
@@create = sym('CPhidgetRFID_create', 'Ip') if @@create == nil
|
30
|
+
r,rs = @@create.call(@handle.ref)
|
31
|
+
raise Phidgets::Exception.new(r) if r != 0
|
32
|
+
end
|
33
|
+
|
34
|
+
public
|
35
|
+
|
36
|
+
def getOutputCount
|
37
|
+
call_IPi(@@output_count, 'CPhidgetRFID_getOutputCount', @handle)
|
38
|
+
end
|
39
|
+
|
40
|
+
def getOutputState(index)
|
41
|
+
call_IPIi(@@get_output_state, 'CPhidgetRFID_getOutputState', @handle, index)
|
42
|
+
end
|
43
|
+
|
44
|
+
def setOutputState(index, state)
|
45
|
+
call_IXXX(@@set_output_state, 'CPhidgetRFID_setOutputState', 'IPII', @handle, index, state)
|
46
|
+
end
|
47
|
+
|
48
|
+
def getAntennaOn
|
49
|
+
call_IPi(@@get_antenna_on, 'CPhidgetRFID_getAntennaOn', @handle)
|
50
|
+
end
|
51
|
+
|
52
|
+
def setAntennaOn(state)
|
53
|
+
call_IPX(@@set_antenna_on, 'CPhidgetRFID_setAntennaOn', 'IPI', @handle, state)
|
54
|
+
end
|
55
|
+
|
56
|
+
def getLedOn
|
57
|
+
call_IPi(@@get_led_on, 'CPhidgetRFID_getLEDOn', @handle)
|
58
|
+
end
|
59
|
+
|
60
|
+
def setLedOn(state)
|
61
|
+
call_IPX(@@set_led_on, 'CPhidgetRFID_setLEDOn', 'IPI', @handle, state)
|
62
|
+
end
|
63
|
+
|
64
|
+
def getLastTag
|
65
|
+
call_IPs(@@get_last_tag, 'CPhidgetRFID_getLastTag', @handle)
|
66
|
+
end
|
67
|
+
|
68
|
+
def getTagStatus
|
69
|
+
call_IPi(@@get_tag_status, 'CPhidgetRFID_getTagStatus', @handle)
|
70
|
+
end
|
71
|
+
|
72
|
+
def setOnTagHandler(callback, data)
|
73
|
+
call_IXXX(@@on_tag_handler, 'CPhidgetRFID_set_OnTag_Handler', 'IPPP', @handle, createCallback(callback), DL::PtrData.new(data.object_id))
|
74
|
+
end
|
75
|
+
|
76
|
+
def setOnTagLostHandler(callback, data)
|
77
|
+
call_IXXX(@@tag_lost_handler, 'CPhidgetRFID_set_OnTagLost_Handler', 'IPPP', @handle, createCallback(callback), DL::PtrData.new(data.object_id))
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
data/script/console
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# File: script/console
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
4
|
+
|
5
|
+
libs = " -r irb/completion"
|
6
|
+
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
7
|
+
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
8
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/phidgets.rb'}"
|
9
|
+
puts "Loading phidgets gem"
|
10
|
+
exec "#{irb} #{libs} --simple-prompt"
|
data/script/destroy
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/destroy'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'rubigen'
|
6
|
+
rescue LoadError
|
7
|
+
require 'rubygems'
|
8
|
+
require 'rubigen'
|
9
|
+
end
|
10
|
+
require 'rubigen/scripts/generate'
|
11
|
+
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
+
RubiGen::Scripts::Generate.new.run(ARGV)
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestPhidgetsInterfaceKit < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
sleep 1
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_001_create
|
10
|
+
assert_nothing_raised {
|
11
|
+
ik = Phidgets::InterfaceKit.new
|
12
|
+
ik.delete
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_002_attach
|
17
|
+
assert_nothing_raised {
|
18
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
19
|
+
ik.close
|
20
|
+
ik.delete
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_003_fail_attach
|
25
|
+
assert_raises (Phidgets::Exception) {
|
26
|
+
ik = Phidgets::InterfaceKit.new(1, 2000)
|
27
|
+
ik.delete
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_004_get_device_name
|
32
|
+
assert_nothing_raised {
|
33
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
34
|
+
ik.getDeviceName
|
35
|
+
ik.close
|
36
|
+
ik.delete
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_005_get_serial_number
|
41
|
+
assert_nothing_raised {
|
42
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
43
|
+
ik.getSerialNumber
|
44
|
+
ik.close
|
45
|
+
ik.delete
|
46
|
+
}
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_006_get_device_version
|
50
|
+
assert_nothing_raised {
|
51
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
52
|
+
ik.getDeviceVersion
|
53
|
+
ik.close
|
54
|
+
ik.delete
|
55
|
+
}
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_007_get_device_status
|
59
|
+
assert_nothing_raised {
|
60
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
61
|
+
ik.getDeviceStatus
|
62
|
+
ik.close
|
63
|
+
ik.delete
|
64
|
+
}
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_008_get_device_type
|
68
|
+
assert_nothing_raised {
|
69
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
70
|
+
ik.getDeviceType
|
71
|
+
ik.close
|
72
|
+
ik.delete
|
73
|
+
}
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_009_get_device_label
|
77
|
+
assert_nothing_raised {
|
78
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
79
|
+
ik.getDeviceLabel
|
80
|
+
ik.close
|
81
|
+
ik.delete
|
82
|
+
}
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_010_get_device_id
|
86
|
+
assert_nothing_raised {
|
87
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
88
|
+
ik.getDeviceID
|
89
|
+
ik.close
|
90
|
+
ik.delete
|
91
|
+
}
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_011_get_device_class
|
95
|
+
device_class = Phidgets::CLASS_NOTHING
|
96
|
+
assert_nothing_raised {
|
97
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
98
|
+
device_class = ik.getDeviceClass
|
99
|
+
ik.close
|
100
|
+
ik.delete
|
101
|
+
}
|
102
|
+
assert device_class == Phidgets::CLASS_INTERFACEKIT
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_012_get_input_count
|
106
|
+
device_id = 0
|
107
|
+
count = -1
|
108
|
+
assert_nothing_raised {
|
109
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
110
|
+
device_id = ik.getDeviceID
|
111
|
+
count = ik.getInputCount
|
112
|
+
ik.close
|
113
|
+
ik.delete
|
114
|
+
}
|
115
|
+
case device_id
|
116
|
+
when Phidgets::ID_INTERFACEKIT_0_0_4
|
117
|
+
assert count == 0
|
118
|
+
when Phidgets::ID_INTERFACEKIT_0_0_8
|
119
|
+
assert count == 0
|
120
|
+
when Phidgets::ID_INTERFACEKIT_0_16_16
|
121
|
+
assert count == 16
|
122
|
+
when Phidgets::ID_INTERFACEKIT_8_8_8
|
123
|
+
assert count == 8
|
124
|
+
when Phidgets::ID_INTERFACEKIT_8_8_8_w_LCD
|
125
|
+
assert count == 8
|
126
|
+
when Phidgets::ID_INTERFACEKIT_0_8_8_w_LCD
|
127
|
+
assert count == 8
|
128
|
+
when Phidgets::ID_INTERFACEKIT_4_8_8
|
129
|
+
assert count == 8
|
130
|
+
else
|
131
|
+
flunk
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_013_get_output_count
|
136
|
+
device_id = 0
|
137
|
+
count = -1
|
138
|
+
assert_nothing_raised {
|
139
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
140
|
+
device_id = ik.getDeviceID
|
141
|
+
count = ik.getOutputCount
|
142
|
+
ik.close
|
143
|
+
ik.delete
|
144
|
+
}
|
145
|
+
case device_id
|
146
|
+
when Phidgets::ID_INTERFACEKIT_0_0_4
|
147
|
+
assert count == 4
|
148
|
+
when Phidgets::ID_INTERFACEKIT_0_0_8
|
149
|
+
assert count == 8
|
150
|
+
when Phidgets::ID_INTERFACEKIT_0_16_16
|
151
|
+
assert count == 16
|
152
|
+
when Phidgets::ID_INTERFACEKIT_8_8_8
|
153
|
+
assert count == 8
|
154
|
+
when Phidgets::ID_INTERFACEKIT_8_8_8_w_LCD
|
155
|
+
assert count == 8
|
156
|
+
when Phidgets::ID_INTERFACEKIT_0_8_8_w_LCD
|
157
|
+
assert count == 8
|
158
|
+
when Phidgets::ID_INTERFACEKIT_4_8_8
|
159
|
+
assert count == 8
|
160
|
+
else
|
161
|
+
flunk
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
def test_014_get_sensor_count
|
166
|
+
device_id = 0
|
167
|
+
count = -1
|
168
|
+
assert_nothing_raised {
|
169
|
+
ik = Phidgets::InterfaceKit.new(-1, 2000)
|
170
|
+
device_id = ik.getDeviceID
|
171
|
+
count = ik.getSensorCount
|
172
|
+
ik.close
|
173
|
+
ik.delete
|
174
|
+
}
|
175
|
+
case device_id
|
176
|
+
when Phidgets::ID_INTERFACEKIT_0_0_4
|
177
|
+
assert count == 0
|
178
|
+
when Phidgets::ID_INTERFACEKIT_0_0_8
|
179
|
+
assert count == 0
|
180
|
+
when Phidgets::ID_INTERFACEKIT_0_16_16
|
181
|
+
assert count == 0
|
182
|
+
when Phidgets::ID_INTERFACEKIT_8_8_8
|
183
|
+
assert count == 8
|
184
|
+
when Phidgets::ID_INTERFACEKIT_8_8_8_w_LCD
|
185
|
+
assert count == 8
|
186
|
+
when Phidgets::ID_INTERFACEKIT_0_8_8_w_LCD
|
187
|
+
assert count == 0
|
188
|
+
when Phidgets::ID_INTERFACEKIT_4_8_8
|
189
|
+
assert count == 4
|
190
|
+
else
|
191
|
+
flunk
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
metadata
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: phidgets
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Craig DeHaan
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-04-23 00:00:00 -04:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: newgem
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.3.0
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: hoe
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.8.0
|
34
|
+
version:
|
35
|
+
description: Phidgets are a set of "plug and play" building blocks for low cost USB sensing and control from your PC. This gem provides a ruby interface to the phidgets library.
|
36
|
+
email:
|
37
|
+
- craig.s.dehaan@gmail.com
|
38
|
+
executables: []
|
39
|
+
|
40
|
+
extensions: []
|
41
|
+
|
42
|
+
extra_rdoc_files:
|
43
|
+
- GNU_GPL.txt
|
44
|
+
- History.txt
|
45
|
+
- Manifest.txt
|
46
|
+
- PostInstall.txt
|
47
|
+
- README.rdoc
|
48
|
+
files:
|
49
|
+
- GNU_GPL.txt
|
50
|
+
- History.txt
|
51
|
+
- Manifest.txt
|
52
|
+
- PostInstall.txt
|
53
|
+
- README.rdoc
|
54
|
+
- Rakefile
|
55
|
+
- lib/phidgets.rb
|
56
|
+
- lib/phidgets/common.rb
|
57
|
+
- lib/phidgets/interfacekit.rb
|
58
|
+
- lib/phidgets/rfid.rb
|
59
|
+
- script/console
|
60
|
+
- script/destroy
|
61
|
+
- script/generate
|
62
|
+
- test/test_helper.rb
|
63
|
+
- test/test_phidgets.rb
|
64
|
+
- test/test_interfacekit.rb
|
65
|
+
has_rdoc: true
|
66
|
+
homepage: http://phidgets.rubyforge.org
|
67
|
+
post_install_message: PostInstall.txt
|
68
|
+
rdoc_options:
|
69
|
+
- --main
|
70
|
+
- README.rdoc
|
71
|
+
require_paths:
|
72
|
+
- lib
|
73
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: "0"
|
78
|
+
version:
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: "0"
|
84
|
+
version:
|
85
|
+
requirements: []
|
86
|
+
|
87
|
+
rubyforge_project: phidgets
|
88
|
+
rubygems_version: 1.3.1
|
89
|
+
signing_key:
|
90
|
+
specification_version: 2
|
91
|
+
summary: Phidgets are a set of "plug and play" building blocks for low cost USB sensing and control from your PC
|
92
|
+
test_files:
|
93
|
+
- test/test_interfacekit.rb
|
94
|
+
- test/test_phidgets.rb
|
95
|
+
- test/test_helper.rb
|