tinkerforge 2.1.24 → 2.1.25

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.
Files changed (142) hide show
  1. checksums.yaml +4 -4
  2. data/lib/tinkerforge/brick_dc.rb +155 -74
  3. data/lib/tinkerforge/brick_hat.rb +70 -30
  4. data/lib/tinkerforge/brick_hat_zero.rb +56 -22
  5. data/lib/tinkerforge/brick_imu.rb +184 -77
  6. data/lib/tinkerforge/brick_imu_v2.rb +208 -105
  7. data/lib/tinkerforge/brick_master.rb +484 -182
  8. data/lib/tinkerforge/brick_red.rb +197 -74
  9. data/lib/tinkerforge/brick_servo.rb +185 -101
  10. data/lib/tinkerforge/brick_silent_stepper.rb +246 -166
  11. data/lib/tinkerforge/brick_stepper.rb +210 -98
  12. data/lib/tinkerforge/bricklet_accelerometer.rb +58 -23
  13. data/lib/tinkerforge/bricklet_accelerometer_v2.rb +105 -54
  14. data/lib/tinkerforge/bricklet_air_quality.rb +117 -59
  15. data/lib/tinkerforge/bricklet_ambient_light.rb +51 -21
  16. data/lib/tinkerforge/bricklet_ambient_light_v2.rb +40 -22
  17. data/lib/tinkerforge/bricklet_ambient_light_v3.rb +61 -25
  18. data/lib/tinkerforge/bricklet_analog_in.rb +63 -25
  19. data/lib/tinkerforge/bricklet_analog_in_v2.rb +57 -23
  20. data/lib/tinkerforge/bricklet_analog_in_v3.rb +67 -25
  21. data/lib/tinkerforge/bricklet_analog_out.rb +23 -9
  22. data/lib/tinkerforge/bricklet_analog_out_v2.rb +20 -8
  23. data/lib/tinkerforge/bricklet_analog_out_v3.rb +54 -20
  24. data/lib/tinkerforge/bricklet_barometer.rb +66 -26
  25. data/lib/tinkerforge/bricklet_barometer_v2.rb +99 -37
  26. data/lib/tinkerforge/bricklet_can.rb +83 -18
  27. data/lib/tinkerforge/bricklet_can_v2.rb +172 -38
  28. data/lib/tinkerforge/bricklet_co2.rb +34 -14
  29. data/lib/tinkerforge/bricklet_co2_v2.rb +97 -37
  30. data/lib/tinkerforge/bricklet_color.rb +69 -27
  31. data/lib/tinkerforge/bricklet_color_v2.rb +87 -33
  32. data/lib/tinkerforge/bricklet_compass.rb +78 -30
  33. data/lib/tinkerforge/bricklet_current12.rb +58 -24
  34. data/lib/tinkerforge/bricklet_current25.rb +58 -24
  35. data/lib/tinkerforge/bricklet_distance_ir.rb +57 -23
  36. data/lib/tinkerforge/bricklet_distance_ir_v2.rb +83 -31
  37. data/lib/tinkerforge/bricklet_distance_us.rb +40 -16
  38. data/lib/tinkerforge/bricklet_distance_us_v2.rb +67 -25
  39. data/lib/tinkerforge/bricklet_dmx.rb +88 -34
  40. data/lib/tinkerforge/bricklet_dual_button.rb +24 -10
  41. data/lib/tinkerforge/bricklet_dual_button_v2.rb +64 -24
  42. data/lib/tinkerforge/bricklet_dual_relay.rb +27 -11
  43. data/lib/tinkerforge/bricklet_dust_detector.rb +40 -16
  44. data/lib/tinkerforge/bricklet_e_paper_296x128.rb +88 -32
  45. data/lib/tinkerforge/bricklet_energy_monitor.rb +73 -27
  46. data/lib/tinkerforge/bricklet_gps.rb +64 -26
  47. data/lib/tinkerforge/bricklet_gps_v2.rb +117 -47
  48. data/lib/tinkerforge/bricklet_hall_effect.rb +43 -23
  49. data/lib/tinkerforge/bricklet_hall_effect_v2.rb +71 -27
  50. data/lib/tinkerforge/bricklet_humidity.rb +51 -21
  51. data/lib/tinkerforge/bricklet_humidity_v2.rb +83 -31
  52. data/lib/tinkerforge/bricklet_industrial_analog_out.rb +38 -14
  53. data/lib/tinkerforge/bricklet_industrial_analog_out_v2.rb +81 -29
  54. data/lib/tinkerforge/bricklet_industrial_counter.rb +101 -39
  55. data/lib/tinkerforge/bricklet_industrial_digital_in_4.rb +45 -17
  56. data/lib/tinkerforge/bricklet_industrial_digital_in_4_v2.rb +77 -29
  57. data/lib/tinkerforge/bricklet_industrial_digital_out_4.rb +36 -14
  58. data/lib/tinkerforge/bricklet_industrial_digital_out_4_v2.rb +73 -27
  59. data/lib/tinkerforge/bricklet_industrial_dual_0_20ma.rb +40 -16
  60. data/lib/tinkerforge/bricklet_industrial_dual_0_20ma_v2.rb +79 -29
  61. data/lib/tinkerforge/bricklet_industrial_dual_analog_in.rb +49 -19
  62. data/lib/tinkerforge/bricklet_industrial_dual_analog_in_v2.rb +82 -30
  63. data/lib/tinkerforge/bricklet_industrial_dual_relay.rb +61 -23
  64. data/lib/tinkerforge/bricklet_industrial_quad_relay.rb +36 -14
  65. data/lib/tinkerforge/bricklet_industrial_quad_relay_v2.rb +67 -25
  66. data/lib/tinkerforge/bricklet_io16.rb +55 -21
  67. data/lib/tinkerforge/bricklet_io16_v2.rb +90 -34
  68. data/lib/tinkerforge/bricklet_io4.rb +55 -23
  69. data/lib/tinkerforge/bricklet_io4_v2.rb +96 -36
  70. data/lib/tinkerforge/bricklet_isolator.rb +72 -28
  71. data/lib/tinkerforge/bricklet_joystick.rb +59 -25
  72. data/lib/tinkerforge/bricklet_joystick_v2.rb +68 -26
  73. data/lib/tinkerforge/bricklet_laser_range_finder.rb +82 -32
  74. data/lib/tinkerforge/bricklet_laser_range_finder_v2.rb +96 -36
  75. data/lib/tinkerforge/bricklet_lcd_128x64.rb +192 -70
  76. data/lib/tinkerforge/bricklet_lcd_16x2.rb +45 -18
  77. data/lib/tinkerforge/bricklet_lcd_20x4.rb +58 -23
  78. data/lib/tinkerforge/bricklet_led_strip.rb +60 -22
  79. data/lib/tinkerforge/bricklet_led_strip_v2.rb +91 -46
  80. data/lib/tinkerforge/bricklet_line.rb +34 -14
  81. data/lib/tinkerforge/bricklet_linear_poti.rb +51 -21
  82. data/lib/tinkerforge/bricklet_linear_poti_v2.rb +55 -21
  83. data/lib/tinkerforge/bricklet_load_cell.rb +61 -23
  84. data/lib/tinkerforge/bricklet_load_cell_v2.rb +80 -30
  85. data/lib/tinkerforge/bricklet_moisture.rb +40 -16
  86. data/lib/tinkerforge/bricklet_motion_detector.rb +22 -10
  87. data/lib/tinkerforge/bricklet_motion_detector_v2.rb +62 -24
  88. data/lib/tinkerforge/bricklet_motorized_linear_poti.rb +71 -27
  89. data/lib/tinkerforge/bricklet_multi_touch.rb +31 -13
  90. data/lib/tinkerforge/bricklet_multi_touch_v2.rb +76 -28
  91. data/lib/tinkerforge/bricklet_nfc.rb +123 -58
  92. data/lib/tinkerforge/bricklet_nfc_rfid.rb +33 -13
  93. data/lib/tinkerforge/bricklet_oled_128x64.rb +29 -11
  94. data/lib/tinkerforge/bricklet_oled_128x64_v2.rb +66 -24
  95. data/lib/tinkerforge/bricklet_oled_64x48.rb +29 -11
  96. data/lib/tinkerforge/bricklet_one_wire.rb +66 -24
  97. data/lib/tinkerforge/bricklet_outdoor_weather.rb +71 -27
  98. data/lib/tinkerforge/bricklet_particulate_matter.rb +75 -30
  99. data/lib/tinkerforge/bricklet_piezo_buzzer.rb +19 -9
  100. data/lib/tinkerforge/bricklet_piezo_speaker.rb +22 -10
  101. data/lib/tinkerforge/bricklet_piezo_speaker_v2.rb +80 -42
  102. data/lib/tinkerforge/bricklet_ptc.rb +74 -42
  103. data/lib/tinkerforge/bricklet_ptc_v2.rb +95 -48
  104. data/lib/tinkerforge/bricklet_real_time_clock.rb +45 -33
  105. data/lib/tinkerforge/bricklet_real_time_clock_v2.rb +78 -44
  106. data/lib/tinkerforge/bricklet_remote_switch.rb +39 -29
  107. data/lib/tinkerforge/bricklet_remote_switch_v2.rb +87 -49
  108. data/lib/tinkerforge/bricklet_rgb_led.rb +18 -8
  109. data/lib/tinkerforge/bricklet_rgb_led_button.rb +62 -30
  110. data/lib/tinkerforge/bricklet_rgb_led_matrix.rb +79 -33
  111. data/lib/tinkerforge/bricklet_rgb_led_v2.rb +52 -20
  112. data/lib/tinkerforge/bricklet_rotary_encoder.rb +39 -19
  113. data/lib/tinkerforge/bricklet_rotary_encoder_v2.rb +60 -24
  114. data/lib/tinkerforge/bricklet_rotary_poti.rb +53 -28
  115. data/lib/tinkerforge/bricklet_rotary_poti_v2.rb +57 -23
  116. data/lib/tinkerforge/bricklet_rs232.rb +90 -28
  117. data/lib/tinkerforge/bricklet_rs232_v2.rb +118 -44
  118. data/lib/tinkerforge/bricklet_rs485.rb +223 -95
  119. data/lib/tinkerforge/bricklet_segment_display_4x7.rb +25 -14
  120. data/lib/tinkerforge/bricklet_segment_display_4x7_v2.rb +75 -35
  121. data/lib/tinkerforge/bricklet_solid_state_relay.rb +25 -13
  122. data/lib/tinkerforge/bricklet_solid_state_relay_v2.rb +59 -25
  123. data/lib/tinkerforge/bricklet_sound_intensity.rb +35 -18
  124. data/lib/tinkerforge/bricklet_sound_pressure_level.rb +72 -31
  125. data/lib/tinkerforge/bricklet_temperature.rb +40 -16
  126. data/lib/tinkerforge/bricklet_temperature_ir.rb +57 -23
  127. data/lib/tinkerforge/bricklet_temperature_ir_v2.rb +71 -27
  128. data/lib/tinkerforge/bricklet_temperature_v2.rb +61 -25
  129. data/lib/tinkerforge/bricklet_thermal_imaging.rb +105 -44
  130. data/lib/tinkerforge/bricklet_thermocouple.rb +45 -24
  131. data/lib/tinkerforge/bricklet_thermocouple_v2.rb +65 -27
  132. data/lib/tinkerforge/bricklet_tilt.rb +24 -10
  133. data/lib/tinkerforge/bricklet_uv_light.rb +36 -18
  134. data/lib/tinkerforge/bricklet_uv_light_v2.rb +85 -37
  135. data/lib/tinkerforge/bricklet_voltage.rb +52 -28
  136. data/lib/tinkerforge/bricklet_voltage_current.rb +91 -73
  137. data/lib/tinkerforge/bricklet_voltage_current_v2.rb +90 -68
  138. data/lib/tinkerforge/bricklet_xmc1400_breakout.rb +80 -30
  139. data/lib/tinkerforge/device_display_names.rb +163 -0
  140. data/lib/tinkerforge/ip_connection.rb +151 -32
  141. data/lib/tinkerforge/version.rb +1 -1
  142. metadata +3 -2
