phidgets-ffi 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. data/.gitignore +3 -0
  2. data/LICENSE +1 -1
  3. data/README.rdoc +92 -42
  4. data/examples/accelerometer.rb +39 -0
  5. data/examples/advanced_servo.rb +94 -0
  6. data/examples/analog.rb +43 -0
  7. data/examples/bridge.rb +57 -0
  8. data/examples/dictionary.rb +46 -31
  9. data/examples/encoder.rb +59 -0
  10. data/examples/frequency_counter.rb +63 -0
  11. data/examples/gps.rb +91 -0
  12. data/examples/interface_kit_with_block.rb +68 -0
  13. data/examples/interface_kit_without_block.rb +60 -0
  14. data/examples/ir.rb +157 -0
  15. data/examples/led.rb +36 -0
  16. data/examples/manager.rb +16 -10
  17. data/examples/motor_control.rb +108 -0
  18. data/examples/{ffi → raw-ffi}/dictionary.rb +11 -1
  19. data/examples/{ffi → raw-ffi}/interface_kit.rb +19 -2
  20. data/examples/{ffi → raw-ffi}/library_version.rb +0 -0
  21. data/examples/{ffi → raw-ffi}/log.rb +0 -0
  22. data/examples/{ffi → raw-ffi}/manager.rb +6 -3
  23. data/examples/rfid.rb +63 -0
  24. data/examples/servo.rb +45 -30
  25. data/examples/spatial.rb +75 -0
  26. data/examples/stepper.rb +87 -0
  27. data/examples/temperature_sensor.rb +49 -0
  28. data/examples/text_lcd.rb +101 -0
  29. data/lib/phidgets-ffi.rb +34 -3
  30. data/lib/phidgets-ffi/accelerometer.rb +122 -0
  31. data/lib/phidgets-ffi/advanced_servo.rb +304 -0
  32. data/lib/phidgets-ffi/analog.rb +111 -0
  33. data/lib/phidgets-ffi/bridge.rb +167 -0
  34. data/lib/phidgets-ffi/common.rb +506 -103
  35. data/lib/phidgets-ffi/dictionary.rb +136 -23
  36. data/lib/phidgets-ffi/encoder.rb +196 -0
  37. data/lib/phidgets-ffi/error.rb +8 -3
  38. data/lib/phidgets-ffi/ffi/accelerometer.rb +30 -0
  39. data/lib/phidgets-ffi/ffi/advanced_servo.rb +73 -0
  40. data/lib/phidgets-ffi/ffi/analog.rb +29 -0
  41. data/lib/phidgets-ffi/ffi/bridge.rb +44 -0
  42. data/lib/phidgets-ffi/ffi/common.rb +51 -34
  43. data/lib/phidgets-ffi/ffi/constants.rb +3 -1
  44. data/lib/phidgets-ffi/ffi/dictionary.rb +25 -20
  45. data/lib/phidgets-ffi/ffi/encoder.rb +32 -0
  46. data/lib/phidgets-ffi/ffi/frequency_counter.rb +38 -0
  47. data/lib/phidgets-ffi/ffi/gps.rb +32 -0
  48. data/lib/phidgets-ffi/ffi/interface_kit.rb +26 -23
  49. data/lib/phidgets-ffi/ffi/ir.rb +50 -0
  50. data/lib/phidgets-ffi/ffi/led.rb +40 -0
  51. data/lib/phidgets-ffi/ffi/log.rb +7 -6
  52. data/lib/phidgets-ffi/ffi/manager.rb +35 -20
  53. data/lib/phidgets-ffi/ffi/motor_control.rb +66 -0
  54. data/lib/phidgets-ffi/ffi/rfid.rb +36 -0
  55. data/lib/phidgets-ffi/ffi/servo.rb +16 -15
  56. data/lib/phidgets-ffi/ffi/spatial.rb +40 -0
  57. data/lib/phidgets-ffi/ffi/stepper.rb +56 -0
  58. data/lib/phidgets-ffi/ffi/temperature_sensor.rb +42 -0
  59. data/lib/phidgets-ffi/ffi/text_lcd.rb +55 -0
  60. data/lib/phidgets-ffi/frequency_counter.rb +148 -0
  61. data/lib/phidgets-ffi/gps.rb +181 -0
  62. data/lib/phidgets-ffi/interface_kit.rb +205 -92
  63. data/lib/phidgets-ffi/ir.rb +290 -0
  64. data/lib/phidgets-ffi/led.rb +112 -0
  65. data/lib/phidgets-ffi/log.rb +14 -2
  66. data/lib/phidgets-ffi/manager.rb +143 -26
  67. data/lib/phidgets-ffi/motor_control.rb +497 -0
  68. data/lib/phidgets-ffi/phidgets-ffi.rb +15 -2
  69. data/lib/phidgets-ffi/rfid.rb +220 -0
  70. data/lib/phidgets-ffi/servo.rb +103 -61
  71. data/lib/phidgets-ffi/spatial.rb +306 -0
  72. data/lib/phidgets-ffi/stepper.rb +370 -0
  73. data/lib/phidgets-ffi/temperature_sensor.rb +157 -0
  74. data/lib/phidgets-ffi/text_lcd.rb +298 -0
  75. data/lib/phidgets-ffi/version.rb +1 -1
  76. data/phidgets-ffi.gemspec +2 -2
  77. metadata +89 -76
  78. data/examples/ffi/servo.rb +0 -67
  79. data/examples/interface_kit.rb +0 -20
