phidgets 0.1.3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|