@@ -1,14 +1,16 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2019-11-25. #
3
+ # This file was automatically generated on 2020-04-07. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.24 #
5
+ # Ruby Bindings Version 2.1.25 #
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 acceleration in three axis
14
16
  class BrickletAccelerometer < Device
@@ -17,7 +19,8 @@ module Tinkerforge
17
19
 
18
20
  # This callback is triggered periodically with the period that is set by
19
21
  # BrickletAccelerometer#set_acceleration_callback_period. The parameters are the
20
- # X, Y and Z acceleration.
22
+ # X, Y and Z acceleration. The range is
23
+ # configured with BrickletAccelerometer#set_configuration.
21
24
  #
22
25
  # The CALLBACK_ACCELERATION callback is only triggered if the acceleration has
23
26
  # changed since the last triggering.
@@ -25,7 +28,8 @@ module Tinkerforge
25
28
 
26
29
  # This callback is triggered when the threshold as set by
27
30
  # BrickletAccelerometer#set_acceleration_callback_threshold is reached.
28
- # The parameters are the X, Y and Z acceleration.
31
+ # The parameters are the X, Y and Z acceleration. The range is
32
+ # configured with BrickletAccelerometer#set_configuration.
29
33
  #
30
34
  # If the threshold keeps being reached, the callback is triggered periodically