@@ -0,0 +1,32 @@
1
+ module Phidgets
2
+ module FFI
3
+ attach_function :CPhidgetGPS_create, [:phid], :int
4
+
5
+ attach_function :CPhidgetGPS_getLatitude, [:phid, :pointer], :int
6
+ attach_function :CPhidgetGPS_getLongitude, [:phid, :pointer], :int
7
+ attach_function :CPhidgetGPS_getAltitude, [:phid, :pointer], :int
8
+ attach_function :CPhidgetGPS_getHeading, [:phid, :pointer], :int
9
+ attach_function :CPhidgetGPS_getVelocity, [:phid, :pointer], :int
10
+ attach_function :CPhidgetGPS_getTime, [:phid, :pointer], :int
11
+ attach_function :CPhidgetGPS_getDate, [:phid, :pointer], :int
12
+ attach_function :CPhidgetGPS_getPositionFixStatus, [:phid, :pointer], :int
13
+
14
+ callback :CPhidgetGPS_set_OnPositionFixStatusChange_Callback, [:phid, :user_ptr, :int], :int
15
+ attach_function :CPhidgetGPS_set_OnPositionFixStatusChange_Handler, [:phid, :CPhidgetGPS_set_OnPositionFixStatusChange_Callback, :user_ptr], :int
16
+
17
+ callback :CPhidgetGPS_set_OnPositionChange_Callback, [:phid, :user_ptr, :double, :double, :double], :int
18
+ attach_function :CPhidgetGPS_set_OnPositionChange_Handler, [:phid, :CPhidgetGPS_set_OnPositionChange_Callback, :user_ptr], :int
19
+
20
+ module CPhidgetGPS
21
+ def self.method_missing(method, *args, &block)
22
+ if ::Phidgets::FFI.respond_to?("CPhidgetGPS_#{method}".to_sym)
23
+ if (rs = ::Phidgets::FFI.send("CPhidgetGPS_#{method}".to_sym, *args, &block)) != 0
24
+ raise Phidgets::Error.exception_for(rs), Phidgets::FFI.error_description(rs)
25
+ end
26
+ else
27
+ super(method, *args, &block)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,29 +1,32 @@
1
1
  module Phidgets
2
2
  module FFI
3
- attach_function :CPhidgetInterfaceKit_create, [:phid], :int #int CPhidgetInterfaceKit_create(CPhidgetInterfaceKitHandle *phid);
4
- attach_function :CPhidgetInterfaceKit_getInputCount, [:phid, :pointer], :int #int CPhidgetInterfaceKit_getInputCount(CPhidgetInterfaceKitHandle phid, int *count);
5
- attach_function :CPhidgetInterfaceKit_getInputState, [:phid, :int, :pointer], :int #int CPhidgetInterfaceKit_getInputState(CPhidgetInterfaceKitHandle phid, int index, int *inputState);
6
- callback :CPhidgetInterfaceKit_set_OnInputChange_Callback, [:phid, :user_ptr, :int, :int], :int
7
- attach_function :CPhidgetInterfaceKit_set_OnInputChange_Handler, [:phid, :CPhidgetInterfaceKit_set_OnInputChange_Callback, :user_ptr], :int #int CPhidgetInterfaceKit_set_OnInputChange_Handler(CPhidgetInterfaceKitHandle phid, int ( *fptr)(CPhidgetInterfaceKitHandle phid, void *userPtr, int index, int inputState), void *userPtr);
8
- attach_function :CPhidgetInterfaceKit_getOutputCount, [:phid, :pointer], :int #int CPhidgetInterfaceKit_getOutputCount(CPhidgetInterfaceKitHandle phid, int *count);
9
- attach_function :CPhidgetInterfaceKit_getOutputState, [:phid, :int, :pointer], :int #int CPhidgetInterfaceKit_getOutputState(CPhidgetInterfaceKitHandle phid, int index, int *outputState);
10
- attach_function :CPhidgetInterfaceKit_setOutputState, [:phid, :int, :int], :int #int CPhidgetInterfaceKit_setOutputState(CPhidgetInterfaceKitHandle phid, int index, int outputState);
11
- callback :CPhidgetInterfaceKit_set_OnOutputChange_Callback, [:phid, :user_ptr, :int, :int], :int
12
- attach_function :CPhidgetInterfaceKit_set_OnOutputChange_Handler, [:phid, :CPhidgetInterfaceKit_set_OnOutputChange_Callback, :user_ptr], :int #int CPhidgetInterfaceKit_set_OnOutputChange_Handler(CPhidgetInterfaceKitHandle phid, int ( *fptr)(CPhidgetInterfaceKitHandle phid, void *userPtr, int index, int outputState), void *userPtr);
13
- attach_function :CPhidgetInterfaceKit_getSensorCount, [:phid, :pointer], :int #int CPhidgetInterfaceKit_getSensorCount(CPhidgetInterfaceKitHandle phid, int *count);
14
- attach_function :CPhidgetInterfaceKit_getSensorValue, [:phid, :int, :pointer], :int #int CPhidgetInterfaceKit_getSensorValue(CPhidgetInterfaceKitHandle phid, int index, int *sensorValue);
15
- attach_function :CPhidgetInterfaceKit_getSensorRawValue, [:phid, :int, :pointer], :int #int CPhidgetInterfaceKit_getSensorRawValue(CPhidgetInterfaceKitHandle phid, int index, int *sensorRawValue);
16
- callback :CPhidgetInterfaceKit_set_OnSensorChange_Callback, [:phid, :user_ptr, :int, :int], :int
17
- attach_function :CPhidgetInterfaceKit_set_OnSensorChange_Handler, [:phid, :CPhidgetInterfaceKit_set_OnSensorChange_Callback, :user_ptr], :int #int CPhidgetInterfaceKit_set_OnSensorChange_Handler(CPhidgetInterfaceKitHandle phid, int ( *fptr)(CPhidgetInterfaceKitHandle phid, void *userPtr, int index, int sensorValue), void *userPtr);
18
- attach_function :CPhidgetInterfaceKit_getSensorChangeTrigger, [:phid, :int, :pointer], :int #int CPhidgetInterfaceKit_getSensorChangeTrigger(CPhidgetInterfaceKitHandle phid, int index, int *trigger);
19
- attach_function :CPhidgetInterfaceKit_setSensorChangeTrigger, [:phid, :int, :int], :int #int CPhidgetInterfaceKit_setSensorChangeTrigger(CPhidgetInterfaceKitHandle phid, int index, int trigger);
20
- attach_function :CPhidgetInterfaceKit_getRatiometric, [:phid, :pointer], :int #int CPhidgetInterfaceKit_getRatiometric(CPhidgetInterfaceKitHandle phid, int *ratiometric);
21
- attach_function :CPhidgetInterfaceKit_setRatiometric, [:phid, :int], :int #int CPhidgetInterfaceKit_setRatiometric(CPhidgetInterfaceKitHandle phid, int ratiometric);
22
- attach_function :CPhidgetInterfaceKit_getDataRate, [:phid, :int, :pointer], :int #int CPhidgetInterfaceKit_getDataRate(CPhidgetInterfaceKitHandle phid, int index, int *milliseconds);
23
- attach_function :CPhidgetInterfaceKit_setDataRate, [:phid, :int, :int], :int #int CPhidgetInterfaceKit_setDataRate(CPhidgetInterfaceKitHandle phid, int index, int milliseconds);
24
- attach_function :CPhidgetInterfaceKit_getDataRateMax, [:phid, :int, :pointer], :int #int CPhidgetInterfaceKit_getDataRateMax(CPhidgetInterfaceKitHandle phid, int index, int *max);
25
- attach_function :CPhidgetInterfaceKit_getDataRateMin, [:phid, :int, :pointer], :int #int CPhidgetInterfaceKit_getDataRateMin(CPhidgetInterfaceKitHandle phid, int index, int *min);
3
+ attach_function :CPhidgetInterfaceKit_create, [:phid], :int
4
+ attach_function :CPhidgetInterfaceKit_getInputCount, [:phid, :pointer], :int
5
+ attach_function :CPhidgetInterfaceKit_getInputState, [:phid, :int, :pointer], :int
6
+ attach_function :CPhidgetInterfaceKit_getOutputCount, [:phid, :pointer], :int
7
+ attach_function :CPhidgetInterfaceKit_getOutputState, [:phid, :int, :pointer], :int
8
+ attach_function :CPhidgetInterfaceKit_setOutputState, [:phid, :int, :int], :int
9
+ attach_function :CPhidgetInterfaceKit_getSensorCount, [:phid, :pointer], :int
10
+ attach_function :CPhidgetInterfaceKit_getSensorValue, [:phid, :int, :pointer], :int
11
+ attach_function :CPhidgetInterfaceKit_getSensorRawValue, [:phid, :int, :pointer], :int
12
+ attach_function :CPhidgetInterfaceKit_getSensorChangeTrigger, [:phid, :int, :pointer], :int
13
+ attach_function :CPhidgetInterfaceKit_setSensorChangeTrigger, [:phid, :int, :int], :int
14
+ attach_function :CPhidgetInterfaceKit_getRatiometric, [:phid, :pointer], :int
15
+ attach_function :CPhidgetInterfaceKit_setRatiometric, [:phid, :int], :int
16
+ attach_function :CPhidgetInterfaceKit_getDataRate, [:phid, :int, :pointer], :int
17
+ attach_function :CPhidgetInterfaceKit_setDataRate, [:phid, :int, :int], :int
18
+ attach_function :CPhidgetInterfaceKit_getDataRateMax, [:phid, :int, :pointer], :int
19
+ attach_function :CPhidgetInterfaceKit_getDataRateMin, [:phid, :int, :pointer], :int
26
20
 
