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.
- checksums.yaml +4 -4
- data/History.txt +3 -0
- data/README.rdoc +32 -43
- data/Rakefile +4 -2
- data/bin/phidget +18 -72
- data/ext/phidgets/extconf.rb +5 -8
- data/ext/phidgets/phidgets.c +708 -173
- data/ext/phidgets/phidgets.h +54 -35
- data/ext/phidgets/phidgets_accelerometer.c +193 -109
- data/ext/phidgets/phidgets_bldc_motor.c +529 -0
- data/ext/phidgets/phidgets_capacitive_touch.c +302 -0
- data/ext/phidgets/phidgets_common.c +570 -315
- data/ext/phidgets/phidgets_current_input.c +229 -0
- data/ext/phidgets/phidgets_dc_motor.c +562 -0
- data/ext/phidgets/phidgets_dictionary.c +154 -213
- data/ext/phidgets/phidgets_digital_input.c +127 -0
- data/ext/phidgets/phidgets_digital_output.c +288 -0
- data/ext/phidgets/phidgets_distance_sensor.c +295 -0
- data/ext/phidgets/phidgets_encoder.c +211 -192
- data/ext/phidgets/phidgets_frequency_counter.c +310 -177
- data/ext/phidgets/phidgets_gps.c +226 -164
- data/ext/phidgets/phidgets_gyroscope.c +195 -0
- data/ext/phidgets/phidgets_hub.c +39 -0
- data/ext/phidgets/phidgets_humidity_sensor.c +200 -0
- data/ext/phidgets/phidgets_ir.c +211 -171
- data/ext/phidgets/phidgets_lcd.c +512 -0
- data/ext/phidgets/phidgets_light_sensor.c +200 -0
- data/ext/phidgets/phidgets_log.c +263 -0
- data/ext/phidgets/phidgets_magnetometer.c +279 -0
- data/ext/phidgets/phidgets_manager.c +86 -297
- data/ext/phidgets/phidgets_motor_position_controller.c +787 -0
- data/ext/phidgets/phidgets_phsensor.c +200 -152
- data/ext/phidgets/phidgets_power_guard.c +144 -0
- data/ext/phidgets/phidgets_pressure_sensor.c +200 -0
- data/ext/phidgets/phidgets_rc_servo.c +672 -0
- data/ext/phidgets/phidgets_resistance_input.c +227 -0
- data/ext/phidgets/phidgets_rfid.c +107 -221
- data/ext/phidgets/phidgets_sound_sensor.c +284 -0
- data/ext/phidgets/phidgets_spatial.c +124 -318
- data/ext/phidgets/phidgets_stepper.c +457 -430
- data/ext/phidgets/phidgets_temp_sensor.c +223 -228
- data/ext/phidgets/phidgets_voltage_input.c +428 -0
- data/ext/phidgets/phidgets_voltage_output.c +167 -0
- data/ext/phidgets/phidgets_voltage_ratio_input.c +435 -0
- data/lib/phidgets.rb +21 -14
- data/lib/phidgets/accelerometer.rb +11 -15
- data/lib/phidgets/bldc_motor.rb +45 -0
- data/lib/phidgets/capacitive_touch.rb +33 -0
- data/lib/phidgets/common.rb +40 -69
- data/lib/phidgets/current_input.rb +21 -0
- data/lib/phidgets/dc_motor.rb +45 -0
- data/lib/phidgets/dictionary.rb +30 -39
- data/lib/phidgets/digital_input.rb +21 -0
- data/lib/phidgets/digital_output.rb +56 -0
- data/lib/phidgets/distance_sensor.rb +33 -0
- data/lib/phidgets/encoder.rb +1 -29
- data/lib/phidgets/frequency_counter.rb +23 -14
- data/lib/phidgets/gps.rb +34 -26
- data/lib/phidgets/gyroscope.rb +21 -0
- data/lib/phidgets/humidity_sensor.rb +21 -0
- data/lib/phidgets/ir.rb +34 -39
- data/lib/phidgets/light_sensor.rb +21 -0
- data/lib/phidgets/magnetometer.rb +21 -0
- data/lib/phidgets/manager.rb +18 -66
- data/lib/phidgets/motor_position_controller.rb +45 -0
- data/lib/phidgets/ph_sensor.rb +2 -6
- data/lib/phidgets/pressure_sensor.rb +21 -0
- data/lib/phidgets/rc_servo.rb +58 -0
- data/lib/phidgets/resistance_input.rb +21 -0
- data/lib/phidgets/rfid.rb +22 -38
- data/lib/phidgets/sound_sensor.rb +21 -0
- data/lib/phidgets/spatial.rb +11 -15
- data/lib/phidgets/stepper.rb +48 -50
- data/lib/phidgets/temperature_sensor.rb +11 -15
- data/lib/phidgets/version.rb +5 -0
- data/lib/phidgets/voltage_input.rb +34 -0
- data/lib/phidgets/voltage_output.rb +23 -0
- data/lib/phidgets/voltage_ratio_input.rb +34 -0
- data/phidgets.gemspec +3 -22
- data/test/test_accelerometer.rb +42 -23
- data/test/test_bldc_motor.rb +134 -0
- data/test/test_capacitive_touch.rb +82 -0
- data/test/test_common.rb +125 -108
- data/test/test_current_input.rb +62 -0
- data/test/test_dc_motor.rb +146 -0
- data/test/test_dictionary.rb +22 -54
- data/test/test_digital_input.rb +30 -0
- data/test/test_digital_output.rb +70 -0
- data/test/test_distance_sensor.rb +76 -0
- data/test/test_encoder.rb +45 -38
- data/test/test_frequency_counter.rb +71 -36
- data/test/test_gps.rb +29 -38
- data/test/test_gyroscope.rb +54 -0
- data/test/test_helper.rb +0 -1
- data/test/test_hub.rb +14 -0
- data/test/test_humidity_sensor.rb +58 -0
- data/test/test_ir.rb +34 -34
- data/test/test_lcd.rb +146 -0
- data/test/test_light_sensor.rb +58 -0
- data/test/test_magnetometer.rb +78 -0
- data/test/test_manager.rb +10 -79
- data/test/test_motor_control.rb +146 -108
- data/test/test_phidgets.rb +2 -14
- data/test/test_phsensor.rb +46 -34
- data/test/test_power_guard.rb +42 -0
- data/test/test_pressure_sensor.rb +58 -0
- data/test/test_rc_servo.rb +174 -0
- data/test/test_resistance_input.rb +66 -0
- data/test/test_rfid.rb +15 -54
- data/test/test_sound_sensor.rb +78 -0
- data/test/test_spatial.rb +19 -85
- data/test/test_stepper.rb +89 -98
- data/test/test_temp_sensor.rb +42 -47
- data/test/test_voltage_input.rb +102 -0
- data/test/test_voltage_output.rb +46 -0
- data/test/test_voltage_ratio_input.rb +102 -0
- metadata +72 -89
- data/ext/phidgets/phidgets_advanced_servo.c +0 -567
- data/ext/phidgets/phidgets_analog.c +0 -139
- data/ext/phidgets/phidgets_bridge.c +0 -263
- data/ext/phidgets/phidgets_interface_kit.c +0 -340
- data/ext/phidgets/phidgets_led.c +0 -178
- data/ext/phidgets/phidgets_motor_control.c +0 -642
- data/ext/phidgets/phidgets_servo.c +0 -276
- data/ext/phidgets/phidgets_text_lcd.c +0 -381
- data/ext/phidgets/phidgets_text_led.c +0 -107
- data/ext/phidgets/phidgets_weight_sensor.c +0 -113
- data/lib/phidgets/advanced_servo.rb +0 -49
- data/lib/phidgets/analog.rb +0 -8
- data/lib/phidgets/bridge.rb +0 -25
- data/lib/phidgets/interfacekit.rb +0 -49
- data/lib/phidgets/led.rb +0 -8
- data/lib/phidgets/motor_control.rb +0 -110
- data/lib/phidgets/servo.rb +0 -23
- data/lib/phidgets/text_lcd.rb +0 -8
- data/lib/phidgets/text_led.rb +0 -8
- data/lib/phidgets/weight_sensor.rb +0 -25
- data/test/test_advanced_servo.rb +0 -152
- data/test/test_analog.rb +0 -45
- data/test/test_bridge.rb +0 -77
- data/test/test_interfacekit.rb +0 -97
- data/test/test_led.rb +0 -55
- data/test/test_servo.rb +0 -67
- data/test/test_text_lcd.rb +0 -115
- data/test/test_text_led.rb +0 -35
- data/test/test_weight_sensor.rb +0 -32
@@ -3,23 +3,19 @@
|
|
3
3
|
module Phidgets
|
4
4
|
class Accelerometer < Common
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
callback = cb_proc || cb_block
|
16
|
-
@on_acceleration_change_thread = Thread.new {ext_setOnAccelerationChangeHandler(callback)}
|
17
|
-
end
|
18
|
-
|
19
|
-
alias :on_acceleration_change :setOnAccelerationChangeHandler
|
20
|
-
|
6
|
+
# call-seq:
|
7
|
+
# setOnAccelerationChangeHandler(proc=nil, &block)
|
8
|
+
#
|
9
|
+
# Sets an acceleration change event handler. This is called when the acceleration changes by more then the change trigger.
|
10
|
+
#
|
11
|
+
def setOnAccelerationChangeHandler(cb_proc = nil, &cb_block)
|
12
|
+
@on_acceleration_change_thread.kill if defined? @on_acceleration_change_thread and @on_acceleration_change_thread.alive?
|
13
|
+
callback = cb_proc || cb_block
|
14
|
+
@on_acceleration_change_thread = Thread.new {ext_setOnAccelerationChangeHandler(callback)}
|
21
15
|
end
|
22
16
|
|
17
|
+
alias :on_acceleration_change :setOnAccelerationChangeHandler
|
18
|
+
|
23
19
|
end
|
24
20
|
end
|
25
21
|
|
@@ -0,0 +1,45 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Phidgets
|
4
|
+
class BLDCMotor < Common
|
5
|
+
|
6
|
+
# call-seq:
|
7
|
+
# setOnBrakingStrengthChangeHandler(proc=nil, &block)
|
8
|
+
#
|
9
|
+
# Assigns a handler that will be called when the Stopped event occurs.
|
10
|
+
#
|
11
|
+
def setOnBrakingStrengthChangeHandler(cb_proc = nil, &cb_block)
|
12
|
+
@on_braking_strength_change_thread.kill if defined? @on_braking_strength_change_thread and @on_braking_strength_change_thread.alive?
|
13
|
+
callback = cb_proc || cb_block
|
14
|
+
@on_braking_strength_change_thread = Thread.new {ext_setOnBrakingStrengthChangeHandler(callback)}
|
15
|
+
end
|
16
|
+
|
17
|
+
# call-seq:
|
18
|
+
# setOnPositionChangeHandler(proc=nil, &block)
|
19
|
+
#
|
20
|
+
# Assigns a handler that will be called when the PositionChange event occurs.
|
21
|
+
#
|
22
|
+
def setOnPositionChangeHandler(cb_proc = nil, &cb_block)
|
23
|
+
@on_position_change_thread.kill if defined? @on_position_change_thread and @on_position_change_thread.alive?
|
24
|
+
callback = cb_proc || cb_block
|
25
|
+
@on_position_change_thread = Thread.new {ext_setOnPositionChangeHandler(callback)}
|
26
|
+
end
|
27
|
+
|
28
|
+
# call-seq:
|
29
|
+
# setOnVelocityUpdateHandler(proc=nil, &block)
|
30
|
+
#
|
31
|
+
# Assigns a handler that will be called when the VelocityChange event occurs.
|
32
|
+
#
|
33
|
+
def setOnVelocityUpdateHandler(cb_proc = nil, &cb_block)
|
34
|
+
@on_velocity_update_thread.kill if defined? @on_velocity_update_thread and @on_velocity_update_thread.alive?
|
35
|
+
callback = cb_proc || cb_block
|
36
|
+
@on_velocity_update_thread = Thread.new {ext_setOnVelocityUpdateHandler(callback)}
|
37
|
+
end
|
38
|
+
|
39
|
+
alias :on_braking_strength_change :setOnBrakingStrengthChangeHandler
|
40
|
+
alias :on_position_change :setOnPositionChangeHandler
|
41
|
+
alias :on_velocity_update :setOnVelocityUpdateHandler
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Phidgets
|
4
|
+
class CapacitiveTouch < Common
|
5
|
+
|
6
|
+
# call-seq:
|
7
|
+
# setOnTouchEndHandler(proc=nil, &block)
|
8
|
+
#
|
9
|
+
# Assigns a handler that will be called when the TouchEnd event occurs.
|
10
|
+
#
|
11
|
+
def setOnTouchEndHandler(cb_proc = nil, &cb_block)
|
12
|
+
@on_touch_end_thread.kill if defined? @on_touch_end_thread and @on_touch_end_thread.alive?
|
13
|
+
callback = cb_proc || cb_block
|
14
|
+
@on_touch_end_thread = Thread.new {ext_setOnTouchEndHandler(callback)}
|
15
|
+
end
|
16
|
+
|
17
|
+
# call-seq:
|
18
|
+
# setOnTouchHandler(proc=nil, &block)
|
19
|
+
#
|
20
|
+
# Assigns a handler that will be called when the PositionChange event occurs.
|
21
|
+
#
|
22
|
+
def setOnTouchHandler(cb_proc = nil, &cb_block)
|
23
|
+
@on_touch_thread.kill if defined? @on_touch_thread and @on_touch_thread.alive?
|
24
|
+
callback = cb_proc || cb_block
|
25
|
+
@on_touch_thread = Thread.new {ext_setOnTouchHandler(callback)}
|
26
|
+
end
|
27
|
+
|
28
|
+
alias :on_touch_end :setOnTouchEndHandler
|
29
|
+
alias :on_touch :setOnTouchHandler
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
data/lib/phidgets/common.rb
CHANGED
@@ -3,83 +3,54 @@ module Phidgets
|
|
3
3
|
class Common
|
4
4
|
|
5
5
|
# call-seq:
|
6
|
-
#
|
6
|
+
# setOnAttachHandler(proc=nil, &block)
|
7
7
|
#
|
8
|
-
#
|
9
|
-
# based on the arguments passed in. Args can either be a serial number or a hash of arguments. If it is a
|
10
|
-
# hash, the following keys may be used: :serial_number, :label, :server_id, :address, :port, :password.
|
8
|
+
# Assigns a handler that will be called when the Attach event occurs.
|
11
9
|
#
|
12
|
-
def
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
return open_label_remote(args[:label], args[:server_id], args[:password]) if args.key? :label
|
17
|
-
elsif args.key? :address
|
18
|
-
return open_remote_ip(args[:serial_number], args[:address], args[:port], args[:password]) if args.key? :serial_number
|
19
|
-
return open_label_remote_ip(args[:label], args[:address], args[:port], args[:password]) if args.key? :label
|
20
|
-
else
|
21
|
-
return ext_open(args[:serial_number]) if args.key? :serial_number
|
22
|
-
return open_label(args[:label]) if args.key? :label
|
23
|
-
end
|
24
|
-
raise Phidgets::Error::InvalidArg.new
|
10
|
+
def setOnAttachHandler(cb_proc = nil, &cb_block)
|
11
|
+
@on_attach_thread.kill if defined? @on_attach_thread
|
12
|
+
callback = cb_proc || cb_block
|
13
|
+
@on_attach_thread = Thread.new {ext_setOnAttachHandler(callback)}
|
25
14
|
end
|
26
15
|
|
16
|
+
# call-seq:
|
17
|
+
# setOnDetachHandler(proc=nil, &block)
|
18
|
+
#
|
19
|
+
# Assigns a handler that will be called when the Detach event occurs.
|
20
|
+
#
|
21
|
+
def setOnDetachHandler(cb_proc = nil, &cb_block)
|
22
|
+
@on_detach_thread.kill if defined? @on_detach_thread
|
23
|
+
callback = cb_proc || cb_block
|
24
|
+
@on_detach_thread = Thread.new {ext_setOnDetachHandler(callback)}
|
25
|
+
end
|
27
26
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
@on_attach_thread = Thread.new {ext_setOnAttachHandler(callback)}
|
39
|
-
end
|
40
|
-
|
41
|
-
# call-seq:
|
42
|
-
# setOnDetachHandler(proc=nil, &block)
|
43
|
-
#
|
44
|
-
# Sets a detach handler callback function. This is called when this Phidget is unplugged from the system.
|
45
|
-
#
|
46
|
-
def setOnDetachHandler(cb_proc = nil, &cb_block)
|
47
|
-
@on_detach_thread.kill if defined? @on_detach_thread
|
48
|
-
callback = cb_proc || cb_block
|
49
|
-
@on_detach_thread = Thread.new {ext_setOnDetachHandler(callback)}
|
50
|
-
end
|
51
|
-
|
52
|
-
# call-seq:
|
53
|
-
# setOnServerConnectHandler(proc=nil, &block)
|
54
|
-
#
|
55
|
-
# Sets a server connect handler callback function. This is used for opening Phidgets remotely,
|
56
|
-
# and is called when a connection to the sever has been made.
|
57
|
-
#
|
58
|
-
def setOnServerConnectHandler(cb_proc = nil, &cb_block)
|
59
|
-
@on_server_connect_thread.kill if defined? @on_server_connect_thread
|
60
|
-
callback = cb_proc || cb_block
|
61
|
-
@on_server_connect_thread = Thread.new {ext_setOnServerConnectHandler(callback)}
|
62
|
-
end
|
63
|
-
|
64
|
-
# call-seq:
|
65
|
-
# setOnServerDisconnectHandler(proc=nil, &block)
|
66
|
-
#
|
67
|
-
# Sets a server disconnect handler callback function. This is used for opening Phidgets remotely,
|
68
|
-
# and is called when a connection to the server has been lost.
|
69
|
-
#
|
70
|
-
def setOnServerDisconnectHandler(cb_proc = nil, &cb_block)
|
71
|
-
@on_server_disconnect_thread.kill if defined? @on_server_disconnect_thread
|
72
|
-
callback = cb_proc || cb_block
|
73
|
-
@on_server_disconnect_thread = Thread.new {ext_setOnServerDisconnectHandler(callback)}
|
74
|
-
end
|
75
|
-
|
76
|
-
alias :on_attach :setOnAttachHandler
|
77
|
-
alias :on_detach :setOnDetachHandler
|
78
|
-
alias :on_server_connect :setOnServerConnectHandler
|
79
|
-
alias :on_server_disconnect :setOnServerDisconnectHandler
|
27
|
+
# call-seq:
|
28
|
+
# setOnErrorHandler(proc=nil, &block)
|
29
|
+
#
|
30
|
+
# Assigns a handler that will be called when the Error event occurs.
|
31
|
+
#
|
32
|
+
def setOnErrorHandler(cb_proc = nil, &cb_block)
|
33
|
+
@on_error_thread.kill if defined? @on_error_thread
|
34
|
+
callback = cb_proc || cb_block
|
35
|
+
@on_error_thread = Thread.new {ext_setOnErrorHandler(callback)}
|
36
|
+
end
|
80
37
|
|
38
|
+
# call-seq:
|
39
|
+
# setOnPropertyChangeHandler(proc=nil, &block)
|
40
|
+
#
|
41
|
+
# Assigns a handler that will be called when the PropertyChange event occurs.
|
42
|
+
#
|
43
|
+
def setOnPropertyChangeHandler(cb_proc = nil, &cb_block)
|
44
|
+
@on_property_change_thread.kill if defined? @on_property_change_thread
|
45
|
+
callback = cb_proc || cb_block
|
46
|
+
@on_property_change_thread = Thread.new {ext_setOnPropertyChangeHandler(callback)}
|
81
47
|
end
|
82
48
|
|
49
|
+
alias :on_attach :setOnAttachHandler
|
50
|
+
alias :on_detach :setOnDetachHandler
|
51
|
+
alias :on_error :setOnErrorHandler
|
52
|
+
alias :on_property_change :setOnPropertyChangeHandler
|
53
|
+
|
83
54
|
end
|
84
55
|
end
|
85
56
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Phidgets
|
4
|
+
class CurrentInput < Common
|
5
|
+
|
6
|
+
# call-seq:
|
7
|
+
# setOnCurrentChangeHandler(proc=nil, &block)
|
8
|
+
#
|
9
|
+
# Assigns a handler that will be called when the CurrentChange event occurs.
|
10
|
+
#
|
11
|
+
def setOnCurrentChangeHandler(cb_proc = nil, &cb_block)
|
12
|
+
@on_current_change_thread.kill if defined? @on_current_change_thread and @on_current_change_thread.alive?
|
13
|
+
callback = cb_proc || cb_block
|
14
|
+
@on_current_change_thread = Thread.new {ext_setOnCurrentChangeHandler(callback)}
|
15
|
+
end
|
16
|
+
|
17
|
+
alias :on_current_change :setOnCurrentChangeHandler
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,45 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Phidgets
|
4
|
+
class DCMotor < Common
|
5
|
+
|
6
|
+
# call-seq:
|
7
|
+
# setOnBackEMFChangeHandler(proc=nil, &block)
|
8
|
+
#
|
9
|
+
# Assigns a handler that will be called when the BackEMFChange event occurs.
|
10
|
+
#
|
11
|
+
def setOnBackEMFChangeHandler(cb_proc = nil, &cb_block)
|
12
|
+
@on_back_emf_change_thread.kill if defined? @on_back_emf_change_thread and @on_back_emf_change_thread.alive?
|
13
|
+
callback = cb_proc || cb_block
|
14
|
+
@on_back_emf_change_thread = Thread.new {ext_setOnBackEMFChangeHandler(callback)}
|
15
|
+
end
|
16
|
+
|
17
|
+
# call-seq:
|
18
|
+
# setOnBrakingStrengthChangeHandler(proc=nil, &block)
|
19
|
+
#
|
20
|
+
# Assigns a handler that will be called when the Stopped event occurs.
|
21
|
+
#
|
22
|
+
def setOnBrakingStrengthChangeHandler(cb_proc = nil, &cb_block)
|
23
|
+
@on_braking_strength_change_thread.kill if defined? @on_braking_strength_change_thread and @on_braking_strength_change_thread.alive?
|
24
|
+
callback = cb_proc || cb_block
|
25
|
+
@on_braking_strength_change_thread = Thread.new {ext_setOnBrakingStrengthChangeHandler(callback)}
|
26
|
+
end
|
27
|
+
|
28
|
+
# call-seq:
|
29
|
+
# setOnVelocityUpdateHandler(proc=nil, &block)
|
30
|
+
#
|
31
|
+
# Assigns a handler that will be called when the VelocityChange event occurs.
|
32
|
+
#
|
33
|
+
def setOnVelocityUpdateHandler(cb_proc = nil, &cb_block)
|
34
|
+
@on_velocity_update_thread.kill if defined? @on_velocity_update_thread and @on_velocity_update_thread.alive?
|
35
|
+
callback = cb_proc || cb_block
|
36
|
+
@on_velocity_update_thread = Thread.new {ext_setOnVelocityUpdateHandler(callback)}
|
37
|
+
end
|
38
|
+
|
39
|
+
alias :on_back_emf_change :setOnBackEMFChangeHandler
|
40
|
+
alias :on_braking_strength_change :setOnBrakingStrengthChangeHandler
|
41
|
+
alias :on_velocity_update :setOnVelocityUpdateHandler
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
data/lib/phidgets/dictionary.rb
CHANGED
@@ -1,53 +1,44 @@
|
|
1
1
|
|
2
2
|
module Phidgets
|
3
|
-
class Dictionary
|
3
|
+
class Dictionary < Common
|
4
4
|
|
5
5
|
# call-seq:
|
6
|
-
#
|
6
|
+
# setOnAddHandler(proc=nil, &block)
|
7
7
|
#
|
8
|
-
#
|
9
|
-
# on the arguments passed in. Args is a hash and the following keys may be used:
|
10
|
-
# :server_id, :address, :port, :password.
|
8
|
+
# Assigns a handler that will be called when the Add event occurs.
|
11
9
|
#
|
12
|
-
def
|
13
|
-
if
|
14
|
-
|
15
|
-
|
16
|
-
return open_remote_ip(args[:address], args[:port], args[:password])
|
17
|
-
end
|
18
|
-
raise Phidgets::Error::InvalidArg.new
|
10
|
+
def setOnAddHandler(cb_proc = nil, &cb_block)
|
11
|
+
@on_add_thread.kill if defined? @on_add_thread and @on_add_thread.alive?
|
12
|
+
callback = cb_proc || cb_block
|
13
|
+
@on_add_thread = Thread.new {ext_setOnAddHandler(callback)}
|
19
14
|
end
|
20
15
|
|
16
|
+
# call-seq:
|
17
|
+
# setOnRemoveHandler(proc=nil, &block)
|
18
|
+
#
|
19
|
+
# Assigns a handler that will be called when the Remove event occurs.
|
20
|
+
#
|
21
|
+
def setOnRemoveHandler(cb_proc = nil, &cb_block)
|
22
|
+
@on_remove_thread.kill if defined? @on_remove_thread and @on_remove_thread.alive?
|
23
|
+
callback = cb_proc || cb_block
|
24
|
+
@on_remove_thread = Thread.new {ext_setOnRemoveHandler(callback)}
|
25
|
+
end
|
21
26
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
callback = cb_proc || cb_block
|
32
|
-
@on_server_connect_thread = Thread.new {ext_setOnServerConnectHandler(callback)}
|
33
|
-
end
|
34
|
-
|
35
|
-
# call-seq:
|
36
|
-
# setOnServerDisconnectHandler(proc=nil, &block)
|
37
|
-
#
|
38
|
-
# Sets a server disconnect handler callback function. This is called when a connection to the server has been lost.
|
39
|
-
#
|
40
|
-
def setOnServerDisconnectHandler(cb_proc = nil, &cb_block)
|
41
|
-
@on_server_disconnect_thread.kill if defined? @on_server_disconnect_thread
|
42
|
-
callback = cb_proc || cb_block
|
43
|
-
@on_server_disconnect_thread = Thread.new {ext_setOnServerDisconnectHandler(callback)}
|
44
|
-
end
|
45
|
-
|
46
|
-
alias :on_server_connect :setOnServerConnectHandler
|
47
|
-
alias :on_server_disconnect :setOnServerDisconnectHandler
|
48
|
-
|
27
|
+
# call-seq:
|
28
|
+
# setOnUpdateHandler(proc=nil, &block)
|
29
|
+
#
|
30
|
+
# Assigns a handler that will be called when the Update event occurs.
|
31
|
+
#
|
32
|
+
def setOnUpdateHandler(cb_proc = nil, &cb_block)
|
33
|
+
@on_update_thread.kill if defined? @on_update_thread and @on_update_thread.alive?
|
34
|
+
callback = cb_proc || cb_block
|
35
|
+
@on_update_thread = Thread.new {ext_setOnUpdateHandler(callback)}
|
49
36
|
end
|
50
37
|
|
38
|
+
alias :on_add :setOnAddHandler
|
39
|
+
alias :on_remove :setOnRemoveHandler
|
40
|
+
alias :on_update :setOnUpdateHandler
|
41
|
+
|
51
42
|
end
|
52
43
|
end
|
53
44
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Phidgets
|
4
|
+
class DigitalInput < Common
|
5
|
+
|
6
|
+
# call-seq:
|
7
|
+
# setOnStateChangeHandler(proc=nil, &block)
|
8
|
+
#
|
9
|
+
# Set a digital input change handler. This is called when a digital input changes.
|
10
|
+
#
|
11
|
+
def setOnStateChangeHandler(cb_proc = nil, &cb_block)
|
12
|
+
@on_state_change_thread.kill if defined? @on_state_change_thread and @on_state_change_thread.alive?
|
13
|
+
callback = cb_proc || cb_block
|
14
|
+
@on_state_change_thread = Thread.new {ext_setOnStateChangeHandler(callback)}
|
15
|
+
end
|
16
|
+
|
17
|
+
alias :on_state_change :setOnStateChangeHandler
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,56 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Phidgets
|
4
|
+
class DigitalOutput < Common
|
5
|
+
|
6
|
+
# call-seq:
|
7
|
+
# setDutyCycle_async(duty_cycle, proc=nil, &block)
|
8
|
+
#
|
9
|
+
# The DutyCycle represents the fraction of time the output is on (high).
|
10
|
+
# This will override the State setting on the channel.
|
11
|
+
# A DutyCycle of 1.0 translates to a high output, a DutyCycle of 0 translates to a low output.
|
12
|
+
# This is equivalent to setting a State of TRUE and FALSE respectively.
|
13
|
+
# A DutyCycle of 0.5 translates to an output that is high half the time, which results in an average output voltage of (output voltage x 0.5)
|
14
|
+
# You can use the DutyCycle to create a dimming effect on LEDs.
|
15
|
+
# If the DigitalOutput channel you are using does not support PWM, then this value may only be set to 1.0 or 0.0.
|
16
|
+
#
|
17
|
+
def setDutyCycle_async(duty_cycle, cb_proc = nil, &cb_block)
|
18
|
+
@duty_cycle_async_thread.kill if defined? @duty_cycle_async_thread and @duty_cycle_async_thread.alive?
|
19
|
+
callback = cb_proc || cb_block
|
20
|
+
@duty_cycle_async_thread = Thread.new {ext_setDutyCycle_async(duty_cycle, callback)}
|
21
|
+
end
|
22
|
+
|
23
|
+
alias :set_duty_cycle_async :setDutyCycle_async
|
24
|
+
|
25
|
+
# call-seq:
|
26
|
+
# setLEDCurrentLimit_async(duty_cycle, proc=nil, &block)
|
27
|
+
#
|
28
|
+
# The LEDCurrentLimit is the maximum amount of current that the controller will provide to the output.
|
29
|
+
# Reference the data sheet of the LED you are using before setting this value.
|
30
|
+
#
|
31
|
+
def setLEDCurrentLimit_async(current_limit, cb_proc = nil, &cb_block)
|
32
|
+
@led_current_limit_async_thread.kill if defined? @led_current_limit_async_thread and @led_current_limit_async_thread.alive?
|
33
|
+
callback = cb_proc || cb_block
|
34
|
+
@led_current_limit_async_thread = Thread.new {ext_setLEDCurrentLimit_async(current_limit, callback)}
|
35
|
+
end
|
36
|
+
|
37
|
+
alias :set_led_current_limit_async :setLEDCurrentLimit_async
|
38
|
+
|
39
|
+
# call-seq:
|
40
|
+
# setState_async(state, proc=nil, &block)
|
41
|
+
#
|
42
|
+
# The State will dictate whether the output is constantly high (TRUE) or low (FALSE).
|
43
|
+
# This will override any DutyCycle that may have been set on the channel.
|
44
|
+
# Setting the State to TRUE is the same as setting DutyCycle to 1.0, and setting the State to FALSE is the same as setting a DutyCycle of 0.0.
|
45
|
+
#
|
46
|
+
def setState_async(state, cb_proc = nil, &cb_block)
|
47
|
+
@state_async_thread.kill if defined? @state_async_thread and @state_async_thread.alive?
|
48
|
+
callback = cb_proc || cb_block
|
49
|
+
@state_async_thread = Thread.new {ext_setState_async(state, callback)}
|
50
|
+
end
|
51
|
+
|
52
|
+
alias :set_state_async :setState_async
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|