31
35
  # with the period as set by BrickletAccelerometer#set_debounce_period.
@@ -74,7 +78,7 @@ module Tinkerforge
74
78
  # Creates an object with the unique device ID <tt>uid</tt> and adds it to
75
79
  # the IP Connection <tt>ipcon</tt>.
76
80
  def initialize(uid, ipcon)
77
- super uid, ipcon
81
+ super uid, ipcon, DEVICE_IDENTIFIER, DEVICE_DISPLAY_NAME
78
82
 
79
83
  @api_version = [2, 0, 1]
80
84
 
@@ -93,19 +97,23 @@ module Tinkerforge
93
97
  @response_expected[FUNCTION_IS_LED_ON] = RESPONSE_EXPECTED_ALWAYS_TRUE
94
98
  @response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
95
99
 
96
- @callback_formats[CALLBACK_ACCELERATION] = 's s s'
97
- @callback_formats[CALLBACK_ACCELERATION_REACHED] = 's s s'
100
+ @callback_formats[CALLBACK_ACCELERATION] = [14, 's s s']
101
+ @callback_formats[CALLBACK_ACCELERATION_REACHED] = [14, 's s s']
98
102
 
103
+ @ipcon.add_device self
99
104
  end
100
105
 
101
106
  # Returns the acceleration in x, y and z direction. The values
102
- # are given in gₙ/1000 (1gₙ = 9.80665m/s²).
107
+ # are given in gₙ/1000 (1gₙ = 9.80665m/s²). The range is
108
+ # configured with BrickletAccelerometer#set_configuration.
103
109
  #
104
110
  # If you want to get the acceleration periodically, it is recommended
105
111
  # to use the CALLBACK_ACCELERATION callback and set the period with
106
112
  # BrickletAccelerometer#set_acceleration_callback_period.
107
113
  def get_acceleration
108
- send_request FUNCTION_GET_ACCELERATION, [], '', 6, 's s s'
114
+ check_validity
115
+
116
+ send_request FUNCTION_GET_ACCELERATION, [], '', 14, 's s s'
109
117
  end
110
118
 
111
119
  # Sets the period with which the CALLBACK_ACCELERATION callback is triggered
@@ -114,12 +122,16 @@ module Tinkerforge
114
122
  # The CALLBACK_ACCELERATION callback is only triggered if the acceleration has
115
123
  # changed since the last triggering.
116
124
  def set_acceleration_callback_period(period)
117
- send_request FUNCTION_SET_ACCELERATION_CALLBACK_PERIOD, [period], 'L', 0, ''
125
+ check_validity
126
+
127
+ send_request FUNCTION_SET_ACCELERATION_CALLBACK_PERIOD, [period], 'L', 8, ''
118
128
  end
119
129
 
