tinkerforge 2.1.11 → 2.1.12

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 (72) hide show
  1. data/lib/tinkerforge/brick_dc.rb +31 -9
  2. data/lib/tinkerforge/brick_imu.rb +62 -40
  3. data/lib/tinkerforge/brick_imu_v2.rb +70 -42
  4. data/lib/tinkerforge/brick_master.rb +47 -23
  5. data/lib/tinkerforge/brick_red.rb +3 -3
  6. data/lib/tinkerforge/brick_servo.rb +40 -18
  7. data/lib/tinkerforge/brick_silent_stepper.rb +829 -0
  8. data/lib/tinkerforge/brick_stepper.rb +47 -25
  9. data/lib/tinkerforge/bricklet_accelerometer.rb +11 -11
  10. data/lib/tinkerforge/bricklet_ambient_light.rb +12 -12
  11. data/lib/tinkerforge/bricklet_ambient_light_v2.rb +8 -8
  12. data/lib/tinkerforge/bricklet_analog_in.rb +18 -18
  13. data/lib/tinkerforge/bricklet_analog_in_v2.rb +15 -15
  14. data/lib/tinkerforge/bricklet_analog_out.rb +3 -3
  15. data/lib/tinkerforge/bricklet_analog_out_v2.rb +3 -3
  16. data/lib/tinkerforge/bricklet_barometer.rb +19 -19
  17. data/lib/tinkerforge/bricklet_can.rb +20 -7
  18. data/lib/tinkerforge/bricklet_co2.rb +14 -14
  19. data/lib/tinkerforge/bricklet_color.rb +19 -19
  20. data/lib/tinkerforge/bricklet_current12.rb +16 -16
  21. data/lib/tinkerforge/bricklet_current25.rb +15 -15
  22. data/lib/tinkerforge/bricklet_distance_ir.rb +14 -14
  23. data/lib/tinkerforge/bricklet_distance_us.rb +9 -9
  24. data/lib/tinkerforge/bricklet_dual_button.rb +5 -5
  25. data/lib/tinkerforge/bricklet_dual_relay.rb +13 -13
  26. data/lib/tinkerforge/bricklet_dust_detector.rb +11 -11
  27. data/lib/tinkerforge/bricklet_gps.rb +21 -21
  28. data/lib/tinkerforge/bricklet_hall_effect.rb +12 -10
  29. data/lib/tinkerforge/bricklet_humidity.rb +21 -21
  30. data/lib/tinkerforge/bricklet_industrial_analog_out.rb +3 -3
  31. data/lib/tinkerforge/bricklet_industrial_digital_in_4.rb +4 -4
  32. data/lib/tinkerforge/bricklet_industrial_digital_out_4.rb +4 -4
  33. data/lib/tinkerforge/bricklet_industrial_dual_0_20ma.rb +6 -6
  34. data/lib/tinkerforge/bricklet_industrial_dual_analog_in.rb +6 -6
  35. data/lib/tinkerforge/bricklet_industrial_quad_relay.rb +5 -5
  36. data/lib/tinkerforge/bricklet_io16.rb +5 -5
  37. data/lib/tinkerforge/bricklet_io4.rb +5 -5
  38. data/lib/tinkerforge/bricklet_joystick.rb +16 -16
  39. data/lib/tinkerforge/bricklet_laser_range_finder.rb +99 -30
  40. data/lib/tinkerforge/bricklet_lcd_16x2.rb +5 -5
  41. data/lib/tinkerforge/bricklet_lcd_20x4.rb +5 -5
  42. data/lib/tinkerforge/bricklet_led_strip.rb +3 -3
  43. data/lib/tinkerforge/bricklet_line.rb +12 -12
  44. data/lib/tinkerforge/bricklet_linear_poti.rb +21 -21
  45. data/lib/tinkerforge/bricklet_load_cell.rb +10 -10
  46. data/lib/tinkerforge/bricklet_moisture.rb +12 -12
  47. data/lib/tinkerforge/bricklet_motion_detector.rb +5 -5
  48. data/lib/tinkerforge/bricklet_multi_touch.rb +3 -3
  49. data/lib/tinkerforge/bricklet_nfc_rfid.rb +20 -20
  50. data/lib/tinkerforge/bricklet_oled_128x64.rb +7 -7
  51. data/lib/tinkerforge/bricklet_oled_64x48.rb +6 -6
  52. data/lib/tinkerforge/bricklet_piezo_buzzer.rb +4 -4
  53. data/lib/tinkerforge/bricklet_piezo_speaker.rb +5 -5
  54. data/lib/tinkerforge/bricklet_ptc.rb +21 -21
  55. data/lib/tinkerforge/bricklet_real_time_clock.rb +7 -7
  56. data/lib/tinkerforge/bricklet_remote_switch.rb +3 -3
  57. data/lib/tinkerforge/bricklet_rgb_led.rb +3 -3
  58. data/lib/tinkerforge/bricklet_rotary_encoder.rb +6 -6
  59. data/lib/tinkerforge/bricklet_rotary_poti.rb +23 -23
  60. data/lib/tinkerforge/bricklet_rs232.rb +19 -16
  61. data/lib/tinkerforge/bricklet_segment_display_4x7.rb +5 -5
  62. data/lib/tinkerforge/bricklet_solid_state_relay.rb +12 -12
  63. data/lib/tinkerforge/bricklet_sound_intensity.rb +13 -12
  64. data/lib/tinkerforge/bricklet_temperature.rb +12 -12
  65. data/lib/tinkerforge/bricklet_temperature_ir.rb +30 -30
  66. data/lib/tinkerforge/bricklet_thermocouple.rb +13 -13
  67. data/lib/tinkerforge/bricklet_tilt.rb +3 -3
  68. data/lib/tinkerforge/bricklet_uv_light.rb +10 -10
  69. data/lib/tinkerforge/bricklet_voltage.rb +18 -18
  70. data/lib/tinkerforge/bricklet_voltage_current.rb +23 -23
  71. data/lib/tinkerforge/version.rb +1 -1
  72. metadata +3 -2
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-01-25. #
3
+ # This file was automatically generated on 2017-04-21. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.11 #
5
+ # Ruby Bindings Version 2.1.12 #
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 #
@@ -38,8 +38,8 @@ module Tinkerforge
38
38
 
