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.
- data/History.txt +10 -2
- data/README.rdoc +41 -18
- data/Rakefile +31 -20
- data/bin/phidget +29 -44
- data/ext/phidgets/extconf.rb +14 -0
- data/ext/phidgets/phidgets.c +272 -0
- data/ext/phidgets/phidgets.h +82 -0
- data/ext/phidgets/phidgets_accelerometer.c +165 -0
- data/ext/phidgets/phidgets_advanced_servo.c +567 -0
- data/ext/phidgets/phidgets_analog.c +139 -0
- data/ext/phidgets/phidgets_bridge.c +263 -0
- data/ext/phidgets/phidgets_common.c +454 -0
- data/ext/phidgets/phidgets_dictionary.c +279 -0
- data/ext/phidgets/phidgets_encoder.c +249 -0
- data/ext/phidgets/phidgets_frequency_counter.c +241 -0
- data/ext/phidgets/phidgets_gps.c +235 -0
- data/ext/phidgets/phidgets_interface_kit.c +340 -0
- data/ext/phidgets/phidgets_ir.c +251 -0
- data/ext/phidgets/phidgets_led.c +178 -0
- data/ext/phidgets/phidgets_manager.c +366 -0
- data/ext/phidgets/phidgets_motor_control.c +642 -0
- data/ext/phidgets/phidgets_phsensor.c +208 -0
- data/ext/phidgets/phidgets_rfid.c +281 -0
- data/ext/phidgets/phidgets_servo.c +276 -0
- data/ext/phidgets/phidgets_spatial.c +369 -0
- data/ext/phidgets/phidgets_stepper.c +560 -0
- data/ext/phidgets/phidgets_temp_sensor.c +295 -0
- data/ext/phidgets/phidgets_text_lcd.c +381 -0
- data/ext/phidgets/phidgets_text_led.c +107 -0
- data/ext/phidgets/phidgets_weight_sensor.c +113 -0
- data/lib/phidgets/accelerometer.rb +25 -0
- data/lib/phidgets/advanced_servo.rb +49 -0
- data/lib/phidgets/analog.rb +8 -0
- data/lib/phidgets/bridge.rb +25 -0
- data/lib/phidgets/common.rb +75 -190
- data/lib/phidgets/dictionary.rb +53 -0
- data/lib/phidgets/encoder.rb +49 -0
- data/lib/phidgets/frequency_counter.rb +25 -0
- data/lib/phidgets/gps.rb +37 -0
- data/lib/phidgets/interfacekit.rb +38 -128
- data/lib/phidgets/ir.rb +50 -0
- data/lib/phidgets/led.rb +8 -0
- data/lib/phidgets/manager.rb +67 -119
- data/lib/phidgets/motor_control.rb +110 -0
- data/lib/phidgets/ph_sensor.rb +25 -0
- data/lib/phidgets/rfid.rb +38 -111
- data/lib/phidgets/servo.rb +12 -95
- data/lib/phidgets/spatial.rb +25 -0
- data/lib/phidgets/stepper.rb +61 -0
- data/lib/phidgets/temperature_sensor.rb +25 -0
- data/lib/phidgets/text_lcd.rb +8 -0
- data/lib/phidgets/text_led.rb +8 -0
- data/lib/phidgets/weight_sensor.rb +25 -0
- data/lib/phidgets.rb +22 -3
- data/phidgets.gemspec +42 -0
- data/test/test_accelerometer.rb +47 -0
- data/test/test_advanced_servo.rb +152 -0
- data/test/test_analog.rb +45 -0
- data/test/test_bridge.rb +77 -0
- data/test/test_common.rb +167 -0
- data/test/test_dictionary.rb +82 -0
- data/test/test_encoder.rb +67 -0
- data/test/test_frequency_counter.rb +67 -0
- data/test/test_gps.rb +67 -0
- data/test/test_helper.rb +1 -0
- data/test/test_interfacekit.rb +86 -182
- data/test/test_ir.rb +57 -0
- data/test/test_led.rb +55 -0
- data/test/test_manager.rb +94 -0
- data/test/test_motor_control.rb +172 -0
- data/test/test_phidgets.rb +14 -6
- data/test/test_phsensor.rb +62 -0
- data/test/test_rfid.rb +77 -0
- data/test/test_servo.rb +67 -0
- data/test/test_spatial.rb +112 -0
- data/test/test_stepper.rb +163 -0
- data/test/test_temp_sensor.rb +87 -0
- data/test/test_text_lcd.rb +115 -0
- data/test/test_text_led.rb +35 -0
- data/test/test_weight_sensor.rb +32 -0
- metadata +165 -75
- data/Manifest.txt +0 -21
- data/PostInstall.txt +0 -3
- data/README.txt +0 -87
- data/lib/phidgets/phidgets.rb +0 -225
- data/script/console +0 -10
- data/script/destroy +0 -14
- 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
|
+
|