tinkerforge 2.1.13 → 2.1.14

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 (75) hide show
  1. data/lib/tinkerforge/brick_dc.rb +122 -34
  2. data/lib/tinkerforge/brick_imu.rb +135 -49
  3. data/lib/tinkerforge/brick_imu_v2.rb +137 -54
  4. data/lib/tinkerforge/brick_master.rb +206 -120
  5. data/lib/tinkerforge/brick_red.rb +64 -69
  6. data/lib/tinkerforge/brick_servo.rb +133 -44
  7. data/lib/tinkerforge/brick_silent_stepper.rb +151 -65
  8. data/lib/tinkerforge/brick_stepper.rb +139 -51
  9. data/lib/tinkerforge/bricklet_accelerometer.rb +17 -18
  10. data/lib/tinkerforge/bricklet_ambient_light.rb +16 -19
  11. data/lib/tinkerforge/bricklet_ambient_light_v2.rb +13 -14
  12. data/lib/tinkerforge/bricklet_analog_in.rb +20 -23
  13. data/lib/tinkerforge/bricklet_analog_in_v2.rb +18 -21
  14. data/lib/tinkerforge/bricklet_analog_out.rb +8 -7
  15. data/lib/tinkerforge/bricklet_analog_out_v2.rb +7 -6
  16. data/lib/tinkerforge/bricklet_barometer.rb +21 -24
  17. data/lib/tinkerforge/bricklet_can.rb +14 -14
  18. data/lib/tinkerforge/bricklet_co2.rb +11 -12
  19. data/lib/tinkerforge/bricklet_color.rb +22 -25
  20. data/lib/tinkerforge/bricklet_current12.rb +18 -22
  21. data/lib/tinkerforge/bricklet_current25.rb +18 -22
  22. data/lib/tinkerforge/bricklet_distance_ir.rb +18 -21
  23. data/lib/tinkerforge/bricklet_distance_us.rb +13 -14
  24. data/lib/tinkerforge/bricklet_dual_button.rb +8 -8
  25. data/lib/tinkerforge/bricklet_dual_relay.rb +9 -9
  26. data/lib/tinkerforge/bricklet_dust_detector.rb +13 -14
  27. data/lib/tinkerforge/bricklet_gps.rb +21 -25
  28. data/lib/tinkerforge/bricklet_gps_v2.rb +56 -41
  29. data/lib/tinkerforge/bricklet_hall_effect.rb +13 -13
  30. data/lib/tinkerforge/bricklet_humidity.rb +16 -19
  31. data/lib/tinkerforge/bricklet_industrial_analog_out.rb +13 -12
  32. data/lib/tinkerforge/bricklet_industrial_digital_in_4.rb +15 -15
  33. data/lib/tinkerforge/bricklet_industrial_digital_out_4.rb +12 -12
  34. data/lib/tinkerforge/bricklet_industrial_dual_0_20ma.rb +13 -14
  35. data/lib/tinkerforge/bricklet_industrial_dual_analog_in.rb +16 -17
  36. data/lib/tinkerforge/bricklet_industrial_quad_relay.rb +12 -12
  37. data/lib/tinkerforge/bricklet_io16.rb +18 -19
  38. data/lib/tinkerforge/bricklet_io4.rb +18 -19
  39. data/lib/tinkerforge/bricklet_joystick.rb +18 -23
  40. data/lib/tinkerforge/bricklet_laser_range_finder.rb +26 -29
  41. data/lib/tinkerforge/bricklet_lcd_16x2.rb +14 -15
  42. data/lib/tinkerforge/bricklet_lcd_20x4.rb +18 -19
  43. data/lib/tinkerforge/bricklet_led_strip.rb +20 -20
  44. data/lib/tinkerforge/bricklet_line.rb +11 -12
  45. data/lib/tinkerforge/bricklet_linear_poti.rb +16 -19
  46. data/lib/tinkerforge/bricklet_load_cell.rb +20 -21
  47. data/lib/tinkerforge/bricklet_moisture.rb +13 -14
  48. data/lib/tinkerforge/bricklet_motion_detector.rb +7 -8
  49. data/lib/tinkerforge/bricklet_multi_touch.rb +10 -10
  50. data/lib/tinkerforge/bricklet_nfc_rfid.rb +11 -11
  51. data/lib/tinkerforge/bricklet_oled_128x64.rb +10 -9
  52. data/lib/tinkerforge/bricklet_oled_64x48.rb +10 -9
  53. data/lib/tinkerforge/bricklet_piezo_buzzer.rb +6 -7
  54. data/lib/tinkerforge/bricklet_piezo_speaker.rb +7 -8
  55. data/lib/tinkerforge/bricklet_ptc.rb +23 -26
  56. data/lib/tinkerforge/bricklet_real_time_clock.rb +13 -14
  57. data/lib/tinkerforge/bricklet_remote_switch.rb +12 -12
  58. data/lib/tinkerforge/bricklet_rgb_led.rb +6 -5
  59. data/lib/tinkerforge/bricklet_rotary_encoder.rb +12 -15
  60. data/lib/tinkerforge/bricklet_rotary_poti.rb +16 -19
  61. data/lib/tinkerforge/bricklet_rs232.rb +12 -13
  62. data/lib/tinkerforge/bricklet_rs485.rb +1373 -0
  63. data/lib/tinkerforge/bricklet_segment_display_4x7.rb +8 -8
  64. data/lib/tinkerforge/bricklet_solid_state_relay.rb +8 -8
  65. data/lib/tinkerforge/bricklet_sound_intensity.rb +11 -12
  66. data/lib/tinkerforge/bricklet_temperature.rb +13 -14
  67. data/lib/tinkerforge/bricklet_temperature_ir.rb +18 -21
  68. data/lib/tinkerforge/bricklet_thermocouple.rb +14 -16
  69. data/lib/tinkerforge/bricklet_tilt.rb +8 -8
  70. data/lib/tinkerforge/bricklet_uv_light.rb +11 -12
  71. data/lib/tinkerforge/bricklet_voltage.rb +16 -19
  72. data/lib/tinkerforge/bricklet_voltage_current.rb +25 -30
  73. data/lib/tinkerforge/ip_connection.rb +207 -138
  74. data/lib/tinkerforge/version.rb +1 -1
  75. metadata +3 -2
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-05-11. #
3
+ # This file was automatically generated on 2017-07-27. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.13 #
5
+ # Ruby Bindings Version 2.1.14 #
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 #
@@ -60,7 +60,6 @@ module Tinkerforge
60
60
  FUNCTION_STOP = 18 # :nodoc:
