tinkerforge 2.1.22 → 2.1.27
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 +157 -76
- data/lib/tinkerforge/brick_hat.rb +115 -32
- data/lib/tinkerforge/brick_hat_zero.rb +119 -21
- data/lib/tinkerforge/brick_imu.rb +192 -87
- data/lib/tinkerforge/brick_imu_v2.rb +220 -119
- data/lib/tinkerforge/brick_master.rb +498 -198
- data/lib/tinkerforge/brick_red.rb +197 -74
- data/lib/tinkerforge/brick_servo.rb +187 -103
- data/lib/tinkerforge/brick_silent_stepper.rb +249 -169
- data/lib/tinkerforge/brick_stepper.rb +214 -102
- data/lib/tinkerforge/bricklet_accelerometer.rb +61 -36
- data/lib/tinkerforge/bricklet_accelerometer_v2.rb +167 -48
- data/lib/tinkerforge/bricklet_air_quality.rb +123 -76
- data/lib/tinkerforge/bricklet_ambient_light.rb +62 -46
- data/lib/tinkerforge/bricklet_ambient_light_v2.rb +41 -28
- data/lib/tinkerforge/bricklet_ambient_light_v3.rb +61 -28
- data/lib/tinkerforge/bricklet_analog_in.rb +66 -45
- data/lib/tinkerforge/bricklet_analog_in_v2.rb +60 -43
- data/lib/tinkerforge/bricklet_analog_in_v3.rb +68 -32
- data/lib/tinkerforge/bricklet_analog_out.rb +25 -16
- data/lib/tinkerforge/bricklet_analog_out_v2.rb +21 -10
- data/lib/tinkerforge/bricklet_analog_out_v3.rb +55 -22
- data/lib/tinkerforge/bricklet_barometer.rb +108 -58
- data/lib/tinkerforge/bricklet_barometer_v2.rb +109 -67
- data/lib/tinkerforge/bricklet_can.rb +84 -24
- data/lib/tinkerforge/bricklet_can_v2.rb +173 -72
- data/lib/tinkerforge/bricklet_co2.rb +36 -25
- data/lib/tinkerforge/bricklet_co2_v2.rb +119 -60
- data/lib/tinkerforge/bricklet_color.rb +77 -49
- data/lib/tinkerforge/bricklet_color_v2.rb +493 -0
- data/lib/tinkerforge/bricklet_compass.rb +397 -0
- data/lib/tinkerforge/bricklet_current12.rb +61 -40
- data/lib/tinkerforge/bricklet_current25.rb +61 -40
- data/lib/tinkerforge/bricklet_distance_ir.rb +60 -38
- data/lib/tinkerforge/bricklet_distance_ir_v2.rb +85 -45
- data/lib/tinkerforge/bricklet_distance_us.rb +43 -30
- data/lib/tinkerforge/bricklet_distance_us_v2.rb +335 -0
- data/lib/tinkerforge/bricklet_dmx.rb +92 -48
- data/lib/tinkerforge/bricklet_dual_button.rb +23 -12
- data/lib/tinkerforge/bricklet_dual_button_v2.rb +64 -29
- data/lib/tinkerforge/bricklet_dual_relay.rb +27 -14
- data/lib/tinkerforge/bricklet_dust_detector.rb +43 -30
- data/lib/tinkerforge/bricklet_e_paper_296x128.rb +115 -63
- data/lib/tinkerforge/bricklet_energy_monitor.rb +416 -0
- data/lib/tinkerforge/bricklet_gps.rb +72 -48
- data/lib/tinkerforge/bricklet_gps_v2.rb +124 -73
- data/lib/tinkerforge/bricklet_hall_effect.rb +43 -28
- data/lib/tinkerforge/bricklet_hall_effect_v2.rb +76 -44
- data/lib/tinkerforge/bricklet_humidity.rb +54 -38
- data/lib/tinkerforge/bricklet_humidity_v2.rb +86 -49
- data/lib/tinkerforge/bricklet_imu_v3.rb +784 -0
- data/lib/tinkerforge/bricklet_industrial_analog_out.rb +41 -18
- data/lib/tinkerforge/bricklet_industrial_analog_out_v2.rb +84 -40
- data/lib/tinkerforge/bricklet_industrial_counter.rb +102 -59
- data/lib/tinkerforge/bricklet_industrial_digital_in_4.rb +51 -24
- data/lib/tinkerforge/bricklet_industrial_digital_in_4_v2.rb +79 -40
- data/lib/tinkerforge/bricklet_industrial_digital_out_4.rb +36 -15
- data/lib/tinkerforge/bricklet_industrial_digital_out_4_v2.rb +75 -33
- data/lib/tinkerforge/bricklet_industrial_dual_0_20ma.rb +43 -29
- data/lib/tinkerforge/bricklet_industrial_dual_0_20ma_v2.rb +81 -44
- data/lib/tinkerforge/bricklet_industrial_dual_ac_relay.rb +325 -0
- data/lib/tinkerforge/bricklet_industrial_dual_analog_in.rb +51 -30
- data/lib/tinkerforge/bricklet_industrial_dual_analog_in_v2.rb +139 -40
- data/lib/tinkerforge/bricklet_industrial_dual_relay.rb +63 -28
- data/lib/tinkerforge/bricklet_industrial_quad_relay.rb +36 -15
- data/lib/tinkerforge/bricklet_industrial_quad_relay_v2.rb +67 -28
- data/lib/tinkerforge/bricklet_io16.rb +57 -32
- data/lib/tinkerforge/bricklet_io16_v2.rb +93 -48
- data/lib/tinkerforge/bricklet_io4.rb +56 -31
- data/lib/tinkerforge/bricklet_io4_v2.rb +109 -57
- data/lib/tinkerforge/bricklet_isolator.rb +111 -35
- data/lib/tinkerforge/bricklet_joystick.rb +63 -42
- data/lib/tinkerforge/bricklet_joystick_v2.rb +71 -35
- data/lib/tinkerforge/bricklet_laser_range_finder.rb +87 -59
- data/lib/tinkerforge/bricklet_laser_range_finder_v2.rb +101 -53
- data/lib/tinkerforge/bricklet_lcd_128x64.rb +241 -131
- data/lib/tinkerforge/bricklet_lcd_16x2.rb +49 -25
- data/lib/tinkerforge/bricklet_lcd_20x4.rb +59 -29
- data/lib/tinkerforge/bricklet_led_strip.rb +69 -47
- data/lib/tinkerforge/bricklet_led_strip_v2.rb +105 -48
- data/lib/tinkerforge/bricklet_line.rb +35 -22
- data/lib/tinkerforge/bricklet_linear_poti.rb +53 -35
- data/lib/tinkerforge/bricklet_linear_poti_v2.rb +55 -24
- data/lib/tinkerforge/bricklet_load_cell.rb +64 -40
- data/lib/tinkerforge/bricklet_load_cell_v2.rb +81 -41
- data/lib/tinkerforge/bricklet_moisture.rb +43 -30
- data/lib/tinkerforge/bricklet_motion_detector.rb +21 -10
- data/lib/tinkerforge/bricklet_motion_detector_v2.rb +62 -29
- data/lib/tinkerforge/bricklet_motorized_linear_poti.rb +71 -32
- data/lib/tinkerforge/bricklet_multi_touch.rb +30 -17
- data/lib/tinkerforge/bricklet_multi_touch_v2.rb +371 -0
- data/lib/tinkerforge/bricklet_nfc.rb +130 -80
- data/lib/tinkerforge/bricklet_nfc_rfid.rb +32 -13
- data/lib/tinkerforge/bricklet_oled_128x64.rb +30 -17
- data/lib/tinkerforge/bricklet_oled_128x64_v2.rb +97 -40
- data/lib/tinkerforge/bricklet_oled_64x48.rb +30 -17
- data/lib/tinkerforge/bricklet_one_wire.rb +65 -24
- data/lib/tinkerforge/bricklet_outdoor_weather.rb +84 -41
- data/lib/tinkerforge/bricklet_particulate_matter.rb +85 -37
- data/lib/tinkerforge/bricklet_piezo_buzzer.rb +19 -13
- data/lib/tinkerforge/bricklet_piezo_speaker.rb +22 -19
- data/lib/tinkerforge/bricklet_piezo_speaker_v2.rb +84 -57
- data/lib/tinkerforge/bricklet_ptc.rb +76 -51
- data/lib/tinkerforge/bricklet_ptc_v2.rb +96 -54
- data/lib/tinkerforge/bricklet_real_time_clock.rb +45 -36
- data/lib/tinkerforge/bricklet_real_time_clock_v2.rb +78 -47
- 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 +40 -25
- data/lib/tinkerforge/bricklet_rotary_encoder_v2.rb +60 -27
- data/lib/tinkerforge/bricklet_rotary_poti.rb +55 -37
- data/lib/tinkerforge/bricklet_rotary_poti_v2.rb +290 -0
- data/lib/tinkerforge/bricklet_rs232.rb +89 -28
- data/lib/tinkerforge/bricklet_rs232_v2.rb +121 -47
- data/lib/tinkerforge/bricklet_rs485.rb +303 -207
- data/lib/tinkerforge/bricklet_segment_display_4x7.rb +24 -14
- data/lib/tinkerforge/bricklet_segment_display_4x7_v2.rb +75 -36
- 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 +36 -24
- data/lib/tinkerforge/bricklet_sound_pressure_level.rb +77 -41
- data/lib/tinkerforge/bricklet_temperature.rb +43 -28
- data/lib/tinkerforge/bricklet_temperature_ir.rb +63 -47
- data/lib/tinkerforge/bricklet_temperature_ir_v2.rb +75 -53
- data/lib/tinkerforge/bricklet_temperature_v2.rb +62 -31
- data/lib/tinkerforge/bricklet_thermal_imaging.rb +118 -68
- data/lib/tinkerforge/bricklet_thermocouple.rb +46 -30
- data/lib/tinkerforge/bricklet_thermocouple_v2.rb +65 -30
- data/lib/tinkerforge/bricklet_tilt.rb +23 -10
- data/lib/tinkerforge/bricklet_uv_light.rb +37 -24
- data/lib/tinkerforge/bricklet_uv_light_v2.rb +87 -46
- data/lib/tinkerforge/bricklet_voltage.rb +54 -37
- data/lib/tinkerforge/bricklet_voltage_current.rb +94 -85
- data/lib/tinkerforge/bricklet_voltage_current_v2.rb +103 -77
- data/lib/tinkerforge/bricklet_xmc1400_breakout.rb +410 -0
- data/lib/tinkerforge/device_display_names.rb +165 -0
- data/lib/tinkerforge/ip_connection.rb +155 -33
- data/lib/tinkerforge/version.rb +1 -1
- metadata +14 -4
|
@@ -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 2020-11-02. #
|
|
4
4
|
# #
|
|
5
|
-
# Ruby Bindings Version 2.1.
|
|
5
|
+
# Ruby Bindings Version 2.1.27 #
|
|
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 DC voltage between 0V and 50V
|
|
14
16
|
class BrickletVoltage < Device
|
|
@@ -70,7 +72,7 @@ module Tinkerforge
|
|
|
70
72
|
# Creates an object with the unique device ID <tt>uid</tt> and adds it to
|
|
71
73
|
# the IP Connection <tt>ipcon</tt>.
|
|
72
74
|
def initialize(uid, ipcon)
|
|
73
|
-
super uid, ipcon
|
|
75
|
+
super uid, ipcon, DEVICE_IDENTIFIER, DEVICE_DISPLAY_NAME
|
|
74
76
|
|
|
75
77
|
@api_version = [2, 0, 1]
|
|
76
78
|
|
|
@@ -88,25 +90,26 @@ module Tinkerforge
|
|
|
88
90
|
@response_expected[FUNCTION_GET_DEBOUNCE_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
89
91
|
@response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
90
92
|
|
|
91
|
-
@callback_formats[CALLBACK_VOLTAGE] = 'S'
|
|
92
|
-
@callback_formats[CALLBACK_ANALOG_VALUE] = 'S'
|
|
93
|
-
@callback_formats[CALLBACK_VOLTAGE_REACHED] = 'S'
|
|
94
|
-
@callback_formats[CALLBACK_ANALOG_VALUE_REACHED] = 'S'
|
|
93
|
+
@callback_formats[CALLBACK_VOLTAGE] = [10, 'S']
|
|
94
|
+
@callback_formats[CALLBACK_ANALOG_VALUE] = [10, 'S']
|
|
95
|
+
@callback_formats[CALLBACK_VOLTAGE_REACHED] = [10, 'S']
|
|
96
|
+
@callback_formats[CALLBACK_ANALOG_VALUE_REACHED] = [10, 'S']
|
|
95
97
|
|
|
98
|
+
@ipcon.add_device self
|
|
96
99
|
end
|
|
97
100
|
|
|
98
|
-
# Returns the voltage of the sensor.
|
|
99
|
-
# between 0mV and 50000mV.
|
|
101
|
+
# Returns the voltage of the sensor.
|
|
100
102
|
#
|
|
101
103
|
# If you want to get the voltage periodically, it is recommended to use the
|
|
102
104
|
# CALLBACK_VOLTAGE callback and set the period with
|
|
103
105
|
# BrickletVoltage#set_voltage_callback_period.
|
|
104
106
|
def get_voltage
|
|
105
|
-
|
|
107
|
+
check_validity
|
|
108
|
+
|
|
109
|
+
send_request FUNCTION_GET_VOLTAGE, [], '', 10, 'S'
|
|
106
110
|
end
|
|
107
111
|
|
|
108
112
|
# Returns the value as read by a 12-bit analog-to-digital converter.
|
|
109
|
-
# The value is between 0 and 4095.
|
|
110
113
|
#
|
|
111
114
|
# .. note::
|
|
112
115
|
# The value returned by BrickletVoltage#get_voltage is averaged over several samples
|
|
@@ -118,39 +121,45 @@ module Tinkerforge
|
|
|
118
121
|
# CALLBACK_ANALOG_VALUE callback and set the period with
|
|
119
122
|
# BrickletVoltage#set_analog_value_callback_period.
|
|
120
123
|
def get_analog_value
|
|
121
|
-
|
|
124
|
+
check_validity
|
|
125
|
+
|
|
126
|
+
send_request FUNCTION_GET_ANALOG_VALUE, [], '', 10, 'S'
|
|
122
127
|
end
|
|
123
128
|
|
|
124
|
-
# Sets the period
|
|
129
|
+
# Sets the period with which the CALLBACK_VOLTAGE callback is triggered
|
|
125
130
|
# periodically. A value of 0 turns the callback off.
|
|
126
131
|
#
|
|
127
132
|
# The CALLBACK_VOLTAGE callback is only triggered if the voltage has changed since
|
|
128
133
|
# the last triggering.
|
|
129
|
-
#
|
|
130
|
-
# The default value is 0.
|
|
131
134
|
def set_voltage_callback_period(period)
|
|
132
|
-
|
|
135
|
+
check_validity
|
|
136
|
+
|
|
137
|
+
send_request FUNCTION_SET_VOLTAGE_CALLBACK_PERIOD, [period], 'L', 8, ''
|
|
133
138
|
end
|
|
134
139
|
|
|
135
140
|
# Returns the period as set by BrickletVoltage#set_voltage_callback_period.
|
|
136
141
|
def get_voltage_callback_period
|
|
137
|
-
|
|
142
|
+
check_validity
|
|
143
|
+
|
|
144
|
+
send_request FUNCTION_GET_VOLTAGE_CALLBACK_PERIOD, [], '', 12, 'L'
|
|
138
145
|
end
|
|
139
146
|
|
|
140
|
-
# Sets the period
|
|
147
|
+
# Sets the period with which the CALLBACK_ANALOG_VALUE callback is triggered
|
|
141
148
|
# periodically. A value of 0 turns the callback off.
|
|
142
149
|
#
|
|
143
150
|
# The CALLBACK_ANALOG_VALUE callback is only triggered if the analog value has
|
|
144
151
|
# changed since the last triggering.
|
|
145
|
-
#
|
|
146
|
-
# The default value is 0.
|
|
147
152
|
def set_analog_value_callback_period(period)
|
|
148
|
-
|
|
153
|
+
check_validity
|
|
154
|
+
|
|
155
|
+
send_request FUNCTION_SET_ANALOG_VALUE_CALLBACK_PERIOD, [period], 'L', 8, ''
|
|
149
156
|
end
|
|
150
157
|
|
|
151
158
|
# Returns the period as set by BrickletVoltage#set_analog_value_callback_period.
|
|
152
159
|
def get_analog_value_callback_period
|
|
153
|
-
|
|
160
|
+
check_validity
|
|
161
|
+
|
|
162
|
+
send_request FUNCTION_GET_ANALOG_VALUE_CALLBACK_PERIOD, [], '', 12, 'L'
|
|
154
163
|
end
|
|
155
164
|
|
|
156
165
|
# Sets the thresholds for the CALLBACK_VOLTAGE_REACHED callback.
|
|
@@ -164,15 +173,17 @@ module Tinkerforge
|
|
|
164
173
|
# "'i'", "Callback is triggered when the voltage is *inside* the min and max values"
|
|
165
174
|
# "'<'", "Callback is triggered when the voltage is smaller than the min value (max is ignored)"
|
|
166
175
|
# "'>'", "Callback is triggered when the voltage is greater than the min value (max is ignored)"
|
|
167
|
-
#
|
|
168
|
-
# The default value is ('x', 0, 0).
|
|
169
176
|
def set_voltage_callback_threshold(option, min, max)
|
|
170
|
-
|
|
177
|
+
check_validity
|
|
178
|
+
|
|
179
|
+
send_request FUNCTION_SET_VOLTAGE_CALLBACK_THRESHOLD, [option, min, max], 'k S S', 8, ''
|
|
171
180
|
end
|
|
172
181
|
|
|
173
182
|
# Returns the threshold as set by BrickletVoltage#set_voltage_callback_threshold.
|
|
174
183
|
def get_voltage_callback_threshold
|
|
175
|
-
|
|
184
|
+
check_validity
|
|
185
|
+
|
|
186
|
+
send_request FUNCTION_GET_VOLTAGE_CALLBACK_THRESHOLD, [], '', 13, 'k S S'
|
|
176
187
|
end
|
|
177
188
|
|
|
178
189
|
# Sets the thresholds for the CALLBACK_ANALOG_VALUE_REACHED callback.
|
|
@@ -186,18 +197,20 @@ module Tinkerforge
|
|
|
186
197
|
# "'i'", "Callback is triggered when the analog value is *inside* the min and max values"
|
|
187
198
|
# "'<'", "Callback is triggered when the analog value is smaller than the min value (max is ignored)"
|
|
188
199
|
# "'>'", "Callback is triggered when the analog value is greater than the min value (max is ignored)"
|
|
189
|
-
#
|
|
190
|
-
# The default value is ('x', 0, 0).
|
|
191
200
|
def set_analog_value_callback_threshold(option, min, max)
|
|
192
|
-
|
|
201
|
+
check_validity
|
|
202
|
+
|
|
203
|
+
send_request FUNCTION_SET_ANALOG_VALUE_CALLBACK_THRESHOLD, [option, min, max], 'k S S', 8, ''
|
|
193
204
|
end
|
|
194
205
|
|
|
195
206
|
# Returns the threshold as set by BrickletVoltage#set_analog_value_callback_threshold.
|
|
196
207
|
def get_analog_value_callback_threshold
|
|
197
|
-
|
|
208
|
+
check_validity
|
|
209
|
+
|
|
210
|
+
send_request FUNCTION_GET_ANALOG_VALUE_CALLBACK_THRESHOLD, [], '', 13, 'k S S'
|
|
198
211
|
end
|
|
199
212
|
|
|
200
|
-
# Sets the period
|
|
213
|
+
# Sets the period with which the threshold callbacks
|
|
201
214
|
#
|
|
202
215
|
# * CALLBACK_VOLTAGE_REACHED,
|
|
203
216
|
# * CALLBACK_ANALOG_VALUE_REACHED
|
|
@@ -208,27 +221,31 @@ module Tinkerforge
|
|
|
208
221
|
# * BrickletVoltage#set_analog_value_callback_threshold
|
|
209
222
|
#
|
|
210
223
|
# keep being reached.
|
|
211
|
-
#
|
|
212
|
-
# The default value is 100.
|
|
213
224
|
def set_debounce_period(debounce)
|
|
214
|
-
|
|
225
|
+
check_validity
|
|
226
|
+
|
|
227
|
+
send_request FUNCTION_SET_DEBOUNCE_PERIOD, [debounce], 'L', 8, ''
|
|
215
228
|
end
|
|
216
229
|
|
|
217
230
|
# Returns the debounce period as set by BrickletVoltage#set_debounce_period.
|
|
218
231
|
def get_debounce_period
|
|
219
|
-
|
|
232
|
+
check_validity
|
|
233
|
+
|
|
234
|
+
send_request FUNCTION_GET_DEBOUNCE_PERIOD, [], '', 12, 'L'
|
|
220
235
|
end
|
|
221
236
|
|
|
222
237
|
# Returns the UID, the UID where the Bricklet is connected to,
|
|
223
238
|
# the position, the hardware and firmware version as well as the
|
|
224
239
|
# device identifier.
|
|
225
240
|
#
|
|
226
|
-
# The position can be 'a', 'b', 'c' or '
|
|
241
|
+
# The position can be 'a', 'b', 'c', 'd', 'e', 'f', 'g' or 'h' (Bricklet Port).
|
|
242
|
+
# A Bricklet connected to an :ref:`Isolator Bricklet <isolator_bricklet>` is always at
|
|
243
|
+
# position 'z'.
|
|
227
244
|
#
|
|
228
245
|
# The device identifier numbers can be found :ref:`here <device_identifier>`.
|
|
229
246
|
# |device_identifier_constant|
|
|
230
247
|
def get_identity
|
|
231
|
-
send_request FUNCTION_GET_IDENTITY, [], '',
|
|
248
|
+
send_request FUNCTION_GET_IDENTITY, [], '', 33, 'Z8 Z8 k C3 C3 S'
|
|
232
249
|
end
|
|
233
250
|
|
|
234
251
|
# 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 2020-11-02. #
|
|
4
4
|
# #
|
|
5
|
-
# Ruby Bindings Version 2.1.
|
|
5
|
+
# Ruby Bindings Version 2.1.27 #
|
|
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 power, DC voltage and DC current up to 720W/36V/20A
|
|
14
16
|
class BrickletVoltageCurrent < Device
|
|
@@ -99,11 +101,19 @@ module Tinkerforge
|
|
|
99
101
|
THRESHOLD_OPTION_INSIDE = 'i' # :nodoc:
|
|
100
102
|
THRESHOLD_OPTION_SMALLER = '<' # :nodoc:
|
|
101
103
|
THRESHOLD_OPTION_GREATER = '>' # :nodoc:
|
|
104
|
+
CONVERSION_TIME_140US = 0 # :nodoc:
|
|
105
|
+
CONVERSION_TIME_204US = 1 # :nodoc:
|
|
106
|
+
CONVERSION_TIME_332US = 2 # :nodoc:
|
|
107
|
+
CONVERSION_TIME_588US = 3 # :nodoc:
|
|
108
|
+
CONVERSION_TIME_1_1MS = 4 # :nodoc:
|
|
109
|
+
CONVERSION_TIME_2_116MS = 5 # :nodoc:
|
|
110
|
+
CONVERSION_TIME_4_156MS = 6 # :nodoc:
|
|
111
|
+
CONVERSION_TIME_8_244MS = 7 # :nodoc:
|
|
102
112
|
|
|
103
113
|
# Creates an object with the unique device ID <tt>uid</tt> and adds it to
|
|
104
114
|
# the IP Connection <tt>ipcon</tt>.
|
|
105
115
|
def initialize(uid, ipcon)
|
|
106
|
-
super uid, ipcon
|
|
116
|
+
super uid, ipcon, DEVICE_IDENTIFIER, DEVICE_DISPLAY_NAME
|
|
107
117
|
|
|
108
118
|
@api_version = [2, 0, 0]
|
|
109
119
|
|
|
@@ -130,84 +140,63 @@ module Tinkerforge
|
|
|
130
140
|
@response_expected[FUNCTION_GET_DEBOUNCE_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
131
141
|
@response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
132
142
|
|
|
133
|
-
@callback_formats[CALLBACK_CURRENT] = 'l'
|
|
134
|
-
@callback_formats[CALLBACK_VOLTAGE] = 'l'
|
|
135
|
-
@callback_formats[CALLBACK_POWER] = 'l'
|
|
136
|
-
@callback_formats[CALLBACK_CURRENT_REACHED] = 'l'
|
|
137
|
-
@callback_formats[CALLBACK_VOLTAGE_REACHED] = 'l'
|
|
138
|
-
@callback_formats[CALLBACK_POWER_REACHED] = 'l'
|
|
143
|
+
@callback_formats[CALLBACK_CURRENT] = [12, 'l']
|
|
144
|
+
@callback_formats[CALLBACK_VOLTAGE] = [12, 'l']
|
|
145
|
+
@callback_formats[CALLBACK_POWER] = [12, 'l']
|
|
146
|
+
@callback_formats[CALLBACK_CURRENT_REACHED] = [12, 'l']
|
|
147
|
+
@callback_formats[CALLBACK_VOLTAGE_REACHED] = [12, 'l']
|
|
148
|
+
@callback_formats[CALLBACK_POWER_REACHED] = [12, 'l']
|
|
139
149
|
|
|
150
|
+
@ipcon.add_device self
|
|
140
151
|
end
|
|
141
152
|
|
|
142
|
-
# Returns the current.
|
|
143
|
-
# and between -20000mA and 20000mA.
|
|
153
|
+
# Returns the current.
|
|
144
154
|
#
|
|
145
155
|
# If you want to get the current periodically, it is recommended to use the
|
|
146
156
|
# CALLBACK_CURRENT callback and set the period with
|
|
147
157
|
# BrickletVoltageCurrent#set_current_callback_period.
|
|
148
158
|
def get_current
|
|
149
|
-
|
|
159
|
+
check_validity
|
|
160
|
+
|
|
161
|
+
send_request FUNCTION_GET_CURRENT, [], '', 12, 'l'
|
|
150
162
|
end
|
|
151
163
|
|
|
152
|
-
# Returns the voltage.
|
|
153
|
-
# and between 0mV and 36000mV.
|
|
164
|
+
# Returns the voltage.
|
|
154
165
|
#
|
|
155
166
|
# If you want to get the voltage periodically, it is recommended to use the
|
|
156
167
|
# CALLBACK_VOLTAGE callback and set the period with
|
|
157
168
|
# BrickletVoltageCurrent#set_voltage_callback_period.
|
|
158
169
|
def get_voltage
|
|
159
|
-
|
|
170
|
+
check_validity
|
|
171
|
+
|
|
172
|
+
send_request FUNCTION_GET_VOLTAGE, [], '', 12, 'l'
|
|
160
173
|
end
|
|
161
174
|
|
|
162
|
-
# Returns the power.
|
|
163
|
-
# and between 0mV and 720000mW.
|
|
175
|
+
# Returns the power.
|
|
164
176
|
#
|
|
165
177
|
# If you want to get the power periodically, it is recommended to use the
|
|
166
178
|
# CALLBACK_POWER callback and set the period with
|
|
167
179
|
# BrickletVoltageCurrent#set_power_callback_period.
|
|
168
180
|
def get_power
|
|
169
|
-
|
|
181
|
+
check_validity
|
|
182
|
+
|
|
183
|
+
send_request FUNCTION_GET_POWER, [], '', 12, 'l'
|
|
170
184
|
end
|
|
171
185
|
|
|
172
186
|
# Sets the configuration of the Voltage/Current Bricklet. It is
|
|
173
187
|
# possible to configure number of averages as well as
|
|
174
188
|
# voltage and current conversion time.
|
|
175
|
-
#
|
|
176
|
-
# Averaging:
|
|
177
|
-
#
|
|
178
|
-
# "Value", "Number of Averages"
|
|
179
|
-
#
|
|
180
|
-
# "0", "1"
|
|
181
|
-
# "1", "4"
|
|
182
|
-
# "2", "16"
|
|
183
|
-
# "3", "64"
|
|
184
|
-
# "4", "128"
|
|
185
|
-
# "5", "256"
|
|
186
|
-
# "6", "512"
|
|
187
|
-
# ">=7", "1024"
|
|
188
|
-
#
|
|
189
|
-
# Voltage/Current conversion:
|
|
190
|
-
#
|
|
191
|
-
# "Value", "Conversion time"
|
|
192
|
-
#
|
|
193
|
-
# "0", "140µs"
|
|
194
|
-
# "1", "204µs"
|
|
195
|
-
# "2", "332µs"
|
|
196
|
-
# "3", "588µs"
|
|
197
|
-
# "4", "1.1ms"
|
|
198
|
-
# "5", "2.116ms"
|
|
199
|
-
# "6", "4.156ms"
|
|
200
|
-
# ">=7", "8.244ms"
|
|
201
|
-
#
|
|
202
|
-
# The default values are 3, 4 and 4 (64, 1.1ms, 1.1ms) for averaging, voltage
|
|
203
|
-
# conversion and current conversion.
|
|
204
189
|
def set_configuration(averaging, voltage_conversion_time, current_conversion_time)
|
|
205
|
-
|
|
190
|
+
check_validity
|
|
191
|
+
|
|
192
|
+
send_request FUNCTION_SET_CONFIGURATION, [averaging, voltage_conversion_time, current_conversion_time], 'C C C', 8, ''
|
|
206
193
|
end
|
|
207
194
|
|
|
208
195
|
# Returns the configuration as set by BrickletVoltageCurrent#set_configuration.
|
|
209
196
|
def get_configuration
|
|
210
|
-
|
|
197
|
+
check_validity
|
|
198
|
+
|
|
199
|
+
send_request FUNCTION_GET_CONFIGURATION, [], '', 11, 'C C C'
|
|
211
200
|
end
|
|
212
201
|
|
|
213
202
|
# Since the shunt resistor that is used to measure the current is not
|
|
@@ -218,60 +207,70 @@ module Tinkerforge
|
|
|
218
207
|
# are measuring 1023mA, you can calibrate the Voltage/Current Bricklet
|
|
219
208
|
# by setting the multiplier to 1000 and the divisor to 1023.
|
|
220
209
|
def set_calibration(gain_multiplier, gain_divisor)
|
|
221
|
-
|
|
210
|
+
check_validity
|
|
211
|
+
|
|
212
|
+
send_request FUNCTION_SET_CALIBRATION, [gain_multiplier, gain_divisor], 'S S', 8, ''
|
|
222
213
|
end
|
|
223
214
|
|
|
224
215
|
# Returns the calibration as set by BrickletVoltageCurrent#set_calibration.
|
|
225
216
|
def get_calibration
|
|
226
|
-
|
|
217
|
+
check_validity
|
|
218
|
+
|
|
219
|
+
send_request FUNCTION_GET_CALIBRATION, [], '', 12, 'S S'
|
|
227
220
|
end
|
|
228
221
|
|
|
229
|
-
# Sets the period
|
|
222
|
+
# Sets the period with which the CALLBACK_CURRENT callback is triggered
|
|
230
223
|
# periodically. A value of 0 turns the callback off.
|
|
231
224
|
#
|
|
232
225
|
# The CALLBACK_CURRENT callback is only triggered if the current has changed since
|
|
233
226
|
# the last triggering.
|
|
234
|
-
#
|
|
235
|
-
# The default value is 0.
|
|
236
227
|
def set_current_callback_period(period)
|
|
237
|
-
|
|
228
|
+
check_validity
|
|
229
|
+
|
|
230
|
+
send_request FUNCTION_SET_CURRENT_CALLBACK_PERIOD, [period], 'L', 8, ''
|
|
238
231
|
end
|
|
239
232
|
|
|
240
233
|
# Returns the period as set by BrickletVoltageCurrent#set_current_callback_period.
|
|
241
234
|
def get_current_callback_period
|
|
242
|
-
|
|
235
|
+
check_validity
|
|
236
|
+
|
|
237
|
+
send_request FUNCTION_GET_CURRENT_CALLBACK_PERIOD, [], '', 12, 'L'
|
|
243
238
|
end
|
|
244
239
|
|
|
245
|
-
# Sets the period
|
|
240
|
+
# Sets the period with which the CALLBACK_VOLTAGE callback is triggered
|
|
246
241
|
# periodically. A value of 0 turns the callback off.
|
|
247
242
|
#
|
|
248
243
|
# The CALLBACK_VOLTAGE callback is only triggered if the voltage has changed since
|
|
249
244
|
# the last triggering.
|
|
250
|
-
#
|
|
251
|
-
# The default value is 0.
|
|
252
245
|
def set_voltage_callback_period(period)
|
|
253
|
-
|
|
246
|
+
check_validity
|
|
247
|
+
|
|
248
|
+
send_request FUNCTION_SET_VOLTAGE_CALLBACK_PERIOD, [period], 'L', 8, ''
|
|
254
249
|
end
|
|
255
250
|
|
|
256
251
|
# Returns the period as set by BrickletVoltageCurrent#set_voltage_callback_period.
|
|
257
252
|
def get_voltage_callback_period
|
|
258
|
-
|
|
253
|
+
check_validity
|
|
254
|
+
|
|
255
|
+
send_request FUNCTION_GET_VOLTAGE_CALLBACK_PERIOD, [], '', 12, 'L'
|
|
259
256
|
end
|
|
260
257
|
|
|
261
|
-
# Sets the period
|
|
258
|
+
# Sets the period with which the CALLBACK_POWER callback is triggered
|
|
262
259
|
# periodically. A value of 0 turns the callback off.
|
|
263
260
|
#
|
|
264
261
|
# The CALLBACK_POWER callback is only triggered if the power has changed since the
|
|
265
262
|
# last triggering.
|
|
266
|
-
#
|
|
267
|
-
# The default value is 0.
|
|
268
263
|
def set_power_callback_period(period)
|
|
269
|
-
|
|
264
|
+
check_validity
|
|
265
|
+
|
|
266
|
+
send_request FUNCTION_SET_POWER_CALLBACK_PERIOD, [period], 'L', 8, ''
|
|
270
267
|
end
|
|
271
268
|
|
|
272
269
|
# Returns the period as set by BrickletVoltageCurrent#get_power_callback_period.
|
|
273
270
|
def get_power_callback_period
|
|
274
|
-
|
|
271
|
+
check_validity
|
|
272
|
+
|
|
273
|
+
send_request FUNCTION_GET_POWER_CALLBACK_PERIOD, [], '', 12, 'L'
|
|
275
274
|
end
|
|
276
275
|
|
|
277
276
|
# Sets the thresholds for the CALLBACK_CURRENT_REACHED callback.
|
|
@@ -285,15 +284,17 @@ module Tinkerforge
|
|
|
285
284
|
# "'i'", "Callback is triggered when the current is *inside* the min and max values"
|
|
286
285
|
# "'<'", "Callback is triggered when the current is smaller than the min value (max is ignored)"
|
|
287
286
|
# "'>'", "Callback is triggered when the current is greater than the min value (max is ignored)"
|
|
288
|
-
#
|
|
289
|
-
# The default value is ('x', 0, 0).
|
|
290
287
|
def set_current_callback_threshold(option, min, max)
|
|
291
|
-
|
|
288
|
+
check_validity
|
|
289
|
+
|
|
290
|
+
send_request FUNCTION_SET_CURRENT_CALLBACK_THRESHOLD, [option, min, max], 'k l l', 8, ''
|
|
292
291
|
end
|
|
293
292
|
|
|
294
293
|
# Returns the threshold as set by BrickletVoltageCurrent#set_current_callback_threshold.
|
|
295
294
|
def get_current_callback_threshold
|
|
296
|
-
|
|
295
|
+
check_validity
|
|
296
|
+
|
|
297
|
+
send_request FUNCTION_GET_CURRENT_CALLBACK_THRESHOLD, [], '', 17, 'k l l'
|
|
297
298
|
end
|
|
298
299
|
|
|
299
300
|
# Sets the thresholds for the CALLBACK_VOLTAGE_REACHED callback.
|
|
@@ -307,15 +308,17 @@ module Tinkerforge
|
|
|
307
308
|
# "'i'", "Callback is triggered when the voltage is *inside* the min and max values"
|
|
308
309
|
# "'<'", "Callback is triggered when the voltage is smaller than the min value (max is ignored)"
|
|
309
310
|
# "'>'", "Callback is triggered when the voltage is greater than the min value (max is ignored)"
|
|
310
|
-
#
|
|
311
|
-
# The default value is ('x', 0, 0).
|
|
312
311
|
def set_voltage_callback_threshold(option, min, max)
|
|
313
|
-
|
|
312
|
+
check_validity
|
|
313
|
+
|
|
314
|
+
send_request FUNCTION_SET_VOLTAGE_CALLBACK_THRESHOLD, [option, min, max], 'k l l', 8, ''
|
|
314
315
|
end
|
|
315
316
|
|
|
316
317
|
# Returns the threshold as set by BrickletVoltageCurrent#set_voltage_callback_threshold.
|
|
317
318
|
def get_voltage_callback_threshold
|
|
318
|
-
|
|
319
|
+
check_validity
|
|
320
|
+
|
|
321
|
+
send_request FUNCTION_GET_VOLTAGE_CALLBACK_THRESHOLD, [], '', 17, 'k l l'
|
|
319
322
|
end
|
|
320
323
|
|
|
321
324
|
# Sets the thresholds for the CALLBACK_POWER_REACHED callback.
|
|
@@ -329,18 +332,20 @@ module Tinkerforge
|
|
|
329
332
|
# "'i'", "Callback is triggered when the power is *inside* the min and max values"
|
|
330
333
|
# "'<'", "Callback is triggered when the power is smaller than the min value (max is ignored)"
|
|
331
334
|
# "'>'", "Callback is triggered when the power is greater than the min value (max is ignored)"
|
|
332
|
-
#
|
|
333
|
-
# The default value is ('x', 0, 0).
|
|
334
335
|
def set_power_callback_threshold(option, min, max)
|
|
335
|
-
|
|
336
|
+
check_validity
|
|
337
|
+
|
|
338
|
+
send_request FUNCTION_SET_POWER_CALLBACK_THRESHOLD, [option, min, max], 'k l l', 8, ''
|
|
336
339
|
end
|
|
337
340
|
|
|
338
341
|
# Returns the threshold as set by BrickletVoltageCurrent#set_power_callback_threshold.
|
|
339
342
|
def get_power_callback_threshold
|
|
340
|
-
|
|
343
|
+
check_validity
|
|
344
|
+
|
|
345
|
+
send_request FUNCTION_GET_POWER_CALLBACK_THRESHOLD, [], '', 17, 'k l l'
|
|
341
346
|
end
|
|
342
347
|
|
|
343
|
-
# Sets the period
|
|
348
|
+
# Sets the period with which the threshold callbacks
|
|
344
349
|
#
|
|
345
350
|
# * CALLBACK_CURRENT_REACHED,
|
|
346
351
|
# * CALLBACK_VOLTAGE_REACHED,
|
|
@@ -353,27 +358,31 @@ module Tinkerforge
|
|
|
353
358
|
# * BrickletVoltageCurrent#set_power_callback_threshold
|
|
354
359
|
#
|
|
355
360
|
# keep being reached.
|
|
356
|
-
#
|
|
357
|
-
# The default value is 100.
|
|
358
361
|
def set_debounce_period(debounce)
|
|
359
|
-
|
|
362
|
+
check_validity
|
|
363
|
+
|
|
364
|
+
send_request FUNCTION_SET_DEBOUNCE_PERIOD, [debounce], 'L', 8, ''
|
|
360
365
|
end
|
|
361
366
|
|
|
362
367
|
# Returns the debounce period as set by BrickletVoltageCurrent#set_debounce_period.
|
|
363
368
|
def get_debounce_period
|
|
364
|
-
|
|
369
|
+
check_validity
|
|
370
|
+
|
|
371
|
+
send_request FUNCTION_GET_DEBOUNCE_PERIOD, [], '', 12, 'L'
|
|
365
372
|
end
|
|
366
373
|
|
|
367
374
|
# Returns the UID, the UID where the Bricklet is connected to,
|
|
368
375
|
# the position, the hardware and firmware version as well as the
|
|
369
376
|
# device identifier.
|
|
370
377
|
#
|
|
371
|
-
# The position can be 'a', 'b', 'c' or '
|
|
378
|
+
# The position can be 'a', 'b', 'c', 'd', 'e', 'f', 'g' or 'h' (Bricklet Port).
|
|
379
|
+
# A Bricklet connected to an :ref:`Isolator Bricklet <isolator_bricklet>` is always at
|
|
380
|
+
# position 'z'.
|
|
372
381
|
#
|
|
373
382
|
# The device identifier numbers can be found :ref:`here <device_identifier>`.
|
|
374
383
|
# |device_identifier_constant|
|
|
375
384
|
def get_identity
|
|
376
|
-
send_request FUNCTION_GET_IDENTITY, [], '',
|
|
385
|
+
send_request FUNCTION_GET_IDENTITY, [], '', 33, 'Z8 Z8 k C3 C3 S'
|
|
377
386
|
end
|
|
378
387
|
|
|
379
388
|
# Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.
|