tinkerforge 2.0.13 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/lib/tinkerforge/brick_dc.rb +4 -11
  2. data/lib/tinkerforge/brick_imu.rb +17 -16
  3. data/lib/tinkerforge/brick_master.rb +96 -86
  4. data/lib/tinkerforge/brick_servo.rb +5 -12
  5. data/lib/tinkerforge/brick_stepper.rb +4 -29
  6. data/lib/tinkerforge/bricklet_ambient_light.rb +4 -5
  7. data/lib/tinkerforge/bricklet_analog_in.rb +4 -5
  8. data/lib/tinkerforge/bricklet_analog_out.rb +4 -5
  9. data/lib/tinkerforge/bricklet_barometer.rb +4 -9
  10. data/lib/tinkerforge/bricklet_current12.rb +4 -5
  11. data/lib/tinkerforge/bricklet_current25.rb +4 -5
  12. data/lib/tinkerforge/bricklet_distance_ir.rb +4 -5
  13. data/lib/tinkerforge/bricklet_distance_us.rb +4 -5
  14. data/lib/tinkerforge/bricklet_dual_button.rb +4 -7
  15. data/lib/tinkerforge/bricklet_dual_relay.rb +4 -13
  16. data/lib/tinkerforge/bricklet_gps.rb +4 -5
  17. data/lib/tinkerforge/bricklet_hall_effect.rb +6 -5
  18. data/lib/tinkerforge/bricklet_humidity.rb +4 -5
  19. data/lib/tinkerforge/bricklet_industrial_digital_in_4.rb +8 -6
  20. data/lib/tinkerforge/bricklet_industrial_digital_out_4.rb +7 -11
  21. data/lib/tinkerforge/bricklet_industrial_dual_0_20ma.rb +4 -5
  22. data/lib/tinkerforge/bricklet_industrial_quad_relay.rb +9 -13
  23. data/lib/tinkerforge/bricklet_io16.rb +15 -21
  24. data/lib/tinkerforge/bricklet_io4.rb +11 -17
  25. data/lib/tinkerforge/bricklet_joystick.rb +4 -5
  26. data/lib/tinkerforge/bricklet_lcd_16x2.rb +4 -5
  27. data/lib/tinkerforge/bricklet_lcd_20x4.rb +4 -5
  28. data/lib/tinkerforge/bricklet_led_strip.rb +6 -5
  29. data/lib/tinkerforge/bricklet_line.rb +4 -5
  30. data/lib/tinkerforge/bricklet_linear_poti.rb +4 -5
  31. data/lib/tinkerforge/bricklet_moisture.rb +4 -5
  32. data/lib/tinkerforge/bricklet_motion_detector.rb +4 -5
  33. data/lib/tinkerforge/bricklet_multi_touch.rb +4 -5
  34. data/lib/tinkerforge/bricklet_piezo_buzzer.rb +4 -5
  35. data/lib/tinkerforge/bricklet_piezo_speaker.rb +4 -5
  36. data/lib/tinkerforge/bricklet_ptc.rb +4 -5
  37. data/lib/tinkerforge/bricklet_remote_switch.rb +4 -5
  38. data/lib/tinkerforge/bricklet_rotary_encoder.rb +4 -5
  39. data/lib/tinkerforge/bricklet_rotary_poti.rb +4 -5
  40. data/lib/tinkerforge/bricklet_segment_display_4x7.rb +5 -6
  41. data/lib/tinkerforge/bricklet_sound_intensity.rb +4 -5
  42. data/lib/tinkerforge/bricklet_temperature.rb +4 -5
  43. data/lib/tinkerforge/bricklet_temperature_ir.rb +4 -5
  44. data/lib/tinkerforge/bricklet_tilt.rb +4 -5
  45. data/lib/tinkerforge/bricklet_voltage.rb +4 -5
  46. data/lib/tinkerforge/bricklet_voltage_current.rb +4 -5
  47. data/lib/tinkerforge/ip_connection.rb +73 -6
  48. data/lib/tinkerforge/version.rb +1 -1
  49. metadata +2 -2
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2013-12-19. #
3
+ # This file was automatically generated on 2014-04-08. #
4
4
  # #
5
- # Bindings Version 2.0.13 #
5
+ # Bindings Version 2.1.0 #
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 #
@@ -309,8 +309,6 @@ module Tinkerforge
309
309
  #
310
310
  # This functions sole purpose is to allow automatic flashing of v1.x.y Bricklet
311
311
  # plugins.
312
- #
313
- # .. versionadded:: 2.0.0~(Firmware)
314
312
  def get_protocol1_bricklet_name(port)
315
313
  send_request(FUNCTION_GET_PROTOCOL1_BRICKLET_NAME, [port], 'k', 44, 'C C3 Z40')
