tinkerforge 2.1.12 → 2.1.13

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 (74) hide show
  1. data/lib/tinkerforge/brick_dc.rb +2 -2
  2. data/lib/tinkerforge/brick_imu.rb +2 -2
  3. data/lib/tinkerforge/brick_imu_v2.rb +2 -2
  4. data/lib/tinkerforge/brick_master.rb +16 -2
  5. data/lib/tinkerforge/brick_red.rb +2 -2
  6. data/lib/tinkerforge/brick_servo.rb +2 -2
  7. data/lib/tinkerforge/brick_silent_stepper.rb +2 -2
  8. data/lib/tinkerforge/brick_stepper.rb +2 -2
  9. data/lib/tinkerforge/bricklet_accelerometer.rb +2 -2
  10. data/lib/tinkerforge/bricklet_ambient_light.rb +2 -2
  11. data/lib/tinkerforge/bricklet_ambient_light_v2.rb +2 -2
  12. data/lib/tinkerforge/bricklet_analog_in.rb +2 -2
  13. data/lib/tinkerforge/bricklet_analog_in_v2.rb +2 -2
  14. data/lib/tinkerforge/bricklet_analog_out.rb +2 -2
  15. data/lib/tinkerforge/bricklet_analog_out_v2.rb +2 -2
  16. data/lib/tinkerforge/bricklet_barometer.rb +2 -2
  17. data/lib/tinkerforge/bricklet_can.rb +2 -2
  18. data/lib/tinkerforge/bricklet_co2.rb +2 -2
  19. data/lib/tinkerforge/bricklet_color.rb +2 -2
  20. data/lib/tinkerforge/bricklet_current12.rb +2 -2
  21. data/lib/tinkerforge/bricklet_current25.rb +2 -2
  22. data/lib/tinkerforge/bricklet_distance_ir.rb +2 -2
  23. data/lib/tinkerforge/bricklet_distance_us.rb +2 -2
  24. data/lib/tinkerforge/bricklet_dual_button.rb +2 -2
  25. data/lib/tinkerforge/bricklet_dual_relay.rb +2 -2
  26. data/lib/tinkerforge/bricklet_dust_detector.rb +2 -2
  27. data/lib/tinkerforge/bricklet_gps.rb +2 -2
  28. data/lib/tinkerforge/bricklet_gps_v2.rb +507 -0
  29. data/lib/tinkerforge/bricklet_hall_effect.rb +2 -2
  30. data/lib/tinkerforge/bricklet_humidity.rb +2 -2
  31. data/lib/tinkerforge/bricklet_industrial_analog_out.rb +2 -2
  32. data/lib/tinkerforge/bricklet_industrial_digital_in_4.rb +2 -2
  33. data/lib/tinkerforge/bricklet_industrial_digital_out_4.rb +2 -2
  34. data/lib/tinkerforge/bricklet_industrial_dual_0_20ma.rb +2 -2
  35. data/lib/tinkerforge/bricklet_industrial_dual_analog_in.rb +2 -2
  36. data/lib/tinkerforge/bricklet_industrial_quad_relay.rb +2 -2
  37. data/lib/tinkerforge/bricklet_io16.rb +2 -2
  38. data/lib/tinkerforge/bricklet_io4.rb +2 -2
  39. data/lib/tinkerforge/bricklet_joystick.rb +2 -2
  40. data/lib/tinkerforge/bricklet_laser_range_finder.rb +2 -2
  41. data/lib/tinkerforge/bricklet_lcd_16x2.rb +2 -2
  42. data/lib/tinkerforge/bricklet_lcd_20x4.rb +2 -2
  43. data/lib/tinkerforge/bricklet_led_strip.rb +2 -2
  44. data/lib/tinkerforge/bricklet_line.rb +2 -2
  45. data/lib/tinkerforge/bricklet_linear_poti.rb +2 -2
  46. data/lib/tinkerforge/bricklet_load_cell.rb +2 -2
  47. data/lib/tinkerforge/bricklet_moisture.rb +2 -2
  48. data/lib/tinkerforge/bricklet_motion_detector.rb +2 -2
  49. data/lib/tinkerforge/bricklet_multi_touch.rb +2 -2
  50. data/lib/tinkerforge/bricklet_nfc_rfid.rb +4 -4
  51. data/lib/tinkerforge/bricklet_oled_128x64.rb +2 -2
  52. data/lib/tinkerforge/bricklet_oled_64x48.rb +2 -2
  53. data/lib/tinkerforge/bricklet_piezo_buzzer.rb +2 -2
  54. data/lib/tinkerforge/bricklet_piezo_speaker.rb +2 -2
  55. data/lib/tinkerforge/bricklet_ptc.rb +2 -2
  56. data/lib/tinkerforge/bricklet_real_time_clock.rb +2 -2
  57. data/lib/tinkerforge/bricklet_remote_switch.rb +2 -2
  58. data/lib/tinkerforge/bricklet_rgb_led.rb +2 -2
  59. data/lib/tinkerforge/bricklet_rotary_encoder.rb +2 -2
  60. data/lib/tinkerforge/bricklet_rotary_poti.rb +2 -2
  61. data/lib/tinkerforge/bricklet_rs232.rb +2 -2
  62. data/lib/tinkerforge/bricklet_segment_display_4x7.rb +2 -2
  63. data/lib/tinkerforge/bricklet_solid_state_relay.rb +2 -2
  64. data/lib/tinkerforge/bricklet_sound_intensity.rb +2 -2
  65. data/lib/tinkerforge/bricklet_temperature.rb +2 -2
  66. data/lib/tinkerforge/bricklet_temperature_ir.rb +2 -2
  67. data/lib/tinkerforge/bricklet_thermocouple.rb +2 -2
  68. data/lib/tinkerforge/bricklet_tilt.rb +2 -2
  69. data/lib/tinkerforge/bricklet_uv_light.rb +2 -2
  70. data/lib/tinkerforge/bricklet_voltage.rb +2 -2
  71. data/lib/tinkerforge/bricklet_voltage_current.rb +2 -2
  72. data/lib/tinkerforge/ip_connection.rb +15 -4
  73. data/lib/tinkerforge/version.rb +1 -1
  74. metadata +3 -2
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -726,6 +726,9 @@ module Tinkerforge
726
726
  end