120
130
  # Returns the period as set by BrickletAccelerometer#set_acceleration_callback_period.
121
131
  def get_acceleration_callback_period
122
- send_request FUNCTION_GET_ACCELERATION_CALLBACK_PERIOD, [], '', 4, 'L'
132
+ check_validity
133
+
134
+ send_request FUNCTION_GET_ACCELERATION_CALLBACK_PERIOD, [], '', 12, 'L'
123
135
  end
124
136
 
125
137
  # Sets the thresholds for the CALLBACK_ACCELERATION_REACHED callback.
@@ -134,12 +146,16 @@ module Tinkerforge
134
146
  # "'<'", "Callback is triggered when the acceleration is smaller than the min value (max is ignored)"
135
147
  # "'>'", "Callback is triggered when the acceleration is greater than the min value (max is ignored)"
136
148
  def set_acceleration_callback_threshold(option, min_x, max_x, min_y, max_y, min_z, max_z)
137
- 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, ''
149
+ check_validity
150
+
151
+ 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', 8, ''
138
152
  end
139
153
 
140
154
  # Returns the threshold as set by BrickletAccelerometer#set_acceleration_callback_threshold.
141
155
  def get_acceleration_callback_threshold
142
- send_request FUNCTION_GET_ACCELERATION_CALLBACK_THRESHOLD, [], '', 13, 'k s s s s s s'
156
+ check_validity
157
+
158
+ send_request FUNCTION_GET_ACCELERATION_CALLBACK_THRESHOLD, [], '', 21, 'k s s s s s s'
143
159
  end
144
160
 
145
161
  # Sets the period with which the threshold callback
@@ -152,17 +168,23 @@ module Tinkerforge
152
168
  #
153
169
  # keeps being reached.
154
170
  def set_debounce_period(debounce)
155
- send_request FUNCTION_SET_DEBOUNCE_PERIOD, [debounce], 'L', 0, ''
171
+ check_validity
172
+
173
+ send_request FUNCTION_SET_DEBOUNCE_PERIOD, [debounce], 'L', 8, ''
156
174
  end
157
175
 
158
176
  # Returns the debounce period as set by BrickletAccelerometer#set_debounce_period.
159
177
  def get_debounce_period
160
- send_request FUNCTION_GET_DEBOUNCE_PERIOD, [], '', 4, 'L'
178
+ check_validity
179
+
180
+ send_request FUNCTION_GET_DEBOUNCE_PERIOD, [], '', 12, 'L'
161
181
  end
162
182
 
163
183
  # Returns the temperature of the accelerometer.
164
184
  def get_temperature
165
- send_request FUNCTION_GET_TEMPERATURE, [], '', 2, 's'
185
+ check_validity
186
+
187
+ send_request FUNCTION_GET_TEMPERATURE, [], '', 10, 's'
166
188
  end
167
189
 
168
190
  # Configures the data rate, full scale range and filter bandwidth.
@@ -175,39 +197,52 @@ module Tinkerforge
175
197
  # Decreasing data rate or full scale range will also decrease the noise on
176
198
  # the data.
177
199
  def set_configuration(data_rate, full_scale, filter_bandwidth)
178
- send_request FUNCTION_SET_CONFIGURATION, [data_rate, full_scale, filter_bandwidth], 'C C C', 0, ''
200
+ check_validity
201
+
202
+ send_request FUNCTION_SET_CONFIGURATION, [data_rate, full_scale, filter_bandwidth], 'C C C', 8, ''
179
203
  end
180
204
 
181
205
  # Returns the configuration as set by BrickletAccelerometer#set_configuration.
182
206
  def get_configuration
183
- send_request FUNCTION_GET_CONFIGURATION, [], '', 3, 'C C C'
207
+ check_validity
208
+
209
+ send_request FUNCTION_GET_CONFIGURATION, [], '', 11, 'C C C'
184
210
  end
185
211
 
186
212
  # Enables the LED on the Bricklet.
187
213
  def led_on
188
- send_request FUNCTION_LED_ON, [], '', 0, ''
214
+ check_validity
215
+
216
+ send_request FUNCTION_LED_ON, [], '', 8, ''
189
217
  end
190
218
 
191
219
  # Disables the LED on the Bricklet.
192
220
  def led_off
193
- send_request FUNCTION_LED_OFF, [], '', 0, ''
221
+ check_validity
222
+
223
+ send_request FUNCTION_LED_OFF, [], '', 8, ''
194
224
  end
195
225
 
196
226
  # Returns *true* if the LED is enabled, *false* otherwise.
197
227
  def is_led_on
198
- send_request FUNCTION_IS_LED_ON, [], '', 1, '?'
228
+ check_validity
229
+
230
+ send_request FUNCTION_IS_LED_ON, [], '', 9, '?'
199
231
  end
200
232
 
201
233
  # Returns the UID, the UID where the Bricklet is connected to,
202
234
  # the position, the hardware and firmware version as well as the
203
235
  # device identifier.
204
236
  #
205
- # The position can be 'a', 'b', 'c' or 'd'.
237
+ # The position can be 'a', 'b', 'c', 'd', 'e', 'f', 'g' or 'h' (Bricklet Port).
238
+ # The Raspberry Pi HAT (Zero) Brick is always at position 'i' and the Bricklet
239
+ # connected to an :ref:`Isolator Bricklet <isolator_bricklet>` is always as
240
+ # position 'z'.
206
241
  #
207
242
  # The device identifier numbers can be found :ref:`here <device_identifier>`.