316
314
  end
@@ -321,8 +319,6 @@ module Tinkerforge
321
319
  # The temperature is only proportional to the real temperature and it has an
322
320
  # accuracy of +-15%. Practically it is only useful as an indicator for
323
321
  # temperature changes.
324
- #
325
- # .. versionadded:: 1.1.3~(Firmware)
326
322
  def get_chip_temperature
327
323
  send_request(FUNCTION_GET_CHIP_TEMPERATURE, [], '', 2, 's')
328
324
  end
@@ -333,8 +329,6 @@ module Tinkerforge
333
329
  # After a reset you have to create new device objects,
334
330
  # calling functions on the existing ones will result in
335
331
  # undefined behavior!
336
- #
337
- # .. versionadded:: 1.1.3~(Firmware)
338
332
  def reset
339
333
  send_request(FUNCTION_RESET, [], '', 0, '')
340
334
  end
@@ -345,9 +339,8 @@ module Tinkerforge
345
339
  #
346
340
  # The position can be '0'-'8' (stack position).
347
341
  #
348
- # The device identifiers can be found :ref:`here <device_identifier>`.
349
- #
350
- # .. versionadded:: 2.0.0~(Firmware)
342
+ # The device identifier numbers can be found :ref:`here <device_identifier>`.
343
+ # |device_identifier_constant|
351
344
  def get_identity