727
727
 
728
728
  # Returns the encryption as set by BrickMaster#set_wifi_encryption.
729
+ #
730
+ # .. note::
731
+ # Since Master Brick Firmware version 2.4.4 the key is not returned anymore.
729
732
  def get_wifi_encryption
730
733
  send_request(FUNCTION_GET_WIFI_ENCRYPTION, [], '', 59, 'C Z50 C C S S S')
731
734
  end
@@ -857,6 +860,9 @@ module Tinkerforge
857
860
 
858
861
  # Returns the encryption key as set by BrickMaster#set_long_wifi_key.
859
862
  #
863
+ # .. note::
864
+ # Since Master Brick firmware version 2.4.4 the key is not returned anymore.
865
+ #
860
866
  # .. versionadded:: 2.0.2$nbsp;(Firmware)
861
867
  def get_long_wifi_key
862
868
  send_request(FUNCTION_GET_LONG_WIFI_KEY, [], '', 64, 'Z64')
@@ -1419,6 +1425,10 @@ module Tinkerforge
1419
1425
 
1420
1426
  # Returns the client password as set by BrickMaster#set_wifi2_client_password.
1421
1427
  #
1428
+ # .. note::
1429
+ # Since WIFI Extension 2.0 firmware version 2.1.3 the password is not
1430
+ # returned anymore.
1431
+ #
1422
1432
  # .. versionadded:: 2.4.0$nbsp;(Firmware)
1423
1433
  def get_wifi2_client_password
1424
1434
  send_request(FUNCTION_GET_WIFI2_CLIENT_PASSWORD, [], '', 64, 'Z64')
@@ -1485,6 +1495,10 @@ module Tinkerforge
1485
1495
 
1486
1496
  # Returns the access point password as set by BrickMaster#set_wifi2_ap_password.
1487
1497
  #
1498
+ # .. note::
1499
+ # Since WIFI Extension 2.0 firmware version 2.1.3 the password is not
1500
+ # returned anymore.
1501
+ #
1488
1502
  # .. versionadded:: 2.4.0$nbsp;(Firmware)
1489
1503
  def get_wifi2_ap_password
1490
1504
  send_request(FUNCTION_GET_WIFI2_AP_PASSWORD, [], '', 64, 'Z64')
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -1,8 +1,8 @@
1
1
  # -*- ruby encoding: utf-8 -*-
2
2
  #############################################################
3
- # This file was automatically generated on 2017-04-21. #
3
+ # This file was automatically generated on 2017-05-11. #
4
4
  # #