208
243
  # |device_identifier_constant|
209
244
  def get_identity
210
- send_request FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S'
245
+ send_request FUNCTION_GET_IDENTITY, [], '', 33, 'Z8 Z8 k C3 C3 S'
211
246
  end
212
247
 
213
248
  # 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 2019-11-25. #
3
+ # This file was automatically generated on 2020-04-07. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.24 #
5
+ # Ruby Bindings Version 2.1.25 #
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 acceleration in three axis
14
16
  class BrickletAccelerometerV2 < Device
@@ -33,18 +35,18 @@ module Tinkerforge
33
35
  #
34
36
  # Otherwise you have to use the following formulas that depend on the
35
37
  # full scale range (see BrickletAccelerometerV2#set_configuration) to calculate
36
- # the data in g/10000 (same unit that is returned by BrickletAccelerometerV2#get_acceleration):
38
+ # the data in gₙ/10000 (same unit that is returned by BrickletAccelerometerV2#get_acceleration):
37
39
  #
38
- # * Full scale 2g: acceleration = value*625/1024
39
- # * Full scale 4g: acceleration = value*1250/1024
40
- # * Full scale 8g: acceleration = value*2500/1024
40
+ # * Full scale 2g: acceleration = value * 625 / 1024
41
+ # * Full scale 4g: acceleration = value * 1250 / 1024
42
+ # * Full scale 8g: acceleration = value * 2500 / 1024
41
43
  #
42
44
  # The data is formated in the sequence "x, y, z, x, y, z, ..." depending on
43
45
  # the enabled axis. Examples:
44
46
  #
45
- # * x, y, z enabled: "x, y, z, ... 10x ..., x, y, z"
46
- # * x, z enabled: "x, z, ... 15x ..., x, z"
47
- # * y enabled: "y, ... 30x ..., y"
47
+ # * x, y, z enabled: "x, y, z, ..." 10x repeated
48
+ # * x, z enabled: "x, z, ..." 15x repeated
49
+ # * y enabled: "y, ..." 30x repeated
48
50
  CALLBACK_CONTINUOUS_ACCELERATION_16_BIT = 11
49
51
 
50
52
  # Returns 60 acceleration values with 8 bit resolution. The data rate can
@@ -59,18 +61,18 @@ module Tinkerforge
59
61
  #
60
62
  # Otherwise you have to use the following formulas that depend on the
61
63
  # full scale range (see BrickletAccelerometerV2#set_configuration) to calculate
62
- # the data in g/10000 (same unit that is returned by BrickletAccelerometerV2#get_acceleration):
64
+ # the data in gₙ/10000 (same unit that is returned by BrickletAccelerometerV2#get_acceleration):
63
65
  #
64
- # * Full scale 2g: acceleration = value*256*625/1024
65
- # * Full scale 4g: acceleration = value*256*1250/1024
66
- # * Full scale 8g: acceleration = value*256*2500/1024
66
+ # * Full scale 2g: acceleration = value * 256 * 625 / 1024
67
+ # * Full scale 4g: acceleration = value * 256 * 1250 / 1024
68
+ # * Full scale 8g: acceleration = value * 256 * 2500 / 1024
67
69
  #
68
70
  # The data is formated in the sequence "x, y, z, x, y, z, ..." depending on
69
71
  # the enabled axis. Examples:
70
72
  #
71
- # * x, y, z enabled: "x, y, z, ... 20x ..., x, y, z"
72
- # * x, z enabled: "x, z, ... 30x ..., x, z"
73
- # * y enabled: "y, ... 60x ..., y"
73
+ # * x, y, z enabled: "x, y, z, ..." 20x repeated
74
+ # * x, z enabled: "x, z, ..." 30x repeated
75
+ # * y enabled: "y, ..." 60x repeated
74
76
  CALLBACK_CONTINUOUS_ACCELERATION_8_BIT = 12
75
77
 
76
78
  FUNCTION_GET_ACCELERATION = 1 # :nodoc:
@@ -144,7 +146,7 @@ module Tinkerforge
144
146
  # Creates an object with the unique device ID <tt>uid</tt> and adds it to
145
147
  # the IP Connection <tt>ipcon</tt>.
146
148
  def initialize(uid, ipcon)
147
- super uid, ipcon
149
+ super uid, ipcon, DEVICE_IDENTIFIER, DEVICE_DISPLAY_NAME
148
150
 
149
151
  @api_version = [2, 0, 1]
150
152
 
@@ -155,7 +157,7 @@ module Tinkerforge
155
157
  @response_expected[FUNCTION_GET_ACCELERATION_CALLBACK_CONFIGURATION] = RESPONSE_EXPECTED_ALWAYS_TRUE
156
158
  @response_expected[FUNCTION_SET_INFO_LED_CONFIG] = RESPONSE_EXPECTED_FALSE
157
159
  @response_expected[FUNCTION_GET_INFO_LED_CONFIG] = RESPONSE_EXPECTED_ALWAYS_TRUE
158
- @response_expected[FUNCTION_SET_CONTINUOUS_ACCELERATION_CONFIGURATION] = RESPONSE_EXPECTED_FALSE
160
+ @response_expected[FUNCTION_SET_CONTINUOUS_ACCELERATION_CONFIGURATION] = RESPONSE_EXPECTED_TRUE
159
161
  @response_expected[FUNCTION_GET_CONTINUOUS_ACCELERATION_CONFIGURATION] = RESPONSE_EXPECTED_ALWAYS_TRUE