61
61
  FUNCTION_GET_STACK_INPUT_VOLTAGE = 19 # :nodoc:
62
62
  FUNCTION_GET_EXTERNAL_INPUT_VOLTAGE = 20 # :nodoc:
63
- FUNCTION_GET_CURRENT_CONSUMPTION = 21 # :nodoc:
64
63
  FUNCTION_SET_MOTOR_CURRENT = 22 # :nodoc:
65
64
  FUNCTION_GET_MOTOR_CURRENT = 23 # :nodoc:
66
65
  FUNCTION_ENABLE = 24 # :nodoc:
@@ -84,7 +83,12 @@ module Tinkerforge
84
83
  FUNCTION_GET_ALL_DATA = 44 # :nodoc:
85
84
  FUNCTION_SET_ALL_DATA_PERIOD = 45 # :nodoc:
86
85
  FUNCTION_GET_ALL_DATA_PERIOD = 46 # :nodoc:
86
+ FUNCTION_SET_SPITFP_BAUDRATE_CONFIG = 231 # :nodoc:
87
+ FUNCTION_GET_SPITFP_BAUDRATE_CONFIG = 232 # :nodoc:
87
88
  FUNCTION_GET_SEND_TIMEOUT_COUNT = 233 # :nodoc:
89
+ FUNCTION_SET_SPITFP_BAUDRATE = 234 # :nodoc:
90
+ FUNCTION_GET_SPITFP_BAUDRATE = 235 # :nodoc:
91
+ FUNCTION_GET_SPITFP_ERROR_COUNT = 237 # :nodoc:
88
92
  FUNCTION_ENABLE_STATUS_LED = 238 # :nodoc:
89
93
  FUNCTION_DISABLE_STATUS_LED = 239 # :nodoc:
90
94
  FUNCTION_IS_STATUS_LED_ENABLED = 240 # :nodoc:
@@ -173,7 +177,6 @@ module Tinkerforge
173
177
  @response_expected[FUNCTION_STOP] = RESPONSE_EXPECTED_FALSE
174
178
  @response_expected[FUNCTION_GET_STACK_INPUT_VOLTAGE] = RESPONSE_EXPECTED_ALWAYS_TRUE
175
179
  @response_expected[FUNCTION_GET_EXTERNAL_INPUT_VOLTAGE] = RESPONSE_EXPECTED_ALWAYS_TRUE
176
- @response_expected[FUNCTION_GET_CURRENT_CONSUMPTION] = RESPONSE_EXPECTED_ALWAYS_TRUE
177
180
  @response_expected[FUNCTION_SET_MOTOR_CURRENT] = RESPONSE_EXPECTED_FALSE
178
181
  @response_expected[FUNCTION_GET_MOTOR_CURRENT] = RESPONSE_EXPECTED_ALWAYS_TRUE
179
182
  @response_expected[FUNCTION_ENABLE] = RESPONSE_EXPECTED_FALSE
@@ -192,16 +195,17 @@ module Tinkerforge
192
195
  @response_expected[FUNCTION_GET_DRIVER_STATUS] = RESPONSE_EXPECTED_ALWAYS_TRUE
193
196
  @response_expected[FUNCTION_SET_MINIMUM_VOLTAGE] = RESPONSE_EXPECTED_TRUE
194
197
  @response_expected[FUNCTION_GET_MINIMUM_VOLTAGE] = RESPONSE_EXPECTED_ALWAYS_TRUE
195
- @response_expected[CALLBACK_UNDER_VOLTAGE] = RESPONSE_EXPECTED_ALWAYS_FALSE
196
- @response_expected[CALLBACK_POSITION_REACHED] = RESPONSE_EXPECTED_ALWAYS_FALSE
197
198
  @response_expected[FUNCTION_SET_TIME_BASE] = RESPONSE_EXPECTED_FALSE
198
199
  @response_expected[FUNCTION_GET_TIME_BASE] = RESPONSE_EXPECTED_ALWAYS_TRUE
199
200
  @response_expected[FUNCTION_GET_ALL_DATA] = RESPONSE_EXPECTED_ALWAYS_TRUE
200
201
  @response_expected[FUNCTION_SET_ALL_DATA_PERIOD] = RESPONSE_EXPECTED_TRUE
