tinkerforge 2.1.24 → 2.1.29
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 +5 -5
- data/lib/tinkerforge/brick_dc.rb +156 -75
- data/lib/tinkerforge/brick_hat.rb +69 -31
- data/lib/tinkerforge/brick_hat_zero.rb +55 -23
- data/lib/tinkerforge/brick_imu.rb +185 -78
- data/lib/tinkerforge/brick_imu_v2.rb +209 -106
- data/lib/tinkerforge/brick_master.rb +491 -183
- data/lib/tinkerforge/brick_red.rb +197 -74
- data/lib/tinkerforge/brick_servo.rb +186 -102
- data/lib/tinkerforge/brick_silent_stepper.rb +247 -167
- data/lib/tinkerforge/brick_stepper.rb +211 -99
- data/lib/tinkerforge/bricklet_accelerometer.rb +57 -23
- data/lib/tinkerforge/bricklet_accelerometer_v2.rb +104 -54
- data/lib/tinkerforge/bricklet_air_quality.rb +116 -59
- data/lib/tinkerforge/bricklet_ambient_light.rb +50 -21
- data/lib/tinkerforge/bricklet_ambient_light_v2.rb +44 -24
- data/lib/tinkerforge/bricklet_ambient_light_v3.rb +65 -27
- data/lib/tinkerforge/bricklet_analog_in.rb +62 -25
- data/lib/tinkerforge/bricklet_analog_in_v2.rb +56 -23
- data/lib/tinkerforge/bricklet_analog_in_v3.rb +66 -25
- data/lib/tinkerforge/bricklet_analog_out.rb +22 -9
- data/lib/tinkerforge/bricklet_analog_out_v2.rb +19 -8
- data/lib/tinkerforge/bricklet_analog_out_v3.rb +53 -20
- data/lib/tinkerforge/bricklet_barometer.rb +100 -27
- data/lib/tinkerforge/bricklet_barometer_v2.rb +98 -37
- data/lib/tinkerforge/bricklet_can.rb +83 -19
- data/lib/tinkerforge/bricklet_can_v2.rb +171 -38
- data/lib/tinkerforge/bricklet_co2.rb +33 -14
- data/lib/tinkerforge/bricklet_co2_v2.rb +97 -38
- data/lib/tinkerforge/bricklet_color.rb +68 -27
- data/lib/tinkerforge/bricklet_color_v2.rb +86 -33
- data/lib/tinkerforge/bricklet_compass.rb +77 -30
- data/lib/tinkerforge/bricklet_current12.rb +57 -24
- data/lib/tinkerforge/bricklet_current25.rb +57 -24
- data/lib/tinkerforge/bricklet_dc_v2.rb +521 -0
- data/lib/tinkerforge/bricklet_distance_ir.rb +56 -23
- data/lib/tinkerforge/bricklet_distance_ir_v2.rb +82 -31
- data/lib/tinkerforge/bricklet_distance_us.rb +39 -16
- data/lib/tinkerforge/bricklet_distance_us_v2.rb +66 -25
- data/lib/tinkerforge/bricklet_dmx.rb +87 -34
- data/lib/tinkerforge/bricklet_dual_button.rb +23 -10
- data/lib/tinkerforge/bricklet_dual_button_v2.rb +63 -24
- data/lib/tinkerforge/bricklet_dual_relay.rb +26 -11
- data/lib/tinkerforge/bricklet_dust_detector.rb +39 -16
- data/lib/tinkerforge/bricklet_e_paper_296x128.rb +87 -32
- data/lib/tinkerforge/bricklet_energy_monitor.rb +72 -27
- data/lib/tinkerforge/bricklet_gps.rb +63 -26
- data/lib/tinkerforge/bricklet_gps_v2.rb +116 -47
- data/lib/tinkerforge/bricklet_hall_effect.rb +42 -23
- data/lib/tinkerforge/bricklet_hall_effect_v2.rb +70 -27
- data/lib/tinkerforge/bricklet_humidity.rb +50 -21
- data/lib/tinkerforge/bricklet_humidity_v2.rb +82 -31
- data/lib/tinkerforge/bricklet_imu_v3.rb +784 -0
- data/lib/tinkerforge/bricklet_industrial_analog_out.rb +37 -14
- data/lib/tinkerforge/bricklet_industrial_analog_out_v2.rb +80 -29
- data/lib/tinkerforge/bricklet_industrial_counter.rb +100 -39
- data/lib/tinkerforge/bricklet_industrial_digital_in_4.rb +44 -17
- data/lib/tinkerforge/bricklet_industrial_digital_in_4_v2.rb +76 -29
- data/lib/tinkerforge/bricklet_industrial_digital_out_4.rb +35 -14
- data/lib/tinkerforge/bricklet_industrial_digital_out_4_v2.rb +72 -27
- data/lib/tinkerforge/bricklet_industrial_dual_0_20ma.rb +39 -16
- data/lib/tinkerforge/bricklet_industrial_dual_0_20ma_v2.rb +79 -30
- data/lib/tinkerforge/bricklet_industrial_dual_ac_relay.rb +325 -0
- data/lib/tinkerforge/bricklet_industrial_dual_analog_in.rb +48 -19
- data/lib/tinkerforge/bricklet_industrial_dual_analog_in_v2.rb +137 -31
- data/lib/tinkerforge/bricklet_industrial_dual_relay.rb +60 -23
- data/lib/tinkerforge/bricklet_industrial_ptc.rb +475 -0
- data/lib/tinkerforge/bricklet_industrial_quad_relay.rb +35 -14
- data/lib/tinkerforge/bricklet_industrial_quad_relay_v2.rb +66 -25
- data/lib/tinkerforge/bricklet_io16.rb +54 -21
- data/lib/tinkerforge/bricklet_io16_v2.rb +89 -34
- data/lib/tinkerforge/bricklet_io4.rb +54 -23
- data/lib/tinkerforge/bricklet_io4_v2.rb +95 -36
- data/lib/tinkerforge/bricklet_isolator.rb +72 -29
- data/lib/tinkerforge/bricklet_joystick.rb +58 -25
- data/lib/tinkerforge/bricklet_joystick_v2.rb +67 -26
- data/lib/tinkerforge/bricklet_laser_range_finder.rb +81 -32
- data/lib/tinkerforge/bricklet_laser_range_finder_v2.rb +95 -36
- data/lib/tinkerforge/bricklet_lcd_128x64.rb +191 -70
- data/lib/tinkerforge/bricklet_lcd_16x2.rb +44 -18
- data/lib/tinkerforge/bricklet_lcd_20x4.rb +57 -23
- data/lib/tinkerforge/bricklet_led_strip.rb +59 -22
- data/lib/tinkerforge/bricklet_led_strip_v2.rb +90 -46
- data/lib/tinkerforge/bricklet_line.rb +33 -14
- data/lib/tinkerforge/bricklet_linear_poti.rb +50 -21
- data/lib/tinkerforge/bricklet_linear_poti_v2.rb +54 -21
- data/lib/tinkerforge/bricklet_load_cell.rb +60 -23
- data/lib/tinkerforge/bricklet_load_cell_v2.rb +79 -30
- data/lib/tinkerforge/bricklet_moisture.rb +39 -16
- data/lib/tinkerforge/bricklet_motion_detector.rb +21 -10
- data/lib/tinkerforge/bricklet_motion_detector_v2.rb +61 -27
- data/lib/tinkerforge/bricklet_motorized_linear_poti.rb +70 -27
- data/lib/tinkerforge/bricklet_multi_touch.rb +30 -13
- data/lib/tinkerforge/bricklet_multi_touch_v2.rb +75 -28
- data/lib/tinkerforge/bricklet_nfc.rb +126 -62
- data/lib/tinkerforge/bricklet_nfc_rfid.rb +32 -13
- data/lib/tinkerforge/bricklet_oled_128x64.rb +28 -11
- data/lib/tinkerforge/bricklet_oled_128x64_v2.rb +65 -24
- data/lib/tinkerforge/bricklet_oled_64x48.rb +28 -11
- data/lib/tinkerforge/bricklet_one_wire.rb +65 -24
- data/lib/tinkerforge/bricklet_outdoor_weather.rb +71 -28
- data/lib/tinkerforge/bricklet_particulate_matter.rb +74 -30
- data/lib/tinkerforge/bricklet_performance_dc.rb +682 -0
- data/lib/tinkerforge/bricklet_piezo_buzzer.rb +18 -9
- data/lib/tinkerforge/bricklet_piezo_speaker.rb +21 -10
- data/lib/tinkerforge/bricklet_piezo_speaker_v2.rb +79 -42
- data/lib/tinkerforge/bricklet_ptc.rb +73 -42
- data/lib/tinkerforge/bricklet_ptc_v2.rb +94 -48
- data/lib/tinkerforge/bricklet_real_time_clock.rb +44 -33
- data/lib/tinkerforge/bricklet_real_time_clock_v2.rb +77 -44
- data/lib/tinkerforge/bricklet_remote_switch.rb +38 -29
- data/lib/tinkerforge/bricklet_remote_switch_v2.rb +86 -49
- data/lib/tinkerforge/bricklet_rgb_led.rb +17 -8
- data/lib/tinkerforge/bricklet_rgb_led_button.rb +61 -30
- data/lib/tinkerforge/bricklet_rgb_led_matrix.rb +78 -33
- data/lib/tinkerforge/bricklet_rgb_led_v2.rb +51 -20
- data/lib/tinkerforge/bricklet_rotary_encoder.rb +38 -19
- data/lib/tinkerforge/bricklet_rotary_encoder_v2.rb +59 -24
- data/lib/tinkerforge/bricklet_rotary_poti.rb +52 -28
- data/lib/tinkerforge/bricklet_rotary_poti_v2.rb +56 -23
- data/lib/tinkerforge/bricklet_rs232.rb +89 -28
- data/lib/tinkerforge/bricklet_rs232_v2.rb +117 -44
- data/lib/tinkerforge/bricklet_rs485.rb +222 -95
- data/lib/tinkerforge/bricklet_segment_display_4x7.rb +24 -14
- data/lib/tinkerforge/bricklet_segment_display_4x7_v2.rb +74 -35
- data/lib/tinkerforge/bricklet_servo_v2.rb +565 -0
- data/lib/tinkerforge/bricklet_silent_stepper_v2.rb +1024 -0
- data/lib/tinkerforge/bricklet_solid_state_relay.rb +24 -13
- data/lib/tinkerforge/bricklet_solid_state_relay_v2.rb +58 -25
- data/lib/tinkerforge/bricklet_sound_intensity.rb +34 -18
- data/lib/tinkerforge/bricklet_sound_pressure_level.rb +71 -31
- data/lib/tinkerforge/bricklet_temperature.rb +39 -16
- data/lib/tinkerforge/bricklet_temperature_ir.rb +56 -23
- data/lib/tinkerforge/bricklet_temperature_ir_v2.rb +70 -27
- data/lib/tinkerforge/bricklet_temperature_v2.rb +60 -25
- data/lib/tinkerforge/bricklet_thermal_imaging.rb +104 -44
- data/lib/tinkerforge/bricklet_thermocouple.rb +44 -24
- data/lib/tinkerforge/bricklet_thermocouple_v2.rb +64 -27
- data/lib/tinkerforge/bricklet_tilt.rb +23 -10
- data/lib/tinkerforge/bricklet_uv_light.rb +35 -18
- data/lib/tinkerforge/bricklet_uv_light_v2.rb +84 -37
- data/lib/tinkerforge/bricklet_voltage.rb +51 -28
- data/lib/tinkerforge/bricklet_voltage_current.rb +90 -73
- data/lib/tinkerforge/bricklet_voltage_current_v2.rb +89 -68
- data/lib/tinkerforge/bricklet_xmc1400_breakout.rb +79 -30
- data/lib/tinkerforge/device_display_names.rb +170 -0
- data/lib/tinkerforge/ip_connection.rb +153 -33
- data/lib/tinkerforge/version.rb +1 -1
- metadata +11 -3
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# -*- ruby encoding: utf-8 -*-
|
|
2
2
|
#############################################################
|
|
3
|
-
# This file was automatically generated on
|
|
3
|
+
# This file was automatically generated on 2021-05-06. #
|
|
4
4
|
# #
|
|
5
|
-
# Ruby Bindings Version 2.1.
|
|
5
|
+
# Ruby Bindings Version 2.1.29 #
|
|
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
9
|
# to the generators git repository on tinkerforge.com #
|
|
10
10
|
#############################################################
|
|
11
11
|
|
|
12
|
+
require_relative './ip_connection'
|
|
13
|
+
|
|
12
14
|
module Tinkerforge
|
|
13
15
|
# Measures distance up to 150cm with infrared light
|
|
14
16
|
class BrickletDistanceIR < Device
|
|
@@ -72,7 +74,7 @@ module Tinkerforge
|
|
|
72
74
|
# Creates an object with the unique device ID <tt>uid</tt> and adds it to
|
|
73
75
|
# the IP Connection <tt>ipcon</tt>.
|
|
74
76
|
def initialize(uid, ipcon)
|
|
75
|
-
super uid, ipcon
|
|
77
|
+
super uid, ipcon, DEVICE_IDENTIFIER, DEVICE_DISPLAY_NAME
|
|
76
78
|
|
|
77
79
|
@api_version = [2, 0, 1]
|
|
78
80
|
|
|
@@ -92,11 +94,12 @@ module Tinkerforge
|
|
|
92
94
|
@response_expected[FUNCTION_GET_DEBOUNCE_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
93
95
|
@response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
94
96
|
|
|
95
|
-
@callback_formats[CALLBACK_DISTANCE] = 'S'
|
|
96
|
-
@callback_formats[CALLBACK_ANALOG_VALUE] = 'S'
|
|
97
|
-
@callback_formats[CALLBACK_DISTANCE_REACHED] = 'S'
|
|
98
|
-
@callback_formats[CALLBACK_ANALOG_VALUE_REACHED] = 'S'
|
|
97
|
+
@callback_formats[CALLBACK_DISTANCE] = [10, 'S']
|
|
98
|
+
@callback_formats[CALLBACK_ANALOG_VALUE] = [10, 'S']
|
|
99
|
+
@callback_formats[CALLBACK_DISTANCE_REACHED] = [10, 'S']
|
|
100
|
+
@callback_formats[CALLBACK_ANALOG_VALUE_REACHED] = [10, 'S']
|
|
99
101
|
|
|
102
|
+
@ipcon.add_device self
|
|
100
103
|
end
|
|
101
104
|
|
|
102
105
|
# Returns the distance measured by the sensor. Possible
|
|
@@ -107,7 +110,9 @@ module Tinkerforge
|
|
|
107
110
|
# CALLBACK_DISTANCE callback and set the period with
|
|
108
111
|
# BrickletDistanceIR#set_distance_callback_period.
|
|
109
112
|
def get_distance
|
|
110
|
-
|
|
113
|
+
check_validity
|
|
114
|
+
|
|
115
|
+
send_request FUNCTION_GET_DISTANCE, [], '', 10, 'S'
|
|
111
116
|
end
|
|
112
117
|
|
|
113
118
|
# Returns the value as read by a 12-bit analog-to-digital converter.
|
|
@@ -122,7 +127,9 @@ module Tinkerforge
|
|
|
122
127
|
# CALLBACK_ANALOG_VALUE callback and set the period with
|
|
123
128
|
# BrickletDistanceIR#set_analog_value_callback_period.
|
|
124
129
|
def get_analog_value
|
|
125
|
-
|
|
130
|
+
check_validity
|
|
131
|
+
|
|
132
|
+
send_request FUNCTION_GET_ANALOG_VALUE, [], '', 10, 'S'
|
|
126
133
|
end
|
|
127
134
|
|
|
128
135
|
# Sets a sampling point value to a specific position of the lookup table.
|
|
@@ -144,13 +151,17 @@ module Tinkerforge
|
|
|
144
151
|
# implemented in the Brick Viewer. If you want to calibrate your Bricklet it is
|
|
145
152
|
# highly recommended to use this implementation.
|
|
146
153
|
def set_sampling_point(position, distance)
|
|
147
|
-
|
|
154
|
+
check_validity
|
|
155
|
+
|
|
156
|
+
send_request FUNCTION_SET_SAMPLING_POINT, [position, distance], 'C S', 8, ''
|
|
148
157
|
end
|
|
149
158
|
|
|
150
159
|
# Returns the distance to a sampling point position as set by
|
|
151
160
|
# BrickletDistanceIR#set_sampling_point.
|
|
152
161
|
def get_sampling_point(position)
|
|
153
|
-
|
|
162
|
+
check_validity
|
|
163
|
+
|
|
164
|
+
send_request FUNCTION_GET_SAMPLING_POINT, [position], 'C', 10, 'S'
|
|
154
165
|
end
|
|
155
166
|
|
|
156
167
|
# Sets the period with which the CALLBACK_DISTANCE callback is triggered
|
|
@@ -159,12 +170,16 @@ module Tinkerforge
|
|
|
159
170
|
# The CALLBACK_DISTANCE callback is only triggered if the distance has changed since the
|
|
160
171
|
# last triggering.
|
|
161
172
|
def set_distance_callback_period(period)
|
|
162
|
-
|
|
173
|
+
check_validity
|
|
174
|
+
|
|
175
|
+
send_request FUNCTION_SET_DISTANCE_CALLBACK_PERIOD, [period], 'L', 8, ''
|
|
163
176
|
end
|
|
164
177
|
|
|
165
178
|
# Returns the period as set by BrickletDistanceIR#set_distance_callback_period.
|
|
166
179
|
def get_distance_callback_period
|
|
167
|
-
|
|
180
|
+
check_validity
|
|
181
|
+
|
|
182
|
+
send_request FUNCTION_GET_DISTANCE_CALLBACK_PERIOD, [], '', 12, 'L'
|
|
168
183
|
end
|
|
169
184
|
|
|
170
185
|
# Sets the period with which the CALLBACK_ANALOG_VALUE callback is triggered
|
|
@@ -173,12 +188,16 @@ module Tinkerforge
|
|
|
173
188
|
# The CALLBACK_ANALOG_VALUE callback is only triggered if the analog value has
|
|
174
189
|
# changed since the last triggering.
|
|
175
190
|
def set_analog_value_callback_period(period)
|
|
176
|
-
|
|
191
|
+
check_validity
|
|
192
|
+
|
|
193
|
+
send_request FUNCTION_SET_ANALOG_VALUE_CALLBACK_PERIOD, [period], 'L', 8, ''
|
|
177
194
|
end
|
|
178
195
|
|
|
179
196
|
# Returns the period as set by BrickletDistanceIR#set_analog_value_callback_period.
|
|
180
197
|
def get_analog_value_callback_period
|
|
181
|
-
|
|
198
|
+
check_validity
|
|
199
|
+
|
|
200
|
+
send_request FUNCTION_GET_ANALOG_VALUE_CALLBACK_PERIOD, [], '', 12, 'L'
|
|
182
201
|
end
|
|
183
202
|
|
|
184
203
|
# Sets the thresholds for the CALLBACK_DISTANCE_REACHED callback.
|
|
@@ -193,12 +212,16 @@ module Tinkerforge
|
|
|
193
212
|
# "'<'", "Callback is triggered when the distance is smaller than the min value (max is ignored)"
|
|
194
213
|
# "'>'", "Callback is triggered when the distance is greater than the min value (max is ignored)"
|
|
195
214
|
def set_distance_callback_threshold(option, min, max)
|
|
196
|
-
|
|
215
|
+
check_validity
|
|
216
|
+
|
|
217
|
+
send_request FUNCTION_SET_DISTANCE_CALLBACK_THRESHOLD, [option, min, max], 'k S S', 8, ''
|
|
197
218
|
end
|
|
198
219
|
|
|
199
220
|
# Returns the threshold as set by BrickletDistanceIR#set_distance_callback_threshold.
|
|
200
221
|
def get_distance_callback_threshold
|
|
201
|
-
|
|
222
|
+
check_validity
|
|
223
|
+
|
|
224
|
+
send_request FUNCTION_GET_DISTANCE_CALLBACK_THRESHOLD, [], '', 13, 'k S S'
|
|
202
225
|
end
|
|
203
226
|
|
|
204
227
|
# Sets the thresholds for the CALLBACK_ANALOG_VALUE_REACHED callback.
|
|
@@ -213,12 +236,16 @@ module Tinkerforge
|
|
|
213
236
|
# "'<'", "Callback is triggered when the analog value is smaller than the min value (max is ignored)"
|
|
214
237
|
# "'>'", "Callback is triggered when the analog value is greater than the min value (max is ignored)"
|
|
215
238
|
def set_analog_value_callback_threshold(option, min, max)
|
|
216
|
-
|
|
239
|
+
check_validity
|
|
240
|
+
|
|
241
|
+
send_request FUNCTION_SET_ANALOG_VALUE_CALLBACK_THRESHOLD, [option, min, max], 'k S S', 8, ''
|
|
217
242
|
end
|
|
218
243
|
|
|
219
244
|
# Returns the threshold as set by BrickletDistanceIR#set_analog_value_callback_threshold.
|
|
220
245
|
def get_analog_value_callback_threshold
|
|
221
|
-
|
|
246
|
+
check_validity
|
|
247
|
+
|
|
248
|
+
send_request FUNCTION_GET_ANALOG_VALUE_CALLBACK_THRESHOLD, [], '', 13, 'k S S'
|
|
222
249
|
end
|
|
223
250
|
|
|
224
251
|
# Sets the period with which the threshold callbacks
|
|
@@ -233,24 +260,30 @@ module Tinkerforge
|
|
|
233
260
|
#
|
|
234
261
|
# keep being reached.
|
|
235
262
|
def set_debounce_period(debounce)
|
|
236
|
-
|
|
263
|
+
check_validity
|
|
264
|
+
|
|
265
|
+
send_request FUNCTION_SET_DEBOUNCE_PERIOD, [debounce], 'L', 8, ''
|
|
237
266
|
end
|
|
238
267
|
|
|
239
268
|
# Returns the debounce period as set by BrickletDistanceIR#set_debounce_period.
|
|
240
269
|
def get_debounce_period
|
|
241
|
-
|
|
270
|
+
check_validity
|
|
271
|
+
|
|
272
|
+
send_request FUNCTION_GET_DEBOUNCE_PERIOD, [], '', 12, 'L'
|
|
242
273
|
end
|
|
243
274
|
|
|
244
275
|
# Returns the UID, the UID where the Bricklet is connected to,
|
|
245
276
|
# the position, the hardware and firmware version as well as the
|
|
246
277
|
# device identifier.
|
|
247
278
|
#
|
|
248
|
-
# The position can be 'a', 'b', 'c' or '
|
|
279
|
+
# The position can be 'a', 'b', 'c', 'd', 'e', 'f', 'g' or 'h' (Bricklet Port).
|
|
280
|
+
# A Bricklet connected to an :ref:`Isolator Bricklet <isolator_bricklet>` is always at
|
|
281
|
+
# position 'z'.
|
|
249
282
|
#
|
|
250
283
|
# The device identifier numbers can be found :ref:`here <device_identifier>`.
|
|
251
284
|
# |device_identifier_constant|
|
|
252
285
|
def get_identity
|
|
253
|
-
send_request FUNCTION_GET_IDENTITY, [], '',
|
|
286
|
+
send_request FUNCTION_GET_IDENTITY, [], '', 33, 'Z8 Z8 k C3 C3 S'
|
|
254
287
|
end
|
|
255
288
|
|
|
256
289
|
# Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# -*- ruby encoding: utf-8 -*-
|
|
2
2
|
#############################################################
|
|
3
|
-
# This file was automatically generated on
|
|
3
|
+
# This file was automatically generated on 2021-05-06. #
|
|
4
4
|
# #
|
|
5
|
-
# Ruby Bindings Version 2.1.
|
|
5
|
+
# Ruby Bindings Version 2.1.29 #
|
|
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
9
|
# to the generators git repository on tinkerforge.com #
|
|
10
10
|
#############################################################
|
|
11
11
|
|
|
12
|
+
require_relative './ip_connection'
|
|
13
|
+
|
|
12
14
|
module Tinkerforge
|
|
13
15
|
# Measures distance up to 150cm with infrared light
|
|
14
16
|
class BrickletDistanceIRV2 < Device
|
|
@@ -83,7 +85,7 @@ module Tinkerforge
|
|
|
83
85
|
# Creates an object with the unique device ID <tt>uid</tt> and adds it to
|
|
84
86
|
# the IP Connection <tt>ipcon</tt>.
|
|
85
87
|
def initialize(uid, ipcon)
|
|
86
|
-
super uid, ipcon
|
|
88
|
+
super uid, ipcon, DEVICE_IDENTIFIER, DEVICE_DISPLAY_NAME
|
|
87
89
|
|
|
88
90
|
@api_version = [2, 0, 1]
|
|
89
91
|
|
|
@@ -112,9 +114,10 @@ module Tinkerforge
|
|
|
112
114
|
@response_expected[FUNCTION_READ_UID] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
113
115
|
@response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
114
116
|
|
|
115
|
-
@callback_formats[CALLBACK_DISTANCE] = 'S'
|
|
116
|
-
@callback_formats[CALLBACK_ANALOG_VALUE] = 'L'
|
|
117
|
+
@callback_formats[CALLBACK_DISTANCE] = [10, 'S']
|
|
118
|
+
@callback_formats[CALLBACK_ANALOG_VALUE] = [12, 'L']
|
|
117
119
|
|
|
120
|
+
@ipcon.add_device self
|
|
118
121
|
end
|
|
119
122
|
|
|
120
123
|
# Returns the distance measured by the sensor. Possible
|
|
@@ -126,7 +129,9 @@ module Tinkerforge
|
|
|
126
129
|
# CALLBACK_DISTANCE callback. You can set the callback configuration
|
|
127
130
|
# with BrickletDistanceIRV2#set_distance_callback_configuration.
|
|
128
131
|
def get_distance
|
|
129
|
-
|
|
132
|
+
check_validity
|
|
133
|
+
|
|
134
|
+
send_request FUNCTION_GET_DISTANCE, [], '', 10, 'S'
|
|
130
135
|
end
|
|
131
136
|
|
|
132
137
|
# The period is the period with which the CALLBACK_DISTANCE callback is triggered
|
|
@@ -155,12 +160,16 @@ module Tinkerforge
|
|
|
155
160
|
#
|
|
156
161
|
# If the option is set to 'x' (threshold turned off) the callback is triggered with the fixed period.
|
|
157
162
|
def set_distance_callback_configuration(period, value_has_to_change, option, min, max)
|
|
158
|
-
|
|
163
|
+
check_validity
|
|
164
|
+
|
|
165
|
+
send_request FUNCTION_SET_DISTANCE_CALLBACK_CONFIGURATION, [period, value_has_to_change, option, min, max], 'L ? k S S', 8, ''
|
|
159
166
|
end
|
|
160
167
|
|
|
161
168
|
# Returns the callback configuration as set by BrickletDistanceIRV2#set_distance_callback_configuration.
|
|
162
169
|
def get_distance_callback_configuration
|
|
163
|
-
|
|
170
|
+
check_validity
|
|
171
|
+
|
|
172
|
+
send_request FUNCTION_GET_DISTANCE_CALLBACK_CONFIGURATION, [], '', 18, 'L ? k S S'
|
|
164
173
|
end
|
|
165
174
|
|
|
166
175
|
# Returns the analog value as read by a analog-to-digital converter.
|
|
@@ -177,7 +186,9 @@ module Tinkerforge
|
|
|
177
186
|
# CALLBACK_ANALOG_VALUE callback. You can set the callback configuration
|
|
178
187
|
# with BrickletDistanceIRV2#set_analog_value_callback_configuration.
|
|
179
188
|
def get_analog_value
|
|
180
|
-
|
|
189
|
+
check_validity
|
|
190
|
+
|
|
191
|
+
send_request FUNCTION_GET_ANALOG_VALUE, [], '', 12, 'L'
|
|
181
192
|
end
|
|
182
193
|
|
|
183
194
|
# The period is the period with which the CALLBACK_ANALOG_VALUE callback is triggered
|
|
@@ -206,12 +217,16 @@ module Tinkerforge
|
|
|
206
217
|
#
|
|
207
218
|
# If the option is set to 'x' (threshold turned off) the callback is triggered with the fixed period.
|
|
208
219
|
def set_analog_value_callback_configuration(period, value_has_to_change, option, min, max)
|
|
209
|
-
|
|
220
|
+
check_validity
|
|
221
|
+
|
|
222
|
+
send_request FUNCTION_SET_ANALOG_VALUE_CALLBACK_CONFIGURATION, [period, value_has_to_change, option, min, max], 'L ? k L L', 8, ''
|
|
210
223
|
end
|
|
211
224
|
|
|
212
225
|
# Returns the callback configuration as set by BrickletDistanceIRV2#set_analog_value_callback_configuration.
|
|
213
226
|
def get_analog_value_callback_configuration
|
|
214
|
-
|
|
227
|
+
check_validity
|
|
228
|
+
|
|
229
|
+
send_request FUNCTION_GET_ANALOG_VALUE_CALLBACK_CONFIGURATION, [], '', 22, 'L ? k L L'
|
|
215
230
|
end
|
|
216
231
|
|
|
217
232
|
# Sets the length of a `moving averaging <https://en.wikipedia.org/wiki/Moving_average>`__
|
|
@@ -224,23 +239,31 @@ module Tinkerforge
|
|
|
224
239
|
# resulting averaging window has a length of approximately 10s. If you want to do
|
|
225
240
|
# long term measurements the longest moving average will give the cleanest results.
|
|
226
241
|
def set_moving_average_configuration(moving_average_length)
|
|
227
|
-
|
|
242
|
+
check_validity
|
|
243
|
+
|
|
244
|
+
send_request FUNCTION_SET_MOVING_AVERAGE_CONFIGURATION, [moving_average_length], 'S', 8, ''
|
|
228
245
|
end
|
|
229
246
|
|
|
230
247
|
# Returns the moving average configuration as set by BrickletDistanceIRV2#set_moving_average_configuration.
|
|
231
248
|
def get_moving_average_configuration
|
|
232
|
-
|
|
249
|
+
check_validity
|
|
250
|
+
|
|
251
|
+
send_request FUNCTION_GET_MOVING_AVERAGE_CONFIGURATION, [], '', 10, 'S'
|
|
233
252
|
end
|
|
234
253
|
|
|
235
254
|
# Configures the distance LED to be either turned off, turned on, blink in
|
|
236
255
|
# heartbeat mode or show the distance (brighter = object is nearer).
|
|
237
256
|
def set_distance_led_config(config)
|
|
238
|
-
|
|
257
|
+
check_validity
|
|
258
|
+
|
|
259
|
+
send_request FUNCTION_SET_DISTANCE_LED_CONFIG, [config], 'C', 8, ''
|
|
239
260
|
end
|
|
240
261
|
|
|
241
262
|
# Returns the LED configuration as set by BrickletDistanceIRV2#set_distance_led_config
|
|
242
263
|
def get_distance_led_config
|
|
243
|
-
|
|
264
|
+
check_validity
|
|
265
|
+
|
|
266
|
+
send_request FUNCTION_GET_DISTANCE_LED_CONFIG, [], '', 9, 'C'
|
|
244
267
|
end
|
|
245
268
|
|
|
246
269
|
# Sets the sensor type.
|
|
@@ -252,12 +275,16 @@ module Tinkerforge
|
|
|
252
275
|
# If you want to change the sensor you can set the type in Brick Viewer,
|
|
253
276
|
# you will likely never need to call this function from your program.
|
|
254
277
|
def set_sensor_type(sensor)
|
|
255
|
-
|
|
278
|
+
check_validity
|
|
279
|
+
|
|
280
|
+
send_request FUNCTION_SET_SENSOR_TYPE, [sensor], 'C', 8, ''
|
|
256
281
|
end
|
|
257
282
|
|
|
258
283
|
# Returns the sensor type as set by BrickletDistanceIRV2#set_sensor_type.
|
|
259
284
|
def get_sensor_type
|
|
260
|
-
|
|
285
|
+
check_validity
|
|
286
|
+
|
|
287
|
+
send_request FUNCTION_GET_SENSOR_TYPE, [], '', 9, 'C'
|
|
261
288
|
end
|
|
262
289
|
|
|
263
290
|
# Returns the error count for the communication between Brick and Bricklet.
|
|
@@ -272,7 +299,9 @@ module Tinkerforge
|
|
|
272
299
|
# The errors counts are for errors that occur on the Bricklet side. All
|
|
273
300
|
# Bricks have a similar function that returns the errors on the Brick side.
|
|
274
301
|
def get_spitfp_error_count
|
|
275
|
-
|
|
302
|
+
check_validity
|
|
303
|
+
|
|
304
|
+
send_request FUNCTION_GET_SPITFP_ERROR_COUNT, [], '', 24, 'L L L L'
|
|
276
305
|
end
|
|
277
306
|
|
|
278
307
|
# Sets the bootloader mode and returns the status after the requested
|
|
@@ -285,12 +314,16 @@ module Tinkerforge
|
|
|
285
314
|
# This function is used by Brick Viewer during flashing. It should not be
|
|
286
315
|
# necessary to call it in a normal user program.
|
|
287
316
|
def set_bootloader_mode(mode)
|
|
288
|
-
|
|
317
|
+
check_validity
|
|
318
|
+
|
|
319
|
+
send_request FUNCTION_SET_BOOTLOADER_MODE, [mode], 'C', 9, 'C'
|
|
289
320
|
end
|
|
290
321
|
|
|
291
322
|
# Returns the current bootloader mode, see BrickletDistanceIRV2#set_bootloader_mode.
|
|
292
323
|
def get_bootloader_mode
|
|
293
|
-
|
|
324
|
+
check_validity
|
|
325
|
+
|
|
326
|
+
send_request FUNCTION_GET_BOOTLOADER_MODE, [], '', 9, 'C'
|
|
294
327
|
end
|
|
295
328
|
|
|
296
329
|
# Sets the firmware pointer for BrickletDistanceIRV2#write_firmware. The pointer has
|
|
@@ -300,7 +333,9 @@ module Tinkerforge
|
|
|
300
333
|
# This function is used by Brick Viewer during flashing. It should not be
|
|
301
334
|
# necessary to call it in a normal user program.
|
|
302
335
|
def set_write_firmware_pointer(pointer)
|
|
303
|
-
|
|
336
|
+
check_validity
|
|
337
|
+
|
|
338
|
+
send_request FUNCTION_SET_WRITE_FIRMWARE_POINTER, [pointer], 'L', 8, ''
|
|
304
339
|
end
|
|
305
340
|
|
|
306
341
|
# Writes 64 Bytes of firmware at the position as written by
|
|
@@ -312,7 +347,9 @@ module Tinkerforge
|
|
|
312
347
|
# This function is used by Brick Viewer during flashing. It should not be
|
|
313
348
|
# necessary to call it in a normal user program.
|
|
314
349
|
def write_firmware(data)
|
|
315
|
-
|
|
350
|
+
check_validity
|
|
351
|
+
|
|
352
|
+
send_request FUNCTION_WRITE_FIRMWARE, [data], 'C64', 9, 'C'
|
|
316
353
|
end
|
|
317
354
|
|
|
318
355
|
# Sets the status LED configuration. By default the LED shows
|
|
@@ -323,22 +360,28 @@ module Tinkerforge
|
|
|
323
360
|
#
|
|
324
361
|
# If the Bricklet is in bootloader mode, the LED is will show heartbeat by default.
|
|
325
362
|
def set_status_led_config(config)
|
|
326
|
-
|
|
363
|
+
check_validity
|
|
364
|
+
|
|
365
|
+
send_request FUNCTION_SET_STATUS_LED_CONFIG, [config], 'C', 8, ''
|
|
327
366
|
end
|
|
328
367
|
|
|
329
368
|
# Returns the configuration as set by BrickletDistanceIRV2#set_status_led_config
|
|
330
369
|
def get_status_led_config
|
|
331
|
-
|
|
370
|
+
check_validity
|
|
371
|
+
|
|
372
|
+
send_request FUNCTION_GET_STATUS_LED_CONFIG, [], '', 9, 'C'
|
|
332
373
|
end
|
|
333
374
|
|
|
334
|
-
# Returns the temperature
|
|
375
|
+
# Returns the temperature as measured inside the microcontroller. The
|
|
335
376
|
# value returned is not the ambient temperature!
|
|
336
377
|
#
|
|
337
378
|
# The temperature is only proportional to the real temperature and it has bad
|
|
338
379
|
# accuracy. Practically it is only useful as an indicator for
|
|
339
380
|
# temperature changes.
|
|
340
381
|
def get_chip_temperature
|
|
341
|
-
|
|
382
|
+
check_validity
|
|
383
|
+
|
|
384
|
+
send_request FUNCTION_GET_CHIP_TEMPERATURE, [], '', 10, 's'
|
|
342
385
|
end
|
|
343
386
|
|
|
344
387
|
# Calling this function will reset the Bricklet. All configurations
|
|
@@ -348,7 +391,9 @@ module Tinkerforge
|
|
|
348
391
|
# calling functions on the existing ones will result in
|
|
349
392
|
# undefined behavior!
|
|
350
393
|
def reset
|
|
351
|
-
|
|
394
|
+
check_validity
|
|
395
|
+
|
|
396
|
+
send_request FUNCTION_RESET, [], '', 8, ''
|
|
352
397
|
end
|
|
353
398
|
|
|
354
399
|
# Writes a new UID into flash. If you want to set a new UID
|
|
@@ -357,25 +402,31 @@ module Tinkerforge
|
|
|
357
402
|
#
|
|
358
403
|
# We recommend that you use Brick Viewer to change the UID.
|
|
359
404
|
def write_uid(uid)
|
|
360
|
-
|
|
405
|
+
check_validity
|
|
406
|
+
|
|
407
|
+
send_request FUNCTION_WRITE_UID, [uid], 'L', 8, ''
|
|
361
408
|
end
|
|
362
409
|
|
|
363
410
|
# Returns the current UID as an integer. Encode as
|
|
364
411
|
# Base58 to get the usual string version.
|
|
365
412
|
def read_uid
|
|
366
|
-
|
|
413
|
+
check_validity
|
|
414
|
+
|
|
415
|
+
send_request FUNCTION_READ_UID, [], '', 12, 'L'
|
|
367
416
|
end
|
|
368
417
|
|
|
369
418
|
# Returns the UID, the UID where the Bricklet is connected to,
|
|
370
419
|
# the position, the hardware and firmware version as well as the
|
|
371
420
|
# device identifier.
|
|
372
421
|
#
|
|
373
|
-
# The position can be 'a', 'b', 'c' or '
|
|
422
|
+
# The position can be 'a', 'b', 'c', 'd', 'e', 'f', 'g' or 'h' (Bricklet Port).
|
|
423
|
+
# A Bricklet connected to an :ref:`Isolator Bricklet <isolator_bricklet>` is always at
|
|
424
|
+
# position 'z'.
|
|
374
425
|
#
|
|
375
426
|
# The device identifier numbers can be found :ref:`here <device_identifier>`.
|
|
376
427
|
# |device_identifier_constant|
|
|
377
428
|
def get_identity
|
|
378
|
-
send_request FUNCTION_GET_IDENTITY, [], '',
|
|
429
|
+
send_request FUNCTION_GET_IDENTITY, [], '', 33, 'Z8 Z8 k C3 C3 S'
|
|
379
430
|
end
|
|
380
431
|
|
|
381
432
|
# Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.
|