21
+ callback :CPhidgetInterfaceKit_set_OnInputChange_Callback, [:phid, :user_ptr, :int, :int], :int
22
+ attach_function :CPhidgetInterfaceKit_set_OnInputChange_Handler, [:phid, :CPhidgetInterfaceKit_set_OnInputChange_Callback, :user_ptr], :int
23
+
24
+ callback :CPhidgetInterfaceKit_set_OnSensorChange_Callback, [:phid, :user_ptr, :int, :int], :int
25
+ attach_function :CPhidgetInterfaceKit_set_OnSensorChange_Handler, [:phid, :CPhidgetInterfaceKit_set_OnSensorChange_Callback, :user_ptr], :int
26
+
27
+ callback :CPhidgetInterfaceKit_set_OnOutputChange_Callback, [:phid, :user_ptr, :int, :int], :int
28
+ attach_function :CPhidgetInterfaceKit_set_OnOutputChange_Handler, [:phid, :CPhidgetInterfaceKit_set_OnOutputChange_Callback, :user_ptr], :int
29
+
27
30
  module CPhidgetInterfaceKit
28
31
  def self.method_missing(method, *args, &block)
29
32
  if ::Phidgets::FFI.respond_to?("CPhidgetInterfaceKit_#{method}".to_sym)
@@ -0,0 +1,50 @@
1
+ module Phidgets
2
+ module FFI
3
+
4
+ RAWDATA_LONGSPACE = 0x7fffffff
5
+
6
+ IREncoding = enum(
7
+ :encoding_unknown , 1,
8
+ :encoding_space,
9
+ :encoding_pulse,
10
+ :encoding_biphase,
11
+ :encoding_rc5,
12
+ :encoding_rc6
13
+ )
14
+
15
+ IRLength = enum(
16
+ :length_unknown , 1,
17
+ :length_constant,
18
+ :length_variable
19
+ )
20
+
21
+ attach_function :CPhidgetIR_create, [:phid], :int
22
+ attach_function :CPhidgetIR_Transmit, [:phid, :pointer, :pointer], :int
23
+ attach_function :CPhidgetIR_TransmitRepeat, [:phid], :int
24
+ attach_function :CPhidgetIR_TransmitRaw, [:phid, :pointer, :int, :int, :int, :int], :int
25
+ attach_function :CPhidgetIR_getRawData, [:phid, :pointer, :pointer], :int
26
+ attach_function :CPhidgetIR_getLastCode, [:phid, :pointer, :pointer, :pointer], :int
27
+ attach_function :CPhidgetIR_getLastLearnedCode, [:phid, :pointer, :pointer, :pointer], :int
28
+
29
+ callback :CPhidgetIR_set_OnCode_Callback, [:phid, :user_ptr, :pointer, :int, :int, :int], :int
30
+ attach_function :CPhidgetIR_set_OnCode_Handler, [:phid, :CPhidgetIR_set_OnCode_Callback, :user_ptr], :int
31
+
32
+ callback :CPhidgetIR_set_OnLearn_Callback, [:phid, :user_ptr, :pointer, :int, :pointer], :int
33
+ attach_function :CPhidgetIR_set_OnLearn_Handler, [:phid, :CPhidgetIR_set_OnLearn_Callback, :user_ptr], :int
34
+
35
+ callback :CPhidgetIR_set_OnRawData_Callback, [:phid, :user_ptr, :pointer, :int], :int
36
+ attach_function :CPhidgetIR_set_OnRawData_Handler, [:phid, :CPhidgetIR_set_OnRawData_Callback, :user_ptr], :int
37
+
38
+ module CPhidgetIR
39
+ def self.method_missing(method, *args, &block)
40
+ if ::Phidgets::FFI.respond_to?("CPhidgetIR_#{method}".to_sym)
41
+ if (rs = ::Phidgets::FFI.send("CPhidgetIR_#{method}".to_sym, *args, &block)) != 0
42
+ raise Phidgets::Error.exception_for(rs), Phidgets::FFI.error_description(rs)
43
+ end
44
+ else
45
+ super(method, *args, &block)
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,40 @@
1
+ module Phidgets
2
+ module FFI
3
+
4
+ LEDCurrentLimit = enum(
5
+ :current_limit_20mA, 1,
6
+ :current_limit_40mA,
7
+ :current_limit_60mA,
8
+ :current_limit_80mA,
9
+ :invalid
10
+ )
11
+
12
+ LEDVoltage = enum(
13
+ :voltage_1_7V, 1,
14
+ :voltage_2_75V,
15
+ :voltage_3_9V,
16
+ :voltage_5_0V
17
+ )
18
+
19
+ attach_function :CPhidgetLED_create, [:phid], :int
20
+ attach_function :CPhidgetLED_getLEDCount, [:phid, :pointer], :int
21
+ attach_function :CPhidgetLED_getDiscreteLED, [:phid, :int, :pointer], :int
22
+ attach_function :CPhidgetLED_setDiscreteLED, [:phid, :int, :int], :int
23
+ attach_function :CPhidgetLED_getCurrentLimit, [:phid, :pointer], :int
24
+ attach_function :CPhidgetLED_setCurrentLimit, [:phid, LEDCurrentLimit], :int
25
+ attach_function :CPhidgetLED_getVoltage, [:phid, :pointer], :int
26
+ attach_function :CPhidgetLED_setVoltage, [:phid, LEDVoltage], :int
27
+
28
+ module CPhidgetLED
29
+ def self.method_missing(method, *args, &block)
30
+ if ::Phidgets::FFI.respond_to?("CPhidgetLED_#{method}".to_sym)
31
+ if (rs = ::Phidgets::FFI.send("CPhidgetLED_#{method}".to_sym, *args, &block)) != 0
32
+ raise Phidgets::Error.exception_for(rs), Phidgets::FFI.error_description(rs)
33
+ end
34
+ else
35
+ super(method, *args, &block)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -9,9 +9,9 @@ module Phidgets
9
9
  :verbose