160
162
  @response_expected[FUNCTION_SET_FILTER_CONFIGURATION] = RESPONSE_EXPECTED_FALSE
161
163
  @response_expected[FUNCTION_GET_FILTER_CONFIGURATION] = RESPONSE_EXPECTED_ALWAYS_TRUE
@@ -172,20 +174,24 @@ module Tinkerforge
172
174
  @response_expected[FUNCTION_READ_UID] = RESPONSE_EXPECTED_ALWAYS_TRUE
173
175
  @response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
174
176
 
175
- @callback_formats[CALLBACK_ACCELERATION] = 'l l l'
176
- @callback_formats[CALLBACK_CONTINUOUS_ACCELERATION_16_BIT] = 's30'
177
- @callback_formats[CALLBACK_CONTINUOUS_ACCELERATION_8_BIT] = 'c60'
177
+ @callback_formats[CALLBACK_ACCELERATION] = [20, 'l l l']
178
+ @callback_formats[CALLBACK_CONTINUOUS_ACCELERATION_16_BIT] = [68, 's30']
179
+ @callback_formats[CALLBACK_CONTINUOUS_ACCELERATION_8_BIT] = [68, 'c60']
178
180
 
181
+ @ipcon.add_device self
179
182
  end
180
183
 
181
184
  # Returns the acceleration in x, y and z direction. The values
182
- # are given in gₙ/10000 (1gₙ = 9.80665m/s²).
185
+ # are given in gₙ/10000 (1gₙ = 9.80665m/s²). The range is
186
+ # configured with BrickletAccelerometerV2#set_configuration.
183
187
  #
184
188
  # If you want to get the acceleration periodically, it is recommended
185
189
  # to use the CALLBACK_ACCELERATION callback and set the period with
186
190
  # BrickletAccelerometerV2#set_acceleration_callback_configuration.
187
191
  def get_acceleration
188
- send_request FUNCTION_GET_ACCELERATION, [], '', 12, 'l l l'
192
+ check_validity
193
+
194
+ send_request FUNCTION_GET_ACCELERATION, [], '', 20, 'l l l'
189
195
  end
190
196
 
191
197
  # Configures the data rate and full scale range.
@@ -197,12 +203,16 @@ module Tinkerforge
197
203
  # Decreasing data rate or full scale range will also decrease the noise on
198
204
  # the data.
199
205
  def set_configuration(data_rate, full_scale)
200
- send_request FUNCTION_SET_CONFIGURATION, [data_rate, full_scale], 'C C', 0, ''
206
+ check_validity
207
+
208
+ send_request FUNCTION_SET_CONFIGURATION, [data_rate, full_scale], 'C C', 8, ''
201
209
  end
202
210
 
203
211
  # Returns the configuration as set by BrickletAccelerometerV2#set_configuration.
204
212
  def get_configuration
205
- send_request FUNCTION_GET_CONFIGURATION, [], '', 2, 'C C'
213
+ check_validity
214
+
215
+ send_request FUNCTION_GET_CONFIGURATION, [], '', 10, 'C C'
206
216
  end
207
217
 
208
218
  # The period is the period with which the CALLBACK_ACCELERATION
@@ -218,24 +228,32 @@ module Tinkerforge
218
228
  # If this callback is enabled, the CALLBACK_CONTINUOUS_ACCELERATION_16_BIT callback
219
229
  # and CALLBACK_CONTINUOUS_ACCELERATION_8_BIT callback will automatically be disabled.
220
230
  def set_acceleration_callback_configuration(period, value_has_to_change)
221
- send_request FUNCTION_SET_ACCELERATION_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 0, ''
231
+ check_validity
232
+
233
+ send_request FUNCTION_SET_ACCELERATION_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 8, ''
222
234
  end
223
235
 
224
236
  # Returns the callback configuration as set by
225
237
  # BrickletAccelerometerV2#set_acceleration_callback_configuration.
226
238
  def get_acceleration_callback_configuration
227
- send_request FUNCTION_GET_ACCELERATION_CALLBACK_CONFIGURATION, [], '', 5, 'L ?'
239
+ check_validity
240
+
241
+ send_request FUNCTION_GET_ACCELERATION_CALLBACK_CONFIGURATION, [], '', 13, 'L ?'
228
242
  end
229
243
 
230
244
  # Configures the info LED (marked as "Force" on the Bricklet) to be either turned off,
231
245
  # turned on, or blink in heartbeat mode.
232
246
  def set_info_led_config(config)
233
- send_request FUNCTION_SET_INFO_LED_CONFIG, [config], 'C', 0, ''
247
+ check_validity
248
+
249
+ send_request FUNCTION_SET_INFO_LED_CONFIG, [config], 'C', 8, ''
234
250
  end
235
251
 
236
252
  # Returns the LED configuration as set by BrickletAccelerometerV2#set_info_led_config
237
253
  def get_info_led_config
238
- send_request FUNCTION_GET_INFO_LED_CONFIG, [], '', 1, 'C'
254
+ check_validity
255
+
256
+ send_request FUNCTION_GET_INFO_LED_CONFIG, [], '', 9, 'C'
239
257
  end
240
258
 
241
259
  # For high throughput of acceleration data (> 1000Hz) you have to use the
@@ -258,18 +276,18 @@ module Tinkerforge
258
276
  #
259
277
  # Otherwise you have to use the following formulas that depend on the configured
260
278
  # resolution (8/16 bit) and the full scale range (see BrickletAccelerometerV2#set_configuration) to calculate
