phidgets 0.1.3 → 1.0.0

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.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +3 -0
  3. data/README.rdoc +32 -43
  4. data/Rakefile +4 -2
  5. data/bin/phidget +18 -72
  6. data/ext/phidgets/extconf.rb +5 -8
  7. data/ext/phidgets/phidgets.c +708 -173
  8. data/ext/phidgets/phidgets.h +54 -35
  9. data/ext/phidgets/phidgets_accelerometer.c +193 -109
  10. data/ext/phidgets/phidgets_bldc_motor.c +529 -0
  11. data/ext/phidgets/phidgets_capacitive_touch.c +302 -0
  12. data/ext/phidgets/phidgets_common.c +570 -315
  13. data/ext/phidgets/phidgets_current_input.c +229 -0
  14. data/ext/phidgets/phidgets_dc_motor.c +562 -0
  15. data/ext/phidgets/phidgets_dictionary.c +154 -213
  16. data/ext/phidgets/phidgets_digital_input.c +127 -0
  17. data/ext/phidgets/phidgets_digital_output.c +288 -0
  18. data/ext/phidgets/phidgets_distance_sensor.c +295 -0
  19. data/ext/phidgets/phidgets_encoder.c +211 -192
  20. data/ext/phidgets/phidgets_frequency_counter.c +310 -177
  21. data/ext/phidgets/phidgets_gps.c +226 -164
  22. data/ext/phidgets/phidgets_gyroscope.c +195 -0
  23. data/ext/phidgets/phidgets_hub.c +39 -0
  24. data/ext/phidgets/phidgets_humidity_sensor.c +200 -0
  25. data/ext/phidgets/phidgets_ir.c +211 -171
  26. data/ext/phidgets/phidgets_lcd.c +512 -0
  27. data/ext/phidgets/phidgets_light_sensor.c +200 -0
  28. data/ext/phidgets/phidgets_log.c +263 -0
  29. data/ext/phidgets/phidgets_magnetometer.c +279 -0
  30. data/ext/phidgets/phidgets_manager.c +86 -297
  31. data/ext/phidgets/phidgets_motor_position_controller.c +787 -0
  32. data/ext/phidgets/phidgets_phsensor.c +200 -152
  33. data/ext/phidgets/phidgets_power_guard.c +144 -0
  34. data/ext/phidgets/phidgets_pressure_sensor.c +200 -0
  35. data/ext/phidgets/phidgets_rc_servo.c +672 -0
  36. data/ext/phidgets/phidgets_resistance_input.c +227 -0
  37. data/ext/phidgets/phidgets_rfid.c +107 -221
  38. data/ext/phidgets/phidgets_sound_sensor.c +284 -0
  39. data/ext/phidgets/phidgets_spatial.c +124 -318
  40. data/ext/phidgets/phidgets_stepper.c +457 -430
  41. data/ext/phidgets/phidgets_temp_sensor.c +223 -228
  42. data/ext/phidgets/phidgets_voltage_input.c +428 -0
  43. data/ext/phidgets/phidgets_voltage_output.c +167 -0
  44. data/ext/phidgets/phidgets_voltage_ratio_input.c +435 -0
  45. data/lib/phidgets.rb +21 -14
  46. data/lib/phidgets/accelerometer.rb +11 -15
  47. data/lib/phidgets/bldc_motor.rb +45 -0
  48. data/lib/phidgets/capacitive_touch.rb +33 -0
  49. data/lib/phidgets/common.rb +40 -69
  50. data/lib/phidgets/current_input.rb +21 -0
  51. data/lib/phidgets/dc_motor.rb +45 -0
  52. data/lib/phidgets/dictionary.rb +30 -39
  53. data/lib/phidgets/digital_input.rb +21 -0
  54. data/lib/phidgets/digital_output.rb +56 -0
  55. data/lib/phidgets/distance_sensor.rb +33 -0
  56. data/lib/phidgets/encoder.rb +1 -29
  57. data/lib/phidgets/frequency_counter.rb +23 -14
  58. data/lib/phidgets/gps.rb +34 -26
  59. data/lib/phidgets/gyroscope.rb +21 -0
  60. data/lib/phidgets/humidity_sensor.rb +21 -0
  61. data/lib/phidgets/ir.rb +34 -39
  62. data/lib/phidgets/light_sensor.rb +21 -0
  63. data/lib/phidgets/magnetometer.rb +21 -0
  64. data/lib/phidgets/manager.rb +18 -66
  65. data/lib/phidgets/motor_position_controller.rb +45 -0
  66. data/lib/phidgets/ph_sensor.rb +2 -6
  67. data/lib/phidgets/pressure_sensor.rb +21 -0
  68. data/lib/phidgets/rc_servo.rb +58 -0
  69. data/lib/phidgets/resistance_input.rb +21 -0
  70. data/lib/phidgets/rfid.rb +22 -38
  71. data/lib/phidgets/sound_sensor.rb +21 -0
  72. data/lib/phidgets/spatial.rb +11 -15
  73. data/lib/phidgets/stepper.rb +48 -50
  74. data/lib/phidgets/temperature_sensor.rb +11 -15
  75. data/lib/phidgets/version.rb +5 -0
  76. data/lib/phidgets/voltage_input.rb +34 -0
  77. data/lib/phidgets/voltage_output.rb +23 -0
  78. data/lib/phidgets/voltage_ratio_input.rb +34 -0
  79. data/phidgets.gemspec +3 -22
  80. data/test/test_accelerometer.rb +42 -23
  81. data/test/test_bldc_motor.rb +134 -0
  82. data/test/test_capacitive_touch.rb +82 -0
  83. data/test/test_common.rb +125 -108
  84. data/test/test_current_input.rb +62 -0
  85. data/test/test_dc_motor.rb +146 -0
  86. data/test/test_dictionary.rb +22 -54
  87. data/test/test_digital_input.rb +30 -0
  88. data/test/test_digital_output.rb +70 -0
  89. data/test/test_distance_sensor.rb +76 -0
  90. data/test/test_encoder.rb +45 -38
  91. data/test/test_frequency_counter.rb +71 -36
  92. data/test/test_gps.rb +29 -38
  93. data/test/test_gyroscope.rb +54 -0
  94. data/test/test_helper.rb +0 -1
  95. data/test/test_hub.rb +14 -0
  96. data/test/test_humidity_sensor.rb +58 -0
  97. data/test/test_ir.rb +34 -34
  98. data/test/test_lcd.rb +146 -0
  99. data/test/test_light_sensor.rb +58 -0
  100. data/test/test_magnetometer.rb +78 -0
  101. data/test/test_manager.rb +10 -79
  102. data/test/test_motor_control.rb +146 -108
  103. data/test/test_phidgets.rb +2 -14
  104. data/test/test_phsensor.rb +46 -34
  105. data/test/test_power_guard.rb +42 -0
  106. data/test/test_pressure_sensor.rb +58 -0
  107. data/test/test_rc_servo.rb +174 -0
  108. data/test/test_resistance_input.rb +66 -0
  109. data/test/test_rfid.rb +15 -54
  110. data/test/test_sound_sensor.rb +78 -0
  111. data/test/test_spatial.rb +19 -85
  112. data/test/test_stepper.rb +89 -98
  113. data/test/test_temp_sensor.rb +42 -47
  114. data/test/test_voltage_input.rb +102 -0
  115. data/test/test_voltage_output.rb +46 -0
  116. data/test/test_voltage_ratio_input.rb +102 -0
  117. metadata +72 -89
  118. data/ext/phidgets/phidgets_advanced_servo.c +0 -567
  119. data/ext/phidgets/phidgets_analog.c +0 -139
  120. data/ext/phidgets/phidgets_bridge.c +0 -263
  121. data/ext/phidgets/phidgets_interface_kit.c +0 -340
  122. data/ext/phidgets/phidgets_led.c +0 -178
  123. data/ext/phidgets/phidgets_motor_control.c +0 -642
  124. data/ext/phidgets/phidgets_servo.c +0 -276
  125. data/ext/phidgets/phidgets_text_lcd.c +0 -381
  126. data/ext/phidgets/phidgets_text_led.c +0 -107
  127. data/ext/phidgets/phidgets_weight_sensor.c +0 -113
  128. data/lib/phidgets/advanced_servo.rb +0 -49
  129. data/lib/phidgets/analog.rb +0 -8
  130. data/lib/phidgets/bridge.rb +0 -25
  131. data/lib/phidgets/interfacekit.rb +0 -49
  132. data/lib/phidgets/led.rb +0 -8
  133. data/lib/phidgets/motor_control.rb +0 -110
  134. data/lib/phidgets/servo.rb +0 -23
  135. data/lib/phidgets/text_lcd.rb +0 -8
  136. data/lib/phidgets/text_led.rb +0 -8
  137. data/lib/phidgets/weight_sensor.rb +0 -25
  138. data/test/test_advanced_servo.rb +0 -152
  139. data/test/test_analog.rb +0 -45
  140. data/test/test_bridge.rb +0 -77
  141. data/test/test_interfacekit.rb +0 -97
  142. data/test/test_led.rb +0 -55
  143. data/test/test_servo.rb +0 -67
  144. data/test/test_text_lcd.rb +0 -115
  145. data/test/test_text_led.rb +0 -35
  146. data/test/test_weight_sensor.rb +0 -32