10
10
  )
11
11
 
12
- attach_function :CPhidget_enableLogging, [LogLevel, :string], :int #int CPhidget_enableLogging(CPhidgetLog_level level, const char *outputFile);
13
- attach_function :CPhidget_disableLogging, [], :int #int CPhidget_disableLogging();
14
- attach_function :CPhidget_log, [LogLevel, :string, :string, :varargs], :int #int CPhidget_log(CPhidgetLog_level level, const char *id, const char *message, ...);
12
+ attach_function :CPhidget_enableLogging, [LogLevel, :string], :int
13
+ attach_function :CPhidget_disableLogging, [], :int
14
+ attach_function :CPhidget_log, [LogLevel, :string, :string, :varargs], :int
15
15
 
16
16
  module Log
17
17
  def self.log(loglevel, identifier, message, *args)
@@ -23,11 +23,12 @@ module Phidgets
23
23
  end
24
24
 
25
25
  def self.method_missing(method, *args, &block)
26
+
26
27
  if ::Phidgets::FFI.respond_to?("CPhidget_#{method}".to_sym)
27
- if (rs = ::Phidgets::FFI.send("CPhidget_#{method}".to_sym, *args, &block)) != 0
28
- raise Phidgets::Error.exception_for(rs), Phidgets::FFI.error_description(rs)
28
+ if (rs = ::Phidgets::FFI.send("CPhidget_#{method}".to_sym, *args, &block)) != 0
29
+ raise Phidgets::Error.exception_for(rs), Phidgets::FFI.error_description(rs)
29
30
  end
30
- else
31
+ else
31
32
  super(method, *args, &block)
32
33
  end
33
34
  end
@@ -1,27 +1,42 @@
1
1
  module Phidgets
2
2
  module FFI
3
- typedef :pointer, :phidm
4
3
 
