tinkerforge 2.1.4 → 2.1.6
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/lib/tinkerforge/brick_dc.rb +42 -4
- data/lib/tinkerforge/brick_imu.rb +49 -11
- data/lib/tinkerforge/brick_imu_v2.rb +506 -0
- data/lib/tinkerforge/brick_master.rb +86 -46
- data/lib/tinkerforge/brick_red.rb +36 -5
- data/lib/tinkerforge/brick_servo.rb +53 -15
- data/lib/tinkerforge/brick_stepper.rb +43 -14
- data/lib/tinkerforge/bricklet_accelerometer.rb +229 -0
- data/lib/tinkerforge/bricklet_ambient_light.rb +10 -9
- data/lib/tinkerforge/bricklet_ambient_light_v2.rb +216 -0
- data/lib/tinkerforge/bricklet_analog_in.rb +13 -12
- data/lib/tinkerforge/bricklet_analog_in_v2.rb +259 -0
- data/lib/tinkerforge/bricklet_analog_out.rb +5 -4
- data/lib/tinkerforge/bricklet_analog_out_v2.rb +66 -0
- data/lib/tinkerforge/bricklet_barometer.rb +11 -9
- data/lib/tinkerforge/bricklet_color.rb +11 -9
- data/lib/tinkerforge/bricklet_current12.rb +5 -4
- data/lib/tinkerforge/bricklet_current25.rb +5 -4
- data/lib/tinkerforge/bricklet_distance_ir.rb +8 -7
- data/lib/tinkerforge/bricklet_distance_us.rb +9 -8
- data/lib/tinkerforge/bricklet_dual_button.rb +5 -4
- data/lib/tinkerforge/bricklet_dual_relay.rb +5 -4
- data/lib/tinkerforge/bricklet_dust_detector.rb +178 -0
- data/lib/tinkerforge/bricklet_gps.rb +6 -5
- data/lib/tinkerforge/bricklet_hall_effect.rb +5 -4
- data/lib/tinkerforge/bricklet_humidity.rb +8 -7
- data/lib/tinkerforge/bricklet_industrial_analog_out.rb +137 -0
- data/lib/tinkerforge/bricklet_industrial_digital_in_4.rb +8 -7
- data/lib/tinkerforge/bricklet_industrial_digital_out_4.rb +5 -4
- data/lib/tinkerforge/bricklet_industrial_dual_0_20ma.rb +6 -5
- data/lib/tinkerforge/bricklet_industrial_dual_analog_in.rb +209 -0
- data/lib/tinkerforge/bricklet_industrial_quad_relay.rb +5 -4
- data/lib/tinkerforge/bricklet_io16.rb +8 -7
- data/lib/tinkerforge/bricklet_io4.rb +8 -7
- data/lib/tinkerforge/bricklet_joystick.rb +5 -4
- data/lib/tinkerforge/bricklet_laser_range_finder.rb +324 -0
- data/lib/tinkerforge/bricklet_lcd_16x2.rb +7 -6
- data/lib/tinkerforge/bricklet_lcd_20x4.rb +11 -10
- data/lib/tinkerforge/bricklet_led_strip.rb +12 -10
- data/lib/tinkerforge/bricklet_line.rb +5 -4
- data/lib/tinkerforge/bricklet_linear_poti.rb +8 -7
- data/lib/tinkerforge/bricklet_load_cell.rb +261 -0
- data/lib/tinkerforge/bricklet_moisture.rb +6 -5
- data/lib/tinkerforge/bricklet_motion_detector.rb +5 -4
- data/lib/tinkerforge/bricklet_multi_touch.rb +5 -4
- data/lib/tinkerforge/bricklet_nfc_rfid.rb +38 -46
- data/lib/tinkerforge/bricklet_piezo_buzzer.rb +5 -4
- data/lib/tinkerforge/bricklet_piezo_speaker.rb +6 -5
- data/lib/tinkerforge/bricklet_ptc.rb +5 -4
- data/lib/tinkerforge/bricklet_remote_switch.rb +9 -8
- data/lib/tinkerforge/bricklet_rotary_encoder.rb +5 -4
- data/lib/tinkerforge/bricklet_rotary_poti.rb +5 -4
- data/lib/tinkerforge/bricklet_rs232.rb +183 -0
- data/lib/tinkerforge/bricklet_segment_display_4x7.rb +8 -5
- data/lib/tinkerforge/bricklet_solid_state_relay.rb +5 -4
- data/lib/tinkerforge/bricklet_sound_intensity.rb +6 -5
- data/lib/tinkerforge/bricklet_temperature.rb +7 -6
- data/lib/tinkerforge/bricklet_temperature_ir.rb +7 -6
- data/lib/tinkerforge/bricklet_tilt.rb +5 -4
- data/lib/tinkerforge/bricklet_voltage.rb +8 -7
- data/lib/tinkerforge/bricklet_voltage_current.rb +5 -4
- data/lib/tinkerforge/version.rb +1 -1
- metadata +13 -2
@@ -1,18 +1,19 @@
|
|
1
1
|
# -*- ruby encoding: utf-8 -*-
|
2
2
|
#############################################################
|
3
|
-
# This file was automatically generated on
|
3
|
+
# This file was automatically generated on 2015-11-17. #
|
4
4
|
# #
|
5
|
-
# Bindings Version 2.1.
|
5
|
+
# Bindings Version 2.1.6 #
|
6
6
|
# #
|
7
7
|
# If you have a bugfix for this file and want to commit it, #
|
8
8
|
# please fix the bug in the generator. You can find a link #
|
9
|
-
# to the
|
9
|
+
# to the generators git repository on tinkerforge.com #
|
10
10
|
#############################################################
|
11
11
|
|
12
12
|
module Tinkerforge
|
13
|
-
#
|
13
|
+
# Drives up to 7 RC Servos with up to 3A
|
14
14
|
class BrickServo < Device
|
15
15
|
DEVICE_IDENTIFIER = 14 # :nodoc:
|
16
|
+
DEVICE_DISPLAY_NAME = 'Servo Brick' # :nodoc:
|
16
17
|
|
17
18
|
# This callback is triggered when the input voltage drops below the value set by
|
18
19
|
# BrickServo#set_minimum_voltage. The parameter is the current voltage given
|
@@ -74,6 +75,9 @@ module Tinkerforge
|
|
74
75
|
FUNCTION_ENABLE_VELOCITY_REACHED_CALLBACK = 32 # :nodoc:
|
75
76
|
FUNCTION_DISABLE_VELOCITY_REACHED_CALLBACK = 33 # :nodoc:
|
76
77
|
FUNCTION_IS_VELOCITY_REACHED_CALLBACK_ENABLED = 34 # :nodoc:
|
78
|
+
FUNCTION_ENABLE_STATUS_LED = 238 # :nodoc:
|
79
|
+
FUNCTION_DISABLE_STATUS_LED = 239 # :nodoc:
|
80
|
+
FUNCTION_IS_STATUS_LED_ENABLED = 240 # :nodoc:
|
77
81
|
FUNCTION_GET_PROTOCOL1_BRICKLET_NAME = 241 # :nodoc:
|
78
82
|
FUNCTION_GET_CHIP_TEMPERATURE = 242 # :nodoc:
|
79
83
|
FUNCTION_RESET = 243 # :nodoc:
|
@@ -85,7 +89,7 @@ module Tinkerforge
|
|
85
89
|
def initialize(uid, ipcon)
|
86
90
|
super uid, ipcon
|
87
91
|
|
88
|
-
@api_version = [2, 0,
|
92
|
+
@api_version = [2, 0, 1]
|
89
93
|
|
90
94
|
@response_expected[FUNCTION_ENABLE] = RESPONSE_EXPECTED_FALSE
|
91
95
|
@response_expected[FUNCTION_DISABLE] = RESPONSE_EXPECTED_FALSE
|
@@ -121,6 +125,9 @@ module Tinkerforge
|
|
121
125
|
@response_expected[FUNCTION_ENABLE_VELOCITY_REACHED_CALLBACK] = RESPONSE_EXPECTED_TRUE
|
122
126
|
@response_expected[FUNCTION_DISABLE_VELOCITY_REACHED_CALLBACK] = RESPONSE_EXPECTED_TRUE
|
123
127
|
@response_expected[FUNCTION_IS_VELOCITY_REACHED_CALLBACK_ENABLED] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
128
|
+
@response_expected[FUNCTION_ENABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
|
129
|
+
@response_expected[FUNCTION_DISABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
|
130
|
+
@response_expected[FUNCTION_IS_STATUS_LED_ENABLED] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
124
131
|
@response_expected[FUNCTION_GET_PROTOCOL1_BRICKLET_NAME] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
125
132
|
@response_expected[FUNCTION_GET_CHIP_TEMPERATURE] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
126
133
|
@response_expected[FUNCTION_RESET] = RESPONSE_EXPECTED_FALSE
|
@@ -233,7 +240,7 @@ module Tinkerforge
|
|
233
240
|
# Sets the minimum and maximum pulse width of the specified servo in µs.
|
234
241
|
#
|
235
242
|
# Usually, servos are controlled with a
|
236
|
-
# `PWM <
|
243
|
+
# `PWM <https://en.wikipedia.org/wiki/Pulse-width_modulation>`__, whereby the
|
237
244
|
# length of the pulse controls the position of the servo. Every servo has
|
238
245
|
# different minimum and maximum pulse widths, these can be specified with
|
239
246
|
# this function.
|
@@ -300,7 +307,7 @@ module Tinkerforge
|
|
300
307
|
# Sets the period of the specified servo in µs.
|
301
308
|
#
|
302
309
|
# Usually, servos are controlled with a
|
303
|
-
# `PWM <
|
310
|
+
# `PWM <https://en.wikipedia.org/wiki/Pulse-width_modulation>`__. Different
|
304
311
|
# servos expect PWMs with different periods. Most servos run well with a
|
305
312
|
# period of about 20ms.
|
306
313
|
#
|
@@ -374,7 +381,7 @@ module Tinkerforge
|
|
374
381
|
#
|
375
382
|
# Default is disabled.
|
376
383
|
#
|
377
|
-
# .. versionadded:: 2.0.1
|
384
|
+
# .. versionadded:: 2.0.1$nbsp;(Firmware)
|
378
385
|
def enable_position_reached_callback
|
379
386
|
send_request(FUNCTION_ENABLE_POSITION_REACHED_CALLBACK, [], '', 0, '')
|
380
387
|
end
|
@@ -383,23 +390,23 @@ module Tinkerforge
|
|
383
390
|
#
|
384
391
|
# Default is disabled.
|
385
392
|
#
|
386
|
-
# .. versionadded:: 2.0.1
|
393
|
+
# .. versionadded:: 2.0.1$nbsp;(Firmware)
|
387
394
|
def disable_position_reached_callback
|
388
395
|
send_request(FUNCTION_DISABLE_POSITION_REACHED_CALLBACK, [], '', 0, '')
|
389
396
|
end
|
390
397
|
|
391
398
|
# Returns *true* if CALLBACK_POSITION_REACHED callback is enabled, *false* otherwise.
|
392
399
|
#
|
393
|
-
# .. versionadded:: 2.0.1
|
400
|
+
# .. versionadded:: 2.0.1$nbsp;(Firmware)
|
394
401
|
def is_position_reached_callback_enabled
|
395
|
-
send_request(FUNCTION_IS_POSITION_REACHED_CALLBACK_ENABLED, [], '', 1, '
|
402
|
+
send_request(FUNCTION_IS_POSITION_REACHED_CALLBACK_ENABLED, [], '', 1, '?')
|
396
403
|
end
|
397
404
|
|
398
405
|
# Enables the CALLBACK_VELOCITY_REACHED callback.
|
399
406
|
#
|
400
407
|
# Default is disabled.
|
401
408
|
#
|
402
|
-
# .. versionadded:: 2.0.1
|
409
|
+
# .. versionadded:: 2.0.1$nbsp;(Firmware)
|
403
410
|
def enable_velocity_reached_callback
|
404
411
|
send_request(FUNCTION_ENABLE_VELOCITY_REACHED_CALLBACK, [], '', 0, '')
|
405
412
|
end
|
@@ -408,16 +415,47 @@ module Tinkerforge
|
|
408
415
|
#
|
409
416
|
# Default is disabled.
|
410
417
|
#
|
411
|
-
# .. versionadded:: 2.0.1
|
418
|
+
# .. versionadded:: 2.0.1$nbsp;(Firmware)
|
412
419
|
def disable_velocity_reached_callback
|
413
420
|
send_request(FUNCTION_DISABLE_VELOCITY_REACHED_CALLBACK, [], '', 0, '')
|
414
421
|
end
|
415
422
|
|
416
423
|
# Returns *true* if CALLBACK_VELOCITY_REACHED callback is enabled, *false* otherwise.
|
417
424
|
#
|
418
|
-
# .. versionadded:: 2.0.1
|
425
|
+
# .. versionadded:: 2.0.1$nbsp;(Firmware)
|
419
426
|
def is_velocity_reached_callback_enabled
|
420
|
-
send_request(FUNCTION_IS_VELOCITY_REACHED_CALLBACK_ENABLED, [], '', 1, '
|
427
|
+
send_request(FUNCTION_IS_VELOCITY_REACHED_CALLBACK_ENABLED, [], '', 1, '?')
|
428
|
+
end
|
429
|
+
|
430
|
+
# Enables the status LED.
|
431
|
+
#
|
432
|
+
# The status LED is the blue LED next to the USB connector. If enabled is is
|
433
|
+
# on and it flickers if data is transfered. If disabled it is always off.
|
434
|
+
#
|
435
|
+
# The default state is enabled.
|
436
|
+
#
|
437
|
+
# .. versionadded:: 2.3.1$nbsp;(Firmware)
|
438
|
+
def enable_status_led
|
439
|
+
send_request(FUNCTION_ENABLE_STATUS_LED, [], '', 0, '')
|
440
|
+
end
|
441
|
+
|
442
|
+
# Disables the status LED.
|
443
|
+
#
|
444
|
+
# The status LED is the blue LED next to the USB connector. If enabled is is
|
445
|
+
# on and it flickers if data is transfered. If disabled it is always off.
|
446
|
+
#
|
447
|
+
# The default state is enabled.
|
448
|
+
#
|
449
|
+
# .. versionadded:: 2.3.1$nbsp;(Firmware)
|
450
|
+
def disable_status_led
|
451
|
+
send_request(FUNCTION_DISABLE_STATUS_LED, [], '', 0, '')
|
452
|
+
end
|
453
|
+
|
454
|
+
# Returns *true* if the status LED is enabled, *false* otherwise.
|
455
|
+
#
|
456
|
+
# .. versionadded:: 2.3.1$nbsp;(Firmware)
|
457
|
+
def is_status_led_enabled
|
458
|
+
send_request(FUNCTION_IS_STATUS_LED_ENABLED, [], '', 1, '?')
|
421
459
|
end
|
422
460
|
|
423
461
|
# Returns the firmware and protocol version and the name of the Bricklet for a
|
@@ -1,18 +1,19 @@
|
|
1
1
|
# -*- ruby encoding: utf-8 -*-
|
2
2
|
#############################################################
|
3
|
-
# This file was automatically generated on
|
3
|
+
# This file was automatically generated on 2015-11-17. #
|
4
4
|
# #
|
5
|
-
# Bindings Version 2.1.
|
5
|
+
# Bindings Version 2.1.6 #
|
6
6
|
# #
|
7
7
|
# If you have a bugfix for this file and want to commit it, #
|
8
8
|
# please fix the bug in the generator. You can find a link #
|
9
|
-
# to the
|
9
|
+
# to the generators git repository on tinkerforge.com #
|
10
10
|
#############################################################
|
11
11
|
|
12
12
|
module Tinkerforge
|
13
|
-
#
|
13
|
+
# Drives one bipolar stepper motor with up to 38V and 2.5A per phase
|
14
14
|
class BrickStepper < Device
|
15
15
|
DEVICE_IDENTIFIER = 15 # :nodoc:
|
16
|
+
DEVICE_DISPLAY_NAME = 'Stepper Brick' # :nodoc:
|
16
17
|
|
17
18
|
# This callback is triggered when the input voltage drops below the value set by
|
18
19
|
# BrickStepper#set_minimum_voltage. The parameter is the current voltage given
|
@@ -37,15 +38,6 @@ module Tinkerforge
|
|
37
38
|
|
38
39
|
# This callback is triggered whenever the Stepper Brick enters a new state.
|
39
40
|
# It returns the new state as well as the previous state.
|
40
|
-
#
|
41
|
-
# Possible states are:
|
42
|
-
#
|
43
|
-
# * 1 = Stop
|
44
|
-
# * 2 = Acceleration
|
45
|
-
# * 3 = Run
|
46
|
-
# * 4 = Deacceleration
|
47
|
-
# * 5 = Direction change to forward
|
48
|
-
# * 6 = Direction change to backward
|
49
41
|
CALLBACK_NEW_STATE = 41
|
50
42
|
|
51
43
|
FUNCTION_SET_MAX_VELOCITY = 1 # :nodoc:
|
@@ -85,6 +77,9 @@ module Tinkerforge
|
|
85
77
|
FUNCTION_GET_ALL_DATA = 37 # :nodoc:
|
86
78
|
FUNCTION_SET_ALL_DATA_PERIOD = 38 # :nodoc:
|
87
79
|
FUNCTION_GET_ALL_DATA_PERIOD = 39 # :nodoc:
|
80
|
+
FUNCTION_ENABLE_STATUS_LED = 238 # :nodoc:
|
81
|
+
FUNCTION_DISABLE_STATUS_LED = 239 # :nodoc:
|
82
|
+
FUNCTION_IS_STATUS_LED_ENABLED = 240 # :nodoc:
|
88
83
|
FUNCTION_GET_PROTOCOL1_BRICKLET_NAME = 241 # :nodoc:
|
89
84
|
FUNCTION_GET_CHIP_TEMPERATURE = 242 # :nodoc:
|
90
85
|
FUNCTION_RESET = 243 # :nodoc:
|
@@ -149,6 +144,9 @@ module Tinkerforge
|
|
149
144
|
@response_expected[FUNCTION_GET_ALL_DATA_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
150
145
|
@response_expected[CALLBACK_ALL_DATA] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
151
146
|
@response_expected[CALLBACK_NEW_STATE] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
147
|
+
@response_expected[FUNCTION_ENABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
|
148
|
+
@response_expected[FUNCTION_DISABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
|
149
|
+
@response_expected[FUNCTION_IS_STATUS_LED_ENABLED] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
152
150
|
@response_expected[FUNCTION_GET_PROTOCOL1_BRICKLET_NAME] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
153
151
|
@response_expected[FUNCTION_GET_CHIP_TEMPERATURE] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
154
152
|
@response_expected[FUNCTION_RESET] = RESPONSE_EXPECTED_FALSE
|
@@ -428,7 +426,7 @@ module Tinkerforge
|
|
428
426
|
# decay is used.
|
429
427
|
#
|
430
428
|
# For an explanation of synchronous rectification see
|
431
|
-
# `here <
|
429
|
+
# `here <https://en.wikipedia.org/wiki/Active_rectification>`__.
|
432
430
|
#
|
433
431
|
# .. warning::
|
434
432
|
# If you want to use high speeds (> 10000 steps/s) for a large
|
@@ -483,6 +481,37 @@ module Tinkerforge
|
|
483
481
|
send_request(FUNCTION_GET_ALL_DATA_PERIOD, [], '', 4, 'L')
|
484
482
|
end
|
485
483
|
|
484
|
+
# Enables the status LED.
|
485
|
+
#
|
486
|
+
# The status LED is the blue LED next to the USB connector. If enabled is is
|
487
|
+
# on and it flickers if data is transfered. If disabled it is always off.
|
488
|
+
#
|
489
|
+
# The default state is enabled.
|
490
|
+
#
|
491
|
+
# .. versionadded:: 2.3.1$nbsp;(Firmware)
|
492
|
+
def enable_status_led
|
493
|
+
send_request(FUNCTION_ENABLE_STATUS_LED, [], '', 0, '')
|
494
|
+
end
|
495
|
+
|
496
|
+
# Disables the status LED.
|
497
|
+
#
|
498
|
+
# The status LED is the blue LED next to the USB connector. If enabled is is
|
499
|
+
# on and it flickers if data is transfered. If disabled it is always off.
|
500
|
+
#
|
501
|
+
# The default state is enabled.
|
502
|
+
#
|
503
|
+
# .. versionadded:: 2.3.1$nbsp;(Firmware)
|
504
|
+
def disable_status_led
|
505
|
+
send_request(FUNCTION_DISABLE_STATUS_LED, [], '', 0, '')
|
506
|
+
end
|
507
|
+
|
508
|
+
# Returns *true* if the status LED is enabled, *false* otherwise.
|
509
|
+
#
|
510
|
+
# .. versionadded:: 2.3.1$nbsp;(Firmware)
|
511
|
+
def is_status_led_enabled
|
512
|
+
send_request(FUNCTION_IS_STATUS_LED_ENABLED, [], '', 1, '?')
|
513
|
+
end
|
514
|
+
|
486
515
|
# Returns the firmware and protocol version and the name of the Bricklet for a
|
487
516
|
# given port.
|
488
517
|
#
|
@@ -0,0 +1,229 @@
|
|
1
|
+
# -*- ruby encoding: utf-8 -*-
|
2
|
+
#############################################################
|
3
|
+
# This file was automatically generated on 2015-11-17. #
|
4
|
+
# #
|
5
|
+
# Bindings Version 2.1.6 #
|
6
|
+
# #
|
7
|
+
# If you have a bugfix for this file and want to commit it, #
|
8
|
+
# please fix the bug in the generator. You can find a link #
|
9
|
+
# to the generators git repository on tinkerforge.com #
|
10
|
+
#############################################################
|
11
|
+
|
12
|
+
module Tinkerforge
|
13
|
+
# Measures acceleration in three axis
|
14
|
+
class BrickletAccelerometer < Device
|
15
|
+
DEVICE_IDENTIFIER = 250 # :nodoc:
|
16
|
+
DEVICE_DISPLAY_NAME = 'Accelerometer Bricklet' # :nodoc:
|
17
|
+
|
18
|
+
# This callback is triggered periodically with the period that is set by
|
19
|
+
# BrickletAccelerometer#set_acceleration_callback_period. The parameters are the
|
20
|
+
# X, Y and Z acceleration.
|
21
|
+
#
|
22
|
+
# CALLBACK_ACCELERATION is only triggered if the acceleration has changed since the
|
23
|
+
# last triggering.
|
24
|
+
CALLBACK_ACCELERATION = 14
|
25
|
+
|
26
|
+
# This callback is triggered when the threshold as set by
|
27
|
+
# BrickletAccelerometer#set_acceleration_callback_threshold is reached.
|
28
|
+
# The parameters are the X, Y and Z acceleration.
|
29
|
+
#
|
30
|
+
# If the threshold keeps being reached, the callback is triggered periodically
|
31
|
+
# with the period as set by BrickletAccelerometer#set_debounce_period.
|
32
|
+
CALLBACK_ACCELERATION_REACHED = 15
|
33
|
+
|
34
|
+
FUNCTION_GET_ACCELERATION = 1 # :nodoc:
|
35
|
+
FUNCTION_SET_ACCELERATION_CALLBACK_PERIOD = 2 # :nodoc:
|
36
|
+
FUNCTION_GET_ACCELERATION_CALLBACK_PERIOD = 3 # :nodoc:
|
37
|
+
FUNCTION_SET_ACCELERATION_CALLBACK_THRESHOLD = 4 # :nodoc:
|
38
|
+
FUNCTION_GET_ACCELERATION_CALLBACK_THRESHOLD = 5 # :nodoc:
|
39
|
+
FUNCTION_SET_DEBOUNCE_PERIOD = 6 # :nodoc:
|
40
|
+
FUNCTION_GET_DEBOUNCE_PERIOD = 7 # :nodoc:
|
41
|
+
FUNCTION_GET_TEMPERATURE = 8 # :nodoc:
|
42
|
+
FUNCTION_SET_CONFIGURATION = 9 # :nodoc:
|
43
|
+
FUNCTION_GET_CONFIGURATION = 10 # :nodoc:
|
44
|
+
FUNCTION_LED_ON = 11 # :nodoc:
|
45
|
+
FUNCTION_LED_OFF = 12 # :nodoc:
|
46
|
+
FUNCTION_IS_LED_ON = 13 # :nodoc:
|
47
|
+
FUNCTION_GET_IDENTITY = 255 # :nodoc:
|
48
|
+
|
49
|
+
THRESHOLD_OPTION_OFF = 'x' # :nodoc:
|
50
|
+
THRESHOLD_OPTION_OUTSIDE = 'o' # :nodoc:
|
51
|
+
THRESHOLD_OPTION_INSIDE = 'i' # :nodoc:
|
52
|
+
THRESHOLD_OPTION_SMALLER = '<' # :nodoc:
|
53
|
+
THRESHOLD_OPTION_GREATER = '>' # :nodoc:
|
54
|
+
DATA_RATE_OFF = 0 # :nodoc:
|
55
|
+
DATA_RATE_3HZ = 1 # :nodoc:
|
56
|
+
DATA_RATE_6HZ = 2 # :nodoc:
|
57
|
+
DATA_RATE_12HZ = 3 # :nodoc:
|
58
|
+
DATA_RATE_25HZ = 4 # :nodoc:
|
59
|
+
DATA_RATE_50HZ = 5 # :nodoc:
|
60
|
+
DATA_RATE_100HZ = 6 # :nodoc:
|
61
|
+
DATA_RATE_400HZ = 7 # :nodoc:
|
62
|
+
DATA_RATE_800HZ = 8 # :nodoc:
|
63
|
+
DATA_RATE_1600HZ = 9 # :nodoc:
|
64
|
+
FULL_SCALE_2G = 0 # :nodoc:
|
65
|
+
FULL_SCALE_4G = 1 # :nodoc:
|
66
|
+
FULL_SCALE_6G = 2 # :nodoc:
|
67
|
+
FULL_SCALE_8G = 3 # :nodoc:
|
68
|
+
FULL_SCALE_16G = 4 # :nodoc:
|
69
|
+
FILTER_BANDWIDTH_800HZ = 0 # :nodoc:
|
70
|
+
FILTER_BANDWIDTH_400HZ = 1 # :nodoc:
|
71
|
+
FILTER_BANDWIDTH_200HZ = 2 # :nodoc:
|
72
|
+
FILTER_BANDWIDTH_50HZ = 3 # :nodoc:
|
73
|
+
|
74
|
+
# Creates an object with the unique device ID <tt>uid</tt> and adds it to
|
75
|
+
# the IP Connection <tt>ipcon</tt>.
|
76
|
+
def initialize(uid, ipcon)
|
77
|
+
super uid, ipcon
|
78
|
+
|
79
|
+
@api_version = [2, 0, 1]
|
80
|
+
|
81
|
+
@response_expected[FUNCTION_GET_ACCELERATION] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
82
|
+
@response_expected[FUNCTION_SET_ACCELERATION_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
|
83
|
+
@response_expected[FUNCTION_GET_ACCELERATION_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
84
|
+
@response_expected[FUNCTION_SET_ACCELERATION_CALLBACK_THRESHOLD] = RESPONSE_EXPECTED_TRUE
|
85
|
+
@response_expected[FUNCTION_GET_ACCELERATION_CALLBACK_THRESHOLD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
86
|
+
@response_expected[FUNCTION_SET_DEBOUNCE_PERIOD] = RESPONSE_EXPECTED_TRUE
|
87
|
+
@response_expected[FUNCTION_GET_DEBOUNCE_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
88
|
+
@response_expected[FUNCTION_GET_TEMPERATURE] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
89
|
+
@response_expected[FUNCTION_SET_CONFIGURATION] = RESPONSE_EXPECTED_FALSE
|
90
|
+
@response_expected[FUNCTION_GET_CONFIGURATION] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
91
|
+
@response_expected[FUNCTION_LED_ON] = RESPONSE_EXPECTED_FALSE
|
92
|
+
@response_expected[FUNCTION_LED_OFF] = RESPONSE_EXPECTED_FALSE
|
93
|
+
@response_expected[FUNCTION_IS_LED_ON] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
94
|
+
@response_expected[CALLBACK_ACCELERATION] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
95
|
+
@response_expected[CALLBACK_ACCELERATION_REACHED] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
96
|
+
@response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
97
|
+
|
98
|
+
@callback_formats[CALLBACK_ACCELERATION] = 's s s'
|
99
|
+
@callback_formats[CALLBACK_ACCELERATION_REACHED] = 's s s'
|
100
|
+
end
|
101
|
+
|
102
|
+
# Returns the acceleration in x, y and z direction. The values
|
103
|
+
# are given in g/1000 (1g = 9.80665m/s²), not to be confused with grams.
|
104
|
+
#
|
105
|
+
# If you want to get the acceleration periodically, it is recommended
|
106
|
+
# to use the callback CALLBACK_ACCELERATION and set the period with
|
107
|
+
# BrickletAccelerometer#set_acceleration_callback_period.
|
108
|
+
def get_acceleration
|
109
|
+
send_request(FUNCTION_GET_ACCELERATION, [], '', 6, 's s s')
|
110
|
+
end
|
111
|
+
|
112
|
+
# Sets the period in ms with which the CALLBACK_ACCELERATION callback is triggered
|
113
|
+
# periodically. A value of 0 turns the callback off.
|
114
|
+
#
|
115
|
+
# CALLBACK_ACCELERATION is only triggered if the acceleration has changed since the
|
116
|
+
# last triggering.
|
117
|
+
#
|
118
|
+
# The default value is 0.
|
119
|
+
def set_acceleration_callback_period(period)
|
120
|
+
send_request(FUNCTION_SET_ACCELERATION_CALLBACK_PERIOD, [period], 'L', 0, '')
|
121
|
+
end
|
122
|
+
|
123
|
+
# Returns the period as set by BrickletAccelerometer#set_acceleration_callback_period.
|
124
|
+
def get_acceleration_callback_period
|
125
|
+
send_request(FUNCTION_GET_ACCELERATION_CALLBACK_PERIOD, [], '', 4, 'L')
|
126
|
+
end
|
127
|
+
|
128
|
+
# Sets the thresholds for the CALLBACK_ACCELERATION_REACHED callback.
|
129
|
+
#
|
130
|
+
# The following options are possible:
|
131
|
+
#
|
132
|
+
# "Option", "Description"
|
133
|
+
#
|
134
|
+
# "'x'", "Callback is turned off"
|
135
|
+
# "'o'", "Callback is triggered when the acceleration is *outside* the min and max values"
|
136
|
+
# "'i'", "Callback is triggered when the acceleration is *inside* the min and max values"
|
137
|
+
# "'<'", "Callback is triggered when the acceleration is smaller than the min value (max is ignored)"
|
138
|
+
# "'>'", "Callback is triggered when the acceleration is greater than the min value (max is ignored)"
|
139
|
+
#
|
140
|
+
# The default value is ('x', 0, 0, 0, 0, 0, 0).
|
141
|
+
def set_acceleration_callback_threshold(option, min_x, max_x, min_y, max_y, min_z, max_z)
|
142
|
+
send_request(FUNCTION_SET_ACCELERATION_CALLBACK_THRESHOLD, [option, min_x, max_x, min_y, max_y, min_z, max_z], 'k s s s s s s', 0, '')
|
143
|
+
end
|
144
|
+
|
145
|
+
# Returns the threshold as set by BrickletAccelerometer#set_acceleration_callback_threshold.
|
146
|
+
def get_acceleration_callback_threshold
|
147
|
+
send_request(FUNCTION_GET_ACCELERATION_CALLBACK_THRESHOLD, [], '', 13, 'k s s s s s s')
|
148
|
+
end
|
149
|
+
|
150
|
+
# Sets the period in ms with which the threshold callback
|
151
|
+
#
|
152
|
+
# * CALLBACK_ACCELERATION_REACHED
|
153
|
+
#
|
154
|
+
# is triggered, if the threshold
|
155
|
+
#
|
156
|
+
# * BrickletAccelerometer#set_acceleration_callback_threshold
|
157
|
+
#
|
158
|
+
# keeps being reached.
|
159
|
+
#
|
160
|
+
# The default value is 100.
|
161
|
+
def set_debounce_period(debounce)
|
162
|
+
send_request(FUNCTION_SET_DEBOUNCE_PERIOD, [debounce], 'L', 0, '')
|
163
|
+
end
|
164
|
+
|
165
|
+
# Returns the debounce period as set by BrickletAccelerometer#set_debounce_period.
|
166
|
+
def get_debounce_period
|
167
|
+
send_request(FUNCTION_GET_DEBOUNCE_PERIOD, [], '', 4, 'L')
|
168
|
+
end
|
169
|
+
|
170
|
+
# Returns the temperature of the accelerometer in °C.
|
171
|
+
def get_temperature
|
172
|
+
send_request(FUNCTION_GET_TEMPERATURE, [], '', 2, 's')
|
173
|
+
end
|
174
|
+
|
175
|
+
# Configures the data rate, full scale range and filter bandwidth.
|
176
|
+
# Possible values are:
|
177
|
+
#
|
178
|
+
# * Data rate of 0Hz to 1600Hz.
|
179
|
+
# * Full scale range of -2G to +2G up to -16G to +16G.
|
180
|
+
# * Filter bandwidth between 50Hz and 800Hz.
|
181
|
+
#
|
182
|
+
# Decreasing data rate or full scale range will also decrease the noise on
|
183
|
+
# the data.
|
184
|
+
#
|
185
|
+
# The default values are 100Hz data rate, -4G to +4G range and 200Hz
|
186
|
+
# filter bandwidth.
|
187
|
+
def set_configuration(data_rate, full_scale, filter_bandwidth)
|
188
|
+
send_request(FUNCTION_SET_CONFIGURATION, [data_rate, full_scale, filter_bandwidth], 'C C C', 0, '')
|
189
|
+
end
|
190
|
+
|
191
|
+
# Returns the configuration as set by BrickletAccelerometer#set_configuration.
|
192
|
+
def get_configuration
|
193
|
+
send_request(FUNCTION_GET_CONFIGURATION, [], '', 3, 'C C C')
|
194
|
+
end
|
195
|
+
|
196
|
+
# Enables the LED on the Bricklet.
|
197
|
+
def led_on
|
198
|
+
send_request(FUNCTION_LED_ON, [], '', 0, '')
|
199
|
+
end
|
200
|
+
|
201
|
+
# Disables the LED on the Bricklet.
|
202
|
+
def led_off
|
203
|
+
send_request(FUNCTION_LED_OFF, [], '', 0, '')
|
204
|
+
end
|
205
|
+
|
206
|
+
# Returns *true* if the LED is enabled, *false* otherwise.
|
207
|
+
def is_led_on
|
208
|
+
send_request(FUNCTION_IS_LED_ON, [], '', 1, '?')
|
209
|
+
end
|
210
|
+
|
211
|
+
# Returns the UID, the UID where the Bricklet is connected to,
|
212
|
+
# the position, the hardware and firmware version as well as the
|
213
|
+
# device identifier.
|
214
|
+
#
|
215
|
+
# The position can be 'a', 'b', 'c' or 'd'.
|
216
|
+
#
|
217
|
+
# The device identifier numbers can be found :ref:`here <device_identifier>`.
|
218
|
+
# |device_identifier_constant|
|
219
|
+
def get_identity
|
220
|
+
send_request(FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S')
|
221
|
+
end
|
222
|
+
|
223
|
+
# Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.
|
224
|
+
def register_callback(id, &block)
|
225
|
+
callback = block
|
226
|
+
@registered_callbacks[id] = callback
|
227
|
+
end
|
228
|
+
end
|
229
|
+
end
|