352
345
  send_request(FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S')
353
346
  end
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2013-12-19. #
3
+ # This file was automatically generated on 2014-04-08. #
4
4
  # #
5
- # Bindings Version 2.0.13 #
5
+ # Bindings Version 2.1.0 #
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 #
@@ -172,7 +172,7 @@ module Tinkerforge
172
172
  end
173
173
 
174
174
  # Returns the calibrated angular velocity from the gyroscope for the
175
- # x, y and z axis in °/17.5s (you have to divide by 17.5 to
175
+ # x, y and z axis in °/14.375s (you have to divide by 14.375 to
176
176
  # get the value in °/s).
177
177
  #
178
178
  # If you want to get the angular velocity periodically, it is recommended
@@ -215,13 +215,21 @@ module Tinkerforge
215
215
  #
216
216
  # You can go from quaternions to Euler angles with the following formula::
217
217
  #
218
- # roll = atan2(2*y*w - 2*x*z, 1 - 2*y*y - 2*z*z)
219
- # pitch = atan2(2*x*w - 2*y*z, 1 - 2*x*x - 2*z*z)
220
- # yaw = asin(2*x*y + 2*z*w)
218
+ # xAngle = atan2(2*y*w - 2*x*z, 1 - 2*y*y - 2*z*z)
219
+ # yAngle = atan2(2*x*w - 2*y*z, 1 - 2*x*x - 2*z*z)
220
+ # zAngle = asin(2*x*y + 2*z*w)
221
221
  #
222
222
  # This process is not reversible, because of the
223
223
  # `gimbal lock <http://en.wikipedia.org/wiki/Gimbal_lock>`__.
224
224
  #
225
+ # It is also possible to calculate independent angles. You can calculate
226
+ # yaw, pitch and roll in a right-handed vehicle coordinate system according to DIN70000
227
+ # with::
228
+ #
229
+ # yaw = atan2(2*x*y + 2*w*z, w*w + x*x - y*y - z*z)
230
+ # pitch = -asin(2*w*y - 2*x*z)
231
+ # roll = -atan2(2*y*z + 2*w*x, -w*w + x*x + y*y - z*z))
232
+ #
225
233
  # Converting the quaternions to an OpenGL transformation matrix is
226
234
  # possible with the following formula::
227
235
  #
@@ -337,7 +345,7 @@ module Tinkerforge
337
345
  #
338
346
  # The gyroscope bias is highly dependent on the temperature, so you have to
339
347
  # calibrate the bias two times with different temperatures. The values ``xl``,
340
- # ``yl``, ``zl `` and ``temp l`` are the bias for ``x``, ``y``, ``z`` and the
348
+ # ``yl``, ``zl`` and ``temp l`` are the bias for ``x``, ``y``, ``z`` and the
341
349
  # corresponding temperature for a low temperature. The values ``xh``, ``yh``,
342
350
  # ``zh`` and ``temp h`` are the same for a high temperatures. The temperature
343
351
  # difference should be at least 5°C. If you have a temperature where the
@@ -463,8 +471,6 @@ module Tinkerforge
463
471
  #
464
472
  # This functions sole purpose is to allow automatic flashing of v1.x.y Bricklet
465
473
  # plugins.
466
- #
467
- # .. versionadded:: 2.0.0~(Firmware)
468
474
  def get_protocol1_bricklet_name(port)
469
475
  send_request(FUNCTION_GET_PROTOCOL1_BRICKLET_NAME, [port], 'k', 44, 'C C3 Z40')
470
476
  end
@@ -475,8 +481,6 @@ module Tinkerforge
475
481
  # The temperature is only proportional to the real temperature and it has an
476
482
  # accuracy of +-15%. Practically it is only useful as an indicator for
477
483
  # temperature changes.
478
- #
479
- # .. versionadded:: 1.0.7~(Firmware)
480
484
  def get_chip_temperature
481
485
  send_request(FUNCTION_GET_CHIP_TEMPERATURE, [], '', 2, 's')
482
486
  end
@@ -487,8 +491,6 @@ module Tinkerforge
487
491
  # After a reset you have to create new device objects,
488
492
  # calling functions on the existing ones will result in
489
493
  # undefined behavior!
490
- #
491
- # .. versionadded:: 1.0.7~(Firmware)
492
494
  def reset
493
495
  send_request(FUNCTION_RESET, [], '', 0, '')
494
496
  end
@@ -499,9 +501,8 @@ module Tinkerforge
499
501
  #
500
502
  # The position can be '0'-'8' (stack position).
501
503
  #
502
- # The device identifiers can be found :ref:`here <device_identifier>`.
503
- #
504
- # .. versionadded:: 2.0.0~(Firmware)
504
+ # The device identifier numbers can be found :ref:`here <device_identifier>`.
505
+ # |device_identifier_constant|
505
506
  def get_identity
506
507
  send_request(FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S')
507
508
  end
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2013-12-19. #
3
+ # This file was automatically generated on 2014-04-08. #
4
4
  # #
5
- # Bindings Version 2.0.13 #
5
+ # Bindings Version 2.1.0 #
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 #
@@ -138,6 +138,12 @@ module Tinkerforge
138
138
  FUNCTION_GET_ETHERNET_STATUS = 68 # :nodoc:
139
139
  FUNCTION_SET_ETHERNET_HOSTNAME = 69 # :nodoc:
140
140
  FUNCTION_SET_ETHERNET_MAC_ADDRESS = 70 # :nodoc:
141
+ FUNCTION_SET_ETHERNET_WEBSOCKET_CONFIGURATION = 71 # :nodoc:
142
+ FUNCTION_GET_ETHERNET_WEBSOCKET_CONFIGURATION = 72 # :nodoc:
143
+ FUNCTION_SET_ETHERNET_AUTHENTICATION_SECRET = 73 # :nodoc:
144
+ FUNCTION_GET_ETHERNET_AUTHENTICATION_SECRET = 74 # :nodoc:
145
+ FUNCTION_SET_WIFI_AUTHENTICATION_SECRET = 75 # :nodoc:
146
+ FUNCTION_GET_WIFI_AUTHENTICATION_SECRET = 76 # :nodoc:
141
147
  FUNCTION_GET_PROTOCOL1_BRICKLET_NAME = 241 # :nodoc:
142
148
  FUNCTION_GET_CHIP_TEMPERATURE = 242 # :nodoc:
143
149
  FUNCTION_RESET = 243 # :nodoc:
@@ -196,7 +202,7 @@ module Tinkerforge
196
202
  def initialize(uid, ipcon)
197
203
  super uid, ipcon
198
204
 
199
- @api_version = [2, 0, 2]
205
+ @api_version = [2, 0, 3]
200
206
 
201
207
  @response_expected[FUNCTION_GET_STACK_VOLTAGE] = RESPONSE_EXPECTED_ALWAYS_TRUE
202
208
  @response_expected[FUNCTION_GET_STACK_CURRENT] = RESPONSE_EXPECTED_ALWAYS_TRUE
@@ -268,6 +274,12 @@ module Tinkerforge
268
274
  @response_expected[FUNCTION_GET_ETHERNET_STATUS] = RESPONSE_EXPECTED_ALWAYS_TRUE
269
275
  @response_expected[FUNCTION_SET_ETHERNET_HOSTNAME] = RESPONSE_EXPECTED_FALSE
270
276
  @response_expected[FUNCTION_SET_ETHERNET_MAC_ADDRESS] = RESPONSE_EXPECTED_FALSE
277
+ @response_expected[FUNCTION_SET_ETHERNET_WEBSOCKET_CONFIGURATION] = RESPONSE_EXPECTED_FALSE
278
+ @response_expected[FUNCTION_GET_ETHERNET_WEBSOCKET_CONFIGURATION] = RESPONSE_EXPECTED_ALWAYS_TRUE
279
+ @response_expected[FUNCTION_SET_ETHERNET_AUTHENTICATION_SECRET] = RESPONSE_EXPECTED_FALSE
280
+ @response_expected[FUNCTION_GET_ETHERNET_AUTHENTICATION_SECRET] = RESPONSE_EXPECTED_ALWAYS_TRUE
281
+ @response_expected[FUNCTION_SET_WIFI_AUTHENTICATION_SECRET] = RESPONSE_EXPECTED_FALSE
282
+ @response_expected[FUNCTION_GET_WIFI_AUTHENTICATION_SECRET] = RESPONSE_EXPECTED_ALWAYS_TRUE
271
283
  @response_expected[FUNCTION_GET_PROTOCOL1_BRICKLET_NAME] = RESPONSE_EXPECTED_ALWAYS_TRUE
272
284
  @response_expected[FUNCTION_GET_CHIP_TEMPERATURE] = RESPONSE_EXPECTED_ALWAYS_TRUE
273
285
  @response_expected[FUNCTION_RESET] = RESPONSE_EXPECTED_FALSE
@@ -320,8 +332,6 @@ module Tinkerforge
320
332
  end
321
333
 
322
334
  # Returns *true* if a Chibi Extension is available to be used by the Master Brick.
323
- #
324
- # .. versionadded:: 1.1.0~(Firmware)
325
335
  def is_chibi_present
326
336
  send_request(FUNCTION_IS_CHIBI_PRESENT, [], '', 1, '?')
327
337
  end
@@ -331,15 +341,11 @@ module Tinkerforge
331
341
  # It is possible to set the address with the Brick Viewer and it will be
332
342
  # saved in the EEPROM of the Chibi Extension, it does not
333
343
  # have to be set on every startup.
334
- #
335
- # .. versionadded:: 1.1.0~(Firmware)
336
344
  def set_chibi_address(address)
337
345
  send_request(FUNCTION_SET_CHIBI_ADDRESS, [address], 'C', 0, '')
338
346
  end
339
347
 
340
348
  # Returns the address as set by BrickMaster#set_chibi_address.
341
- #
342
- # .. versionadded:: 1.1.0~(Firmware)
343
349
  def get_chibi_address
344
350
  send_request(FUNCTION_GET_CHIBI_ADDRESS, [], '', 1, 'C')
345
351
  end
@@ -350,22 +356,18 @@ module Tinkerforge
350
356
  # It is possible to set the address with the Brick Viewer and it will be
351
357
  # saved in the EEPROM of the Chibi Extension, it does not
352
358
  # have to be set on every startup.
353
- #
354
- # .. versionadded:: 1.1.0~(Firmware)
355
359
  def set_chibi_master_address(address)
356
360
  send_request(FUNCTION_SET_CHIBI_MASTER_ADDRESS, [address], 'C', 0, '')
357
361
  end
358
362
 
359
363
  # Returns the address as set by BrickMaster#set_chibi_master_address.
360
- #
361
- # .. versionadded:: 1.1.0~(Firmware)
362
364
  def get_chibi_master_address
363
365
  send_request(FUNCTION_GET_CHIBI_MASTER_ADDRESS, [], '', 1, 'C')
364
366
  end
365
367
 
366
368
  # Sets up to 254 slave addresses. Valid addresses are in range 1-255. 0 has a
367
369
  # special meaning, it is used as list terminator and not allowed as normal slave
368
- # address. The address numeration (via ``num`` parameter) has to be used
370
+ # address. The address numeration (via num parameter) has to be used
369
371
  # ascending from 0. For example: If you use the Chibi Extension in Master mode
370
372
  # (i.e. the stack has an USB connection) and you want to talk to three other
371
373
  # Chibi stacks with the slave addresses 17, 23, and 42, you should call with
@@ -378,24 +380,18 @@ module Tinkerforge
378
380
  #
379
381
  # The slave addresses will be saved in the EEPROM of the Chibi Extension, they
380
382
  # don't have to be set on every startup.
381
- #
382
- # .. versionadded:: 1.1.0~(Firmware)
383
383
  def set_chibi_slave_address(num, address)
384
384
  send_request(FUNCTION_SET_CHIBI_SLAVE_ADDRESS, [num, address], 'C C', 0, '')
385
385
  end
386
386
 
387
- # Returns the slave address for a given ``num`` as set by
387
+ # Returns the slave address for a given num as set by
388
388
  # BrickMaster#set_chibi_slave_address.
389
- #
390
- # .. versionadded:: 1.1.0~(Firmware)
391
389
  def get_chibi_slave_address(num)
392
390
  send_request(FUNCTION_GET_CHIBI_SLAVE_ADDRESS, [num], 'C', 1, 'C')
393
391
  end
394
392
 
395
393
  # Returns the signal strength in dBm. The signal strength updates every time a
396
394
  # packet is received.
397
- #
398
- # .. versionadded:: 1.1.0~(Firmware)
399
395
  def get_chibi_signal_strength
400
396
  send_request(FUNCTION_GET_CHIBI_SIGNAL_STRENGTH, [], '', 1, 'C')
401
397
  end
@@ -404,8 +400,6 @@ module Tinkerforge
404
400
  # communication. If these errors start rising, it is likely that either the
405
401
  # distance between two Chibi stacks is becoming too big or there are
406
402
  # interferences.
407
- #
408
- # .. versionadded:: 1.1.0~(Firmware)
409
403
  def get_chibi_error_log
410
404
  send_request(FUNCTION_GET_CHIBI_ERROR_LOG, [], '', 8, 'S S S S')
411
405
  end
@@ -422,15 +416,11 @@ module Tinkerforge
422
416
  # It is possible to set the frequency with the Brick Viewer and it will be
423
417
  # saved in the EEPROM of the Chibi Extension, it does not
424
418
  # have to be set on every startup.
425
- #
426
- # .. versionadded:: 1.1.0~(Firmware)
427
419
  def set_chibi_frequency(frequency)
428
420
  send_request(FUNCTION_SET_CHIBI_FREQUENCY, [frequency], 'C', 0, '')
429
421
  end
430
422
 
431
423
  # Returns the frequency value as set by BrickMaster#set_chibi_frequency.
432
- #
433
- # .. versionadded:: 1.1.0~(Firmware)
434
424
  def get_chibi_frequency
435
425
  send_request(FUNCTION_GET_CHIBI_FREQUENCY, [], '', 1, 'C')
436
426
  end
@@ -448,22 +438,16 @@ module Tinkerforge
448
438
  # It is possible to set the channel with the Brick Viewer and it will be
449
439
  # saved in the EEPROM of the Chibi Extension, it does not
450
440
  # have to be set on every startup.
451
- #
452
- # .. versionadded:: 1.1.0~(Firmware)
453
441
  def set_chibi_channel(channel)
454
442
  send_request(FUNCTION_SET_CHIBI_CHANNEL, [channel], 'C', 0, '')
455
443
  end
456
444
 
457
445
  # Returns the channel as set by BrickMaster#set_chibi_channel.
458
- #
459
- # .. versionadded:: 1.1.0~(Firmware)
460
446
  def get_chibi_channel
461
447
  send_request(FUNCTION_GET_CHIBI_CHANNEL, [], '', 1, 'C')
462
448
  end
463
449
 
464
450
  # Returns *true* if a RS485 Extension is available to be used by the Master Brick.
465
- #
466
- # .. versionadded:: 1.2.0~(Firmware)
467
451
  def is_rs485_present
468
452
  send_request(FUNCTION_IS_RS485_PRESENT, [], '', 1, '?')
469
453
  end
@@ -476,15 +460,11 @@ module Tinkerforge
476
460
  # It is possible to set the address with the Brick Viewer and it will be
477
461
  # saved in the EEPROM of the RS485 Extension, it does not
478
462
  # have to be set on every startup.
479
- #
480
- # .. versionadded:: 1.2.0~(Firmware)
481
463
  def set_rs485_address(address)
482
464
  send_request(FUNCTION_SET_RS485_ADDRESS, [address], 'C', 0, '')
483
465
  end
484
466
 
485
467
  # Returns the address as set by BrickMaster#set_rs485_address.
486
- #
487
- # .. versionadded:: 1.2.0~(Firmware)
488
468
  def get_rs485_address
489
469
  send_request(FUNCTION_GET_RS485_ADDRESS, [], '', 1, 'C')
490
470
  end
@@ -504,16 +484,12 @@ module Tinkerforge
504
484
  #
505
485
  # The slave addresses will be saved in the EEPROM of the Chibi Extension, they
506
486
  # don't have to be set on every startup.
507
- #
508
- # .. versionadded:: 1.2.0~(Firmware)
509
487
  def set_rs485_slave_address(num, address)
510
488
  send_request(FUNCTION_SET_RS485_SLAVE_ADDRESS, [num, address], 'C C', 0, '')
511
489
  end
512
490
 
513
491
  # Returns the slave address for a given ``num`` as set by
514
492
  # BrickMaster#set_rs485_slave_address.
515
- #
516
- # .. versionadded:: 1.2.0~(Firmware)
517
493
  def get_rs485_slave_address(num)
518
494
  send_request(FUNCTION_GET_RS485_SLAVE_ADDRESS, [num], 'C', 1, 'C')
519
495
  end
@@ -522,8 +498,6 @@ module Tinkerforge
522
498
  # If this counter starts rising, it is likely that the distance
523
499
  # between the RS485 nodes is too big or there is some kind of
524
500
  # interference.
525
- #
526
- # .. versionadded:: 1.2.0~(Firmware)
527
501
  def get_rs485_error_log
528
502
  send_request(FUNCTION_GET_RS485_ERROR_LOG, [], '', 2, 'S')
529
503
  end
@@ -540,22 +514,16 @@ module Tinkerforge
540
514
  #
541
515
  # The values are stored in the EEPROM and only applied on startup. That means
542
516
  # you have to restart the Master Brick after configuration.
543
- #
544
- # .. versionadded:: 1.2.0~(Firmware)
545
517
  def set_rs485_configuration(speed, parity, stopbits)
546
518
  send_request(FUNCTION_SET_RS485_CONFIGURATION, [speed, parity, stopbits], 'L k C', 0, '')
547
519
  end
548
520
 
549
521
  # Returns the configuration as set by BrickMaster#set_rs485_configuration.
550
- #
551
- # .. versionadded:: 1.2.0~(Firmware)
552
522
  def get_rs485_configuration
553
523
  send_request(FUNCTION_GET_RS485_CONFIGURATION, [], '', 6, 'L k C')
554
524
  end
555
525
 
556
526
  # Returns *true* if a WIFI Extension is available to be used by the Master Brick.
557
- #
558
- # .. versionadded:: 1.2.0~(Firmware)
559
527
  def is_wifi_present
560
528
  send_request(FUNCTION_IS_WIFI_PRESENT, [], '', 1, '?')
561
529
  end
@@ -585,15 +553,11 @@ module Tinkerforge
585
553
  # you have to restart the Master Brick after configuration.
586
554
  #
587
555
  # It is recommended to use the Brick Viewer to set the WIFI configuration.
588
- #
589
- # .. versionadded:: 1.3.0~(Firmware)
590
556
  def set_wifi_configuration(ssid, connection, ip, subnet_mask, gateway, port)
591
557
  send_request(FUNCTION_SET_WIFI_CONFIGURATION, [ssid, connection, ip, subnet_mask, gateway, port], 'Z32 C C4 C4 C4 S', 0, '')
592
558
  end
593
559
 
594
560
  # Returns the configuration as set by BrickMaster#set_wifi_configuration.
595
- #
596
- # .. versionadded:: 1.3.0~(Firmware)
597
561
  def get_wifi_configuration
598
562
  send_request(FUNCTION_GET_WIFI_CONFIGURATION, [], '', 47, 'Z32 C C4 C4 C4 S')
599
563
  end
@@ -637,15 +601,11 @@ module Tinkerforge
637
601
  # you have to restart the Master Brick after configuration.
638
602
  #
639
603
  # It is recommended to use the Brick Viewer to set the WIFI encryption.
640
- #
641
- # .. versionadded:: 1.3.0~(Firmware)
642
604
  def set_wifi_encryption(encryption, key, key_index, eap_options, ca_certificate_length, client_certificate_length, private_key_length)
643
605
  send_request(FUNCTION_SET_WIFI_ENCRYPTION, [encryption, key, key_index, eap_options, ca_certificate_length, client_certificate_length, private_key_length], 'C Z50 C C S S S', 0, '')
644
606
  end
645
607
 
646
608
  # Returns the encryption as set by BrickMaster#set_wifi_encryption.
647
- #
648
- # .. versionadded:: 1.3.0~(Firmware)
649
609
  def get_wifi_encryption
650
610
  send_request(FUNCTION_GET_WIFI_ENCRYPTION, [], '', 59, 'C Z50 C C S S S')
651
611
  end
@@ -663,8 +623,6 @@ module Tinkerforge
663
623
  # "2", "Associating"
664
624
  # "3", "Error"
665
625
  # "255", "Not initialized yet"
666
- #
667
- # .. versionadded:: 1.3.0~(Firmware)
668
626
  def get_wifi_status
669
627
  send_request(FUNCTION_GET_WIFI_STATUS, [], '', 36, 'C6 C6 C s C4 C4 C4 L L C')
670
628
  end
@@ -675,8 +633,6 @@ module Tinkerforge
675
633
  # unfortunately time consuming. This means, that it might take some ms
676
634
  # until the stack with attached WIFI Extension reacts again after this
677
635
  # function is called.
678
- #
679
- # .. versionadded:: 1.3.0~(Firmware)
680
636
  def refresh_wifi_status
681
637
  send_request(FUNCTION_REFRESH_WIFI_STATUS, [], '', 0, '')
682
638
  end
@@ -699,15 +655,11 @@ module Tinkerforge
699
655
  #
700
656
  # It is recommended to use the Brick Viewer to set the certificate, username
701
657
  # and password.
702
- #
703
- # .. versionadded:: 1.3.0~(Firmware)
704
658
  def set_wifi_certificate(index, data, data_length)
705
659
  send_request(FUNCTION_SET_WIFI_CERTIFICATE, [index, data, data_length], 'S C32 C', 0, '')
706
660
  end
707
661
 
708
662
  # Returns the certificate for a given index as set by BrickMaster#set_wifi_certificate.
709
- #
710
- # .. versionadded:: 1.3.0~(Firmware)
711
663
  def get_wifi_certificate(index)
712
664
  send_request(FUNCTION_GET_WIFI_CERTIFICATE, [index], 'S', 33, 'C32 C')
713
665
  end
@@ -720,15 +672,11 @@ module Tinkerforge
720
672
  # "1", "Low Power (low power consumption, low throughput)"
721
673
  #
722
674
  # The default value is 0 (Full Speed).
723
- #
724
- # .. versionadded:: 1.3.0~(Firmware)
725
675
  def set_wifi_power_mode(mode)
726
676
  send_request(FUNCTION_SET_WIFI_POWER_MODE, [mode], 'C', 0, '')
727
677
  end
728
678
 
729
679
  # Returns the power mode as set by BrickMaster#set_wifi_power_mode.
730
- #
731
- # .. versionadded:: 1.3.0~(Firmware)
732
680
  def get_wifi_power_mode
733
681
  send_request(FUNCTION_GET_WIFI_POWER_MODE, [], '', 1, 'C')
734
682
  end
@@ -747,8 +695,6 @@ module Tinkerforge
747
695
  #
748
696
  # Try to not send more then 50 messages at a time without any kind of
749
697
  # break between them.
750
- #
751
- # .. versionadded:: 1.3.2~(Firmware)
752
698
  def get_wifi_buffer_info
753
699
  send_request(FUNCTION_GET_WIFI_BUFFER_INFO, [], '', 8, 'L S S')
754
700
  end
@@ -762,22 +708,16 @@ module Tinkerforge
762
708
  # "2", "TELEC: Channel 1-14 (Japan)"
763
709
  #
764
710
  # The default value is 1 (ETSI).
765
- #
766
- # .. versionadded:: 1.3.4~(Firmware)
767
711
  def set_wifi_regulatory_domain(domain)
768
712
  send_request(FUNCTION_SET_WIFI_REGULATORY_DOMAIN, [domain], 'C', 0, '')
769
713
  end
770
714
 
771
715
  # Returns the regulatory domain as set by BrickMaster#set_wifi_regulatory_domain.
772
- #
773
- # .. versionadded:: 1.3.4~(Firmware)
774
716
  def get_wifi_regulatory_domain
775
717
  send_request(FUNCTION_GET_WIFI_REGULATORY_DOMAIN, [], '', 1, 'C')
776
718
  end
777
719
 
778
720
  # Returns the USB voltage in mV.
779
- #
780
- # .. versionadded:: 1.3.5~(Firmware)
781
721
  def get_usb_voltage
782
722
  send_request(FUNCTION_GET_USB_VOLTAGE, [], '', 2, 'S')
783
723
  end
@@ -1067,13 +1007,88 @@ module Tinkerforge
1067
1007
  send_request(FUNCTION_SET_ETHERNET_MAC_ADDRESS, [mac_address], 'C6', 0, '')
1068
1008
  end
1069
1009
 
1010
+ # Sets the Ethernet WebSocket configuration. The first parameter sets the number of socket
1011
+ # connections that are reserved for WebSockets. The range is 0-7. The connections
1012
+ # are shared with the plain sockets. Example: If you set the connections to 3,
1013
+ # there will be 3 WebSocket and 4 plain socket connections available.
1014
+ #
1015
+ # The second parameter is the port for the WebSocket connections. The port can
1016
+ # not be the same as the port for the plain socket connections.
1017
+ #
1018
+ # The values are stored in the EEPROM and only applied on startup. That means
1019
+ # you have to restart the Master Brick after configuration.
1020
+ #
1021
+ # It is recommended to use the Brick Viewer to set the Ethernet configuration.
1022
+ #
1023
+ # The default values are 3 for the socket connections and 4280 for the port.
1024
+ #
1025
+ # .. versionadded:: 2.2.0~(Firmware)
1026
+ def set_ethernet_websocket_configuration(sockets, port)
1027
+ send_request(FUNCTION_SET_ETHERNET_WEBSOCKET_CONFIGURATION, [sockets, port], 'C S', 0, '')
1028
+ end
1029
+
1030
+ # Returns the configuration as set by BrickMaster#set_ethernet_configuration.
1031
+ #
1032
+ # .. versionadded:: 2.2.0~(Firmware)
1033
+ def get_ethernet_websocket_configuration
1034
+ send_request(FUNCTION_GET_ETHERNET_WEBSOCKET_CONFIGURATION, [], '', 3, 'C S')
1035
+ end
1036
+
1037
+ # Sets the Ethernet authentication secret. The secret can be a string of up to 64
1038
+ # characters. An empty string disables the authentication.
1039
+ #
1040
+ # See the :ref:`authentication tutorial <tutorial_authentication>` for more
1041
+ # information.
1042
+ #
1043
+ # The secret is stored in the EEPROM and only applied on startup. That means
1044
+ # you have to restart the Master Brick after configuration.
1045
+ #
1046
+ # It is recommended to use the Brick Viewer to set the Ethernet authentication secret.
1047
+ #
1048
+ # The default value is an empty string (authentication disabled).
1049
+ #
1050
+ # .. versionadded:: 2.2.0~(Firmware)
1051
+ def set_ethernet_authentication_secret(secret)
1052
+ send_request(FUNCTION_SET_ETHERNET_AUTHENTICATION_SECRET, [secret], 'Z64', 0, '')
1053
+ end
1054
+
1055
+ # Returns the authentication secret as set by BrickMaster#set_ethernet_authentication_secret.
1056
+ #
1057
+ # .. versionadded:: 2.2.0~(Firmware)
1058
+ def get_ethernet_authentication_secret
1059
+ send_request(FUNCTION_GET_ETHERNET_AUTHENTICATION_SECRET, [], '', 64, 'Z64')
1060
+ end
1061
+
1062
+ # Sets the WIFI authentication secret. The secret can be a string of up to 64
1063
+ # characters. An empty string disables the authentication.
1064
+ #
1065
+ # See the :ref:`authentication tutorial <tutorial_authentication>` for more
1066
+ # information.
1067
+ #
1068
+ # The secret is stored in the EEPROM and only applied on startup. That means
1069
+ # you have to restart the Master Brick after configuration.
1070
+ #
1071
+ # It is recommended to use the Brick Viewer to set the WIFI authentication secret.
1072
+ #
1073
+ # The default value is an empty string (authentication disabled).
1074
+ #
1075
+ # .. versionadded:: 2.2.0~(Firmware)
1076
+ def set_wifi_authentication_secret(secret)
1077
+ send_request(FUNCTION_SET_WIFI_AUTHENTICATION_SECRET, [secret], 'Z64', 0, '')
1078
+ end
1079
+
1080
+ # Returns the authentication secret as set by BrickMaster#set_wifi_authentication_secret.
1081
+ #
1082
+ # .. versionadded:: 2.2.0~(Firmware)
1083
+ def get_wifi_authentication_secret
1084
+ send_request(FUNCTION_GET_WIFI_AUTHENTICATION_SECRET, [], '', 64, 'Z64')
1085
+ end
1086
+
1070
1087
  # Returns the firmware and protocol version and the name of the Bricklet for a
1071
1088
  # given port.
1072
1089
  #
1073
1090
  # This functions sole purpose is to allow automatic flashing of v1.x.y Bricklet
1074
1091
  # plugins.
1075
- #
1076
- # .. versionadded:: 2.0.0~(Firmware)
1077
1092
  def get_protocol1_bricklet_name(port)
1078
1093
  send_request(FUNCTION_GET_PROTOCOL1_BRICKLET_NAME, [port], 'k', 44, 'C C3 Z40')
1079
1094
  end
@@ -1084,8 +1099,6 @@ module Tinkerforge
1084
1099
  # The temperature is only proportional to the real temperature and it has an
1085
1100
  # accuracy of +-15%. Practically it is only useful as an indicator for
1086
1101
  # temperature changes.
1087
- #
1088
- # .. versionadded:: 1.2.1~(Firmware)
1089
1102
  def get_chip_temperature
1090
1103
  send_request(FUNCTION_GET_CHIP_TEMPERATURE, [], '', 2, 's')
1091
1104
  end
@@ -1096,8 +1109,6 @@ module Tinkerforge
1096
1109
  # After a reset you have to create new device objects,
1097
1110
  # calling functions on the existing ones will result in
1098
1111
  # undefined behavior!
1099
- #
1100
- # .. versionadded:: 1.2.1~(Firmware)
1101
1112
  def reset
1102
1113
  send_request(FUNCTION_RESET, [], '', 0, '')
1103
1114
  end
@@ -1108,9 +1119,8 @@ module Tinkerforge
1108
1119
  #
1109
1120
  # The position can be '0'-'8' (stack position).
1110
1121
  #
1111
- # The device identifiers can be found :ref:`here <device_identifier>`.
1112
- #
1113
- # .. versionadded:: 2.0.0~(Firmware)
1122
+ # The device identifier numbers can be found :ref:`here <device_identifier>`.
1123
+ # |device_identifier_constant|
1114
1124
  def get_identity
1115
1125
  send_request(FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S')
1116
1126
  end