39
39
  # This callback is triggered whenever a set velocity is reached. For example:
40
40
  # If a velocity of 0 is present, acceleration is set to 5000 and velocity
41
- # to 10000, CALLBACK_VELOCITY_REACHED will be triggered after about 2 seconds, when
42
- # the set velocity is actually reached.
41
+ # to 10000, the CALLBACK_VELOCITY_REACHED callback will be triggered after about
42
+ # 2 seconds, when the set velocity is actually reached.
43
43
  #
44
44
  # .. note::
45
45
  # Since we can't get any feedback from the DC motor, this only works if the
@@ -49,11 +49,11 @@ module Tinkerforge
49
49
  CALLBACK_VELOCITY_REACHED = 23
50
50
 
51
51
  # This callback is triggered with the period that is set by
52
- # BrickDC#set_current_velocity_period. The parameter is the *current* velocity
53
- # used by the motor.
52
+ # BrickDC#set_current_velocity_period. The parameter is the *current*
53
+ # velocity used by the motor.
54
54
  #
55
- # CALLBACK_CURRENT_VELOCITY is only triggered after the set period if there is
56
- # a change in the velocity.
55
+ # The CALLBACK_CURRENT_VELOCITY callback is only triggered after the set period
56
+ # if there is a change in the velocity.
57
57
  CALLBACK_CURRENT_VELOCITY = 24
58
58
 
59
59
  FUNCTION_SET_VELOCITY = 1 # :nodoc:
@@ -76,6 +76,7 @@ module Tinkerforge
76
76
  FUNCTION_GET_DRIVE_MODE = 18 # :nodoc:
77
77
  FUNCTION_SET_CURRENT_VELOCITY_PERIOD = 19 # :nodoc:
78
78
  FUNCTION_GET_CURRENT_VELOCITY_PERIOD = 20 # :nodoc:
79
+ FUNCTION_GET_SEND_TIMEOUT_COUNT = 233 # :nodoc:
79
80
  FUNCTION_ENABLE_STATUS_LED = 238 # :nodoc:
80
81
  FUNCTION_DISABLE_STATUS_LED = 239 # :nodoc:
81
82
  FUNCTION_IS_STATUS_LED_ENABLED = 240 # :nodoc:
@@ -86,6 +87,14 @@ module Tinkerforge
86
87
 
87
88
  DRIVE_MODE_DRIVE_BRAKE = 0 # :nodoc:
88
89
  DRIVE_MODE_DRIVE_COAST = 1 # :nodoc:
90
+ COMMUNICATION_METHOD_NONE = 0 # :nodoc:
91
+ COMMUNICATION_METHOD_USB = 1 # :nodoc:
92
+ COMMUNICATION_METHOD_SPI_STACK = 2 # :nodoc:
93
+ COMMUNICATION_METHOD_CHIBI = 3 # :nodoc:
94
+ COMMUNICATION_METHOD_RS485 = 4 # :nodoc:
95
+ COMMUNICATION_METHOD_WIFI = 5 # :nodoc:
96
+ COMMUNICATION_METHOD_ETHERNET = 6 # :nodoc:
97
+ COMMUNICATION_METHOD_WIFI_V2 = 7 # :nodoc:
89
98
 
90
99
  # Creates an object with the unique device ID <tt>uid</tt> and adds it to
91
100
  # the IP Connection <tt>ipcon</tt>.
@@ -118,6 +127,7 @@ module Tinkerforge
118
127
  @response_expected[CALLBACK_EMERGENCY_SHUTDOWN] = RESPONSE_EXPECTED_ALWAYS_FALSE
119
128
  @response_expected[CALLBACK_VELOCITY_REACHED] = RESPONSE_EXPECTED_ALWAYS_FALSE
120
129
  @response_expected[CALLBACK_CURRENT_VELOCITY] = RESPONSE_EXPECTED_ALWAYS_FALSE