@@ -1,139 +0,0 @@
1
-
2
- #include "phidgets.h"
3
-
4
-
5
- VALUE ph_analog_init(VALUE self);
6
- VALUE ph_analog_get_output_count(VALUE self);
7
- VALUE ph_analog_get_voltage(VALUE self, VALUE index);
8
- VALUE ph_analog_get_voltage_min(VALUE self, VALUE index);
9
- VALUE ph_analog_get_voltage_max(VALUE self, VALUE index);
10
- VALUE ph_analog_set_voltage(VALUE self, VALUE index, VALUE voltage);
11
- VALUE ph_analog_get_enabled(VALUE self, VALUE index);
12
- VALUE ph_analog_set_enabled(VALUE self, VALUE index, VALUE state);
13
-
14
-
15
- void Init_analog() {
16
- VALUE ph_module = rb_const_get(rb_cObject, rb_intern("Phidgets"));
17
- VALUE ph_common = rb_const_get(ph_module, rb_intern("Common"));
18
- VALUE ph_analog = rb_define_class_under(ph_module, "Analog", ph_common);
19
-
20
- /* Document-method: new
21
- * call-seq: new
22
- *
23
- * Creates a Phidget Analog object.
24
- */
25
- rb_define_method(ph_analog, "initialize", ph_analog_init, 0);
26
-
27
- /* Document-method: getOutputCount
28
- * call-seq: getOutputCount -> output_count
29
- *
30
- * Gets the number of outputs supported by this phidget analog.
31
- */
32
- rb_define_method(ph_analog, "getOutputCount", ph_analog_get_output_count, 0);
33
-
34
- /* Document-method: getVoltage
35
- * call-seq: getVoltage(index) -> voltage
36
- *
37
- * Gets the currently set voltage for an output, in V.
38
- */
39
- rb_define_method(ph_analog, "getVoltage", ph_analog_get_voltage, 1);
40
-
41
- /* Document-method: getVoltageMin
42
- * call-seq: getVoltageMin(index) -> min
43
- *
44
- * Gets the minimum settable output voltage, in V.
45
- */
46
- rb_define_method(ph_analog, "getVoltageMin", ph_analog_get_voltage_min, 1);
47
-
48
- /* Document-method: getVoltageMax
49
- * call-seq: getVoltageMax(index) -> max
50
- *
51
- * Gets the maximum settable output voltage, in V.
52
- */
53
- rb_define_method(ph_analog, "getVoltageMax", ph_analog_get_voltage_max, 1);
54
-
55
- /* Document-method: setVoltage
56
- * call-seq: setVoltage(index, voltage)
57
- *
58
- * Sets the voltage of an output, in V.
59
- */
60
- rb_define_method(ph_analog, "setVoltage", ph_analog_set_voltage, 2);
61
-
62
- /* Document-method: getEnabled
63
- * call-seq: getEnabled(index) -> true or false
64
- *
65
- * Gets the enabled state for an output.
66
- */
67
- rb_define_method(ph_analog, "getEnabled", ph_analog_get_enabled, 1);
68
-
69
- /* Document-method: setEnabled
70
- * call-seq: setEnabled(index, enabled)
71
- *
72
- * Sets the enabled state for an output.
73
- */
74
- rb_define_method(ph_analog, "setEnabled", ph_analog_set_enabled, 2);
75
-
76
- rb_define_alias(ph_analog, "output_count", "getOutputCount");
77
- rb_define_alias(ph_analog, "voltage", "getVoltage");
78
- rb_define_alias(ph_analog, "voltage_min", "getVoltageMin");
79
- rb_define_alias(ph_analog, "voltage_max", "getVoltageMax");
80
- rb_define_alias(ph_analog, "set_voltage", "setVoltage");
81
- rb_define_alias(ph_analog, "enabled?", "getEnabled");
82
- rb_define_alias(ph_analog, "set_enabled", "setEnabled");
83
- }
84
-
85
-
86
-
87
- VALUE ph_analog_init(VALUE self) {
88
- ph_data_t *ph = get_ph_data(self);
89
- ph_raise(CPhidgetAnalog_create((CPhidgetAnalogHandle *)(&(ph->handle))));
90
- return self;
91
- }
92
-
93
- VALUE ph_analog_get_output_count(VALUE self) {
94
- CPhidgetAnalogHandle handle = (CPhidgetAnalogHandle)get_ph_handle(self);
95
- int count;
96
- ph_raise(CPhidgetAnalog_getOutputCount(handle, &count));
97
- return INT2FIX(count);
98
- }
99
-
100
- VALUE ph_analog_get_voltage(VALUE self, VALUE index) {
101
- CPhidgetAnalogHandle handle = (CPhidgetAnalogHandle)get_ph_handle(self);
102
- double volts;
103
- ph_raise(CPhidgetAnalog_getVoltage(handle, FIX2INT(index), &volts));
104
- return rb_float_new(volts);
105
- }
106
-
107
- VALUE ph_analog_get_voltage_min(VALUE self, VALUE index) {
108
- CPhidgetAnalogHandle handle = (CPhidgetAnalogHandle)get_ph_handle(self);
109
- double volts;
110
- ph_raise(CPhidgetAnalog_getVoltageMin(handle, FIX2INT(index), &volts));
111
- return rb_float_new(volts);
112
- }
113
-
114
- VALUE ph_analog_get_voltage_max(VALUE self, VALUE index) {
115
- CPhidgetAnalogHandle handle = (CPhidgetAnalogHandle)get_ph_handle(self);
116
- double volts;
117
- ph_raise(CPhidgetAnalog_getVoltageMax(handle, FIX2INT(index), &volts));
118
- return rb_float_new(volts);
119
- }
120
-
121
- VALUE ph_analog_set_voltage(VALUE self, VALUE index, VALUE voltage) {
122
- CPhidgetAnalogHandle handle = (CPhidgetAnalogHandle)get_ph_handle(self);
123
- ph_raise(CPhidgetAnalog_setVoltage(handle, FIX2INT(index), NUM2DBL(voltage)));
124
- return Qnil;
125
- }
126
-
127
- VALUE ph_analog_get_enabled(VALUE self, VALUE index) {
128
- CPhidgetAnalogHandle handle = (CPhidgetAnalogHandle)get_ph_handle(self);
129
- int state;
130
- ph_raise(CPhidgetAnalog_getEnabled(handle, FIX2INT(index), &state));
131
- return state == PTRUE ? Qtrue : Qfalse;
132
- }
133
-
134
- VALUE ph_analog_set_enabled(VALUE self, VALUE index, VALUE state) {
135
- CPhidgetAnalogHandle handle = (CPhidgetAnalogHandle)get_ph_handle(self);
136
- ph_raise(CPhidgetAnalog_setEnabled(handle, FIX2INT(index), TYPE(state) == T_TRUE ? PTRUE : PFALSE));
137
- return Qnil;
138
- }
139
-
@@ -1,263 +0,0 @@
1
-
2
- #include "phidgets.h"
3
-
4
-
5
- VALUE ph_bridge_init(VALUE self);
6
- VALUE ph_bridge_get_input_count(VALUE self);
7
- VALUE ph_bridge_get_bridge_value(VALUE self, VALUE index);
8
- VALUE ph_bridge_get_bridge_min(VALUE self, VALUE index);
9
- VALUE ph_bridge_get_bridge_max(VALUE self, VALUE index);
10
- VALUE ph_bridge_get_enabled(VALUE self, VALUE index);
11
- VALUE ph_bridge_set_enabled(VALUE self, VALUE index, VALUE state);
12
- VALUE ph_bridge_get_gain(VALUE self, VALUE index);
13
- VALUE ph_bridge_set_gain(VALUE self, VALUE index, VALUE gain);
14
- VALUE ph_bridge_get_data_rate(VALUE self);
15
- VALUE ph_bridge_get_data_rate_min(VALUE self);
16
- VALUE ph_bridge_get_data_rate_max(VALUE self);
17
- VALUE ph_bridge_set_data_rate(VALUE self, VALUE milliseconds);
18
-
19
- #ifdef PH_CALLBACK
20
- VALUE ph_bridge_set_on_bridge_data_handler(VALUE self, VALUE handler);
21
- int ph_bridge_on_bridge_data(CPhidgetBridgeHandle phid, void *userPtr, int index, double value);
22
- #endif
23
-
24
-
25
- void Init_bridge() {
26
- VALUE ph_module = rb_const_get(rb_cObject, rb_intern("Phidgets"));
27
- VALUE ph_common = rb_const_get(ph_module, rb_intern("Common"));
28
- VALUE ph_bridge = rb_define_class_under(ph_module, "Bridge", ph_common);
29
-
30
- rb_define_const(ph_bridge, "GAIN_1", INT2FIX(PHIDGET_BRIDGE_GAIN_1));
31
- rb_define_const(ph_bridge, "GAIN_8", INT2FIX(PHIDGET_BRIDGE_GAIN_8));
32
- rb_define_const(ph_bridge, "GAIN_16", INT2FIX(PHIDGET_BRIDGE_GAIN_16));
33
- rb_define_const(ph_bridge, "GAIN_32", INT2FIX(PHIDGET_BRIDGE_GAIN_32));
34
- rb_define_const(ph_bridge, "GAIN_64", INT2FIX(PHIDGET_BRIDGE_GAIN_64));
35
- rb_define_const(ph_bridge, "GAIN_128", INT2FIX(PHIDGET_BRIDGE_GAIN_128));
36
- rb_define_const(ph_bridge, "GAIN_UNKNOWN", INT2FIX(PHIDGET_BRIDGE_GAIN_UNKNOWN));
37
-
38
- /* Document-method: new
39
- * call-seq: new
40
- *
41
- * Creates a Phidget Bridge object.
42
- */
43
- rb_define_method(ph_bridge, "initialize", ph_bridge_init, 0);
44
-
45
- /* Document-method: getInputCount
46
- * call-seq: getInputCount -> count
47
- *
48
- * Gets the number of inputs supported by this phidget bridge.
49
- */
50
- rb_define_method(ph_bridge, "getInputCount", ph_bridge_get_input_count, 0);
51
-
52
- /* Document-method: getBridgeValue
53
- * call-seq: getBridgeValue(index) -> value
54
- *
55
- * Gets the current value of a bridge input, in mV/V.
56
- */
57
- rb_define_method(ph_bridge, "getBridgeValue", ph_bridge_get_bridge_value, 1);
58
-
59
- /* Document-method: getBridgeMin
60
- * call-seq: getBridgeMin(index) -> min
61
- *
62
- * Gets the minimum value supported by a bridge input, in mV/V. This is affected by Gain.
63
- */
64
- rb_define_method(ph_bridge, "getBridgeMin", ph_bridge_get_bridge_min, 1);
65
-
66
- /* Document-method: getBridgeMax
67
- * call-seq: getBridgeMax(index) -> max
68
- *
69
- * Gets the maximum value supported by a bridge input, in mV/V. This is affected by Gain.
70
- */
71
- rb_define_method(ph_bridge, "getBridgeMax", ph_bridge_get_bridge_max, 1);
72
-
73
- /* Document-method: getEnabled
74
- * call-seq: getEnabled(index) -> true or false
75
- *
76
- * Gets the enabled state for an input.
77
- */
78
- rb_define_method(ph_bridge, "getEnabled", ph_bridge_get_enabled, 1);
79
-
80
- /* Document-method: setEnabled
81
- * call-seq: setEnabled(index, enabled_state)
82
- *
83
- * Sets the enabled state for an input.
84
- */
85
- rb_define_method(ph_bridge, "setEnabled", ph_bridge_set_enabled, 2);
86
-
87
- /* Document-method: getGain
88
- * call-seq: getGain(index) -> gain
89
- *
90
- * Gets the the Gain for an input.
91
- */
92
- rb_define_method(ph_bridge, "getGain", ph_bridge_get_gain, 1);
93
-
94
- /* Document-method: setGain
95
- * call-seq: setGain(index, gain)
96
- *
97
- * Sets the Gain for an input.
98
- */
99
- rb_define_method(ph_bridge, "setGain", ph_bridge_set_enabled, 2);
100
-
101
- /* Document-method: getDataRate
102
- * call-seq: getDataRate(index) -> milliseconds
103
- *
104
- * Gets the the data rate for the Phidget Bridge, in milliseconds.
105
- */
106
- rb_define_method(ph_bridge, "getDataRate", ph_bridge_get_data_rate, 0);
107
-
108
- /* Document-method: getDataRateMin
109
- * call-seq: getDataRateMin(index) -> milliseconds
110
- *
111
- * Gets the the minimum data rate for the Phidget Bridge, in milliseconds.
112
- */
113
- rb_define_method(ph_bridge, "getDataRateMin", ph_bridge_get_data_rate_min, 0);
114
-
115
- /* Document-method: getDataRateMax
116
- * call-seq: getDataRateMax(index) -> milliseconds
117
- *
118
- * Gets the the maximum data rate for the Phidget Bridge, in milliseconds.
119
- */
120
- rb_define_method(ph_bridge, "getDataRateMax", ph_bridge_get_data_rate_max, 0);
121
-
122
- /* Document-method: setDataRate
123
- * call-seq: setDataRate(index, milliseconds)
124
- *
125
- * Sets the the data rate for the Phidget Bridge, in milliseconds.
126
- */
127
- rb_define_method(ph_bridge, "setDataRate", ph_bridge_set_data_rate, 1);
128
-
129
- #ifdef PH_CALLBACK
130
- rb_define_private_method(ph_bridge, "ext_setOnBridgeDataHandler", ph_bridge_set_on_bridge_data_handler, 1);
131
- #endif
132
-
133
- rb_define_alias(ph_bridge, "input_count", "getInputCount");
134
- rb_define_alias(ph_bridge, "bridge_value", "getBridgeValue");
135
- rb_define_alias(ph_bridge, "bridge_min", "getBridgeMin");
136
- rb_define_alias(ph_bridge, "bridge_max", "getBridgeMax");
137
- rb_define_alias(ph_bridge, "enabled?", "getEnabled");
138
- rb_define_alias(ph_bridge, "set_enabled", "setEnabled");
139
- rb_define_alias(ph_bridge, "gain", "getGain");
140
- rb_define_alias(ph_bridge, "set_gain", "setGain");
141
- rb_define_alias(ph_bridge, "data_rate", "getDataRate");
142
- rb_define_alias(ph_bridge, "data_rate_min", "getDataRateMin");
143
- rb_define_alias(ph_bridge, "data_rate_max", "getDataRateMax");
144
- rb_define_alias(ph_bridge, "data_rate=", "setDataRate");
145
- }
146
-
147
-
148
-
149
- VALUE ph_bridge_init(VALUE self) {
150
- ph_data_t *ph = get_ph_data(self);
151
- ph_raise(CPhidgetBridge_create((CPhidgetBridgeHandle *)(&(ph->handle))));
152
- return self;
153
- }
154
-
155
- VALUE ph_bridge_get_input_count(VALUE self) {
156
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
157
- int count;
158
- ph_raise(CPhidgetBridge_getInputCount(handle, &count));
159
- return INT2FIX(count);
160
- }
161
-
162
- VALUE ph_bridge_get_bridge_value(VALUE self, VALUE index) {
163
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
164
- double value;
165
- ph_raise(CPhidgetBridge_getBridgeValue(handle, FIX2INT(index), &value));
166
- return rb_float_new(value);
167
- }
168
-
169
- VALUE ph_bridge_get_bridge_min(VALUE self, VALUE index) {
170
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
171
- double value;
172
- ph_raise(CPhidgetBridge_getBridgeMin(handle, FIX2INT(index), &value));
173
- return rb_float_new(value);
174
- }
175
-
176
- VALUE ph_bridge_get_bridge_max(VALUE self, VALUE index) {
177
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
178
- double value;
179
- ph_raise(CPhidgetBridge_getBridgeMax(handle, FIX2INT(index), &value));
180
- return rb_float_new(value);
181
- }
182
-
183
- VALUE ph_bridge_get_enabled(VALUE self, VALUE index) {
184
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
185
- int value;
186
- ph_raise(CPhidgetBridge_getEnabled(handle, FIX2INT(index), &value));
187
- return value == PTRUE ? Qtrue : Qfalse;
188
- }
189
-
190
- VALUE ph_bridge_set_enabled(VALUE self, VALUE index, VALUE state) {
191
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
192
- ph_raise(CPhidgetBridge_setEnabled(handle, FIX2INT(index), TYPE(state) == T_TRUE ? PTRUE : PFALSE));
193
- return Qnil;
194
- }
195
-
196
- VALUE ph_bridge_get_gain(VALUE self, VALUE index) {
197
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
198
- CPhidgetBridge_Gain value;
199
- ph_raise(CPhidgetBridge_getGain(handle, FIX2INT(index), &value));
200
- return INT2FIX(value);
201
- }
202
-
203
- VALUE ph_bridge_set_gain(VALUE self, VALUE index, VALUE gain) {
204
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
205
- ph_raise(CPhidgetBridge_setGain(handle, FIX2INT(index), FIX2INT(gain)));
206
- return Qnil;
207
- }
208
-
209
- VALUE ph_bridge_get_data_rate(VALUE self) {
210
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
211
- int value;
212
- ph_raise(CPhidgetBridge_getDataRate(handle, &value));
213
- return INT2FIX(value);
214
- }
215
-
216
- VALUE ph_bridge_get_data_rate_min(VALUE self) {
217
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
218
- int value;
219
- ph_raise(CPhidgetBridge_getDataRateMin(handle, &value));
220
- return INT2FIX(value);
221
- }
222
-
223
- VALUE ph_bridge_get_data_rate_max(VALUE self) {
224
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
225
- int value;
226
- ph_raise(CPhidgetBridge_getDataRateMax(handle, &value));
227
- return INT2FIX(value);
228
- }
229
-
230
- VALUE ph_bridge_set_data_rate(VALUE self, VALUE milliseconds) {
231
- CPhidgetBridgeHandle handle = (CPhidgetBridgeHandle)get_ph_handle(self);
232
- ph_raise(CPhidgetBridge_setDataRate(handle, FIX2INT(milliseconds)));
233
- return Qnil;
234
- }
235
-
236
-
237
- #ifdef PH_CALLBACK
238
- VALUE ph_bridge_set_on_bridge_data_handler(VALUE self, VALUE handler) {
239
- ph_data_t *ph = get_ph_data(self);
240
- ph_callback_data_t *callback_data = &ph->dev_callback_1;
241
- if( TYPE(handler) == T_NIL ) {
242
- callback_data->exit = true;
243
- ph_raise(CPhidgetBridge_set_OnBridgeData_Handler((CPhidgetBridgeHandle)ph->handle, NULL, (void *)NULL));
244
- } else {
245
- callback_data->called = false;
246
- callback_data->exit = false;
247
- callback_data->phidget = self;
248
- callback_data->callback = handler;
249
- ph_raise(CPhidgetBridge_set_OnBridgeData_Handler((CPhidgetBridgeHandle)ph->handle, ph_bridge_on_bridge_data, (void *)callback_data));
250
- ph_callback_thread(callback_data);
251
- }
252
- return Qnil;
253
- }
254
-
255
-
256
- int ph_bridge_on_bridge_data(CPhidgetBridgeHandle phid, void *userPtr, int index, double value) {
257
- ph_callback_data_t *callback_data = ((ph_callback_data_t *)userPtr);
258
- callback_data->called = true;
259
- return EPHIDGET_OK;
260
- }
261
-
262
- #endif
263
-
@@ -1,340 +0,0 @@
1
-
2
- #include "phidgets.h"
3
-
4
-
5
- VALUE ph_ifkit_init(VALUE self);
6
- VALUE ph_ifkit_get_input_count(VALUE self);
7
- VALUE ph_ifkit_get_input_state(VALUE self, VALUE index);
8
- VALUE ph_ifkit_get_output_count(VALUE self);
9
- VALUE ph_ifkit_get_output_state(VALUE self, VALUE index);
10
- VALUE ph_ifkit_set_output_state(VALUE self, VALUE index, VALUE state);
11
- VALUE ph_ifkit_get_sensor_count(VALUE self);
12
- VALUE ph_ifkit_get_sensor_value(VALUE self, VALUE index);
13
- VALUE ph_ifkit_get_sensor_raw_value(VALUE self, VALUE index);
14
- VALUE ph_ifkit_get_ratiometric(VALUE self);
15
- VALUE ph_ifkit_set_ratiometric(VALUE self, VALUE ratiometric);
16
- VALUE ph_ifkit_get_data_rate(VALUE self, VALUE index);
17
- VALUE ph_ifkit_get_data_rate_min(VALUE self, VALUE index);
18
- VALUE ph_ifkit_get_data_rate_max(VALUE self, VALUE index);
19
- VALUE ph_ifkit_set_data_rate(VALUE self, VALUE index, VALUE rate);
20
-
21
- #ifdef PH_CALLBACK
22
- VALUE ph_ifkit_set_on_input_change_handler(VALUE self, VALUE handler);
23
- VALUE ph_ifkit_set_on_output_change_handler(VALUE self, VALUE handler);
24
- VALUE ph_ifkit_set_on_sensor_change_handler(VALUE self, VALUE handler);
25
- int ph_ifkit_on_input_change(CPhidgetInterfaceKitHandle phid, void *userPtr, int index, int state);
26
- int ph_ifkit_on_output_change(CPhidgetInterfaceKitHandle phid, void *userPtr, int index, int state);
27
- int ph_ifkit_on_sensor_change(CPhidgetInterfaceKitHandle phid, void *userPtr, int index, int value);
28
- #endif
29
-
30
-
31
- void Init_interface_kit() {
32
- VALUE ph_module = rb_const_get(rb_cObject, rb_intern("Phidgets"));
33
- VALUE ph_common = rb_const_get(ph_module, rb_intern("Common"));
34
- VALUE ph_ifkit = rb_define_class_under(ph_module, "InterfaceKit", ph_common);
35
-
36
- /* Document-method: new
37
- * call-seq: new
38
- *
39
- * Creates a Phidget InterfaceKit object.
40
- */
41
- rb_define_method(ph_ifkit, "initialize", ph_ifkit_init, 0);
42
-
43
- /* Document-method: getInputCount
44
- * call-seq: getInputCount -> count
45
- *
46
- * Gets the number of digital inputs supported by this board.
47
- */
48
- rb_define_method(ph_ifkit, "getInputCount", ph_ifkit_get_input_count, 0);
49
-
50
- /* Document-method: getInputState
51
- * call-seq: getInputState(index) -> true or false
52
- *
53
- * Gets the state of a digital input.
54
- */
55
- rb_define_method(ph_ifkit, "getInputState", ph_ifkit_get_input_state, 1);
56
-
57
- /* Document-method: getOutputCount
58
- * call-seq: getOutputCount -> count
59
- *
60
- * Gets the number of digital outputs supported by this board.
61
- */
62
- rb_define_method(ph_ifkit, "getOutputCount", ph_ifkit_get_output_count, 0);
63
-
64
- /* Document-method: getOutputState
65
- * call-seq: getOutputState(index) -> true or false
66
- *
67
- * Gets the state of a digital output.
68
- */
69
- rb_define_method(ph_ifkit, "getOutputState", ph_ifkit_get_output_state, 1);
70
-
71
- /* Document-method: setOutputState
72
- * call-seq: setOutputState(index, state)
73
- *
74
- * Sets the state of a digital output.
75
- */
76
- rb_define_method(ph_ifkit, "setOutputState", ph_ifkit_set_output_state, 2);
77
-
78
- /* Document-method: getSensorCount
79
- * call-seq: getSensorCount -> count
80
- *
81
- * Gets the number of sensor (analog) inputs supported by this board.
82
- */
83
- rb_define_method(ph_ifkit, "getSensorCount", ph_ifkit_get_sensor_count, 0);
84
-
85
- /* Document-method: getSensorValue
86
- * call-seq: getSensorValue(index) -> value
87
- *
88
- * Gets a sensor value (0-1000).
89
- */
90
- rb_define_method(ph_ifkit, "getSensorValue", ph_ifkit_get_sensor_value, 1);
91
-
92
- /* Document-method: getSensorRawValue
93
- * call-seq: getSensorRawValue(index) -> value
94
- *
95
- * Gets a sensor raw value (12-bit).
96
- */
97
- rb_define_method(ph_ifkit, "getSensorRawValue", ph_ifkit_get_sensor_raw_value, 1);
98
-
99
- /* Document-method: getRatiometric
100
- * call-seq: getRatiometric -> true or false
101
- *
102
- * Gets the ratiometric state for this board.
103
- */
104
- rb_define_method(ph_ifkit, "getRatiometric", ph_ifkit_get_ratiometric, 0);
105
-
106
- /* Document-method: setRatiometric
107
- * call-seq: setRatiometric(state)
108
- *
109
- * Sets the ratiometric state for this board.
110
- */
111
- rb_define_method(ph_ifkit, "setRatiometric", ph_ifkit_set_ratiometric, 1);
112
-
113
- /* Document-method: getDataRate
114
- * call-seq: getDataRate(index) -> milliseconds
115
- *
116
- * Gets the Data Rate for an analog input.
117
- */
118
- rb_define_method(ph_ifkit, "getDataRate", ph_ifkit_get_data_rate, 1);
119
-
120
- /* Document-method: getDataRateMin
121
- * call-seq: getDataRateMin(index) -> milliseconds
122
- *
123
- * Gets the minimum supported data rate for an analog input
124
- */
125
- rb_define_method(ph_ifkit, "getDataRateMin", ph_ifkit_get_data_rate_min, 1);
126
-
127
- /* Document-method: getDataRateMax
128
- * call-seq: getDataRateMax(index) -> milliseconds
129
- *
130
- * Gets the maximum supported data rate for an analog input
131
- */
132
- rb_define_method(ph_ifkit, "getDataRateMax", ph_ifkit_get_data_rate_max, 1);
133
-
134
- /* Document-method: setDataRate
135
- * call-seq: setDataRate(index, milliseconds)
136
- *
137
- * Gets the maximum supported data rate for an analog input
138
- */
139
- rb_define_method(ph_ifkit, "setDataRate", ph_ifkit_set_data_rate, 2);
140
-
141
- #ifdef PH_CALLBACK
142
- rb_define_private_method(ph_ifkit, "ext_setOnInputChangeHandler", ph_ifkit_set_on_input_change_handler, 1);
143
- rb_define_private_method(ph_ifkit, "ext_setOnOutputChangeHandler", ph_ifkit_set_on_output_change_handler, 1);
144
- rb_define_private_method(ph_ifkit, "ext_setOnSensorChangeHandler", ph_ifkit_set_on_sensor_change_handler, 1);
145
- #endif
146
-
147
- rb_define_alias(ph_ifkit, "input_count", "getInputCount");
148
- rb_define_alias(ph_ifkit, "input_state", "getInputState");
149
- rb_define_alias(ph_ifkit, "output_count", "getOutputCount");
150
- rb_define_alias(ph_ifkit, "output_state", "getOutputState");
151
- rb_define_alias(ph_ifkit, "set_output_state", "setOutputState");
152
- rb_define_alias(ph_ifkit, "sensor_count", "getSensorCount");
153
- rb_define_alias(ph_ifkit, "sensor_value", "getSensorValue");
154
- rb_define_alias(ph_ifkit, "sensor_raw_value", "getSensorRawValue");
155
- rb_define_alias(ph_ifkit, "ratiometric?", "getRatiometric");
156
- rb_define_alias(ph_ifkit, "ratiometric=", "setRatiometric");
157
- rb_define_alias(ph_ifkit, "data_rate", "getDataRate");
158
- rb_define_alias(ph_ifkit, "data_rate_min", "getDataRateMin");
159
- rb_define_alias(ph_ifkit, "data_rate_max", "getDataRateMax");
160
- rb_define_alias(ph_ifkit, "set_data_rate", "setDataRate");
161
- }
162
-
163
-
164
-
165
- VALUE ph_ifkit_init(VALUE self) {
166
- ph_data_t *ph = get_ph_data(self);
167
- ph_raise(CPhidgetInterfaceKit_create((CPhidgetInterfaceKitHandle *)(&(ph->handle))));
168
- return self;
169
- }
170
-
171
- VALUE ph_ifkit_get_input_count(VALUE self) {
172
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
173
- int count;
174
- ph_raise(CPhidgetInterfaceKit_getInputCount(handle, &count));
175
- return INT2FIX(count);
176
- }
177
-
178
- VALUE ph_ifkit_get_input_state(VALUE self, VALUE index) {
179
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
180
- int state;
181
- ph_raise(CPhidgetInterfaceKit_getInputState(handle, FIX2INT(index), &state));
182
- return state == PTRUE ? Qtrue : Qfalse;
183
- }
184
-
185
- VALUE ph_ifkit_get_output_count(VALUE self) {
186
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
187
- int count;
188
- ph_raise(CPhidgetInterfaceKit_getOutputCount(handle, &count));
189
- return INT2FIX(count);
190
- }
191
-
192
- VALUE ph_ifkit_get_output_state(VALUE self, VALUE index) {
193
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
194
- int state;
195
- ph_raise(CPhidgetInterfaceKit_getOutputState(handle, FIX2INT(index), &state));
196
- return state == PTRUE ? Qtrue : Qfalse;
197
- }
198
-
199
- VALUE ph_ifkit_set_output_state(VALUE self, VALUE index, VALUE state) {
200
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
201
- ph_raise(CPhidgetInterfaceKit_setOutputState(handle, FIX2INT(index), TYPE(state) == T_TRUE ? PTRUE : PFALSE));
202
- return Qnil;
203
- }
204
-
205
- VALUE ph_ifkit_get_sensor_count(VALUE self) {
206
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
207
- int count;
208
- ph_raise(CPhidgetInterfaceKit_getSensorCount(handle, &count));
209
- return INT2FIX(count);
210
- }
211
-
212
- VALUE ph_ifkit_get_sensor_value(VALUE self, VALUE index) {
213
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
214
- int value;
215
- ph_raise(CPhidgetInterfaceKit_getSensorValue(handle, FIX2INT(index), &value));
216
- return INT2FIX(value);
217
- }
218
-
219
- VALUE ph_ifkit_get_sensor_raw_value(VALUE self, VALUE index) {
220
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
221
- int value;
222
- ph_raise(CPhidgetInterfaceKit_getSensorRawValue(handle, FIX2INT(index), &value));
223
- return INT2FIX(value);
224
- }
225
-
226
- VALUE ph_ifkit_get_ratiometric(VALUE self) {
227
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
228
- int ratiometric;
229
- ph_raise(CPhidgetInterfaceKit_getRatiometric(handle, &ratiometric));
230
- return ratiometric == PTRUE ? Qtrue : Qfalse;
231
- }
232
-
233
- VALUE ph_ifkit_set_ratiometric(VALUE self, VALUE ratiometric) {
234
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
235
- ph_raise(CPhidgetInterfaceKit_setRatiometric(handle, TYPE(ratiometric) == T_TRUE ? PTRUE : PFALSE));
236
- return Qnil;
237
- }
238
-
239
- VALUE ph_ifkit_get_data_rate(VALUE self, VALUE index) {
240
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
241
- int rate;
242
- ph_raise(CPhidgetInterfaceKit_getDataRate(handle, FIX2INT(index), &rate));
243
- return INT2FIX(rate);
244
- }
245
-
246
- VALUE ph_ifkit_get_data_rate_min(VALUE self, VALUE index) {
247
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
248
- int rate;
249
- ph_raise(CPhidgetInterfaceKit_getDataRateMin(handle, FIX2INT(index), &rate));
250
- return INT2FIX(rate);
251
- }
252
-
253
- VALUE ph_ifkit_get_data_rate_max(VALUE self, VALUE index) {
254
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
255
- int rate;
256
- ph_raise(CPhidgetInterfaceKit_getDataRateMax(handle, FIX2INT(index), &rate));
257
- return INT2FIX(rate);
258
- }
259
-
260
- VALUE ph_ifkit_set_data_rate(VALUE self, VALUE index, VALUE rate) {
261
- CPhidgetInterfaceKitHandle handle = (CPhidgetInterfaceKitHandle)get_ph_handle(self);
262
- ph_raise(CPhidgetInterfaceKit_setDataRate(handle, FIX2INT(index), FIX2INT(rate)));
263
- return Qnil;
264
- }
265
-
266
- #ifdef PH_CALLBACK
267
- VALUE ph_ifkit_set_on_input_change_handler(VALUE self, VALUE handler) {
268
- ph_data_t *ph = get_ph_data(self);
269
- ph_callback_data_t *callback_data = &ph->dev_callback_1;
270
- if( TYPE(handler) == T_NIL ) {
271
- callback_data->exit = true;
272
- ph_raise(CPhidgetInterfaceKit_set_OnInputChange_Handler((CPhidgetInterfaceKitHandle)ph->handle, NULL, (void *)NULL));
273
- } else {
274
- callback_data->called = false;
275
- callback_data->exit = false;
276
- callback_data->phidget = self;
277
- callback_data->callback = handler;
278
- ph_raise(CPhidgetInterfaceKit_set_OnInputChange_Handler((CPhidgetInterfaceKitHandle)ph->handle, ph_ifkit_on_input_change, (void *)callback_data));
279
- ph_callback_thread(callback_data);
280
- }
281
- return Qnil;
282
- }
283
-
284
- VALUE ph_ifkit_set_on_output_change_handler(VALUE self, VALUE handler) {
285
- ph_data_t *ph = get_ph_data(self);
286
- ph_callback_data_t *callback_data = &ph->dev_callback_2;
287
- if( TYPE(handler) == T_NIL ) {
288
- callback_data->exit = true;
289
- ph_raise(CPhidgetInterfaceKit_set_OnOutputChange_Handler((CPhidgetInterfaceKitHandle)ph->handle, NULL, (void *)NULL));
290
- } else {
291
- callback_data->called = false;
292
- callback_data->exit = false;
293
- callback_data->phidget = self;
294
- callback_data->callback = handler;
295
- ph_raise(CPhidgetInterfaceKit_set_OnOutputChange_Handler((CPhidgetInterfaceKitHandle)ph->handle, ph_ifkit_on_output_change, (void *)callback_data));
296
- ph_callback_thread(callback_data);
297
- }
298
- return Qnil;
299
- }
300
-
301
- VALUE ph_ifkit_set_on_sensor_change_handler(VALUE self, VALUE handler) {
302
- ph_data_t *ph = get_ph_data(self);
303
- ph_callback_data_t *callback_data = &ph->dev_callback_3;
304
- if( TYPE(handler) == T_NIL ) {
305
- callback_data->exit = true;
306
- ph_raise(CPhidgetInterfaceKit_set_OnSensorChange_Handler((CPhidgetInterfaceKitHandle)ph->handle, NULL, (void *)NULL));
307
- } else {
308
- callback_data->called = false;
309
- callback_data->exit = false;
310
- callback_data->phidget = self;
311
- callback_data->callback = handler;
312
- ph_raise(CPhidgetInterfaceKit_set_OnSensorChange_Handler((CPhidgetInterfaceKitHandle)ph->handle, ph_ifkit_on_sensor_change, (void *)callback_data));
313
- ph_callback_thread(callback_data);
314
- }
315
- return Qnil;
316
- }
317
-
318
-
319
- int ph_ifkit_on_input_change(CPhidgetInterfaceKitHandle phid, void *userPtr, int index, int state) {
320
- ph_callback_data_t *callback_data = ((ph_callback_data_t *)userPtr);
321
- callback_data->called = true;
322
- return EPHIDGET_OK;
323
- }
324
-
325
-
326
- int ph_ifkit_on_output_change(CPhidgetInterfaceKitHandle phid, void *userPtr, int index, int state) {
327
- ph_callback_data_t *callback_data = ((ph_callback_data_t *)userPtr);
328
- callback_data->called = true;
329
- return EPHIDGET_OK;
330
- }
331
-
332
-
333
- int ph_ifkit_on_sensor_change(CPhidgetInterfaceKitHandle phid, void *userPtr, int index, int value) {
334
- ph_callback_data_t *callback_data = ((ph_callback_data_t *)userPtr);
335
- callback_data->called = true;
336
- return EPHIDGET_OK;
337
- }
338
- #endif
339
-
340
-