5
- attach_function :CPhidgetManager_create, [:phidm], :int #int CPhidgetManager_create(CPhidgetManagerHandle *phidm);
6
- attach_function :CPhidgetManager_open, [:phidm], :int #int CPhidgetManager_open(CPhidgetManagerHandle phidm);
7
- attach_function :CPhidgetManager_close, [:phidm], :int #int CPhidgetManager_close(CPhidgetManagerHandle phidm);
8
- attach_function :CPhidgetManager_delete, [:phidm], :int #int CPhidgetManager_delete(CPhidgetManagerHandle phidm);
9
- callback :CPhidgetManager_set_OnAttach_Callback, [:phid, :user_ptr], :int
10
- attach_function :CPhidgetManager_set_OnAttach_Handler, [:phidm, :CPhidgetManager_set_OnAttach_Callback, :user_ptr], :int #int CPhidgetManager_set_OnAttach_Handler(CPhidgetManagerHandle phidm, int ( *fptr)(CPhidgetHandle phid, void *userPtr), void *userPtr);
11
- callback :CPhidgetManager_set_OnDetach_Callback, [:phid, :user_ptr], :int
12
- attach_function :CPhidgetManager_set_OnDetach_Handler, [:phidm, :CPhidgetManager_set_OnDetach_Callback, :user_ptr], :int #int CPhidgetManager_set_OnDetach_Handler(CPhidgetManagerHandle phidm, int ( *fptr)(CPhidgetHandle phid, void *userPtr), void *userPtr);
13
- attach_function :CPhidgetManager_getAttachedDevices, [:phidm, :pointer, :pointer], :int #int CPhidgetManager_getAttachedDevices(CPhidgetManagerHandle phidm, CPhidgetHandle *phidArray[], int *count);
14
- attach_function :CPhidgetManager_freeAttachedDevicesArray, [:pointer], :int #int CPhidgetManager_freeAttachedDevicesArray(CPhidgetHandle phidArray[]);
15
- callback :CPhidgetManager_set_OnError_Callback, [:phidm, :user_ptr, :int, :string], :int
16
- attach_function :CPhidgetManager_set_OnError_Handler, [:phidm, :CPhidgetManager_set_OnError_Callback, :user_ptr], :int #int CPhidgetManager_set_OnError_Handler(CPhidgetManagerHandle phidm, int( *fptr)(CPhidgetManagerHandle phidm, void *userPtr, int errorCode, const char *errorString), void *userPtr);
17
- callback :CPhidgetManager_set_OnServerConnect_Callback, [:phidm, :user_ptr], :int
18
- attach_function :CPhidgetManager_set_OnServerConnect_Handler, [:phidm, :CPhidgetManager_set_OnServerConnect_Callback, :user_ptr], :int #int CPhidgetManager_set_OnServerConnect_Handler(CPhidgetManagerHandle phidm, int ( *fptr)(CPhidgetManagerHandle phidm, void *userPtr), void *userPtr);
19
- callback :CPhidgetManager_set_OnServerDisconnect_Callback, [:phidm, :user_ptr], :int
20
- attach_function :CPhidgetManager_set_OnServerDisconnect_Handler, [:phidm, :CPhidgetManager_set_OnServerDisconnect_Callback, :user_ptr], :int #int CPhidgetManager_set_OnServerDisconnect_Handler(CPhidgetManagerHandle phidm, int ( *fptr)(CPhidgetManagerHandle phidm, void *userPtr), void *userPtr);
21
- attach_function :CPhidgetManager_getServerID, [:phidm, :pointer], :int #int CPhidgetManager_getServerID(CPhidgetManagerHandle phidm, const char **serverID);
22
- attach_function :CPhidgetManager_getServerAddress, [:phidm, :pointer, :pointer], :int#int CPhidgetManager_getServerAddress(CPhidgetManagerHandle phidm, const char **address, int *port);
4
+ if Config::CONFIG['target_os'] =~ /darwin/ #Mac OS X
5
+ FFI_POINTER_SIZE = 4
6
+ else #Linux
7
+ FFI_POINTER_SIZE = 8
8
+ end
9
+
10
+ typedef :pointer, :phidm
23
11
 
24
- module CPhidgetManager
12
+ attach_function :CPhidgetManager_create, [:phidm], :int
13
+ attach_function :CPhidgetManager_open, [:phidm], :int
14
+ attach_function :CPhidgetManager_openRemote, [:phidm, :string, :string], :int
15
+ attach_function :CPhidgetManager_openRemoteIP, [:phidm, :string, :int, :string], :int
16
+ attach_function :CPhidgetManager_close, [:phidm], :int
17
+ attach_function :CPhidgetManager_delete, [:phidm], :int
18
+ attach_function :CPhidgetManager_getAttachedDevices, [:phidm, :pointer, :pointer], :int
19
+ attach_function :CPhidgetManager_freeAttachedDevicesArray, [:pointer], :int
20
+ attach_function :CPhidgetManager_getServerID, [:phidm, :pointer], :int
21
+ attach_function :CPhidgetManager_getServerAddress, [:phidm, :pointer, :pointer], :int
22
+ attach_function :CPhidgetManager_getServerStatus, [:phidm, :pointer], :int
23
+
24
+ callback :CPhidgetManager_set_OnAttach_Callback, [:phid, :user_ptr], :int
25
+ attach_function :CPhidgetManager_set_OnAttach_Handler, [:phidm, :CPhidgetManager_set_OnAttach_Callback, :user_ptr], :int
26
+
27
+ callback :CPhidgetManager_set_OnDetach_Callback, [:phid, :user_ptr], :int
28
+ attach_function :CPhidgetManager_set_OnDetach_Handler, [:phidm, :CPhidgetManager_set_OnDetach_Callback, :user_ptr], :int
29
+
30
+ callback :CPhidgetManager_set_OnError_Callback, [:phidm, :user_ptr, :int, :string], :int
31
+ attach_function :CPhidgetManager_set_OnError_Handler, [:phidm, :CPhidgetManager_set_OnError_Callback, :user_ptr], :int
32
+
33
+ callback :CPhidgetManager_set_OnServerConnect_Callback, [:phidm, :user_ptr], :int
34
+ attach_function :CPhidgetManager_set_OnServerConnect_Handler, [:phidm, :CPhidgetManager_set_OnServerConnect_Callback, :user_ptr], :int
35
+
36
+ callback :CPhidgetManager_set_OnServerDisconnect_Callback, [:phidm, :user_ptr], :int
37
+ attach_function :CPhidgetManager_set_OnServerDisconnect_Handler, [:phidm, :CPhidgetManager_set_OnServerDisconnect_Callback, :user_ptr], :int
38
+
39
+ module CPhidgetManager
25
40
  def self.method_missing(method, *args, &block)
