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.
@@ -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
+
@@ -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"
@@ -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)
@@ -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)
@@ -0,0 +1,3 @@
1
+ require 'stringio'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/phidgets'
@@ -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
@@ -0,0 +1,2 @@
1
+
2
+ require File.dirname(__FILE__) + '/test_interfacekit.rb'
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