261
- # the data in g/10000 (same unit that is returned by BrickletAccelerometerV2#get_acceleration):
279
+ # the data in gₙ/10000 (same unit that is returned by BrickletAccelerometerV2#get_acceleration):
262
280
  #
263
- # * 16 bit, full scale 2g: acceleration = value*625/1024
264
- # * 16 bit, full scale 4g: acceleration = value*1250/1024
265
- # * 16 bit, full scale 8g: acceleration = value*2500/1024
281
+ # * 16 bit, full scale 2g: acceleration = value * 625 / 1024
282
+ # * 16 bit, full scale 4g: acceleration = value * 1250 / 1024
283
+ # * 16 bit, full scale 8g: acceleration = value * 2500 / 1024
266
284
  #
267
285
  # If a resolution of 8 bit is used, only the 8 most significant bits will be
268
286
  # transferred, so you can use the following formulas:
269
287
  #
270
- # * 8 bit, full scale 2g: acceleration = value*256*625/1024
271
- # * 8 bit, full scale 4g: acceleration = value*256*1250/1024
272
- # * 8 bit, full scale 8g: acceleration = value*256*2500/1024
288
+ # * 8 bit, full scale 2g: acceleration = value * 256 * 625 / 1024
289
+ # * 8 bit, full scale 4g: acceleration = value * 256 * 1250 / 1024
290
+ # * 8 bit, full scale 8g: acceleration = value * 256 * 2500 / 1024
273
291
  #
274
292
  # If no axis is enabled, both callbacks are disabled. If one of the continuous
275
293
  # callbacks is enabled, the CALLBACK_ACCELERATION callback is disabled.
@@ -282,13 +300,17 @@ module Tinkerforge
282
300
  # "2", "25600Hz", "15000Hz"
283
301
  # "3", "20000Hz", "10000Hz"
284
302
  def set_continuous_acceleration_configuration(enable_x, enable_y, enable_z, resolution)
285
- send_request FUNCTION_SET_CONTINUOUS_ACCELERATION_CONFIGURATION, [enable_x, enable_y, enable_z, resolution], '? ? ? C', 0, ''
303
+ check_validity
304
+
305
+ send_request FUNCTION_SET_CONTINUOUS_ACCELERATION_CONFIGURATION, [enable_x, enable_y, enable_z, resolution], '? ? ? C', 8, ''
286
306
  end
287
307
 
288
308
  # Returns the continuous acceleration configuration as set by
289
309
  # BrickletAccelerometerV2#set_continuous_acceleration_configuration.
290
310
  def get_continuous_acceleration_configuration
291
- send_request FUNCTION_GET_CONTINUOUS_ACCELERATION_CONFIGURATION, [], '', 4, '? ? ? C'
311
+ check_validity
312
+
313
+ send_request FUNCTION_GET_CONTINUOUS_ACCELERATION_CONFIGURATION, [], '', 12, '? ? ? C'
292
314
  end
293
315
 
294
316
  # Configures IIR Bypass filter mode and low pass filter roll off corner frequency.
@@ -304,14 +326,18 @@ module Tinkerforge
304
326
  #
305
327
  # .. versionadded:: 2.0.2$nbsp;(Plugin)
306
328
  def set_filter_configuration(iir_bypass, low_pass_filter)
307
- send_request FUNCTION_SET_FILTER_CONFIGURATION, [iir_bypass, low_pass_filter], 'C C', 0, ''
329
+ check_validity
330
+
331
+ send_request FUNCTION_SET_FILTER_CONFIGURATION, [iir_bypass, low_pass_filter], 'C C', 8, ''
308
332
  end
309
333
 
310
334
  # Returns the configuration as set by BrickletAccelerometerV2#set_filter_configuration.
311
335
  #
312
336
  # .. versionadded:: 2.0.2$nbsp;(Plugin)
313
337
  def get_filter_configuration
314
- send_request FUNCTION_GET_FILTER_CONFIGURATION, [], '', 2, 'C C'
338
+ check_validity
339
+
340
+ send_request FUNCTION_GET_FILTER_CONFIGURATION, [], '', 10, 'C C'
315
341
  end
316
342
 
317
343
  # Returns the error count for the communication between Brick and Bricklet.
@@ -326,7 +352,9 @@ module Tinkerforge
326
352
  # The errors counts are for errors that occur on the Bricklet side. All
327
353
  # Bricks have a similar function that returns the errors on the Brick side.
328
354
  def get_spitfp_error_count
329
- send_request FUNCTION_GET_SPITFP_ERROR_COUNT, [], '', 16, 'L L L L'
355
+ check_validity
356
+
357
+ send_request FUNCTION_GET_SPITFP_ERROR_COUNT, [], '', 24, 'L L L L'
330
358
  end
331
359
 
332
360
  # Sets the bootloader mode and returns the status after the requested
@@ -339,12 +367,16 @@ module Tinkerforge
339
367
  # This function is used by Brick Viewer during flashing. It should not be
340
368
  # necessary to call it in a normal user program.
341
369
  def set_bootloader_mode(mode)
342
- send_request FUNCTION_SET_BOOTLOADER_MODE, [mode], 'C', 1, 'C'
370
+ check_validity
371
+
372
+ send_request FUNCTION_SET_BOOTLOADER_MODE, [mode], 'C', 9, 'C'
343
373
  end
344
374
 
345
375
  # Returns the current bootloader mode, see BrickletAccelerometerV2#set_bootloader_mode.