26
41
  if ::Phidgets::FFI.respond_to?("CPhidgetManager_#{method}".to_sym)
27
42
  if (rs = ::Phidgets::FFI.send("CPhidgetManager_#{method}".to_sym, *args, &block)) != 0
@@ -0,0 +1,66 @@
1
+ module Phidgets
2
+ module FFI
3
+
4
+ attach_function :CPhidgetMotorControl_create, [:phid], :int
5
+ attach_function :CPhidgetMotorControl_getMotorCount, [:phid, :pointer], :int
6
+ attach_function :CPhidgetMotorControl_getInputCount, [:phid, :pointer], :int
7
+ attach_function :CPhidgetMotorControl_getEncoderCount, [:phid, :pointer], :int
8
+ attach_function :CPhidgetMotorControl_getSensorCount, [:phid, :pointer], :int
9
+ attach_function :CPhidgetMotorControl_getVelocity, [:phid, :int, :pointer], :int
10
+ attach_function :CPhidgetMotorControl_setVelocity, [:phid, :int, :double], :int
11
+ attach_function :CPhidgetMotorControl_getAcceleration, [:phid, :int, :pointer], :int
12
+ attach_function :CPhidgetMotorControl_setAcceleration, [:phid, :int, :double], :int
13
+ attach_function :CPhidgetMotorControl_getAccelerationMax, [:phid, :int, :pointer], :int
14
+ attach_function :CPhidgetMotorControl_getAccelerationMin, [:phid, :int, :pointer], :int
15
+ attach_function :CPhidgetMotorControl_getCurrent, [:phid, :int, :pointer], :int
16
+ attach_function :CPhidgetMotorControl_getInputState, [:phid, :int, :pointer], :int
17
+ attach_function :CPhidgetMotorControl_getEncoderPosition, [:phid, :int, :pointer], :int
18
+ attach_function :CPhidgetMotorControl_setEncoderPosition, [:phid, :int, :int], :int
19
+ attach_function :CPhidgetMotorControl_getBackEMFSensingState, [:phid, :int, :pointer], :int
20
+ attach_function :CPhidgetMotorControl_setBackEMFSensingState, [:phid, :int, :int], :int
21
+ attach_function :CPhidgetMotorControl_getBackEMF, [:phid, :int, :pointer], :int
22
+ attach_function :CPhidgetMotorControl_getSupplyVoltage, [:phid, :pointer], :int
23
+ attach_function :CPhidgetMotorControl_getBraking, [:phid, :int, :pointer], :int
24
+ attach_function :CPhidgetMotorControl_setBraking, [:phid, :int, :double], :int
25
+ attach_function :CPhidgetMotorControl_getSensorValue, [:phid, :int, :pointer], :int
26
+ attach_function :CPhidgetMotorControl_getSensorRawValue, [:phid, :int, :pointer], :int
27
+ attach_function :CPhidgetMotorControl_getRatiometric, [:phid, :pointer], :int
28
+ attach_function :CPhidgetMotorControl_setRatiometric, [:phid, :int], :int
29
+
30
+ callback :CPhidgetMotorControl_set_OnVelocityChange_Callback, [:phid, :user_ptr, :int, :double], :int
31
+ attach_function :CPhidgetMotorControl_set_OnVelocityChange_Handler, [:phid, :CPhidgetMotorControl_set_OnVelocityChange_Callback, :user_ptr], :int
32
+
33
+ callback :CPhidgetMotorControl_set_OnCurrentChange_Callback, [:phid, :user_ptr, :int, :double], :int
34
+ attach_function :CPhidgetMotorControl_set_OnCurrentChange_Handler, [:phid, :CPhidgetMotorControl_set_OnCurrentChange_Callback, :user_ptr], :int
35
+
36
+ callback :CPhidgetMotorControl_set_OnInputChange_Callback, [:phid, :user_ptr, :int, :int], :int
37
+ attach_function :CPhidgetMotorControl_set_OnInputChange_Handler, [:phid, :CPhidgetMotorControl_set_OnInputChange_Callback, :user_ptr], :int
38
+
39
+ callback :CPhidgetMotorControl_set_OnEncoderPositionChange_Callback, [:phid, :user_ptr, :int, :int, :int], :int
40
+ attach_function :CPhidgetMotorControl_set_OnEncoderPositionChange_Handler, [:phid, :CPhidgetMotorControl_set_OnEncoderPositionChange_Callback, :user_ptr], :int
41
+
42
+ callback :CPhidgetMotorControl_set_OnEncoderPositionUpdate_Callback, [:phid, :user_ptr, :int, :int], :int
43
+ attach_function :CPhidgetMotorControl_set_OnEncoderPositionUpdate_Handler, [:phid, :CPhidgetMotorControl_set_OnEncoderPositionUpdate_Callback, :user_ptr], :int
44
+
45
+ callback :CPhidgetMotorControl_set_OnBackEMFUpdate_Callback, [:phid, :user_ptr, :int, :double], :int
46
+ attach_function :CPhidgetMotorControl_set_OnBackEMFUpdate_Handler, [:phid, :CPhidgetMotorControl_set_OnBackEMFUpdate_Callback, :user_ptr], :int
47
+
48
+ callback :CPhidgetMotorControl_set_OnSensorUpdate_Callback, [:phid, :user_ptr, :int, :int], :int
49
+ attach_function :CPhidgetMotorControl_set_OnSensorUpdate_Handler, [:phid, :CPhidgetMotorControl_set_OnSensorUpdate_Callback, :user_ptr], :int
50
+
51
+ callback :CPhidgetMotorControl_set_OnCurrentUpdate_Callback, [:phid, :user_ptr, :int, :double], :int
52
+ attach_function :CPhidgetMotorControl_set_OnCurrentUpdate_Handler, [:phid, :CPhidgetMotorControl_set_OnCurrentUpdate_Callback, :user_ptr], :int
53
+
54
+ module CPhidgetMotorControl
55
+ def self.method_missing(method, *args, &block)
56
+ if ::Phidgets::FFI.respond_to?("CPhidgetMotorControl_#{method}".to_sym)
57
+ if (rs = ::Phidgets::FFI.send("CPhidgetMotorControl_#{method}".to_sym, *args, &block)) != 0
58
+ raise Phidgets::Error.exception_for(rs), Phidgets::FFI.error_description(rs)
59
+ end
60
+ else
61
+ super(method, *args, &block)
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,36 @@
1
+ module Phidgets
2
+ module FFI
3
+
4
+ attach_function :CPhidgetRFID_create, [:phid], :int
5
+ attach_function :CPhidgetRFID_getOutputCount, [:phid, :pointer], :int
6
+ attach_function :CPhidgetRFID_getOutputState, [:phid, :int, :pointer], :int
7
+ attach_function :CPhidgetRFID_setOutputState, [:phid, :int, :int], :int
8
+ attach_function :CPhidgetRFID_getAntennaOn, [:phid, :pointer], :int
9
+ attach_function :CPhidgetRFID_setAntennaOn, [:phid, :int], :int
10
+ attach_function :CPhidgetRFID_getLEDOn, [:phid, :pointer], :int
11
+ attach_function :CPhidgetRFID_setLEDOn, [:phid, :int], :int
12
+ attach_function :CPhidgetRFID_getLastTag, [:phid, :pointer], :int
13
+ attach_function :CPhidgetRFID_getTagStatus, [:phid, :pointer], :int
14
+
15
+ callback :CPhidgetRFID_set_OnOutputChange_Callback, [:phid, :user_ptr, :int, :int], :int
16
+ attach_function :CPhidgetRFID_set_OnOutputChange_Handler, [:phid, :CPhidgetRFID_set_OnOutputChange_Callback, :user_ptr], :int
17
+
18
+ callback :CPhidgetRFID_set_OnTag_Callback, [:phid, :user_ptr, :pointer], :int
19
+ attach_function :CPhidgetRFID_set_OnTag_Handler, [:phid, :CPhidgetRFID_set_OnTag_Callback, :user_ptr], :int
20
+
21
+ callback :CPhidgetRFID_set_OnTagLost_Callback, [:phid, :user_ptr, :pointer], :int
22
+ attach_function :CPhidgetRFID_set_OnTagLost_Handler, [:phid, :CPhidgetRFID_set_OnTagLost_Callback, :user_ptr], :int
23
+
24
+ module CPhidgetRFID
25
+ def self.method_missing(method, *args, &block)
26
+ if ::Phidgets::FFI.respond_to?("CPhidgetRFID_#{method}".to_sym)
27
+ if (rs = ::Phidgets::FFI.send("CPhidgetRFID_#{method}".to_sym, *args, &block)) != 0
28
+ raise Phidgets::Error.exception_for(rs), Phidgets::FFI.error_description(rs)
29
+ end
30
+ else
31
+ super(method, *args, &block)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -18,23 +18,24 @@ module Phidgets
18
18
  :firgelli_l12_50_210_06_r,
