phidgets 0.0.5 → 0.1.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 (88) hide show
  1. data/History.txt +10 -2
  2. data/README.rdoc +41 -18
  3. data/Rakefile +31 -20
  4. data/bin/phidget +29 -44
  5. data/ext/phidgets/extconf.rb +14 -0
  6. data/ext/phidgets/phidgets.c +272 -0
  7. data/ext/phidgets/phidgets.h +82 -0
  8. data/ext/phidgets/phidgets_accelerometer.c +165 -0
  9. data/ext/phidgets/phidgets_advanced_servo.c +567 -0
  10. data/ext/phidgets/phidgets_analog.c +139 -0
  11. data/ext/phidgets/phidgets_bridge.c +263 -0
  12. data/ext/phidgets/phidgets_common.c +454 -0
  13. data/ext/phidgets/phidgets_dictionary.c +279 -0
  14. data/ext/phidgets/phidgets_encoder.c +249 -0
  15. data/ext/phidgets/phidgets_frequency_counter.c +241 -0
  16. data/ext/phidgets/phidgets_gps.c +235 -0
  17. data/ext/phidgets/phidgets_interface_kit.c +340 -0
  18. data/ext/phidgets/phidgets_ir.c +251 -0
  19. data/ext/phidgets/phidgets_led.c +178 -0
  20. data/ext/phidgets/phidgets_manager.c +366 -0
  21. data/ext/phidgets/phidgets_motor_control.c +642 -0
  22. data/ext/phidgets/phidgets_phsensor.c +208 -0
  23. data/ext/phidgets/phidgets_rfid.c +281 -0
  24. data/ext/phidgets/phidgets_servo.c +276 -0
  25. data/ext/phidgets/phidgets_spatial.c +369 -0
  26. data/ext/phidgets/phidgets_stepper.c +560 -0
  27. data/ext/phidgets/phidgets_temp_sensor.c +295 -0
  28. data/ext/phidgets/phidgets_text_lcd.c +381 -0
  29. data/ext/phidgets/phidgets_text_led.c +107 -0
  30. data/ext/phidgets/phidgets_weight_sensor.c +113 -0
  31. data/lib/phidgets/accelerometer.rb +25 -0
  32. data/lib/phidgets/advanced_servo.rb +49 -0
  33. data/lib/phidgets/analog.rb +8 -0
  34. data/lib/phidgets/bridge.rb +25 -0
  35. data/lib/phidgets/common.rb +75 -190
  36. data/lib/phidgets/dictionary.rb +53 -0
  37. data/lib/phidgets/encoder.rb +49 -0
  38. data/lib/phidgets/frequency_counter.rb +25 -0
  39. data/lib/phidgets/gps.rb +37 -0
  40. data/lib/phidgets/interfacekit.rb +38 -128
  41. data/lib/phidgets/ir.rb +50 -0
  42. data/lib/phidgets/led.rb +8 -0
  43. data/lib/phidgets/manager.rb +67 -119
  44. data/lib/phidgets/motor_control.rb +110 -0
  45. data/lib/phidgets/ph_sensor.rb +25 -0
  46. data/lib/phidgets/rfid.rb +38 -111
  47. data/lib/phidgets/servo.rb +12 -95
  48. data/lib/phidgets/spatial.rb +25 -0
  49. data/lib/phidgets/stepper.rb +61 -0
  50. data/lib/phidgets/temperature_sensor.rb +25 -0
  51. data/lib/phidgets/text_lcd.rb +8 -0
  52. data/lib/phidgets/text_led.rb +8 -0
  53. data/lib/phidgets/weight_sensor.rb +25 -0
  54. data/lib/phidgets.rb +22 -3
  55. data/phidgets.gemspec +42 -0
  56. data/test/test_accelerometer.rb +47 -0
  57. data/test/test_advanced_servo.rb +152 -0
  58. data/test/test_analog.rb +45 -0
  59. data/test/test_bridge.rb +77 -0
  60. data/test/test_common.rb +167 -0
  61. data/test/test_dictionary.rb +82 -0
  62. data/test/test_encoder.rb +67 -0
  63. data/test/test_frequency_counter.rb +67 -0
  64. data/test/test_gps.rb +67 -0
  65. data/test/test_helper.rb +1 -0
  66. data/test/test_interfacekit.rb +86 -182
  67. data/test/test_ir.rb +57 -0
  68. data/test/test_led.rb +55 -0
  69. data/test/test_manager.rb +94 -0
  70. data/test/test_motor_control.rb +172 -0
  71. data/test/test_phidgets.rb +14 -6
  72. data/test/test_phsensor.rb +62 -0
  73. data/test/test_rfid.rb +77 -0
  74. data/test/test_servo.rb +67 -0
  75. data/test/test_spatial.rb +112 -0
  76. data/test/test_stepper.rb +163 -0
  77. data/test/test_temp_sensor.rb +87 -0
  78. data/test/test_text_lcd.rb +115 -0
  79. data/test/test_text_led.rb +35 -0
  80. data/test/test_weight_sensor.rb +32 -0
  81. metadata +165 -75
  82. data/Manifest.txt +0 -21
  83. data/PostInstall.txt +0 -3
  84. data/README.txt +0 -87
  85. data/lib/phidgets/phidgets.rb +0 -225
  86. data/script/console +0 -10
  87. data/script/destroy +0 -14
  88. data/script/generate +0 -14