5
- # Ruby Bindings Version 2.1.12 #
5
+ # Ruby Bindings Version 2.1.13 #
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 #
@@ -0,0 +1,507 @@
1
+ # -*- ruby encoding: utf-8 -*-
2
+ #############################################################
3
+ # This file was automatically generated on 2017-05-11. #
4
+ # #
5
+ # Ruby Bindings Version 2.1.13 #
6
+ # #
7
+ # If you have a bugfix for this file and want to commit it, #
8
+ # please fix the bug in the generator. You can find a link #
9
+ # to the generators git repository on tinkerforge.com #
10
+ #############################################################
11
+
12
+ module Tinkerforge
13
+ # Determine position, velocity and altitude using GPS
14
+ class BrickletGPSV2 < Device
15
+ DEVICE_IDENTIFIER = 276 # :nodoc:
16
+ DEVICE_DISPLAY_NAME = 'GPS Bricklet 2.0' # :nodoc:
17
+
18
+ # This callback is triggered precisely once per second,
19
+ # see `PPS <https://en.wikipedia.org/wiki/Pulse-per-second_signal>`__.
20
+ #
21
+ # The precision of two subsequent pulses will be skewed because
22
+ # of the latency in the USB/RS485/Ethernet connection. But in the
23
+ # long run this will be very precise. For example a count of
24
+ # 3600 pulses will take exactly 1 hour.
25
+ CALLBACK_PULSE_PER_SECOND = 21
26
+
27
+ # This callback is triggered periodically with the period that is set by
28
+ # BrickletGPSV2#set_coordinates_callback_period. The parameters are the same
29
+ # as for BrickletGPSV2#get_coordinates.
30
+ #
31
+ # The CALLBACK_COORDINATES callback is only triggered if the coordinates changed
32
+ # since the last triggering and if there is currently a fix as indicated by
33
+ # BrickletGPSV2#get_status.
34
+ CALLBACK_COORDINATES = 22
35
+
36
+ # This callback is triggered periodically with the period that is set by
37
+ # BrickletGPSV2#set_status_callback_period. The parameters are the same
38
+ # as for BrickletGPSV2#get_status.
39
+ #
40
+ # The CALLBACK_STATUS callback is only triggered if the status changed since the
41
+ # last triggering.
42
+ CALLBACK_STATUS = 23
43
+
44
+ # This callback is triggered periodically with the period that is set by
45
+ # BrickletGPSV2#set_altitude_callback_period. The parameters are the same
46
+ # as for BrickletGPSV2#get_altitude.
47
+ #
48
+ # The CALLBACK_ALTITUDE callback is only triggered if the altitude changed since the
49
+ # last triggering and if there is currently a fix as indicated by
50
+ # BrickletGPSV2#get_status.
51
+ CALLBACK_ALTITUDE = 24
52
+
53
+ # This callback is triggered periodically with the period that is set by
54
+ # BrickletGPSV2#set_motion_callback_period. The parameters are the same
55
+ # as for BrickletGPSV2#get_motion.
56
+ #
57
+ # The CALLBACK_MOTION callback is only triggered if the motion changed since the
58
+ # last triggering and if there is currently a fix as indicated by
59
+ # BrickletGPSV2#get_status.
60
+ CALLBACK_MOTION = 25
61
+
62
+ # This callback is triggered periodically with the period that is set by
63
+ # BrickletGPSV2#set_date_time_callback_period. The parameters are the same
64
+ # as for BrickletGPSV2#get_date_time.
65
+ #
66
+ # The CALLBACK_DATE_TIME callback is only triggered if the date or time changed
67
+ # since the last triggering.
68
+ CALLBACK_DATE_TIME = 26
69
+
70
+ FUNCTION_GET_COORDINATES = 1 # :nodoc:
71
+ FUNCTION_GET_STATUS = 2 # :nodoc:
72
+ FUNCTION_GET_ALTITUDE = 3 # :nodoc:
73
+ FUNCTION_GET_MOTION = 4 # :nodoc:
74
+ FUNCTION_GET_DATE_TIME = 5 # :nodoc:
75
+ FUNCTION_RESTART = 6 # :nodoc:
76
+ FUNCTION_GET_SATELLITE_SYSTEM_STATUS_LOW_LEVEL = 7 # :nodoc:
77
+ FUNCTION_GET_SATELLITE_STATUS = 8 # :nodoc:
78
+ FUNCTION_SET_FIX_LED_CONFIG = 9 # :nodoc:
79
+ FUNCTION_GET_FIX_LED_CONFIG = 10 # :nodoc:
80
+ FUNCTION_SET_COORDINATES_CALLBACK_PERIOD = 11 # :nodoc:
81
+ FUNCTION_GET_COORDINATES_CALLBACK_PERIOD = 12 # :nodoc:
82
+ FUNCTION_SET_STATUS_CALLBACK_PERIOD = 13 # :nodoc:
83
+ FUNCTION_GET_STATUS_CALLBACK_PERIOD = 14 # :nodoc:
84
+ FUNCTION_SET_ALTITUDE_CALLBACK_PERIOD = 15 # :nodoc:
85
+ FUNCTION_GET_ALTITUDE_CALLBACK_PERIOD = 16 # :nodoc:
86
+ FUNCTION_SET_MOTION_CALLBACK_PERIOD = 17 # :nodoc:
87
+ FUNCTION_GET_MOTION_CALLBACK_PERIOD = 18 # :nodoc:
88
+ FUNCTION_SET_DATE_TIME_CALLBACK_PERIOD = 19 # :nodoc:
89
+ FUNCTION_GET_DATE_TIME_CALLBACK_PERIOD = 20 # :nodoc:
90
+ FUNCTION_GET_SPITFP_ERROR_COUNT = 234 # :nodoc:
91
+ FUNCTION_SET_BOOTLOADER_MODE = 235 # :nodoc:
92
+ FUNCTION_GET_BOOTLOADER_MODE = 236 # :nodoc:
93
+ FUNCTION_SET_WRITE_FIRMWARE_POINTER = 237 # :nodoc:
94
+ FUNCTION_WRITE_FIRMWARE = 238 # :nodoc:
95
+ FUNCTION_SET_STATUS_LED_CONFIG = 239 # :nodoc:
96
+ FUNCTION_GET_STATUS_LED_CONFIG = 240 # :nodoc:
97
+ FUNCTION_GET_CHIP_TEMPERATURE = 242 # :nodoc:
98
+ FUNCTION_RESET = 243 # :nodoc:
99
+ FUNCTION_WRITE_UID = 248 # :nodoc:
100
+ FUNCTION_READ_UID = 249 # :nodoc:
101
+ FUNCTION_GET_IDENTITY = 255 # :nodoc:
102
+
103
+ RESTART_TYPE_HOT_START = 0 # :nodoc:
104
+ RESTART_TYPE_WARM_START = 1 # :nodoc:
105
+ RESTART_TYPE_COLD_START = 2 # :nodoc:
106
+ RESTART_TYPE_FACTORY_RESET = 3 # :nodoc:
107
+ SATELLITE_SYSTEM_GPS = 0 # :nodoc:
108
+ SATELLITE_SYSTEM_GLONASS = 1 # :nodoc:
109
+ SATELLITE_SYSTEM_GALILEO = 2 # :nodoc:
110
+ FIX_NO_FIX = 1 # :nodoc:
111
+ FIX_2D_FIX = 2 # :nodoc:
112
+ FIX_3D_FIX = 3 # :nodoc:
113
+ FIX_LED_CONFIG_OFF = 0 # :nodoc:
114
+ FIX_LED_CONFIG_ON = 1 # :nodoc:
115
+ FIX_LED_CONFIG_SHOW_HEARTBEAT = 2 # :nodoc:
116
+ FIX_LED_CONFIG_SHOW_FIX = 3 # :nodoc:
117
+ FIX_LED_CONFIG_SHOW_PPS = 4 # :nodoc:
118
+ BOOTLOADER_MODE_BOOTLOADER = 0 # :nodoc:
119
+ BOOTLOADER_MODE_FIRMWARE = 1 # :nodoc:
120
+ BOOTLOADER_MODE_BOOTLOADER_WAIT_FOR_REBOOT = 2 # :nodoc:
121
+ BOOTLOADER_MODE_FIRMWARE_WAIT_FOR_REBOOT = 3 # :nodoc:
122
+ BOOTLOADER_MODE_FIRMWARE_WAIT_FOR_ERASE_AND_REBOOT = 4 # :nodoc:
123
+ BOOTLOADER_STATUS_OK = 0 # :nodoc:
124
+ BOOTLOADER_STATUS_INVALID_MODE = 1 # :nodoc:
125
+ BOOTLOADER_STATUS_NO_CHANGE = 2 # :nodoc:
126
+ BOOTLOADER_STATUS_ENTRY_FUNCTION_NOT_PRESENT = 3 # :nodoc:
127
+ BOOTLOADER_STATUS_DEVICE_IDENTIFIER_INCORRECT = 4 # :nodoc:
128
+ BOOTLOADER_STATUS_CRC_MISMATCH = 5 # :nodoc:
129
+ STATUS_LED_CONFIG_OFF = 0 # :nodoc:
130
+ STATUS_LED_CONFIG_ON = 1 # :nodoc:
131
+ STATUS_LED_CONFIG_SHOW_HEARTBEAT = 2 # :nodoc:
132
+ STATUS_LED_CONFIG_SHOW_STATUS = 3 # :nodoc:
133
+
134
+ # Creates an object with the unique device ID <tt>uid</tt> and adds it to
135
+ # the IP Connection <tt>ipcon</tt>.
136
+ def initialize(uid, ipcon)
137
+ super uid, ipcon
138
+
139
+ @api_version = [2, 0, 0]
140
+
141
+ @response_expected[FUNCTION_GET_COORDINATES] = RESPONSE_EXPECTED_ALWAYS_TRUE
142
+ @response_expected[FUNCTION_GET_STATUS] = RESPONSE_EXPECTED_ALWAYS_TRUE
143
+ @response_expected[FUNCTION_GET_ALTITUDE] = RESPONSE_EXPECTED_ALWAYS_TRUE
144
+ @response_expected[FUNCTION_GET_MOTION] = RESPONSE_EXPECTED_ALWAYS_TRUE
145
+ @response_expected[FUNCTION_GET_DATE_TIME] = RESPONSE_EXPECTED_ALWAYS_TRUE
146
+ @response_expected[FUNCTION_RESTART] = RESPONSE_EXPECTED_FALSE
147
+ @response_expected[FUNCTION_GET_SATELLITE_SYSTEM_STATUS_LOW_LEVEL] = RESPONSE_EXPECTED_ALWAYS_TRUE
148
+ @response_expected[FUNCTION_GET_SATELLITE_STATUS] = RESPONSE_EXPECTED_ALWAYS_TRUE
149
+ @response_expected[FUNCTION_SET_FIX_LED_CONFIG] = RESPONSE_EXPECTED_FALSE
150
+ @response_expected[FUNCTION_GET_FIX_LED_CONFIG] = RESPONSE_EXPECTED_ALWAYS_TRUE
151
+ @response_expected[FUNCTION_SET_COORDINATES_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
152
+ @response_expected[FUNCTION_GET_COORDINATES_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
153
+ @response_expected[FUNCTION_SET_STATUS_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
154
+ @response_expected[FUNCTION_GET_STATUS_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
155
+ @response_expected[FUNCTION_SET_ALTITUDE_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
156
+ @response_expected[FUNCTION_GET_ALTITUDE_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
157
+ @response_expected[FUNCTION_SET_MOTION_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
158
+ @response_expected[FUNCTION_GET_MOTION_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
159
+ @response_expected[FUNCTION_SET_DATE_TIME_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
160
+ @response_expected[FUNCTION_GET_DATE_TIME_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
161
+ @response_expected[CALLBACK_PULSE_PER_SECOND] = RESPONSE_EXPECTED_ALWAYS_FALSE
162
+ @response_expected[CALLBACK_COORDINATES] = RESPONSE_EXPECTED_ALWAYS_FALSE
163
+ @response_expected[CALLBACK_STATUS] = RESPONSE_EXPECTED_ALWAYS_FALSE
164
+ @response_expected[CALLBACK_ALTITUDE] = RESPONSE_EXPECTED_ALWAYS_FALSE
165
+ @response_expected[CALLBACK_MOTION] = RESPONSE_EXPECTED_ALWAYS_FALSE
166
+ @response_expected[CALLBACK_DATE_TIME] = RESPONSE_EXPECTED_ALWAYS_FALSE
167
+ @response_expected[FUNCTION_GET_SPITFP_ERROR_COUNT] = RESPONSE_EXPECTED_ALWAYS_TRUE
168
+ @response_expected[FUNCTION_SET_BOOTLOADER_MODE] = RESPONSE_EXPECTED_ALWAYS_TRUE
169
+ @response_expected[FUNCTION_GET_BOOTLOADER_MODE] = RESPONSE_EXPECTED_ALWAYS_TRUE
170
+ @response_expected[FUNCTION_SET_WRITE_FIRMWARE_POINTER] = RESPONSE_EXPECTED_FALSE
171
+ @response_expected[FUNCTION_WRITE_FIRMWARE] = RESPONSE_EXPECTED_ALWAYS_TRUE
172
+ @response_expected[FUNCTION_SET_STATUS_LED_CONFIG] = RESPONSE_EXPECTED_FALSE
173
+ @response_expected[FUNCTION_GET_STATUS_LED_CONFIG] = RESPONSE_EXPECTED_ALWAYS_TRUE
174
+ @response_expected[FUNCTION_GET_CHIP_TEMPERATURE] = RESPONSE_EXPECTED_ALWAYS_TRUE
175
+ @response_expected[FUNCTION_RESET] = RESPONSE_EXPECTED_FALSE
176
+ @response_expected[FUNCTION_WRITE_UID] = RESPONSE_EXPECTED_FALSE
177
+ @response_expected[FUNCTION_READ_UID] = RESPONSE_EXPECTED_ALWAYS_TRUE
178
+ @response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
179
+
180
+ @callback_formats[CALLBACK_PULSE_PER_SECOND] = ''
181
+ @callback_formats[CALLBACK_COORDINATES] = 'L k L k'
182
+ @callback_formats[CALLBACK_STATUS] = '? C'
183
+ @callback_formats[CALLBACK_ALTITUDE] = 'l l'
184
+ @callback_formats[CALLBACK_MOTION] = 'L L'
185
+ @callback_formats[CALLBACK_DATE_TIME] = 'L L'
186
+ end
187
+
188
+ # Returns the GPS coordinates. Latitude and longitude are given in the
189
+ # ``DD.dddddd°`` format, the value 57123468 means 57.123468°.
190
+ # The parameter ``ns`` and ``ew`` are the cardinal directions for
191
+ # latitude and longitude. Possible values for ``ns`` and ``ew`` are 'N', 'S', 'E'
192
+ # and 'W' (north, south, east and west).
193
+ #
194
+ # This data is only valid if there is currently a fix as indicated by
195
+ # BrickletGPSV2#get_status.
196
+ def get_coordinates
197
+ send_request(FUNCTION_GET_COORDINATES, [], '', 10, 'L k L k')
198
+ end
199
+
200
+ # Returns if a fix is currently available as well as the, the number of
201
+ # satellites that are in view.
202
+ #
203
+ # There is also a :ref:`green LED <gps_v2_bricklet_fix_led>` on the Bricklet that
204
+ # indicates the fix status.
205
+ def get_status
206
+ send_request(FUNCTION_GET_STATUS, [], '', 2, '? C')
207
+ end
208
+
209
+ # Returns the current altitude and corresponding geoidal separation.
210
+ #
211
+ # Both values are given in cm.
212
+ #
213
+ # This data is only valid if there is currently a fix as indicated by
214
+ # BrickletGPSV2#get_status.
215
+ def get_altitude
216
+ send_request(FUNCTION_GET_ALTITUDE, [], '', 8, 'l l')
217
+ end
218
+
219
+ # Returns the current course and speed. Course is given in hundredths degree
220
+ # and speed is given in hundredths km/h. A course of 0° means the Bricklet is
221
+ # traveling north bound and 90° means it is traveling east bound.
222
+ #
223
+ # Please note that this only returns useful values if an actual movement
224
+ # is present.
225
+ #
226
+ # This data is only valid if there is currently a fix as indicated by
227
+ # BrickletGPSV2#get_status.
228
+ def get_motion
229
+ send_request(FUNCTION_GET_MOTION, [], '', 8, 'L L')
230
+ end
231
+
232
+ # Returns the current date and time. The date is
233
+ # given in the format ``ddmmyy`` and the time is given
234
+ # in the format ``hhmmss.sss``. For example, 140713 means
235
+ # 14.05.13 as date and 195923568 means 19:59:23.568 as time.
236
+ def get_date_time
237
+ send_request(FUNCTION_GET_DATE_TIME, [], '', 8, 'L L')
238
+ end
239
+
240
+ # Restarts the GPS Bricklet, the following restart types are available:
241
+ #
242
+ # "Value", "Description"
243
+ #
244
+ # "0", "Hot start (use all available data in the NV store)"
245
+ # "1", "Warm start (don't use ephemeris at restart)"
246
+ # "2", "Cold start (don't use time, position, almanacs and ephemeris at restart)"
247
+ # "3", "Factory reset (clear all system/user configurations at restart)"
248
+ def restart(restart_type)
249
+ send_request(FUNCTION_RESTART, [restart_type], 'C', 0, '')
250
+ end
251
+
252
+ # Returns the
253
+ #
254
+ # * satellite numbers list
255
+ # * fix value,
256
+ # * PDOP value,
257
+ # * HDOP value and
258
+ # * VDOP value
259
+ #
260
+ # for a given satellite system. Currently GPS and GLONASS are supported, Galileo
261
+ # is not yet supported.
262
+ #
263
+ # The GPS and GLONASS satellites have unique numbers and the satellite list gives
264
+ # the numbers of the satellites that are currently utilized. The number 0 is not
265
+ # a valid satellite number and can be ignored in the list.
266
+ def get_satellite_system_status_low_level(satellite_system)
267
+ send_request(FUNCTION_GET_SATELLITE_SYSTEM_STATUS_LOW_LEVEL, [satellite_system], 'C', 20, 'C C12 C S S S')
268
+ end
269
+
270
+ # Returns the current
271
+ #
272
+ # * elevation (0° - 90°),
273
+ # * azimuth (0° - 359°) and
274
+ # * SNR (0dB - 99dB)
275
+ #
276
+ # for a given satellite and satellite system.
277
+ #
278
+ # The satellite number here always goes from 1 to 32. For GLONASS it corresponds to
279
+ # the satellites 65-96.
280
+ #
281
+ # Galileo is not yet supported.
282
+ def get_satellite_status(satellite_system, satellite_number)
283
+ send_request(FUNCTION_GET_SATELLITE_STATUS, [satellite_system, satellite_number], 'C C', 6, 's s s')
284
+ end
285
+
286
+ # Sets the fix LED configuration. By default the LED shows if
287
+ # the Bricklet got a GPS fix yet. If a fix is established the LED turns on.
288
+ # If there is no fix then the LED is turned off.
289
+ #
290
+ # You can also turn the LED permanently on/off, show a heartbeat or let it blink
291
+ # in sync with the PPS (pulse per second) output of the GPS module.
292
+ #
293
+ # If the Bricklet is in bootloader mode, the LED is off.
294
+ def set_fix_led_config(config)
295
+ send_request(FUNCTION_SET_FIX_LED_CONFIG, [config], 'C', 0, '')
296
+ end
297
+
298
+ # Returns the configuration as set by BrickletGPSV2#set_fix_led_config
299
+ def get_fix_led_config
300
+ send_request(FUNCTION_GET_FIX_LED_CONFIG, [], '', 1, 'C')
301
+ end
302
+
303
+ # Sets the period in ms with which the CALLBACK_COORDINATES callback is triggered
304
+ # periodically. A value of 0 turns the callback off.
305
+ #
306
+ # The CALLBACK_COORDINATES callback is only triggered if the coordinates changed
307
+ # since the last triggering.
308
+ #
309
+ # The default value is 0.
310
+ def set_coordinates_callback_period(period)
311
+ send_request(FUNCTION_SET_COORDINATES_CALLBACK_PERIOD, [period], 'L', 0, '')
312
+ end
313
+
314
+ # Returns the period as set by BrickletGPSV2#set_coordinates_callback_period.
315
+ def get_coordinates_callback_period
316
+ send_request(FUNCTION_GET_COORDINATES_CALLBACK_PERIOD, [], '', 4, 'L')
317
+ end
318
+
319
+ # Sets the period in ms with which the CALLBACK_STATUS callback is triggered
320
+ # periodically. A value of 0 turns the callback off.
321
+ #
322
+ # The CALLBACK_STATUS callback is only triggered if the status changed since the
323
+ # last triggering.
324
+ #
325
+ # The default value is 0.
326
+ def set_status_callback_period(period)
327
+ send_request(FUNCTION_SET_STATUS_CALLBACK_PERIOD, [period], 'L', 0, '')
328
+ end
329
+
330
+ # Returns the period as set by BrickletGPSV2#set_status_callback_period.
331
+ def get_status_callback_period
332
+ send_request(FUNCTION_GET_STATUS_CALLBACK_PERIOD, [], '', 4, 'L')
333
+ end
334
+
335
+ # Sets the period in ms with which the CALLBACK_ALTITUDE callback is triggered
336
+ # periodically. A value of 0 turns the callback off.
337
+ #
338
+ # The CALLBACK_ALTITUDE callback is only triggered if the altitude changed since the
339
+ # last triggering.
340
+ #
341
+ # The default value is 0.
342
+ def set_altitude_callback_period(period)
343
+ send_request(FUNCTION_SET_ALTITUDE_CALLBACK_PERIOD, [period], 'L', 0, '')
344
+ end
345
+
346
+ # Returns the period as set by BrickletGPSV2#set_altitude_callback_period.
347
+ def get_altitude_callback_period
348
+ send_request(FUNCTION_GET_ALTITUDE_CALLBACK_PERIOD, [], '', 4, 'L')
349
+ end
350
+
351
+ # Sets the period in ms with which the CALLBACK_MOTION callback is triggered
352
+ # periodically. A value of 0 turns the callback off.
353
+ #
354
+ # The CALLBACK_MOTION callback is only triggered if the motion changed since the
355
+ # last triggering.
356
+ #
357
+ # The default value is 0.
358
+ def set_motion_callback_period(period)
359
+ send_request(FUNCTION_SET_MOTION_CALLBACK_PERIOD, [period], 'L', 0, '')
360
+ end
361
+
362
+ # Returns the period as set by BrickletGPSV2#set_motion_callback_period.
363
+ def get_motion_callback_period
364
+ send_request(FUNCTION_GET_MOTION_CALLBACK_PERIOD, [], '', 4, 'L')
365
+ end
366
+
367
+ # Sets the period in ms with which the CALLBACK_DATE_TIME callback is triggered
368
+ # periodically. A value of 0 turns the callback off.
369
+ #
370
+ # The CALLBACK_DATE_TIME callback is only triggered if the date or time changed
371
+ # since the last triggering.
372
+ #
373
+ # The default value is 0.
374
+ def set_date_time_callback_period(period)
375
+ send_request(FUNCTION_SET_DATE_TIME_CALLBACK_PERIOD, [period], 'L', 0, '')
376
+ end
377
+
378
+ # Returns the period as set by BrickletGPSV2#set_date_time_callback_period.
379
+ def get_date_time_callback_period
380
+ send_request(FUNCTION_GET_DATE_TIME_CALLBACK_PERIOD, [], '', 4, 'L')
381
+ end
382
+
383
+ # Returns the error count for the communication between Brick and Bricklet.
384
+ #
385
+ # The errors are divided into
386
+ #
387
+ # * ack checksum errors,
388
+ # * message checksum errors,
389
+ # * frameing errors and
390
+ # * overflow errors.
391
+ #
392
+ # The errors counts are for errors that occur on the Bricklet side. All
393
+ # Bricks have a similar function that returns the errors on the Brick side.
394
+ def get_spitfp_error_count
395
+ send_request(FUNCTION_GET_SPITFP_ERROR_COUNT, [], '', 16, 'L L L L')
396
+ end
397
+
398
+ # Sets the bootloader mode and returns the status after the requested
399
+ # mode change was instigated.
400
+ #
401
+ # You can change from bootloader mode to firmware mode and vice versa. A change
402
+ # from bootloader mode to firmware mode will only take place if the entry function,
403
+ # device identifier und crc are present and correct.
404
+ #
405
+ # This function is used by Brick Viewer during flashing. It should not be
406
+ # necessary to call it in a normal user program.
407
+ def set_bootloader_mode(mode)
408
+ send_request(FUNCTION_SET_BOOTLOADER_MODE, [mode], 'C', 1, 'C')
409
+ end
410
+
411
+ # Returns the current bootloader mode, see BrickletGPSV2#set_bootloader_mode.
412
+ def get_bootloader_mode
413
+ send_request(FUNCTION_GET_BOOTLOADER_MODE, [], '', 1, 'C')
414
+ end
415
+
416
+ # Sets the firmware pointer for func:`WriteFirmware`. The pointer has
417
+ # to be increased by chunks of size 64. The data is written to flash
418
+ # every 4 chunks (which equals to one page of size 256).
419
+ #
420
+ # This function is used by Brick Viewer during flashing. It should not be
421
+ # necessary to call it in a normal user program.
422
+ def set_write_firmware_pointer(pointer)
423
+ send_request(FUNCTION_SET_WRITE_FIRMWARE_POINTER, [pointer], 'L', 0, '')
424
+ end
425
+
426
+ # Writes 64 Bytes of firmware at the position as written by
427
+ # BrickletGPSV2#set_write_firmware_pointer before. The firmware is written
428
+ # to flash every 4 chunks.
429
+ #
430
+ # You can only write firmware in bootloader mode.
431
+ #
432
+ # This function is used by Brick Viewer during flashing. It should not be
433
+ # necessary to call it in a normal user program.
434
+ def write_firmware(data)
435
+ send_request(FUNCTION_WRITE_FIRMWARE, [data], 'C64', 1, 'C')
436
+ end
437
+
438
+ # Sets the status LED configuration. By default the LED shows
439
+ # communication traffic between Brick and Bricklet, it flickers once
440
+ # for every 10 received data packets.
441
+ #
442
+ # You can also turn the LED permanently on/off or show a heartbeat.
443
+ #
444
+ # If the Bricklet is in bootloader mode, the LED is will show heartbeat by default.
445
+ def set_status_led_config(config)
446
+ send_request(FUNCTION_SET_STATUS_LED_CONFIG, [config], 'C', 0, '')
447
+ end
448
+
449
+ # Returns the configuration as set by BrickletGPSV2#set_status_led_config
450
+ def get_status_led_config
451
+ send_request(FUNCTION_GET_STATUS_LED_CONFIG, [], '', 1, 'C')
452
+ end
453
+
454
+ # Returns the temperature in °C as measured inside the microcontroller. The
455
+ # value returned is not the ambient temperature!
456
+ #
457
+ # The temperature is only proportional to the real temperature and it has bad
458
+ # accuracy. Practically it is only useful as an indicator for
459
+ # temperature changes.
460
+ def get_chip_temperature
461
+ send_request(FUNCTION_GET_CHIP_TEMPERATURE, [], '', 2, 's')
462
+ end
463
+
464
+ # Calling this function will reset the Bricklet. All configurations
465
+ # will be lost.
466
+ #
467
+ # After a reset you have to create new device objects,
468
+ # calling functions on the existing ones will result in
469
+ # undefined behavior!
470
+ def reset
471
+ send_request(FUNCTION_RESET, [], '', 0, '')
472
+ end
473
+
474
+ # Writes a new UID into flash. If you want to set a new UID
475
+ # you have to decode the Base58 encoded UID string into an
476
+ # integer first.
477
+ #
478
+ # We recommend that you use Brick Viewer to change the UID.
479
+ def write_uid(uid)
480
+ send_request(FUNCTION_WRITE_UID, [uid], 'L', 0, '')
481
+ end
482
+
483
+ # Returns the current UID as an integer. Encode as
484
+ # Base58 to get the usual string version.
485
+ def read_uid
486
+ send_request(FUNCTION_READ_UID, [], '', 4, 'L')
487
+ end
488
+
489
+ # Returns the UID, the UID where the Bricklet is connected to,
490
+ # the position, the hardware and firmware version as well as the
491
+ # device identifier.
492
+ #
493
+ # The position can be 'a', 'b', 'c' or 'd'.
494
+ #
495
+ # The device identifier numbers can be found :ref:`here <device_identifier>`.
496
+ # |device_identifier_constant|
497
+ def get_identity
498
+ send_request(FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S')
499
+ end
500
+
501
+ # Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.
502
+ def register_callback(id, &block)
503
+ callback = block
504
+ @registered_callbacks[id] = callback
505
+ end
506
+ end
507
+ end