19
19
  :firgelli_l12_100_50_06_r,
20
20
  :firgelli_l12_100_100_06_r,
21
- :user_defind
21
+ :user_defined
22
22
  )
23
23
 
24
- attach_function :CPhidgetServo_create, [:phid], :int #int CPhidgetServo_create(CPhidgetServoHandle *phid);
25
- attach_function :CPhidgetServo_getMotorCount, [:phid, :pointer], :int # int CPhidgetServo_getMotorCount(CPhidgetServoHandle phid, int *count);
26
- attach_function :CPhidgetServo_getPosition, [:phid, :int, :pointer], :int #int CPhidgetServo_getPosition(CPhidgetServoHandle phid, int index, double *position);
27
- attach_function :CPhidgetServo_setPosition, [:phid, :int, :double], :int #int CPhidgetServo_setPosition(CPhidgetServoHandle phid, int index, double position);
28
- attach_function :CPhidgetServo_getPositionMax, [:phid, :int, :pointer], :int #int CPhidgetServo_getPositionMax(CPhidgetServoHandle phid, int index, double *max);
29
- attach_function :CPhidgetServo_getPositionMin, [:phid, :int, :pointer], :int #int CPhidgetServo_getPositionMin(CPhidgetServoHandle phid, int index, double *min);
30
- callback :CPhidgetServo_set_OnPositionChange_Callback, [:phid, :user_ptr, :int, :double], :int
31
- attach_function :CPhidgetServo_set_OnPositionChange_Handler, [:phid, :CPhidgetServo_set_OnPositionChange_Callback, :user_ptr], :int #int CPhidgetServo_set_OnPositionChange_Handler(CPhidgetServoHandle phid, int ( *fptr)(CPhidgetServoHandle phid, void *userPtr, int index, double position), void *userPtr);
32
- attach_function :CPhidgetServo_getEngaged, [:phid, :int, :pointer], :int #int CPhidgetServo_getEngaged(CPhidgetServoHandle phid, int index, int *engagedState);
33
- attach_function :CPhidgetServo_setEngaged, [:phid, :int, :int], :int #int CPhidgetServo_setEngaged(CPhidgetServoHandle phid, int index, int engagedState);
34
- attach_function :CPhidgetServo_getServoType, [:phid, :int, :pointer], :int #int CPhidgetServo_getServoType(CPhidgetServoHandle phid, int index, CPhidget_ServoType *servoType);
35
- attach_function :CPhidgetServo_setServoType, [:phid, :int, ServoType], :int #int CPhidgetServo_setServoType(CPhidgetServoHandle phid, int index, CPhidget_ServoType servoType);
36
- attach_function :CPhidgetServo_setServoParameters, [:phid, :int, :double, :double, :double], :int #int CPhidgetServo_setServoParameters(CPhidgetServoHandle phid, int index, double min_us,double max_us,double degrees);
24
+ attach_function :CPhidgetServo_create, [:phid], :int
25
+ attach_function :CPhidgetServo_getMotorCount, [:phid, :pointer], :int
26
+ attach_function :CPhidgetServo_getPosition, [:phid, :int, :pointer], :int
27
+ attach_function :CPhidgetServo_setPosition, [:phid, :int, :double], :int
28
+ attach_function :CPhidgetServo_getPositionMax, [:phid, :int, :pointer], :int
29
+ attach_function :CPhidgetServo_getPositionMin, [:phid, :int, :pointer], :int
30
+ attach_function :CPhidgetServo_getEngaged, [:phid, :int, :pointer], :int
31
+ attach_function :CPhidgetServo_setEngaged, [:phid, :int, :int], :int
32
+ attach_function :CPhidgetServo_getServoType, [:phid, :int, :pointer], :int
33
+ attach_function :CPhidgetServo_setServoType, [:phid, :int, ServoType], :int
34
+ attach_function :CPhidgetServo_setServoParameters, [:phid, :int, :double, :double, :double], :int
37
35
 