346
376
  def get_bootloader_mode
347
- send_request FUNCTION_GET_BOOTLOADER_MODE, [], '', 1, 'C'
377
+ check_validity
378
+
379
+ send_request FUNCTION_GET_BOOTLOADER_MODE, [], '', 9, 'C'
348
380
  end
349
381
 
350
382
  # Sets the firmware pointer for BrickletAccelerometerV2#write_firmware. The pointer has
@@ -354,7 +386,9 @@ module Tinkerforge
354
386
  # This function is used by Brick Viewer during flashing. It should not be
355
387
  # necessary to call it in a normal user program.
356
388
  def set_write_firmware_pointer(pointer)
357
- send_request FUNCTION_SET_WRITE_FIRMWARE_POINTER, [pointer], 'L', 0, ''
389
+ check_validity
390
+
391
+ send_request FUNCTION_SET_WRITE_FIRMWARE_POINTER, [pointer], 'L', 8, ''
358
392
  end
359
393
 
360
394
  # Writes 64 Bytes of firmware at the position as written by
@@ -366,7 +400,9 @@ module Tinkerforge
366
400
  # This function is used by Brick Viewer during flashing. It should not be
367
401
  # necessary to call it in a normal user program.
368
402
  def write_firmware(data)
369
- send_request FUNCTION_WRITE_FIRMWARE, [data], 'C64', 1, 'C'
403
+ check_validity
404
+
405
+ send_request FUNCTION_WRITE_FIRMWARE, [data], 'C64', 9, 'C'
370
406
  end
371
407
 
372
408
  # Sets the status LED configuration. By default the LED shows
@@ -377,22 +413,28 @@ module Tinkerforge
377
413
  #
378
414
  # If the Bricklet is in bootloader mode, the LED is will show heartbeat by default.
379
415
  def set_status_led_config(config)
380
- send_request FUNCTION_SET_STATUS_LED_CONFIG, [config], 'C', 0, ''
416
+ check_validity
417
+
418
+ send_request FUNCTION_SET_STATUS_LED_CONFIG, [config], 'C', 8, ''
381
419
  end
382
420
 
383
421
  # Returns the configuration as set by BrickletAccelerometerV2#set_status_led_config
384
422
  def get_status_led_config
385
- send_request FUNCTION_GET_STATUS_LED_CONFIG, [], '', 1, 'C'
423
+ check_validity
424
+
425
+ send_request FUNCTION_GET_STATUS_LED_CONFIG, [], '', 9, 'C'
386
426
  end
387
427
 
388
- # Returns the temperature in °C as measured inside the microcontroller. The
428
+ # Returns the temperature as measured inside the microcontroller. The
389
429
  # value returned is not the ambient temperature!
390
430
  #
391
431
  # The temperature is only proportional to the real temperature and it has bad
392
432
  # accuracy. Practically it is only useful as an indicator for
393
433
  # temperature changes.
394
434
  def get_chip_temperature
395
- send_request FUNCTION_GET_CHIP_TEMPERATURE, [], '', 2, 's'
435
+ check_validity
436
+
437
+ send_request FUNCTION_GET_CHIP_TEMPERATURE, [], '', 10, 's'
396
438
  end
397
439
 
398
440
  # Calling this function will reset the Bricklet. All configurations
@@ -402,7 +444,9 @@ module Tinkerforge
402
444
  # calling functions on the existing ones will result in
403
445
  # undefined behavior!
404
446
  def reset
405
- send_request FUNCTION_RESET, [], '', 0, ''
447
+ check_validity
448
+
449
+ send_request FUNCTION_RESET, [], '', 8, ''
406
450
  end
407
451
 
408
452
  # Writes a new UID into flash. If you want to set a new UID
@@ -411,25 +455,32 @@ module Tinkerforge
411
455
  #
412
456
  # We recommend that you use Brick Viewer to change the UID.
413
457
  def write_uid(uid)
414
- send_request FUNCTION_WRITE_UID, [uid], 'L', 0, ''
458
+ check_validity
459
+
460
+ send_request FUNCTION_WRITE_UID, [uid], 'L', 8, ''
415
461
  end
416
462
 
417
463
  # Returns the current UID as an integer. Encode as
418
464
  # Base58 to get the usual string version.
419
465
  def read_uid
420
- send_request FUNCTION_READ_UID, [], '', 4, 'L'
466
+ check_validity
467
+
468
+ send_request FUNCTION_READ_UID, [], '', 12, 'L'
421
469
  end
422
470
 
423
471
  # Returns the UID, the UID where the Bricklet is connected to,
424
472
  # the position, the hardware and firmware version as well as the
425
473
  # device identifier.
426
474
  #
427
- # The position can be 'a', 'b', 'c' or 'd'.
475
+ # The position can be 'a', 'b', 'c', 'd', 'e', 'f', 'g' or 'h' (Bricklet Port).
476
+ # The Raspberry Pi HAT (Zero) Brick is always at position 'i' and the Bricklet
477
+ # connected to an :ref:`Isolator Bricklet <isolator_bricklet>` is always as
478
+ # position 'z'.
428
479
  #
429
480
  # The device identifier numbers can be found :ref:`here <device_identifier>`.
430
481
  # |device_identifier_constant|
431
482
  def get_identity
432
- send_request FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S'
483
+ send_request FUNCTION_GET_IDENTITY, [], '', 33, 'Z8 Z8 k C3 C3 S'
433
484
  end
434
485
 
435
486
  # Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.