phidgets4r 0.0.3 → 0.0.5

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.
@@ -1,4 +1,3 @@
1
-
2
1
  require 'dl'
3
2
  require 'rbconfig'
4
3
 
@@ -164,12 +163,14 @@ module Phidgets
164
163
  @@server_status = nil
165
164
  @@device_id = nil
166
165
  @@device_class = nil
167
-
166
+
168
167
  def initialize
169
168
  if @@libname == nil
170
169
  case Config::CONFIG['target_os']
171
170
  when 'linux'
172
171
  @@libname = 'libphidget21.so'
172
+ when 'linux-eabi'
173
+ @@libname = 'libphidget21.so'
173
174
  when 'mswin32'
174
175
  @@libname = 'phidget21.dll'
175
176
  when 'darwin10.2.0'
@@ -188,7 +189,6 @@ module Phidgets
188
189
  end
189
190
 
190
191
  @handle = DL.malloc(DL.sizeof('P'))
191
-
192
192
  end
193
193
 
194
194
  private
@@ -260,6 +260,15 @@ module Phidgets
260
260
  arg_ptr.to_s
261
261
  end
262
262
 
263
+ def call_IPp(sym_name, func_name, arg1)
264
+ sym_name = sym(func_name, 'IPp') if sym_name == nil
265
+ arg_ptr = DL.malloc(DL.sizeof('P'))
266
+ r,rs = sym_name.call(arg1, arg_ptr.ref)
267
+ raise Phidgets::Exception.new(r) if r != 0
268
+ arg_ptr.free = nil
269
+ arg_ptr
270
+ end
271
+
263
272
  def createCallback(callback)