36
+ callback :CPhidgetServo_set_OnPositionChange_Callback, [:phid, :user_ptr, :int, :double], :int
37
+ attach_function :CPhidgetServo_set_OnPositionChange_Handler, [:phid, :CPhidgetServo_set_OnPositionChange_Callback, :user_ptr], :int
38
+
38
39
  module CPhidgetServo
39
40
  def self.method_missing(method, *args, &block)
40
41
  if ::Phidgets::FFI.respond_to?("CPhidgetServo_#{method}".to_sym)
@@ -47,4 +48,4 @@ module Phidgets
47
48
  end
48
49
  end
49
50
  end
50
- end
51
+ end
@@ -0,0 +1,40 @@
1
+ module Phidgets
2
+ module FFI
3
+
4
+ attach_function :CPhidgetSpatial_create, [:phid], :int
5
+ attach_function :CPhidgetSpatial_getAccelerationAxisCount, [:phid, :pointer], :int
6
+ attach_function :CPhidgetSpatial_getGyroAxisCount, [:phid, :pointer], :int
7
+ attach_function :CPhidgetSpatial_getCompassAxisCount, [:phid, :pointer], :int
8
+ attach_function :CPhidgetSpatial_getAcceleration, [:phid, :int, :pointer], :int
9
+ attach_function :CPhidgetSpatial_getAccelerationMax, [:phid, :int, :pointer], :int
10
+ attach_function :CPhidgetSpatial_getAccelerationMin, [:phid, :int, :pointer], :int
11
+ attach_function :CPhidgetSpatial_getAngularRate, [:phid, :int, :pointer], :int
12
+ attach_function :CPhidgetSpatial_getAngularRateMax, [:phid, :int, :pointer], :int
13
+ attach_function :CPhidgetSpatial_getAngularRateMin, [:phid, :int, :pointer], :int
14
+ attach_function :CPhidgetSpatial_getMagneticField, [:phid, :int, :pointer], :int
15
+ attach_function :CPhidgetSpatial_getMagneticFieldMax, [:phid, :int, :pointer], :int
16
+ attach_function :CPhidgetSpatial_getMagneticFieldMin, [:phid, :int, :pointer], :int
17
+ attach_function :CPhidgetSpatial_zeroGyro, [:phid], :int
18
+ attach_function :CPhidgetSpatial_getDataRate, [:phid, :pointer], :int
19
+ attach_function :CPhidgetSpatial_setDataRate, [:phid, :int], :int
20
+ attach_function :CPhidgetSpatial_getDataRateMax, [:phid, :pointer], :int
21
+ attach_function :CPhidgetSpatial_getDataRateMin, [:phid, :pointer], :int
22
+ attach_function :CPhidgetSpatial_setCompassCorrectionParameters, [:phid, :double, :double, :double, :double, :double, :double, :double, :double, :double, :double, :double, :double, :double], :int
23
+ attach_function :CPhidgetSpatial_resetCompassCorrectionParameters, [:phid], :int
24
+
25
+ callback :CPhidgetSpatial_set_OnSpatialData_Callback, [:phid, :user_ptr, :pointer, :int], :int
26
+ attach_function :CPhidgetSpatial_set_OnSpatialData_Handler, [:phid, :CPhidgetSpatial_set_OnSpatialData_Callback, :user_ptr], :int
27
+
28
+ module CPhidgetSpatial
29
+ def self.method_missing(method, *args, &block)
30
+ if ::Phidgets::FFI.respond_to?("CPhidgetSpatial_#{method}".to_sym)
31
+ if (rs = ::Phidgets::FFI.send("CPhidgetSpatial_#{method}".to_sym, *args, &block)) != 0
32
+ raise Phidgets::Error.exception_for(rs), Phidgets::FFI.error_description(rs)
33
+ end
34
+ else
35
+ super(method, *args, &block)
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end