130
+ @response_expected[FUNCTION_GET_SEND_TIMEOUT_COUNT] = RESPONSE_EXPECTED_ALWAYS_TRUE
121
131
  @response_expected[FUNCTION_ENABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
122
132
  @response_expected[FUNCTION_DISABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
123
133
  @response_expected[FUNCTION_IS_STATUS_LED_ENABLED] = RESPONSE_EXPECTED_ALWAYS_TRUE
@@ -311,6 +321,18 @@ module Tinkerforge
311
321
  send_request(FUNCTION_GET_CURRENT_VELOCITY_PERIOD, [], '', 2, 'S')
312
322
  end
313
323
 
324
+ # Returns the timeout count for the different communication methods.
325
+ #
326
+ # The methods 0-2 are available for all Bricks, 3-7 only for Master Bricks.
327
+ #
328
+ # This function is mostly used for debugging during development, in normal operation
329
+ # the counters should nearly always stay at 0.
330
+ #
331
+ # .. versionadded:: 2.3.3$nbsp;(Firmware)
332
+ def get_send_timeout_count(communication_method)
333
+ send_request(FUNCTION_GET_SEND_TIMEOUT_COUNT, [communication_method], 'C', 4, 'L')
334
+ end
335
+
314
336
  # Enables the status LED.
315
337
  #
316
338
  # The status LED is the blue LED next to the USB connector. If enabled is is
@@ -371,7 +393,7 @@ module Tinkerforge
371
393
  send_request(FUNCTION_RESET, [], '', 0, '')
372
394
  end
373
395
 
374
- # Returns the UID, the UID where the Brick is connected to,
396
+ # Returns the UID, the UID where the Brick is connected to,
375
397
  # the position, the hardware and firmware version as well as the
376
398
  # device identifier.
377
399
  #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-01-25. #
3
+ # This file was automatically generated on 2017-04-21. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.11 #
5
+ # Ruby Bindings Version 2.1.12 #
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 #
@@ -21,13 +21,13 @@ module Tinkerforge
21
21
  CALLBACK_ACCELERATION = 31
22
22
 
23
23
  # This callback is triggered periodically with the period that is set by
24
- # BrickIMU#set_magnetic_field_period. The parameters are the magnetic field
25
- # for the x, y and z axis.
24
+ # BrickIMU#set_magnetic_field_period. The parameters are the magnetic
25
+ # field for the x, y and z axis.
26
26
  CALLBACK_MAGNETIC_FIELD = 32
27
27
 
28
28
  # This callback is triggered periodically with the period that is set by
29
- # BrickIMU#set_angular_velocity_period. The parameters are the angular velocity
30
- # for the x, y and z axis.
29
+ # BrickIMU#set_angular_velocity_period. The parameters are the angular
30
+ # velocity for the x, y and z axis.
31
31
  CALLBACK_ANGULAR_VELOCITY = 33
32
32
 
33
33
  # This callback is triggered periodically with the period that is set by
@@ -81,6 +81,7 @@ module Tinkerforge
81
81
  FUNCTION_ORIENTATION_CALCULATION_ON = 37 # :nodoc:
82
82
  FUNCTION_ORIENTATION_CALCULATION_OFF = 38 # :nodoc:
83
83
  FUNCTION_IS_ORIENTATION_CALCULATION_ON = 39 # :nodoc:
84
+ FUNCTION_GET_SEND_TIMEOUT_COUNT = 233 # :nodoc:
84
85
  FUNCTION_ENABLE_STATUS_LED = 238 # :nodoc:
85
86
  FUNCTION_DISABLE_STATUS_LED = 239 # :nodoc:
86
87
  FUNCTION_IS_STATUS_LED_ENABLED = 240 # :nodoc:
@@ -95,6 +96,14 @@ module Tinkerforge
95
96
  CALIBRATION_TYPE_MAGNETOMETER_BIAS = 3 # :nodoc:
96
97
  CALIBRATION_TYPE_GYROSCOPE_GAIN = 4 # :nodoc:
97
98
  CALIBRATION_TYPE_GYROSCOPE_BIAS = 5 # :nodoc:
99
+ COMMUNICATION_METHOD_NONE = 0 # :nodoc:
100
+ COMMUNICATION_METHOD_USB = 1 # :nodoc:
101
+ COMMUNICATION_METHOD_SPI_STACK = 2 # :nodoc:
102
+ COMMUNICATION_METHOD_CHIBI = 3 # :nodoc:
103
+ COMMUNICATION_METHOD_RS485 = 4 # :nodoc:
104
+ COMMUNICATION_METHOD_WIFI = 5 # :nodoc:
105
+ COMMUNICATION_METHOD_ETHERNET = 6 # :nodoc:
106
+ COMMUNICATION_METHOD_WIFI_V2 = 7 # :nodoc:
98
107
 
99
108
  # Creates an object with the unique device ID <tt>uid</tt> and adds it to
100
109
  # the IP Connection <tt>ipcon</tt>.
@@ -142,6 +151,7 @@ module Tinkerforge
142
151
  @response_expected[FUNCTION_ORIENTATION_CALCULATION_ON] = RESPONSE_EXPECTED_FALSE
143
152
  @response_expected[FUNCTION_ORIENTATION_CALCULATION_OFF] = RESPONSE_EXPECTED_FALSE
144
153
  @response_expected[FUNCTION_IS_ORIENTATION_CALCULATION_ON] = RESPONSE_EXPECTED_ALWAYS_TRUE
154
+ @response_expected[FUNCTION_GET_SEND_TIMEOUT_COUNT] = RESPONSE_EXPECTED_ALWAYS_TRUE
145
155
  @response_expected[FUNCTION_ENABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
146
156
  @response_expected[FUNCTION_DISABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
147
157
  @response_expected[FUNCTION_IS_STATUS_LED_ENABLED] = RESPONSE_EXPECTED_ALWAYS_TRUE
@@ -158,44 +168,44 @@ module Tinkerforge
158
168
  @callback_formats[CALLBACK_QUATERNION] = 'e e e e'
159
169
  end
160
170
 
161
- # Returns the calibrated acceleration from the accelerometer for the
171
+ # Returns the calibrated acceleration from the accelerometer for the
162
172
  # x, y and z axis in g/1000 (1g = 9.80665m/s²).
163
173
  #
164
- # If you want to get the acceleration periodically, it is recommended
165
- # to use the callback CALLBACK_ACCELERATION and set the period with
174
+ # If you want to get the acceleration periodically, it is recommended
175
+ # to use the CALLBACK_ACCELERATION callback and set the period with
166
176
  # BrickIMU#set_acceleration_period.
167
177
  def get_acceleration
168
178
  send_request(FUNCTION_GET_ACCELERATION, [], '', 6, 's s s')
169
179
  end
170
180
 
171
- # Returns the calibrated magnetic field from the magnetometer for the
181
+ # Returns the calibrated magnetic field from the magnetometer for the
172
182
  # x, y and z axis in mG (Milligauss or Nanotesla).
173
183
  #
174
- # If you want to get the magnetic field periodically, it is recommended
175
- # to use the callback CALLBACK_MAGNETIC_FIELD and set the period with
184
+ # If you want to get the magnetic field periodically, it is recommended
185
+ # to use the CALLBACK_MAGNETIC_FIELD callback and set the period with
176
186
  # BrickIMU#set_magnetic_field_period.
177
187
  def get_magnetic_field
178
188
  send_request(FUNCTION_GET_MAGNETIC_FIELD, [], '', 6, 's s s')
179
189
  end
180
190
 
181
- # Returns the calibrated angular velocity from the gyroscope for the
191
+ # Returns the calibrated angular velocity from the gyroscope for the
182
192
  # x, y and z axis in °/14.375s (you have to divide by 14.375 to
183
193
  # get the value in °/s).
184
194
  #
185
- # If you want to get the angular velocity periodically, it is recommended
186
- # to use the callback CALLBACK_ANGULAR_VELOCITY and set the period with
195
+ # If you want to get the angular velocity periodically, it is recommended
196
+ # to use the CALLBACK_ANGULAR_VELOCITY callback and set the period with
187
197
  # BrickIMU#set_angular_velocity_period.
188
198
  def get_angular_velocity
189
199
  send_request(FUNCTION_GET_ANGULAR_VELOCITY, [], '', 6, 's s s')
190
200
  end
191
201
 
192
- # Returns the data from BrickIMU#get_acceleration, BrickIMU#get_magnetic_field
202
+ # Returns the data from BrickIMU#get_acceleration, BrickIMU#get_magnetic_field
193
203
  # and BrickIMU#get_angular_velocity as well as the temperature of the IMU Brick.
194
204
  #
195
205
  # The temperature is given in °C/100.
196
206
  #
197
- # If you want to get the data periodically, it is recommended
198
- # to use the callback CALLBACK_ALL_DATA and set the period with
207
+ # If you want to get the data periodically, it is recommended
208
+ # to use the CALLBACK_ALL_DATA callback and set the period with
199
209
  # BrickIMU#set_all_data_period.
200
210
  def get_all_data
201
211
  send_request(FUNCTION_GET_ALL_DATA, [], '', 20, 's s s s s s s s s s')
@@ -207,17 +217,17 @@ module Tinkerforge
207
217
  #
208
218
  # We recommend that you use quaternions instead.
209
219
  #
210
- # The order to sequence in which the orientation values should be applied is
211
- # roll, yaw, pitch.
220
+ # The order to sequence in which the orientation values should be applied is
221
+ # roll, yaw, pitch.
212
222
  #
213
- # If you want to get the orientation periodically, it is recommended
214
- # to use the callback CALLBACK_ORIENTATION and set the period with
223
+ # If you want to get the orientation periodically, it is recommended
224
+ # to use the CALLBACK_ORIENTATION callback and set the period with
215
225
  # BrickIMU#set_orientation_period.
216
226
  def get_orientation
217
227
  send_request(FUNCTION_GET_ORIENTATION, [], '', 6, 's s s')
218
228
  end
219
229
 
220
- # Returns the current orientation (x, y, z, w) of the IMU as
230
+ # Returns the current orientation (x, y, z, w) of the IMU as
221
231
  # `quaternions <https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation>`__.
222
232
  #
223
233
  # You can go from quaternions to Euler angles with the following formula::
@@ -226,12 +236,12 @@ module Tinkerforge
226
236
  # yAngle = atan2(2*x*w - 2*y*z, 1 - 2*x*x - 2*z*z)
227
237
  # zAngle = asin(2*x*y + 2*z*w)
228
238
  #
229
- # This process is not reversible, because of the
239
+ # This process is not reversible, because of the
230
240
  # `gimbal lock <https://en.wikipedia.org/wiki/Gimbal_lock>`__.
231
241
  #
232
- # It is also possible to calculate independent angles. You can calculate
233
- # yaw, pitch and roll in a right-handed vehicle coordinate system according to DIN70000
234
- # with::
242
+ # It is also possible to calculate independent angles. You can calculate
243
+ # yaw, pitch and roll in a right-handed vehicle coordinate system according to
244
+ # DIN70000 with::
235
245
  #
236
246
  # yaw = atan2(2*x*y + 2*w*z, w*w + x*x - y*y - z*z)
237
247
  # pitch = -asin(2*w*y - 2*x*z)
@@ -245,14 +255,14 @@ module Tinkerforge
245
255
  # [ 2*(x*z - w*y), 2*(y*z + w*x), 1 - 2*(x*x + y*y), 0],
246
256
  # [ 0, 0, 0, 1]]
247
257
  #
248
- # If you want to get the quaternions periodically, it is recommended
249
- # to use the callback CALLBACK_QUATERNION and set the period with
258
+ # If you want to get the quaternions periodically, it is recommended
259
+ # to use the CALLBACK_QUATERNION callback and set the period with
250
260
  # BrickIMU#set_quaternion_period.
251
261
  def get_quaternion
252
262
  send_request(FUNCTION_GET_QUATERNION, [], '', 16, 'e e e e')
253
263
  end
254
264
 
255
- # Returns the temperature of the IMU Brick. The temperature is given in
265
+ # Returns the temperature of the IMU Brick. The temperature is given in
256
266
  # °C/100.
257
267
  def get_imu_temperature
258
268
  send_request(FUNCTION_GET_IMU_TEMPERATURE, [], '', 2, 's')
@@ -294,10 +304,10 @@ module Tinkerforge
294
304
  send_request(FUNCTION_GET_MAGNETOMETER_RANGE, [], '', 1, 'C')
295
305
  end
296
306
 
297
- # Sets the convergence speed of the IMU Brick in °/s. The convergence speed
307
+ # Sets the convergence speed of the IMU Brick in °/s. The convergence speed
298
308
  # determines how the different sensor measurements are fused.
299
309
  #
300
- # If the orientation of the IMU Brick is off by 10° and the convergence speed is
310
+ # If the orientation of the IMU Brick is off by 10° and the convergence speed is
301
311
  # set to 20°/s, it will take 0.5s until the orientation is corrected. However,
302
312
  # if the correct orientation is reached and the convergence speed is too high,
303
313
  # the orientation will fluctuate with the fluctuations of the accelerometer and
@@ -313,8 +323,8 @@ module Tinkerforge
313
323
  # In an application with high angular velocities, we recommend a high convergence
314
324
  # speed, so the errors of the gyroscope can be corrected fast. In applications with
315
325
  # only slow movements we recommend a low convergence speed. You can change the
316
- # convergence speed on the fly. So it is possible (and recommended) to increase
317
- # the convergence speed before an abrupt movement and decrease it afterwards
326
+ # convergence speed on the fly. So it is possible (and recommended) to increase
327
+ # the convergence speed before an abrupt movement and decrease it afterwards
318
328
  # again.
319
329
  #
320
330
  # You might want to play around with the convergence speed in the Brick Viewer to
@@ -384,8 +394,8 @@ module Tinkerforge
384
394
  send_request(FUNCTION_GET_ACCELERATION_PERIOD, [], '', 4, 'L')
385
395
  end
386
396
 
387
- # Sets the period in ms with which the CALLBACK_MAGNETIC_FIELD callback is triggered
388
- # periodically. A value of 0 turns the callback off.
397
+ # Sets the period in ms with which the CALLBACK_MAGNETIC_FIELD callback is
398
+ # triggered periodically. A value of 0 turns the callback off.
389
399
  def set_magnetic_field_period(period)
390
400
  send_request(FUNCTION_SET_MAGNETIC_FIELD_PERIOD, [period], 'L', 0, '')
391
401
  end
@@ -395,8 +405,8 @@ module Tinkerforge
395
405
  send_request(FUNCTION_GET_MAGNETIC_FIELD_PERIOD, [], '', 4, 'L')
396
406
  end
397
407
 
398
- # Sets the period in ms with which the CALLBACK_ANGULAR_VELOCITY callback is triggered
399
- # periodically. A value of 0 turns the callback off.
408
+ # Sets the period in ms with which the CALLBACK_ANGULAR_VELOCITY callback is
409
+ # triggered periodically. A value of 0 turns the callback off.
400
410
  def set_angular_velocity_period(period)
401
411
  send_request(FUNCTION_SET_ANGULAR_VELOCITY_PERIOD, [period], 'L', 0, '')
402
412
  end
@@ -453,7 +463,7 @@ module Tinkerforge
453
463
  # If the calculation is off, BrickIMU#get_orientation will return
454
464
  # the last calculated value until the calculation is turned on again.
455
465
  #
456
- # The trigonometric functions that are needed to calculate the orientation
466
+ # The trigonometric functions that are needed to calculate the orientation
457
467
  # are very expensive. We recommend to turn the orientation calculation
458
468
  # off if the orientation is not needed, to free calculation time for the
459
469
  # sensor fusion algorithm.
@@ -473,6 +483,18 @@ module Tinkerforge
473
483
  send_request(FUNCTION_IS_ORIENTATION_CALCULATION_ON, [], '', 1, '?')
474
484
  end
475
485
 
486
+ # Returns the timeout count for the different communication methods.
487
+ #
488
+ # The methods 0-2 are available for all Bricks, 3-7 only for Master Bricks.
489
+ #
490
+ # This function is mostly used for debugging during development, in normal operation
491
+ # the counters should nearly always stay at 0.
492
+ #
493
+ # .. versionadded:: 2.3.3$nbsp;(Firmware)
494
+ def get_send_timeout_count(communication_method)
495
+ send_request(FUNCTION_GET_SEND_TIMEOUT_COUNT, [communication_method], 'C', 4, 'L')
496
+ end
497
+
476
498
  # Enables the status LED.
477
499
  #
478
500
  # The status LED is the blue LED next to the USB connector. If enabled is is
@@ -533,7 +555,7 @@ module Tinkerforge
533
555
  send_request(FUNCTION_RESET, [], '', 0, '')
534
556
  end
535
557
 
536
- # Returns the UID, the UID where the Brick is connected to,
558
+ # Returns the UID, the UID where the Brick is connected to,
537
559
  # the position, the hardware and firmware version as well as the
538
560
  # device identifier.
539
561
  #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-01-25. #
3
+ # This file was automatically generated on 2017-04-21. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.11 #
5
+ # Ruby Bindings Version 2.1.12 #
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 #
@@ -21,13 +21,13 @@ module Tinkerforge
21
21
  CALLBACK_ACCELERATION = 32
22
22
 
23
23
  # This callback is triggered periodically with the period that is set by
24
- # BrickIMUV2#set_magnetic_field_period. The parameters are the magnetic field
25
- # for the x, y and z axis.
24
+ # BrickIMUV2#set_magnetic_field_period. The parameters are the magnetic
25
+ # field for the x, y and z axis.
26
26
  CALLBACK_MAGNETIC_FIELD = 33
27
27
 
28
28
  # This callback is triggered periodically with the period that is set by
29
- # BrickIMUV2#set_angular_velocity_period. The parameters are the angular velocity
30
- # for the x, y and z axis.
29
+ # BrickIMUV2#set_angular_velocity_period. The parameters are the angular
30
+ # velocity for the x, y and z axis.
31
31
  CALLBACK_ANGULAR_VELOCITY = 34
32
32
 
33
33
  # This callback is triggered periodically with the period that is set by
@@ -35,7 +35,7 @@ module Tinkerforge
35
35
  CALLBACK_TEMPERATURE = 35
36
36
 
37
37
  # This callback is triggered periodically with the period that is set by
38
- # BrickIMUV2#set_linear_acceleration_period. The parameters are the
38
+ # BrickIMUV2#set_linear_acceleration_period. The parameters are the
39
39
  # linear acceleration for the x, y and z axis.
40
40
  CALLBACK_LINEAR_ACCELERATION = 36
41
41
 
@@ -57,7 +57,8 @@ module Tinkerforge
57
57
  CALLBACK_QUATERNION = 39
58
58
 
59
59
  # This callback is triggered periodically with the period that is set by
60
- # BrickIMUV2#set_all_data_period. The parameters are as for BrickIMUV2#get_all_data.
60
+ # BrickIMUV2#set_all_data_period. The parameters are as for
61
+ # BrickIMUV2#get_all_data.
61
62
  CALLBACK_ALL_DATA = 40
62
63
 
63
64
  FUNCTION_GET_ACCELERATION = 1 # :nodoc:
@@ -95,6 +96,7 @@ module Tinkerforge
95
96
  FUNCTION_GET_SENSOR_CONFIGURATION = 42 # :nodoc:
96
97
  FUNCTION_SET_SENSOR_FUSION_MODE = 43 # :nodoc:
97
98
  FUNCTION_GET_SENSOR_FUSION_MODE = 44 # :nodoc:
99
+ FUNCTION_GET_SEND_TIMEOUT_COUNT = 233 # :nodoc:
98
100
  FUNCTION_ENABLE_STATUS_LED = 238 # :nodoc:
99
101
  FUNCTION_DISABLE_STATUS_LED = 239 # :nodoc:
100
102
  FUNCTION_IS_STATUS_LED_ENABLED = 240 # :nodoc:
@@ -138,6 +140,15 @@ module Tinkerforge
138
140
  ACCELEROMETER_BANDWIDTH_1000HZ = 7 # :nodoc:
139
141
  SENSOR_FUSION_OFF = 0 # :nodoc:
140
142
  SENSOR_FUSION_ON = 1 # :nodoc:
143
+ SENSOR_FUSION_ON_WITHOUT_MAGNETOMETER = 2 # :nodoc:
144
+ COMMUNICATION_METHOD_NONE = 0 # :nodoc:
145
+ COMMUNICATION_METHOD_USB = 1 # :nodoc:
146
+ COMMUNICATION_METHOD_SPI_STACK = 2 # :nodoc:
147
+ COMMUNICATION_METHOD_CHIBI = 3 # :nodoc:
148
+ COMMUNICATION_METHOD_RS485 = 4 # :nodoc:
149
+ COMMUNICATION_METHOD_WIFI = 5 # :nodoc:
150
+ COMMUNICATION_METHOD_ETHERNET = 6 # :nodoc:
151
+ COMMUNICATION_METHOD_WIFI_V2 = 7 # :nodoc:
141
152
 
142
153
  # Creates an object with the unique device ID <tt>uid</tt> and adds it to
143
154
  # the IP Connection <tt>ipcon</tt>.
@@ -190,6 +201,7 @@ module Tinkerforge
190
201
  @response_expected[FUNCTION_GET_SENSOR_CONFIGURATION] = RESPONSE_EXPECTED_ALWAYS_TRUE
191
202
  @response_expected[FUNCTION_SET_SENSOR_FUSION_MODE] = RESPONSE_EXPECTED_FALSE
192
203
  @response_expected[FUNCTION_GET_SENSOR_FUSION_MODE] = RESPONSE_EXPECTED_ALWAYS_TRUE
204
+ @response_expected[FUNCTION_GET_SEND_TIMEOUT_COUNT] = RESPONSE_EXPECTED_ALWAYS_TRUE
193
205
  @response_expected[FUNCTION_ENABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
194
206
  @response_expected[FUNCTION_DISABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
195
207
  @response_expected[FUNCTION_IS_STATUS_LED_ENABLED] = RESPONSE_EXPECTED_ALWAYS_TRUE
@@ -209,37 +221,37 @@ module Tinkerforge
209
221
  @callback_formats[CALLBACK_ALL_DATA] = 's3 s3 s3 s3 s4 s3 s3 c C'
210
222
  end
211
223
 
212
- # Returns the calibrated acceleration from the accelerometer for the
224
+ # Returns the calibrated acceleration from the accelerometer for the
213
225
  # x, y and z axis in 1/100 m/s².
214
226
  #
215
- # If you want to get the acceleration periodically, it is recommended
216
- # to use the callback CALLBACK_ACCELERATION and set the period with
227
+ # If you want to get the acceleration periodically, it is recommended
228
+ # to use the CALLBACK_ACCELERATION callback and set the period with
217
229
  # BrickIMUV2#set_acceleration_period.
218
230
  def get_acceleration
219
231
  send_request(FUNCTION_GET_ACCELERATION, [], '', 6, 's s s')
220
232
  end
221
233
 
222
- # Returns the calibrated magnetic field from the magnetometer for the
234
+ # Returns the calibrated magnetic field from the magnetometer for the
223
235
  # x, y and z axis in 1/16 µT (Microtesla).
224
236
  #
225
- # If you want to get the magnetic field periodically, it is recommended
226
- # to use the callback CALLBACK_MAGNETIC_FIELD and set the period with
237
+ # If you want to get the magnetic field periodically, it is recommended
238
+ # to use the CALLBACK_MAGNETIC_FIELD callback and set the period with
227
239
  # BrickIMUV2#set_magnetic_field_period.
228
240
  def get_magnetic_field
229
241
  send_request(FUNCTION_GET_MAGNETIC_FIELD, [], '', 6, 's s s')
230
242
  end
231
243
 
232
- # Returns the calibrated angular velocity from the gyroscope for the
244
+ # Returns the calibrated angular velocity from the gyroscope for the
233
245
  # x, y and z axis in 1/16 °/s.
234
246
  #
235
- # If you want to get the angular velocity periodically, it is recommended
236
- # to use the callback CALLBACK_ANGULAR_VELOCITY and set the period with
247
+ # If you want to get the angular velocity periodically, it is recommended
248
+ # to use the CALLBACK_ANGULAR_VELOCITY acallback nd set the period with
237
249
  # BrickIMUV2#set_angular_velocity_period.
238
250
  def get_angular_velocity
239
251
  send_request(FUNCTION_GET_ANGULAR_VELOCITY, [], '', 6, 's s s')
240
252
  end
241
253
 
242
- # Returns the temperature of the IMU Brick. The temperature is given in
254
+ # Returns the temperature of the IMU Brick. The temperature is given in
243
255
  # °C. The temperature is measured in the core of the BNO055 IC, it is not the
244
256
  # ambient temperature
245
257
  def get_temperature
@@ -248,8 +260,9 @@ module Tinkerforge
248
260
 
249
261
  # Returns the current orientation (heading, roll, pitch) of the IMU Brick as
250
262
  # independent Euler angles in 1/16 degree. Note that Euler angles always
251
- # experience a `gimbal lock <https://en.wikipedia.org/wiki/Gimbal_lock>`__. We
252
- # recommend that you use quaternions instead, if you need the absolute orientation.
263
+ # experience a `gimbal lock <https://en.wikipedia.org/wiki/Gimbal_lock>`__.
264
+ # We recommend that you use quaternions instead, if you need the absolute
265
+ # orientation.
253
266
  #
254
267
  # The rotation angle has the following ranges:
255
268
  #
@@ -257,8 +270,8 @@ module Tinkerforge
257
270
  # * roll: -90° to +90°
258
271
  # * pitch: -180° to +180°
259
272
  #
260
- # If you want to get the orientation periodically, it is recommended
261
- # to use the callback CALLBACK_ORIENTATION and set the period with
273
+ # If you want to get the orientation periodically, it is recommended
274
+ # to use the CALLBACK_ORIENTATION callback and set the period with
262
275
  # BrickIMUV2#set_orientation_period.
263
276
  def get_orientation
264
277
  send_request(FUNCTION_GET_ORIENTATION, [], '', 6, 's s s')
@@ -273,8 +286,8 @@ module Tinkerforge
273
286
  # It is also possible to get the gravity vector with the influence of linear
274
287
  # acceleration removed, see BrickIMUV2#get_gravity_vector.
275
288
  #
276
- # If you want to get the linear acceleration periodically, it is recommended
277
- # to use the callback CALLBACK_LINEAR_ACCELERATION and set the period with
289
+ # If you want to get the linear acceleration periodically, it is recommended
290
+ # to use the CALLBACK_LINEAR_ACCELERATION callback and set the period with
278
291
  # BrickIMUV2#set_linear_acceleration_period.
279
292
  def get_linear_acceleration
280
293
  send_request(FUNCTION_GET_LINEAR_ACCELERATION, [], '', 6, 's s s')
@@ -286,11 +299,11 @@ module Tinkerforge
286
299
  # The gravity vector is the acceleration that occurs due to gravity.
287
300
  # Influences of additional linear acceleration are removed.
288
301
  #
289
- # It is also possible to get the linear acceleration with the influence
302
+ # It is also possible to get the linear acceleration with the influence
290
303
  # of gravity removed, see BrickIMUV2#get_linear_acceleration.
291
304
  #
292
- # If you want to get the gravity vector periodically, it is recommended
293
- # to use the callback CALLBACK_GRAVITY_VECTOR and set the period with
305
+ # If you want to get the gravity vector periodically, it is recommended
306
+ # to use the CALLBACK_GRAVITY_VECTOR callback and set the period with
294
307
  # BrickIMUV2#set_gravity_vector_period.
295
308
  def get_gravity_vector
296
309
  send_request(FUNCTION_GET_GRAVITY_VECTOR, [], '', 6, 's s s')
@@ -302,8 +315,8 @@ module Tinkerforge
302
315
  # You have to divide the returns values by 16383 (14 bit) to get
303
316
  # the usual range of -1.0 to +1.0 for quaternions.
304
317
  #
305
- # If you want to get the quaternions periodically, it is recommended
306
- # to use the callback CALLBACK_QUATERNION and set the period with
318
+ # If you want to get the quaternions periodically, it is recommended
319
+ # to use the CALLBACK_QUATERNION callback and set the period with
307
320
  # BrickIMUV2#set_quaternion_period.
308
321
  def get_quaternion
309
322
  send_request(FUNCTION_GET_QUATERNION, [], '', 8, 's s s s')
@@ -336,8 +349,8 @@ module Tinkerforge
336
349
  # calibration. See the documentation in the calibration window for
337
350
  # more information regarding the calibration of the IMU Brick.
338
351
  #
339
- # If you want to get the data periodically, it is recommended
340
- # to use the callback CALLBACK_ALL_DATA and set the period with
352
+ # If you want to get the data periodically, it is recommended
353
+ # to use the CALLBACK_ALL_DATA callback and set the period with
341
354
  # BrickIMUV2#set_all_data_period.
342
355
  def get_all_data
343
356
  send_request(FUNCTION_GET_ALL_DATA, [], '', 46, 's3 s3 s3 s3 s4 s3 s3 c C')
@@ -364,7 +377,7 @@ module Tinkerforge
364
377
  # of the IMU Brick.
365
378
  #
366
379
  # A return value of *true* means that the calibration could be used and
367
- # *false* means that it could not be used (this happens if the calibration
380
+ # *false* means that it could not be used (this happens if the calibration
368
381
  # status is not "fully calibrated").
369
382
  #
370
383
  # This function is used by the calibration window of the Brick Viewer, you
@@ -397,8 +410,8 @@ module Tinkerforge
397
410
  send_request(FUNCTION_GET_MAGNETIC_FIELD_PERIOD, [], '', 4, 'L')
398
411
  end
399
412
 
400
- # Sets the period in ms with which the CALLBACK_ANGULAR_VELOCITY callback is triggered
401
- # periodically. A value of 0 turns the callback off.
413
+ # Sets the period in ms with which the CALLBACK_ANGULAR_VELOCITY callback is
414
+ # triggered periodically. A value of 0 turns the callback off.
402
415
  def set_angular_velocity_period(period)
403
416
  send_request(FUNCTION_SET_ANGULAR_VELOCITY_PERIOD, [period], 'L', 0, '')
404
417
  end
@@ -430,8 +443,8 @@ module Tinkerforge
430
443
  send_request(FUNCTION_GET_ORIENTATION_PERIOD, [], '', 4, 'L')
431
444
  end
432
445
 
433
- # Sets the period in ms with which the CALLBACK_LINEAR_ACCELERATION callback is triggered
434
- # periodically. A value of 0 turns the callback off.
446
+ # Sets the period in ms with which the CALLBACK_LINEAR_ACCELERATION callback is
447
+ # triggered periodically. A value of 0 turns the callback off.
435
448
  def set_linear_acceleration_period(period)
436
449
  send_request(FUNCTION_SET_LINEAR_ACCELERATION_PERIOD, [period], 'L', 0, '')
437
450
  end
@@ -486,7 +499,6 @@ module Tinkerforge
486
499
  # * Accelerometer Range +/-4G
487
500
  # * Accelerometer Bandwidth 62.5Hz
488
501
  #
489
- #
490
502
  # .. versionadded:: 2.0.5$nbsp;(Firmware)
491
503
  def set_sensor_configuration(magnetometer_rate, gyroscope_range, gyroscope_bandwidth, accelerometer_range, accelerometer_bandwidth)
492
504
  send_request(FUNCTION_SET_SENSOR_CONFIGURATION, [magnetometer_rate, gyroscope_range, gyroscope_bandwidth, accelerometer_range, accelerometer_bandwidth], 'C C C C C', 0, '')
@@ -499,10 +511,14 @@ module Tinkerforge
499
511
  send_request(FUNCTION_GET_SENSOR_CONFIGURATION, [], '', 5, 'C C C C C')
500
512
  end
501
513
 
502
- # If the fusion mode is turned off, the functions
503
- # BrickIMUV2#get_acceleration, BrickIMUV2#get_magnetic_field and BrickIMUV2#get_angular_velocity
504
- # return uncalibrated and uncompensated sensor data. All other sensor data getters
505
- # return no data.
514
+ # If the fusion mode is turned off, the functions BrickIMUV2#get_acceleration,
515
+ # BrickIMUV2#get_magnetic_field and BrickIMUV2#get_angular_velocity return uncalibrated
516
+ # and uncompensated sensor data. All other sensor data getters return no data.
517
+ #
518
+ # Since firmware version 2.0.6 you can also use a fusion mode without magnetometer.
519
+ # In this mode the calculated orientation is relative (with magnetometer it is
520
+ # absolute with respect to the earth). However, the calculation can't be influenced
521
+ # by spurious magnetic fields.
506
522
  #
507
523
  # By default sensor fusion is on.
508
524
  #
@@ -518,6 +534,18 @@ module Tinkerforge
518
534
  send_request(FUNCTION_GET_SENSOR_FUSION_MODE, [], '', 1, 'C')
519
535
  end
520
536
 
537
+ # Returns the timeout count for the different communication methods.
538
+ #
539
+ # The methods 0-2 are available for all Bricks, 3-7 only for Master Bricks.
540
+ #
541
+ # This function is mostly used for debugging during development, in normal operation
542
+ # the counters should nearly always stay at 0.
543
+ #
544
+ # .. versionadded:: 2.0.7$nbsp;(Firmware)
545
+ def get_send_timeout_count(communication_method)
546
+ send_request(FUNCTION_GET_SEND_TIMEOUT_COUNT, [communication_method], 'C', 4, 'L')
547
+ end
548
+
521
549
  # Enables the status LED.
522
550
  #
523
551
  # The status LED is the blue LED next to the USB connector. If enabled is is
@@ -572,7 +600,7 @@ module Tinkerforge
572
600
  send_request(FUNCTION_RESET, [], '', 0, '')
573
601
  end
574
602
 
575
- # Returns the UID, the UID where the Brick is connected to,
603
+ # Returns the UID, the UID where the Brick is connected to,
576
604
  # the position, the hardware and firmware version as well as the
577
605
  # device identifier.
578
606
  #