264
273
  DL.callback('IPP') {|handle,data|
265
274
  data = ObjectSpace._id2ref(data.to_i)
@@ -400,7 +409,7 @@ module Phidgets
400
409
  def getDeviceClass
401
410
  call_IPi(@@device_class, 'CPhidget_getDeviceClass', @handle)
402
411
  end
403
-
412
+
404
413
  end
405
414
 
406
415
  end
@@ -1,6 +1,3 @@
1
-
2
- #require 'phidgets/common'
3
-
4
1
  module Phidgets
5
2
 
6
3
  class InterfaceKit < Common
@@ -0,0 +1,64 @@
1
+ module Phidgets
2
+
3
+ class Manager < Common
4
+
5
+ @@create = nil
6
+ @@open = nil
7
+ @@close = nil
8
+ @@delete = nil
9
+ @@getdevices = nil
10
+
11
+ def initialize
12
+ super()
13
+
14
+ @manhandle = DL.malloc(DL.sizeof('P'))
15
+
16
+ create
17
+ open
18
+
19
+ end
20
+
21
+ def create
22
+ @@create = sym('CPhidgetManager_create', 'Ip') if @@create == nil
23
+ r, rs = @@create.call(@manhandle.ref)
24
+ raise Phidgets::Exception.new(r) if r != 0
25
+ end
26
+
27
+ def open
28
+ call_IX(@@open, 'CPhidgetManager_open', 'IP', @manhandle)
29
+ end
30
+
31
+ def close
32
+ call_IX(@@close, 'CPhidgetManager_close', 'IP', @manhandle)
33
+ end
34
+
35
+ def delete
36
+ call_IX(@@delete, 'CPhidgetManager_delete', 'IP', @manhandle)
37
+ end
38
+
39
+ def setOnDetachHandler(callback, data)
40
+ call_IXXX(@@detach_handler, 'CPhidgetManager_set_OnDetach_Handler', 'IPPP', @handle, createCallback(callback), DL::PtrData.new(data.object_id))
41
+ end
42
+
43
+ def setOnAttachHandler(callback, data)
44
+ call_IXXX(@@attach_handler, 'CPhidgetManager_set_OnAttach_Handler', 'IPPP', @handle, createCallback(callback), DL::PtrData.new(data.object_id))
45
+ end
46
+
47
+ def get_attached_devices
48
+
49
+ @devices = DL.malloc(DL.sizeof('P'))
50
+ @numDevices = DL.malloc(DL.sizeof('I'))
51
+
52
+ puts "|- # -|- Type -|- Serial No. -|- Version -|\n"
53
+ puts "|-------|----------------------------------|--------------|------------|\n"
54
+ @@getdevices = sym('CPhidgetManager_getAttachedDevices', 'IPPP') if @@getdevices == nil
55
+ r, rs = @@getdevices.call(@manhandle, @devices.ref, @numDevices.ref)
56
+ raise Phidgets::Exception.new(r) if r != 0
57
+ @numDevices.free = nil
58
+ puts "Num Devices: #{@numDevices.to_i}"
59
+
60
+ end
61
+
62
+ end
63
+
64
+ end
data/lib/phidgets/rfid.rb CHANGED
@@ -1,6 +1,3 @@
1
-
2
- #require 'phidgets/common'
3
-
4
1
  module Phidgets
5
2
 
6
3
  class RFID < Common
@@ -1,6 +1,3 @@
1
-
2
- #require 'phidgets/common'
3
-
4
1
  module Phidgets
5
2
 
6
3
  class Servo < Common
data/lib/phidgets4r.rb CHANGED
@@ -5,7 +5,8 @@ require File.dirname(__FILE__) + '/phidgets/common.rb'
5
5
  require File.dirname(__FILE__) + '/phidgets/interfacekit.rb'
6
6
  require File.dirname(__FILE__) + '/phidgets/rfid.rb'
7
7
  require File.dirname(__FILE__) + '/phidgets/servo.rb'
8
+ #require File.dirname(__FILE__) + '/phidgets/manager.rb'
8
9
 
9
10
  module Phidgets
10
- VERSION = '0.0.3'
11
+ VERSION = '0.0.5'
11
12
  end
data/test/test_helper.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  require 'stringio'
2
2
  require 'test/unit'
3
- require File.dirname(__FILE__) + '/../lib/phidgets'
3
+ require File.dirname(__FILE__) + '/../lib/phidgets4r'
@@ -0,0 +1,19 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestPhidgetsManager < Test::Unit::TestCase
4
+
5
+ def setup
6
+ sleep 1
7
+ end
8
+
9
+ def test_001_display_devices
10
+ assert_nothing_raised {
11
+ man = Phidgets::Manager.new
12
+ devices = man.get_attached_devices
13
+ sleep 1
14
+ puts "Sleeping Before Delete!"
15
+ #man.delete
16
+ }
17
+ end
18
+
19
+ end
@@ -2,4 +2,4 @@
2
2
  ## Hopefully we can continue to populate this list
3
3
 
4
4
  #require File.dirname(__FILE__) + '/test_interfacekit.rb'
5
- #require File.dirname(__FILE__) + '/test_servo.rb'
5
+ require File.dirname(__FILE__) + '/test_servo.rb'
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phidgets4r
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 21
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 0
8
- - 3
9
- version: 0.0.3
9
+ - 5
10
+ version: 0.0.5
10
11
  platform: ruby
11
12
  authors:
12
13
  - Kit Plummer
@@ -14,7 +15,7 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-05-16 00:00:00 -07:00
18
+ date: 2010-07-17 00:00:00 -07:00
18
19
  default_executable:
19
20
  dependencies: []
20
21
 
@@ -32,11 +33,13 @@ files:
32
33
  - GNU_GPL.txt
33
34
  - lib/phidgets/common.rb
34
35
  - lib/phidgets/interfacekit.rb
36
+ - lib/phidgets/manager.rb
35
37
  - lib/phidgets/rfid.rb
36
38
  - lib/phidgets/servo.rb
37
39
  - lib/phidgets4r.rb
38
40
  - test/test_helper.rb
39
41
  - test/test_interfacekit.rb
42
+ - test/test_manager.rb
40
43
  - test/test_phidgets.rb
41
44
  - test/test_servo.rb
42
45
  has_rdoc: true
@@ -49,23 +52,27 @@ rdoc_options: []
49
52
  require_paths:
50
53
  - lib
51
54
  required_ruby_version: !ruby/object:Gem::Requirement
55
+ none: false
52
56
  requirements:
53
57
  - - ">="
54
58
  - !ruby/object:Gem::Version
59
+ hash: 3
55
60
  segments:
56
61
  - 0
57
62
  version: "0"
58
63
  required_rubygems_version: !ruby/object:Gem::Requirement
64
+ none: false
59
65
  requirements:
60
66
  - - ">="
61
67
  - !ruby/object:Gem::Version
68
+ hash: 3
62
69
  segments:
63
70
  - 0
64
71
  version: "0"
65
72
  requirements:
66
73
  - none
67
74
  rubyforge_project: phidgets4r
68
- rubygems_version: 1.3.6
75
+ rubygems_version: 1.3.7
69
76
  signing_key:
70
77
  specification_version: 3
71
78
  summary: Interact with Phidgets via Ruby.