@@ -0,0 +1,165 @@
1
+
2
+ #include "phidgets.h"
3
+
4
+
5
+ VALUE ph_accel_init(VALUE self);
6
+ VALUE ph_accel_get_axis_count(VALUE self);
7
+ VALUE ph_accel_get_acceleration(VALUE self, VALUE index);
8
+ VALUE ph_accel_get_acceleration_min(VALUE self, VALUE index);
9
+ VALUE ph_accel_get_acceleration_max(VALUE self, VALUE index);
10
+ VALUE ph_accel_get_acceleration_change_trigger(VALUE self, VALUE index);
11
+ VALUE ph_accel_set_acceleration_change_trigger(VALUE self, VALUE index, VALUE trigger);
12
+
13
+ #ifdef PH_CALLBACK
14
+ VALUE ph_accel_set_on_acceleration_change_handler(VALUE self, VALUE handler);
15
+ int ph_accel_on_acceleration_change(CPhidgetAccelerometerHandle phid, void *userPtr, int index, double accel);
16
+ #endif
17
+
18
+
19
+
20
+ VALUE Init_phidgets_accel(VALUE ph_module, VALUE ph_common) {
21
+ VALUE ph_accel = rb_define_class_under(ph_module, "Accelerometer", ph_common);
22
+
23
+ /* Document-method: new
24
+ * call-seq: new
25
+ *
26
+ * Creates a Phidget Accelerometer object.
27
+ */
28
+ rb_define_method(ph_accel, "initialize", ph_accel_init, 0);
29
+
30
+ /* Document-method: getAxisCount
31
+ * call-seq: getAxisCount
32
+ *
33
+ * Gets the number of acceleration axes supported by this accelerometer.
34
+ */
35
+ rb_define_method(ph_accel, "getAxisCount", ph_accel_get_axis_count, 0);
36
+
37
+ /* Document-method: getAcceleration
38
+ * call-seq: getAcceleration(index)
39
+ *
40
+ * Gets the current acceleration of an axis.
41
+ */
42
+ rb_define_method(ph_accel, "getAcceleration", ph_accel_get_acceleration, 1);
43
+
44
+ /* Document-method: getAccelerationMin
45
+ * call-seq: getAccelerationMin(index)
46
+ *
47
+ * Gets the minimum acceleraiton supported by an axis.
48
+ */
49
+ rb_define_method(ph_accel, "getAccelerationMin", ph_accel_get_acceleration_min, 1);
50
+
51
+ /* Document-method: getAccelerationMax
52
+ * call-seq: getAccelerationMax(index)
53
+ *
54
+ * Gets the maximum accleration supported by an axis.
55
+ */
56
+ rb_define_method(ph_accel, "getAccelerationMax", ph_accel_get_acceleration_max, 1);
57
+
58
+ /* Document-method: getAccelerationChangeTrigger
59
+ * call-seq: getAccelerationChangeTrigger(index)
60
+ *
61
+ * Gets the change trigger for an axis.
62
+ */
63
+ rb_define_method(ph_accel, "getAccelerationChangeTrigger", ph_accel_get_acceleration_change_trigger, 1);
64
+
65
+ /* Document-method: setAccelerationChangeTrigger
66
+ * call-seq: setAccelerationChangeTrigger(index, trigger)
67
+ *
68
+ * Sets the change trigger for an axis.
69
+ */
70
+ rb_define_method(ph_accel, "setAccelerationChangeTrigger", ph_accel_set_acceleration_change_trigger, 2);
71
+
72
+ #ifdef PH_CALLBACK
73
+ rb_define_private_method(ph_accel, "ext_setOnAccelerationChangeHandler", ph_accel_set_on_acceleration_change_handler, 1);
74
+ #endif
75
+
76
+ rb_define_alias(ph_accel, "axis_count", "getAxisCount");
77
+ rb_define_alias(ph_accel, "acceleration", "getAcceleration");
78
+ rb_define_alias(ph_accel, "acceleration_min", "getAccelerationMin");
79
+ rb_define_alias(ph_accel, "acceleration_max", "getAccelerationMax");
80
+ rb_define_alias(ph_accel, "acceleration_change_trigger", "getAccelerationChangeTrigger");
81
+ rb_define_alias(ph_accel, "set_acceleration_change_trigger", "setAccelerationChangeTrigger");
82
+
83
+ return ph_accel;
84
+ }
85
+
86
+
87
+ VALUE ph_accel_init(VALUE self) {
88
+ ph_data_t *ph = get_ph_data(self);
89
+ ph_raise(CPhidgetAccelerometer_create((CPhidgetAccelerometerHandle *)(&(ph->handle))));
90
+ return self;
91
+ }
92
+
93
+
94
+ VALUE ph_accel_get_axis_count(VALUE self) {
95
+ CPhidgetAccelerometerHandle handle = (CPhidgetAccelerometerHandle)get_ph_handle(self);
96
+ int count;
97
+ ph_raise(CPhidgetAccelerometer_getAxisCount(handle, &count));
98
+ return INT2FIX(count);
99
+ }
100
+
101
+
102
+ VALUE ph_accel_get_acceleration(VALUE self, VALUE index) {
103
+ CPhidgetAccelerometerHandle handle = (CPhidgetAccelerometerHandle)get_ph_handle(self);
104
+ double accel;
105
+ ph_raise(CPhidgetAccelerometer_getAcceleration(handle, NUM2INT(index), &accel));
106
+ return rb_float_new(accel);
107
+ }
108
+
109
+
110
+ VALUE ph_accel_get_acceleration_min(VALUE self, VALUE index) {
111
+ CPhidgetAccelerometerHandle handle = (CPhidgetAccelerometerHandle)get_ph_handle(self);
112
+ double accel;
113
+ ph_raise(CPhidgetAccelerometer_getAccelerationMin(handle, NUM2INT(index), &accel));
114
+ return rb_float_new(accel);
115
+ }
116
+
117
+
118
+ VALUE ph_accel_get_acceleration_max(VALUE self, VALUE index) {
119
+ CPhidgetAccelerometerHandle handle = (CPhidgetAccelerometerHandle)get_ph_handle(self);
120
+ double accel;
121
+ ph_raise(CPhidgetAccelerometer_getAccelerationMax(handle, NUM2INT(index), &accel));
122
+ return rb_float_new(accel);
123
+ }
124
+
125
+
126
+ VALUE ph_accel_get_acceleration_change_trigger(VALUE self, VALUE index) {
127
+ CPhidgetAccelerometerHandle handle = (CPhidgetAccelerometerHandle)get_ph_handle(self);
128
+ double trigger;
129
+ ph_raise(CPhidgetAccelerometer_getAccelerationChangeTrigger(handle, NUM2INT(index), &trigger));
130
+ return rb_float_new(trigger);
131
+ }
132
+
133
+
134
+ VALUE ph_accel_set_acceleration_change_trigger(VALUE self, VALUE index, VALUE trigger) {
135
+ CPhidgetAccelerometerHandle handle = (CPhidgetAccelerometerHandle)get_ph_handle(self);
136
+ ph_raise(CPhidgetAccelerometer_setAccelerationChangeTrigger(handle, NUM2INT(index), NUM2DBL(trigger)));
137
+ return Qnil;
138
+ }
139
+
140
+ #ifdef PH_CALLBACK
141
+ VALUE ph_accel_set_on_acceleration_change_handler(VALUE self, VALUE handler) {
142
+ ph_data_t *ph = get_ph_data(self);
143
+ ph_callback_data_t *callback_data = &ph->dev_callback_1;
144
+ if( TYPE(handler) == T_NIL ) {
145
+ callback_data->exit = true;
146
+ ph_raise(CPhidgetAccelerometer_set_OnAccelerationChange_Handler((CPhidgetAccelerometerHandle)ph->handle, NULL, (void *)NULL));
147
+ } else {
148
+ callback_data->called = false;
149
+ callback_data->exit = false;
150
+ callback_data->phidget = self;
151
+ callback_data->callback = handler;
152
+ ph_raise(CPhidgetAccelerometer_set_OnAccelerationChange_Handler((CPhidgetAccelerometerHandle)ph->handle, ph_accel_on_acceleration_change, (void *)callback_data));
153
+ ph_callback_thread(callback_data);
154
+ }
155
+ return Qnil;
156
+ }
157
+
158
+
159
+ int ph_accel_on_acceleration_change(CPhidgetAccelerometerHandle phid, void *userPtr, int index, double accel) {
160
+ ph_callback_data_t *callback_data = ((ph_callback_data_t *)userPtr);
161
+ callback_data->called = true;
162
+ return EPHIDGET_OK;
163
+ }
164
+ #endif
165
+