201
202
  @response_expected[FUNCTION_GET_ALL_DATA_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
202
- @response_expected[CALLBACK_ALL_DATA] = RESPONSE_EXPECTED_ALWAYS_FALSE
203
- @response_expected[CALLBACK_NEW_STATE] = RESPONSE_EXPECTED_ALWAYS_FALSE
203
+ @response_expected[FUNCTION_SET_SPITFP_BAUDRATE_CONFIG] = RESPONSE_EXPECTED_FALSE
204
+ @response_expected[FUNCTION_GET_SPITFP_BAUDRATE_CONFIG] = RESPONSE_EXPECTED_ALWAYS_TRUE
204
205
  @response_expected[FUNCTION_GET_SEND_TIMEOUT_COUNT] = RESPONSE_EXPECTED_ALWAYS_TRUE
206
+ @response_expected[FUNCTION_SET_SPITFP_BAUDRATE] = RESPONSE_EXPECTED_FALSE
207
+ @response_expected[FUNCTION_GET_SPITFP_BAUDRATE] = RESPONSE_EXPECTED_ALWAYS_TRUE
208
+ @response_expected[FUNCTION_GET_SPITFP_ERROR_COUNT] = RESPONSE_EXPECTED_ALWAYS_TRUE
205
209
  @response_expected[FUNCTION_ENABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
206
210
  @response_expected[FUNCTION_DISABLE_STATUS_LED] = RESPONSE_EXPECTED_FALSE
207
211
  @response_expected[FUNCTION_IS_STATUS_LED_ENABLED] = RESPONSE_EXPECTED_ALWAYS_TRUE
@@ -214,6 +218,7 @@ module Tinkerforge
214
218
  @callback_formats[CALLBACK_POSITION_REACHED] = 'l'
215
219
  @callback_formats[CALLBACK_ALL_DATA] = 'S l l S S S'
216
220
  @callback_formats[CALLBACK_NEW_STATE] = 'C C'
221
+
217
222
  end
218
223
 
219
224
  # Sets the maximum velocity of the stepper motor in steps per second.
@@ -222,17 +227,17 @@ module Tinkerforge
222
227
  # either BrickSilentStepper#set_target_position, BrickSilentStepper#set_steps, BrickSilentStepper#drive_forward or
223
228
  # BrickSilentStepper#drive_backward.
224
229
  def set_max_velocity(velocity)
225
- send_request(FUNCTION_SET_MAX_VELOCITY, [velocity], 'S', 0, '')
230
+ send_request FUNCTION_SET_MAX_VELOCITY, [velocity], 'S', 0, ''
226
231
  end
227
232
 
228
233
  # Returns the velocity as set by BrickSilentStepper#set_max_velocity.
229
234
  def get_max_velocity
230
- send_request(FUNCTION_GET_MAX_VELOCITY, [], '', 2, 'S')
235
+ send_request FUNCTION_GET_MAX_VELOCITY, [], '', 2, 'S'
231
236
  end
232
237
 
233
238
  # Returns the *current* velocity of the stepper motor in steps per second.
234
239
  def get_current_velocity
235
- send_request(FUNCTION_GET_CURRENT_VELOCITY, [], '', 2, 'S')
240
+ send_request FUNCTION_GET_CURRENT_VELOCITY, [], '', 2, 'S'
236
241
  end
237
242
 
238
243
  # Sets the acceleration and deacceleration of the stepper motor. The values
@@ -248,13 +253,13 @@ module Tinkerforge
248
253
  #
249
254
  # The default value is 1000 for both
250
255
  def set_speed_ramping(acceleration, deacceleration)
251
- send_request(FUNCTION_SET_SPEED_RAMPING, [acceleration, deacceleration], 'S S', 0, '')
256
+ send_request FUNCTION_SET_SPEED_RAMPING, [acceleration, deacceleration], 'S S', 0, ''
252
257
  end
253
258
 
254
259
  # Returns the acceleration and deacceleration as set by
255
260
  # BrickSilentStepper#set_speed_ramping.
256
261
  def get_speed_ramping
257
- send_request(FUNCTION_GET_SPEED_RAMPING, [], '', 4, 'S S')
262
+ send_request FUNCTION_GET_SPEED_RAMPING, [], '', 4, 'S S'
258
263
  end
259
264
 
260
265
  # Executes an active full brake.
@@ -266,14 +271,14 @@ module Tinkerforge
266
271
  #
267
272
  # Call BrickSilentStepper#stop if you just want to stop the motor.
268
273
  def full_brake
269
- send_request(FUNCTION_FULL_BRAKE, [], '', 0, '')
274
+ send_request FUNCTION_FULL_BRAKE, [], '', 0, ''
270
275
  end
271
276
 
272
277
  # Sets the current steps of the internal step counter. This can be used to
273
278
  # set the current position to 0 when some kind of starting position
274
279
  # is reached (e.g. when a CNC machine reaches a corner).
275
280
  def set_current_position(position)
276
- send_request(FUNCTION_SET_CURRENT_POSITION, [position], 'l', 0, '')
281
+ send_request FUNCTION_SET_CURRENT_POSITION, [position], 'l', 0, ''
277
282
  end
278
283
 
279
284
  # Returns the current position of the stepper motor in steps. On startup
@@ -282,7 +287,7 @@ module Tinkerforge
282
287
  # BrickSilentStepper#drive_backward). It also is possible to reset the steps to 0 or
283
288
  # set them to any other desired value with BrickSilentStepper#set_current_position.
284
289
  def get_current_position
285
- send_request(FUNCTION_GET_CURRENT_POSITION, [], '', 4, 'l')
290
+ send_request FUNCTION_GET_CURRENT_POSITION, [], '', 4, 'l'
286
291
  end
287
292
 
288
293
  # Sets the target position of the stepper motor in steps. For example,
@@ -295,12 +300,12 @@ module Tinkerforge
295
300
  # a call of BrickSilentStepper#set_steps with the parameter
296
301
  # (*x* - BrickSilentStepper#get_current_position).
297
302
  def set_target_position(position)
298
- send_request(FUNCTION_SET_TARGET_POSITION, [position], 'l', 0, '')
303
+ send_request FUNCTION_SET_TARGET_POSITION, [position], 'l', 0, ''
299
304
  end
300
305
 
301
306
  # Returns the last target position as set by BrickSilentStepper#set_target_position.
302
307
  def get_target_position
303
- send_request(FUNCTION_GET_TARGET_POSITION, [], '', 4, 'l')
308
+ send_request FUNCTION_GET_TARGET_POSITION, [], '', 4, 'l'
304
309
  end
305
310
 
306
311
  # Sets the number of steps the stepper motor should run. Positive values
@@ -308,12 +313,12 @@ module Tinkerforge
308
313
  # The velocity, acceleration and deacceleration as set by
309
314
  # BrickSilentStepper#set_max_velocity and BrickSilentStepper#set_speed_ramping will be used.
310
315
  def set_steps(steps)
311
- send_request(FUNCTION_SET_STEPS, [steps], 'l', 0, '')
316
+ send_request FUNCTION_SET_STEPS, [steps], 'l', 0, ''
312
317
  end
313
318
 
314
319
  # Returns the last steps as set by BrickSilentStepper#set_steps.
315
320
  def get_steps
316
- send_request(FUNCTION_GET_STEPS, [], '', 4, 'l')
321
+ send_request FUNCTION_GET_STEPS, [], '', 4, 'l'
317
322
  end
318
323
 
319
324
  # Returns the remaining steps of the last call of BrickSilentStepper#set_steps.
@@ -321,7 +326,7 @@ module Tinkerforge
321
326
  # BrickSilentStepper#get_remaining_steps is called after the motor has run for 500 steps,
322
327
  # it will return 1500.
323
328
  def get_remaining_steps
324
- send_request(FUNCTION_GET_REMAINING_STEPS, [], '', 4, 'l')
329
+ send_request FUNCTION_GET_REMAINING_STEPS, [], '', 4, 'l'
325
330
  end
326
331
 
327
332
  # Sets the step resolution from full-step up to 1/256-step.
@@ -338,39 +343,39 @@ module Tinkerforge
338
343
  #
339
344
  # The default is 1/256-step with interpolation on.
340
345
  def set_step_configuration(step_resolution, interpolation)
341
- send_request(FUNCTION_SET_STEP_CONFIGURATION, [step_resolution, interpolation], 'C ?', 0, '')
346
+ send_request FUNCTION_SET_STEP_CONFIGURATION, [step_resolution, interpolation], 'C ?', 0, ''
342
347
  end
343
348
 
344
349
  # Returns the step mode as set by BrickSilentStepper#set_step_configuration.
345
350
  def get_step_configuration
346
- send_request(FUNCTION_GET_STEP_CONFIGURATION, [], '', 2, 'C ?')
351
+ send_request FUNCTION_GET_STEP_CONFIGURATION, [], '', 2, 'C ?'
347
352
  end
348
353
 
349
354
  # Drives the stepper motor forward until BrickSilentStepper#drive_backward or
350
355
  # BrickSilentStepper#stop is called. The velocity, acceleration and deacceleration as
351
356
  # set by BrickSilentStepper#set_max_velocity and BrickSilentStepper#set_speed_ramping will be used.
352
357
  def drive_forward
353
- send_request(FUNCTION_DRIVE_FORWARD, [], '', 0, '')
358
+ send_request FUNCTION_DRIVE_FORWARD, [], '', 0, ''
354
359
  end
355
360
 
356
361
  # Drives the stepper motor backward until BrickSilentStepper#drive_forward or
357
362
  # BrickSilentStepper#stop is triggered. The velocity, acceleration and deacceleration as
358
363
  # set by BrickSilentStepper#set_max_velocity and BrickSilentStepper#set_speed_ramping will be used.
359
364
  def drive_backward
360
- send_request(FUNCTION_DRIVE_BACKWARD, [], '', 0, '')
365
+ send_request FUNCTION_DRIVE_BACKWARD, [], '', 0, ''
361
366
  end
362
367
 
363
368
  # Stops the stepper motor with the deacceleration as set by
364
369
  # BrickSilentStepper#set_speed_ramping.
365
370
  def stop
366
- send_request(FUNCTION_STOP, [], '', 0, '')
371
+ send_request FUNCTION_STOP, [], '', 0, ''
367
372
  end
368
373
 
369
374
  # Returns the stack input voltage in mV. The stack input voltage is the
370
375
  # voltage that is supplied via the stack, i.e. it is given by a
371
376
  # Step-Down or Step-Up Power Supply.
372
377
  def get_stack_input_voltage
373
- send_request(FUNCTION_GET_STACK_INPUT_VOLTAGE, [], '', 2, 'S')
378
+ send_request FUNCTION_GET_STACK_INPUT_VOLTAGE, [], '', 2, 'S'
374
379
  end
375
380
 
376
381
  # Returns the external input voltage in mV. The external input voltage is
@@ -386,12 +391,7 @@ module Tinkerforge
386
391
  # the external connection, it will immediately be driven by the high
387
392
  # stack voltage
388
393
  def get_external_input_voltage
389
- send_request(FUNCTION_GET_EXTERNAL_INPUT_VOLTAGE, [], '', 2, 'S')
390
- end
391
-
392
- # Returns the current consumption of the motor in mA.
393
- def get_current_consumption
394
- send_request(FUNCTION_GET_CURRENT_CONSUMPTION, [], '', 2, 'S')
394
+ send_request FUNCTION_GET_EXTERNAL_INPUT_VOLTAGE, [], '', 2, 'S'
395
395
  end
396
396
 
397
397
  # Sets the current in mA with which the motor will be driven.
@@ -402,29 +402,29 @@ module Tinkerforge
402
402
  # Do not set this value above the specifications of your stepper motor.
403
403
  # Otherwise it may damage your motor.
404
404
  def set_motor_current(current)
405
- send_request(FUNCTION_SET_MOTOR_CURRENT, [current], 'S', 0, '')
405
+ send_request FUNCTION_SET_MOTOR_CURRENT, [current], 'S', 0, ''
406
406
  end
407
407
 
408
408
  # Returns the current as set by BrickSilentStepper#set_motor_current.
409
409
  def get_motor_current
410
- send_request(FUNCTION_GET_MOTOR_CURRENT, [], '', 2, 'S')
410
+ send_request FUNCTION_GET_MOTOR_CURRENT, [], '', 2, 'S'
411
411
  end
412
412
 
413
413
  # Enables the driver chip. The driver parameters can be configured (maximum velocity,
414
414
  # acceleration, etc) before it is enabled.
415
415
  def enable
416
- send_request(FUNCTION_ENABLE, [], '', 0, '')
416
+ send_request FUNCTION_ENABLE, [], '', 0, ''
417
417
  end
418
418
 
419
419
  # Disables the driver chip. The configurations are kept (maximum velocity,
420
420
  # acceleration, etc) but the motor is not driven until it is enabled again.
421
421
  def disable
422
- send_request(FUNCTION_DISABLE, [], '', 0, '')
422
+ send_request FUNCTION_DISABLE, [], '', 0, ''
423
423
  end
424
424
 
425
425
  # Returns *true* if the driver chip is enabled, *false* otherwise.
426
426
  def is_enabled
427
- send_request(FUNCTION_IS_ENABLED, [], '', 1, '?')
427
+ send_request FUNCTION_IS_ENABLED, [], '', 1, '?'
428
428
  end
429
429
 
430
430
  # Sets the basic configuration parameters for the different modes (Stealth, Coolstep, Classic).
@@ -480,12 +480,12 @@ module Tinkerforge
480
480
  # * Classic Threshold: 1000
481
481
  # * High Velocity Shopper Mode: false
482
482
  def set_basic_configuration(standstill_current, motor_run_current, standstill_delay_time, power_down_time, stealth_threshold, coolstep_threshold, classic_threshold, high_velocity_chopper_mode)
483
- send_request(FUNCTION_SET_BASIC_CONFIGURATION, [standstill_current, motor_run_current, standstill_delay_time, power_down_time, stealth_threshold, coolstep_threshold, classic_threshold, high_velocity_chopper_mode], 'S S S S S S S ?', 0, '')
483
+ send_request FUNCTION_SET_BASIC_CONFIGURATION, [standstill_current, motor_run_current, standstill_delay_time, power_down_time, stealth_threshold, coolstep_threshold, classic_threshold, high_velocity_chopper_mode], 'S S S S S S S ?', 0, ''
484
484
  end
485
485
 
486
486
  # Returns the configuration as set by BrickSilentStepper#set_basic_configuration.
487
487
  def get_basic_configuration
488
- send_request(FUNCTION_GET_BASIC_CONFIGURATION, [], '', 15, 'S S S S S S S ?')
488
+ send_request FUNCTION_GET_BASIC_CONFIGURATION, [], '', 15, 'S S S S S S S ?'
489
489
  end
490
490
 
491
491
  # Note: If you don't know what any of this means you can very likely keep all of
@@ -540,12 +540,12 @@ module Tinkerforge
540
540
  # * Comparator Blank Time: 1
541
541
  # * Fast Decay Without Comparator: false
542
542
  def set_spreadcycle_configuration(slow_decay_duration, enable_random_slow_decay, fast_decay_duration, hysteresis_start_value, hysteresis_end_value, sine_wave_offset, chopper_mode, comparator_blank_time, fast_decay_without_comparator)
543
- send_request(FUNCTION_SET_SPREADCYCLE_CONFIGURATION, [slow_decay_duration, enable_random_slow_decay, fast_decay_duration, hysteresis_start_value, hysteresis_end_value, sine_wave_offset, chopper_mode, comparator_blank_time, fast_decay_without_comparator], 'C ? C C c c C C ?', 0, '')
543
+ send_request FUNCTION_SET_SPREADCYCLE_CONFIGURATION, [slow_decay_duration, enable_random_slow_decay, fast_decay_duration, hysteresis_start_value, hysteresis_end_value, sine_wave_offset, chopper_mode, comparator_blank_time, fast_decay_without_comparator], 'C ? C C c c C C ?', 0, ''
544
544
  end
545
545
 
546
546
  # Returns the configuration as set by BrickSilentStepper#set_basic_configuration.
547
547
  def get_spreadcycle_configuration
548
- send_request(FUNCTION_GET_SPREADCYCLE_CONFIGURATION, [], '', 9, 'C ? C C c c C C ?')
548
+ send_request FUNCTION_GET_SPREADCYCLE_CONFIGURATION, [], '', 9, 'C ? C C c c C C ?'
549
549
  end
550
550
 
551
551
  # Note: If you don't know what any of this means you can very likely keep all of
@@ -581,12 +581,12 @@ module Tinkerforge
581
581
  # * Force Symmetric: false
582
582
  # * Freewheel Mode: 0 (Normal)
583
583
  def set_stealth_configuration(enable_stealth, amplitude, gradient, enable_autoscale, force_symmetric, freewheel_mode)
584
- send_request(FUNCTION_SET_STEALTH_CONFIGURATION, [enable_stealth, amplitude, gradient, enable_autoscale, force_symmetric, freewheel_mode], '? C C ? ? C', 0, '')
584
+ send_request FUNCTION_SET_STEALTH_CONFIGURATION, [enable_stealth, amplitude, gradient, enable_autoscale, force_symmetric, freewheel_mode], '? C C ? ? C', 0, ''
585
585
  end
586
586
 
587
587
  # Returns the configuration as set by BrickSilentStepper#set_stealth_configuration.
588
588
  def get_stealth_configuration
589
- send_request(FUNCTION_GET_STEALTH_CONFIGURATION, [], '', 6, '? C C ? ? C')
589
+ send_request FUNCTION_GET_STEALTH_CONFIGURATION, [], '', 6, '? C C ? ? C'
590
590
  end
591
591
 
592
592
  # Note: If you don't know what any of this means you can very likely keep all of
@@ -627,12 +627,12 @@ module Tinkerforge
627
627
  # * Stallguard Threshold Value: 0
628
628
  # * Stallguard Mode: 0
629
629
  def set_coolstep_configuration(minimum_stallguard_value, maximum_stallguard_value, current_up_step_width, current_down_step_width, minimum_current, stallguard_threshold_value, stallguard_mode)
630
- send_request(FUNCTION_SET_COOLSTEP_CONFIGURATION, [minimum_stallguard_value, maximum_stallguard_value, current_up_step_width, current_down_step_width, minimum_current, stallguard_threshold_value, stallguard_mode], 'C C C C C c C', 0, '')
630
+ send_request FUNCTION_SET_COOLSTEP_CONFIGURATION, [minimum_stallguard_value, maximum_stallguard_value, current_up_step_width, current_down_step_width, minimum_current, stallguard_threshold_value, stallguard_mode], 'C C C C C c C', 0, ''
631
631
  end
632
632
 
633
633
  # Returns the configuration as set by BrickSilentStepper#set_coolstep_configuration.
634
634
  def get_coolstep_configuration
635
- send_request(FUNCTION_GET_COOLSTEP_CONFIGURATION, [], '', 7, 'C C C C C c C')
635
+ send_request FUNCTION_GET_COOLSTEP_CONFIGURATION, [], '', 7, 'C C C C C c C'
636
636
  end
637
637
 
638
638
  # Note: If you don't know what any of this means you can very likely keep all of
@@ -654,12 +654,12 @@ module Tinkerforge
654
654
  # * Disable Short To Ground Protection: 0
655
655
  # * Synchronize Phase Frequency: 0
656
656
  def set_misc_configuration(disable_short_to_ground_protection, synchronize_phase_frequency)
657
- send_request(FUNCTION_SET_MISC_CONFIGURATION, [disable_short_to_ground_protection, synchronize_phase_frequency], '? C', 0, '')
657
+ send_request FUNCTION_SET_MISC_CONFIGURATION, [disable_short_to_ground_protection, synchronize_phase_frequency], '? C', 0, ''
658
658
  end
659
659
 
660
660
  # Returns the configuration as set by BrickSilentStepper#set_misc_configuration.
661
661
  def get_misc_configuration
662
- send_request(FUNCTION_GET_MISC_CONFIGURATION, [], '', 2, '? C')
662
+ send_request FUNCTION_GET_MISC_CONFIGURATION, [], '', 2, '? C'
663
663
  end
664
664
 
665
665
  # Returns the current driver status.
@@ -676,7 +676,10 @@ module Tinkerforge
676
676
  #
677
677
  # * Motor Stalled: Is true if a motor stall was detected.
678
678
  #
679
- # * Actual Motor Current: Indicates the actual current control scaling as used in Coolstep mode.
679
+ # * Actual Motor Current: Indicates the actual current control scaling as used in Coolstep mode.
680
+ # The returned value is between 0 and 31. It represents a multiplier of 1/32 to 32/32 of the
681
+ # ``Motor Run Current`` as set by BrickSilentStepper#set_basic_configuration. Example: If a ``Motor Run Current``
682
+ # of 1000mA was set and the returned value is 15, the ``Actual Motor Current`` is 16/32*1000mA = 500mA.
680
683
  #
681
684
  # * Stallguard Result: Indicates the load of the motor. A lower value signals a higher load. Per trial and error
682
685
  # you can find out which value corresponds to a suitable torque for the velocity used in your application.
@@ -687,7 +690,7 @@ module Tinkerforge
687
690
  # * Stealth Voltage Amplitude: Shows the actual PWM scaling. In Stealth mode it can be used to detect motor load and
688
691
  # stall if autoscale is enabled (see BrickSilentStepper#set_stealth_configuration).
689
692
  def get_driver_status
690
- send_request(FUNCTION_GET_DRIVER_STATUS, [], '', 8, 'C C C ? C ? C C')
693
+ send_request FUNCTION_GET_DRIVER_STATUS, [], '', 8, 'C C C ? C ? C C'
691
694
  end
692
695
 
693
696
  # Sets the minimum voltage in mV, below which the CALLBACK_UNDER_VOLTAGE callback
@@ -699,12 +702,12 @@ module Tinkerforge
699
702
  #
700
703
  # The default value is 8V.
701
704
  def set_minimum_voltage(voltage)
702
- send_request(FUNCTION_SET_MINIMUM_VOLTAGE, [voltage], 'S', 0, '')
705
+ send_request FUNCTION_SET_MINIMUM_VOLTAGE, [voltage], 'S', 0, ''
703
706
  end
704
707
 
705
708
  # Returns the minimum voltage as set by BrickSilentStepper#set_minimum_voltage.
706
709
  def get_minimum_voltage
707
- send_request(FUNCTION_GET_MINIMUM_VOLTAGE, [], '', 2, 'S')
710
+ send_request FUNCTION_GET_MINIMUM_VOLTAGE, [], '', 2, 'S'
708
711
  end
709
712
 
710
713
  # Sets the time base of the velocity and the acceleration of the Silent Stepper
@@ -716,32 +719,75 @@ module Tinkerforge
716
719
  #
717
720
  # The default value is 1.
718
721
  def set_time_base(time_base)
719
- send_request(FUNCTION_SET_TIME_BASE, [time_base], 'L', 0, '')
722
+ send_request FUNCTION_SET_TIME_BASE, [time_base], 'L', 0, ''
720
723
  end
721
724
 
722
725
  # Returns the time base as set by BrickSilentStepper#set_time_base.
723
726
  def get_time_base
724
- send_request(FUNCTION_GET_TIME_BASE, [], '', 4, 'L')
727
+ send_request FUNCTION_GET_TIME_BASE, [], '', 4, 'L'
725
728
  end
726
729
 
727
730
  # Returns the following parameters: The current velocity,
728
731
  # the current position, the remaining steps, the stack voltage, the external
729
732
  # voltage and the current consumption of the stepper motor.
730
733
  #
734
+ # The current consumption is calculated by multiplying the ``Actual Motor Current``
735
+ # value (see BrickSilentStepper#set_basic_configuration) with the ``Motor Run Current``
736
+ # (see BrickSilentStepper#get_driver_status). This is an internal calculation of the
737
+ # driver, not an independent external measurement.
738
+ #
739
+ # The current consumption calculation was broken up to firmware 2.0.1, it is fixed
740
+ # since firmware 2.0.2.
741
+ #
731
742
  # There is also a callback for this function, see CALLBACK_ALL_DATA callback.
732
743
  def get_all_data
733
- send_request(FUNCTION_GET_ALL_DATA, [], '', 16, 'S l l S S S')
744
+ send_request FUNCTION_GET_ALL_DATA, [], '', 16, 'S l l S S S'
734
745
  end
735
746
 
736
747
  # Sets the period in ms with which the CALLBACK_ALL_DATA callback is triggered
737
748
  # periodically. A value of 0 turns the callback off.
738
749
  def set_all_data_period(period)
739
- send_request(FUNCTION_SET_ALL_DATA_PERIOD, [period], 'L', 0, '')
750
+ send_request FUNCTION_SET_ALL_DATA_PERIOD, [period], 'L', 0, ''
740
751
  end
741
752
 
742
753
  # Returns the period as set by BrickSilentStepper#set_all_data_period.
743
754
  def get_all_data_period
744
- send_request(FUNCTION_GET_ALL_DATA_PERIOD, [], '', 4, 'L')
755
+ send_request FUNCTION_GET_ALL_DATA_PERIOD, [], '', 4, 'L'
756
+ end
757
+
758
+ # The SPITF protocol can be used with a dynamic baudrate. If the dynamic baudrate is
759
+ # enabled, the Brick will try to adapt the baudrate for the communication
760
+ # between Bricks and Bricklets according to the amount of data that is transferred.
761
+ #
762
+ # The baudrate will be increased exponetially if lots of data is send/receieved and
763
+ # decreased linearly if little data is send/received.
764
+ #
765
+ # This lowers the baudrate in applications where little data is transferred (e.g.
766
+ # a weather station) and increases the robustness. If there is lots of data to transfer
767
+ # (e.g. Thermal Imaging Bricklet) it automatically increases the baudrate as needed.
768
+ #
769
+ # In cases where some data has to transferred as fast as possible every few seconds
770
+ # (e.g. RS485 Bricklet with a high baudrate but small payload) you may want to turn
771
+ # the dynamic baudrate off to get the highest possible performance.
772
+ #
773
+ # The maximum value of the baudrate can be set per port with the function
774
+ # BrickSilentStepper#set_spitfp_baudrate. If the dynamic baudrate is disabled, the baudrate
775
+ # as set by BrickSilentStepper#set_spitfp_baudrate will be used statically.
776
+ #
777
+ # The minimum dynamic baudrate has a value range of 400000 to 2000000 baud.
778
+ #
779
+ # By default dynamic baudrate is enabled and the minimum dynamic baudrate is 400000.
780
+ #
781
+ # .. versionadded:: 2.0.4$nbsp;(Firmware)
782
+ def set_spitfp_baudrate_config(enable_dynamic_baudrate, minimum_dynamic_baudrate)
783
+ send_request FUNCTION_SET_SPITFP_BAUDRATE_CONFIG, [enable_dynamic_baudrate, minimum_dynamic_baudrate], '? L', 0, ''
784
+ end
785
+
786
+ # Returns the baudrate config, see BrickSilentStepper#set_spitfp_baudrate_config.
787
+ #
788
+ # .. versionadded:: 2.0.4$nbsp;(Firmware)
789
+ def get_spitfp_baudrate_config
790
+ send_request FUNCTION_GET_SPITFP_BAUDRATE_CONFIG, [], '', 5, '? L'
745
791
  end
746
792
 
747
793
  # Returns the timeout count for the different communication methods.
@@ -751,7 +797,47 @@ module Tinkerforge
751
797
  # This function is mostly used for debugging during development, in normal operation
752
798
  # the counters should nearly always stay at 0.
753
799
  def get_send_timeout_count(communication_method)
754
- send_request(FUNCTION_GET_SEND_TIMEOUT_COUNT, [communication_method], 'C', 4, 'L')
800
+ send_request FUNCTION_GET_SEND_TIMEOUT_COUNT, [communication_method], 'C', 4, 'L'
801
+ end
802
+
803
+ # Sets the baudrate for a specific Bricklet port ('a' - 'd'). The
804
+ # baudrate can be in the range 400000 to 2000000.
805
+ #
806
+ # If you want to increase the throughput of Bricklets you can increase
807
+ # the baudrate. If you get a high error count because of high
808
+ # interference (see BrickSilentStepper#get_spitfp_error_count) you can decrease the
809
+ # baudrate.
810
+ #
811
+ # If the dynamic baudrate feature is enabled, the baudrate set by this
812
+ # function corresponds to the maximum baudrate (see BrickSilentStepper#set_spitfp_baudrate_config).
813
+ #
814
+ # Regulatory testing is done with the default baudrate. If CE compatability
815
+ # or similar is necessary in you applications we recommend to not change
816
+ # the baudrate.
817
+ #
818
+ # The default baudrate for all ports is 1400000.
819
+ def set_spitfp_baudrate(bricklet_port, baudrate)
820
+ send_request FUNCTION_SET_SPITFP_BAUDRATE, [bricklet_port, baudrate], 'k L', 0, ''
821
+ end
822
+
823
+ # Returns the baudrate for a given Bricklet port, see BrickSilentStepper#set_spitfp_baudrate.
824
+ def get_spitfp_baudrate(bricklet_port)
825
+ send_request FUNCTION_GET_SPITFP_BAUDRATE, [bricklet_port], 'k', 4, 'L'
826
+ end
827
+
828
+ # Returns the error count for the communication between Brick and Bricklet.
829
+ #
830
+ # The errors are divided into
831
+ #
832
+ # * ACK checksum errors,
833
+ # * message checksum errors,
834
+ # * frameing errors and
835
+ # * overflow errors.
836
+ #
837
+ # The errors counts are for errors that occur on the Brick side. All
838
+ # Bricklets have a similar function that returns the errors on the Bricklet side.
839
+ def get_spitfp_error_count(bricklet_port)
840
+ send_request FUNCTION_GET_SPITFP_ERROR_COUNT, [bricklet_port], 'k', 16, 'L L L L'
755
841
  end
756
842
 
757
843
  # Enables the status LED.
@@ -761,7 +847,7 @@ module Tinkerforge
761
847
  #
762
848
  # The default state is enabled.
763
849
  def enable_status_led
764
- send_request(FUNCTION_ENABLE_STATUS_LED, [], '', 0, '')
850
+ send_request FUNCTION_ENABLE_STATUS_LED, [], '', 0, ''
765
851
  end
766
852
 
767
853
  # Disables the status LED.
@@ -771,12 +857,12 @@ module Tinkerforge
771
857
  #
772
858
  # The default state is enabled.
773
859
  def disable_status_led
774
- send_request(FUNCTION_DISABLE_STATUS_LED, [], '', 0, '')
860
+ send_request FUNCTION_DISABLE_STATUS_LED, [], '', 0, ''
775
861
  end
776
862
 
777
863
  # Returns *true* if the status LED is enabled, *false* otherwise.
778
864
  def is_status_led_enabled
779
- send_request(FUNCTION_IS_STATUS_LED_ENABLED, [], '', 1, '?')
865
+ send_request FUNCTION_IS_STATUS_LED_ENABLED, [], '', 1, '?'
780
866
  end
781
867
 
782
868
  # Returns the firmware and protocol version and the name of the Bricklet for a
@@ -785,7 +871,7 @@ module Tinkerforge
785
871
  # This functions sole purpose is to allow automatic flashing of v1.x.y Bricklet
786
872
  # plugins.
787
873
  def get_protocol1_bricklet_name(port)
788
- send_request(FUNCTION_GET_PROTOCOL1_BRICKLET_NAME, [port], 'k', 44, 'C C3 Z40')
874
+ send_request FUNCTION_GET_PROTOCOL1_BRICKLET_NAME, [port], 'k', 44, 'C C3 Z40'
789
875
  end
790
876
 
791
877
  # Returns the temperature in °C/10 as measured inside the microcontroller. The
@@ -795,7 +881,7 @@ module Tinkerforge
795
881
  # accuracy of +-15%. Practically it is only useful as an indicator for
796
882
  # temperature changes.
797
883
  def get_chip_temperature
798
- send_request(FUNCTION_GET_CHIP_TEMPERATURE, [], '', 2, 's')
884
+ send_request FUNCTION_GET_CHIP_TEMPERATURE, [], '', 2, 's'
799
885
  end
800
886
 
801
887
  # Calling this function will reset the Brick. Calling this function
@@ -805,7 +891,7 @@ module Tinkerforge
805
891
  # calling functions on the existing ones will result in
806
892
  # undefined behavior!
807
893
  def reset
808
- send_request(FUNCTION_RESET, [], '', 0, '')
894
+ send_request FUNCTION_RESET, [], '', 0, ''
809
895
  end
810
896
 
811
897
  # Returns the UID, the UID where the Brick is connected to,
@@ -817,7 +903,7 @@ module Tinkerforge
817
903
  # The device identifier numbers can be found :ref:`here <device_identifier>`.
818
904
  # |device_identifier_constant|
819
905
  def get_identity
820
- send_request(FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S')
906
+ send_request FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S'
821
907
  end
822
908
 
823
909
  # Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.