tinkerforge 2.1.23 → 2.1.28
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.
- checksums.yaml +5 -5
- data/lib/tinkerforge/brick_dc.rb +156 -75
- data/lib/tinkerforge/brick_hat.rb +109 -30
- data/lib/tinkerforge/brick_hat_zero.rb +119 -21
- data/lib/tinkerforge/brick_imu.rb +191 -86
- data/lib/tinkerforge/brick_imu_v2.rb +219 -118
- data/lib/tinkerforge/brick_master.rb +495 -195
- data/lib/tinkerforge/brick_red.rb +197 -74
- data/lib/tinkerforge/brick_servo.rb +186 -102
- data/lib/tinkerforge/brick_silent_stepper.rb +248 -168
- data/lib/tinkerforge/brick_stepper.rb +212 -100
- data/lib/tinkerforge/bricklet_accelerometer.rb +61 -36
- data/lib/tinkerforge/bricklet_accelerometer_v2.rb +107 -63
- data/lib/tinkerforge/bricklet_air_quality.rb +123 -76
- data/lib/tinkerforge/bricklet_ambient_light.rb +62 -46
- data/lib/tinkerforge/bricklet_ambient_light_v2.rb +41 -28
- data/lib/tinkerforge/bricklet_ambient_light_v3.rb +61 -28
- data/lib/tinkerforge/bricklet_analog_in.rb +66 -45
- data/lib/tinkerforge/bricklet_analog_in_v2.rb +60 -43
- data/lib/tinkerforge/bricklet_analog_in_v3.rb +68 -32
- data/lib/tinkerforge/bricklet_analog_out.rb +25 -16
- data/lib/tinkerforge/bricklet_analog_out_v2.rb +21 -10
- data/lib/tinkerforge/bricklet_analog_out_v3.rb +55 -22
- data/lib/tinkerforge/bricklet_barometer.rb +108 -58
- data/lib/tinkerforge/bricklet_barometer_v2.rb +109 -67
- data/lib/tinkerforge/bricklet_can.rb +84 -24
- data/lib/tinkerforge/bricklet_can_v2.rb +173 -72
- data/lib/tinkerforge/bricklet_co2.rb +36 -25
- data/lib/tinkerforge/bricklet_co2_v2.rb +119 -60
- data/lib/tinkerforge/bricklet_color.rb +75 -47
- data/lib/tinkerforge/bricklet_color_v2.rb +91 -47
- data/lib/tinkerforge/bricklet_compass.rb +81 -40
- data/lib/tinkerforge/bricklet_current12.rb +61 -40
- data/lib/tinkerforge/bricklet_current25.rb +61 -40
- data/lib/tinkerforge/bricklet_distance_ir.rb +60 -38
- data/lib/tinkerforge/bricklet_distance_ir_v2.rb +85 -45
- data/lib/tinkerforge/bricklet_distance_us.rb +43 -30
- data/lib/tinkerforge/bricklet_distance_us_v2.rb +68 -33
- data/lib/tinkerforge/bricklet_dmx.rb +92 -48
- data/lib/tinkerforge/bricklet_dual_button.rb +23 -12
- data/lib/tinkerforge/bricklet_dual_button_v2.rb +64 -29
- data/lib/tinkerforge/bricklet_dual_relay.rb +27 -14
- data/lib/tinkerforge/bricklet_dust_detector.rb +43 -30
- data/lib/tinkerforge/bricklet_e_paper_296x128.rb +115 -63
- data/lib/tinkerforge/bricklet_energy_monitor.rb +81 -40
- data/lib/tinkerforge/bricklet_gps.rb +72 -48
- data/lib/tinkerforge/bricklet_gps_v2.rb +124 -73
- data/lib/tinkerforge/bricklet_hall_effect.rb +43 -28
- data/lib/tinkerforge/bricklet_hall_effect_v2.rb +76 -44
- data/lib/tinkerforge/bricklet_humidity.rb +54 -38
- data/lib/tinkerforge/bricklet_humidity_v2.rb +86 -49
- data/lib/tinkerforge/bricklet_imu_v3.rb +784 -0
- data/lib/tinkerforge/bricklet_industrial_analog_out.rb +41 -18
- data/lib/tinkerforge/bricklet_industrial_analog_out_v2.rb +84 -40
- data/lib/tinkerforge/bricklet_industrial_counter.rb +102 -59
- data/lib/tinkerforge/bricklet_industrial_digital_in_4.rb +51 -24
- data/lib/tinkerforge/bricklet_industrial_digital_in_4_v2.rb +79 -40
- data/lib/tinkerforge/bricklet_industrial_digital_out_4.rb +36 -15
- data/lib/tinkerforge/bricklet_industrial_digital_out_4_v2.rb +75 -33
- data/lib/tinkerforge/bricklet_industrial_dual_0_20ma.rb +43 -29
- data/lib/tinkerforge/bricklet_industrial_dual_0_20ma_v2.rb +81 -44
- data/lib/tinkerforge/bricklet_industrial_dual_ac_relay.rb +325 -0
- data/lib/tinkerforge/bricklet_industrial_dual_analog_in.rb +51 -30
- data/lib/tinkerforge/bricklet_industrial_dual_analog_in_v2.rb +139 -40
- data/lib/tinkerforge/bricklet_industrial_dual_relay.rb +63 -28
- data/lib/tinkerforge/bricklet_industrial_quad_relay.rb +36 -15
- data/lib/tinkerforge/bricklet_industrial_quad_relay_v2.rb +67 -28
- data/lib/tinkerforge/bricklet_io16.rb +57 -32
- data/lib/tinkerforge/bricklet_io16_v2.rb +93 -48
- data/lib/tinkerforge/bricklet_io4.rb +56 -31
- data/lib/tinkerforge/bricklet_io4_v2.rb +109 -57
- data/lib/tinkerforge/bricklet_isolator.rb +111 -35
- data/lib/tinkerforge/bricklet_joystick.rb +63 -42
- data/lib/tinkerforge/bricklet_joystick_v2.rb +71 -35
- data/lib/tinkerforge/bricklet_laser_range_finder.rb +87 -59
- data/lib/tinkerforge/bricklet_laser_range_finder_v2.rb +99 -51
- data/lib/tinkerforge/bricklet_lcd_128x64.rb +219 -131
- data/lib/tinkerforge/bricklet_lcd_16x2.rb +49 -25
- data/lib/tinkerforge/bricklet_lcd_20x4.rb +59 -29
- data/lib/tinkerforge/bricklet_led_strip.rb +69 -47
- data/lib/tinkerforge/bricklet_led_strip_v2.rb +105 -48
- data/lib/tinkerforge/bricklet_line.rb +35 -22
- data/lib/tinkerforge/bricklet_linear_poti.rb +53 -35
- data/lib/tinkerforge/bricklet_linear_poti_v2.rb +55 -24
- data/lib/tinkerforge/bricklet_load_cell.rb +64 -40
- data/lib/tinkerforge/bricklet_load_cell_v2.rb +81 -41
- data/lib/tinkerforge/bricklet_moisture.rb +43 -30
- data/lib/tinkerforge/bricklet_motion_detector.rb +21 -10
- data/lib/tinkerforge/bricklet_motion_detector_v2.rb +62 -29
- data/lib/tinkerforge/bricklet_motorized_linear_poti.rb +71 -32
- data/lib/tinkerforge/bricklet_multi_touch.rb +30 -17
- data/lib/tinkerforge/bricklet_multi_touch_v2.rb +76 -39
- data/lib/tinkerforge/bricklet_nfc.rb +130 -80
- data/lib/tinkerforge/bricklet_nfc_rfid.rb +32 -13
- data/lib/tinkerforge/bricklet_oled_128x64.rb +30 -17
- data/lib/tinkerforge/bricklet_oled_128x64_v2.rb +75 -40
- data/lib/tinkerforge/bricklet_oled_64x48.rb +30 -17
- data/lib/tinkerforge/bricklet_one_wire.rb +65 -24
- data/lib/tinkerforge/bricklet_outdoor_weather.rb +84 -41
- data/lib/tinkerforge/bricklet_particulate_matter.rb +85 -37
- data/lib/tinkerforge/bricklet_performance_dc.rb +676 -0
- data/lib/tinkerforge/bricklet_piezo_buzzer.rb +19 -13
- data/lib/tinkerforge/bricklet_piezo_speaker.rb +22 -19
- data/lib/tinkerforge/bricklet_piezo_speaker_v2.rb +84 -57
- data/lib/tinkerforge/bricklet_ptc.rb +76 -51
- data/lib/tinkerforge/bricklet_ptc_v2.rb +96 -54
- data/lib/tinkerforge/bricklet_real_time_clock.rb +45 -36
- data/lib/tinkerforge/bricklet_real_time_clock_v2.rb +78 -47
- data/lib/tinkerforge/bricklet_remote_switch.rb +38 -29
- data/lib/tinkerforge/bricklet_remote_switch_v2.rb +86 -49
- data/lib/tinkerforge/bricklet_rgb_led.rb +17 -8
- data/lib/tinkerforge/bricklet_rgb_led_button.rb +61 -30
- data/lib/tinkerforge/bricklet_rgb_led_matrix.rb +78 -33
- data/lib/tinkerforge/bricklet_rgb_led_v2.rb +51 -20
- data/lib/tinkerforge/bricklet_rotary_encoder.rb +40 -25
- data/lib/tinkerforge/bricklet_rotary_encoder_v2.rb +60 -27
- data/lib/tinkerforge/bricklet_rotary_poti.rb +55 -37
- data/lib/tinkerforge/bricklet_rotary_poti_v2.rb +57 -26
- data/lib/tinkerforge/bricklet_rs232.rb +89 -28
- data/lib/tinkerforge/bricklet_rs232_v2.rb +121 -47
- data/lib/tinkerforge/bricklet_rs485.rb +250 -164
- data/lib/tinkerforge/bricklet_segment_display_4x7.rb +24 -14
- data/lib/tinkerforge/bricklet_segment_display_4x7_v2.rb +75 -36
- data/lib/tinkerforge/bricklet_servo_v2.rb +565 -0
- data/lib/tinkerforge/bricklet_solid_state_relay.rb +24 -13
- data/lib/tinkerforge/bricklet_solid_state_relay_v2.rb +58 -25
- data/lib/tinkerforge/bricklet_sound_intensity.rb +36 -24
- data/lib/tinkerforge/bricklet_sound_pressure_level.rb +77 -41
- data/lib/tinkerforge/bricklet_temperature.rb +43 -28
- data/lib/tinkerforge/bricklet_temperature_ir.rb +61 -47
- data/lib/tinkerforge/bricklet_temperature_ir_v2.rb +74 -44
- data/lib/tinkerforge/bricklet_temperature_v2.rb +62 -31
- data/lib/tinkerforge/bricklet_thermal_imaging.rb +118 -68
- data/lib/tinkerforge/bricklet_thermocouple.rb +46 -30
- data/lib/tinkerforge/bricklet_thermocouple_v2.rb +65 -30
- data/lib/tinkerforge/bricklet_tilt.rb +23 -10
- data/lib/tinkerforge/bricklet_uv_light.rb +37 -24
- data/lib/tinkerforge/bricklet_uv_light_v2.rb +87 -46
- data/lib/tinkerforge/bricklet_voltage.rb +54 -37
- data/lib/tinkerforge/bricklet_voltage_current.rb +94 -85
- data/lib/tinkerforge/bricklet_voltage_current_v2.rb +92 -77
- data/lib/tinkerforge/bricklet_xmc1400_breakout.rb +81 -36
- data/lib/tinkerforge/device_display_names.rb +167 -0
- data/lib/tinkerforge/ip_connection.rb +156 -33
- data/lib/tinkerforge/version.rb +1 -1
- metadata +8 -3
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# -*- ruby encoding: utf-8 -*-
|
|
2
2
|
#############################################################
|
|
3
|
-
# This file was automatically generated on
|
|
3
|
+
# This file was automatically generated on 2021-01-15. #
|
|
4
4
|
# #
|
|
5
|
-
# Ruby Bindings Version 2.1.
|
|
5
|
+
# Ruby Bindings Version 2.1.28 #
|
|
6
6
|
# #
|
|
7
7
|
# If you have a bugfix for this file and want to commit it, #
|
|
8
8
|
# please fix the bug in the generator. You can find a link #
|
|
9
9
|
# to the generators git repository on tinkerforge.com #
|
|
10
10
|
#############################################################
|
|
11
11
|
|
|
12
|
+
require_relative './ip_connection'
|
|
13
|
+
|
|
12
14
|
module Tinkerforge
|
|
13
15
|
# Capacitive touch sensor for 12 electrodes
|
|
14
16
|
class BrickletMultiTouch < Device
|
|
@@ -33,7 +35,7 @@ module Tinkerforge
|
|
|
33
35
|
# Creates an object with the unique device ID <tt>uid</tt> and adds it to
|
|
34
36
|
# the IP Connection <tt>ipcon</tt>.
|
|
35
37
|
def initialize(uid, ipcon)
|
|
36
|
-
super uid, ipcon
|
|
38
|
+
super uid, ipcon, DEVICE_IDENTIFIER, DEVICE_DISPLAY_NAME
|
|
37
39
|
|
|
38
40
|
@api_version = [2, 0, 0]
|
|
39
41
|
|
|
@@ -45,8 +47,9 @@ module Tinkerforge
|
|
|
45
47
|
@response_expected[FUNCTION_GET_ELECTRODE_SENSITIVITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
46
48
|
@response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
47
49
|
|
|
48
|
-
@callback_formats[CALLBACK_TOUCH_STATE] = 'S'
|
|
50
|
+
@callback_formats[CALLBACK_TOUCH_STATE] = [10, 'S']
|
|
49
51
|
|
|
52
|
+
@ipcon.add_device self
|
|
50
53
|
end
|
|
51
54
|
|
|
52
55
|
# Returns the current touch state. The state is given as a bitfield.
|
|
@@ -68,13 +71,17 @@ module Tinkerforge
|
|
|
68
71
|
# or similar on top of a electrode to build a touch panel with
|
|
69
72
|
# a professional look.
|
|
70
73
|
def get_touch_state
|
|
71
|
-
|
|
74
|
+
check_validity
|
|
75
|
+
|
|
76
|
+
send_request FUNCTION_GET_TOUCH_STATE, [], '', 10, 'S'
|
|
72
77
|
end
|
|
73
78
|
|
|
74
79
|
# Recalibrates the electrodes. Call this function whenever you changed
|
|
75
80
|
# or moved you electrodes.
|
|
76
81
|
def recalibrate
|
|
77
|
-
|
|
82
|
+
check_validity
|
|
83
|
+
|
|
84
|
+
send_request FUNCTION_RECALIBRATE, [], '', 8, ''
|
|
78
85
|
end
|
|
79
86
|
|
|
80
87
|
# Enables/disables electrodes with a bitfield (see BrickletMultiTouch#get_touch_state).
|
|
@@ -90,14 +97,18 @@ module Tinkerforge
|
|
|
90
97
|
#
|
|
91
98
|
# Disabling electrodes will also reduce power consumption.
|
|
92
99
|
#
|
|
93
|
-
# Default: 8191 = 0x1FFF = 0b1111111111111 (all electrodes enabled)
|
|
100
|
+
# Default: 8191 = 0x1FFF = 0b1111111111111 (all electrodes and proximity feature enabled)
|
|
94
101
|
def set_electrode_config(enabled_electrodes)
|
|
95
|
-
|
|
102
|
+
check_validity
|
|
103
|
+
|
|
104
|
+
send_request FUNCTION_SET_ELECTRODE_CONFIG, [enabled_electrodes], 'S', 8, ''
|
|
96
105
|
end
|
|
97
106
|
|
|
98
107
|
# Returns the electrode configuration, as set by BrickletMultiTouch#set_electrode_config.
|
|
99
108
|
def get_electrode_config
|
|
100
|
-
|
|
109
|
+
check_validity
|
|
110
|
+
|
|
111
|
+
send_request FUNCTION_GET_ELECTRODE_CONFIG, [], '', 10, 'S'
|
|
101
112
|
end
|
|
102
113
|
|
|
103
114
|
# Sets the sensitivity of the electrodes. An electrode with a high sensitivity
|
|
@@ -109,29 +120,31 @@ module Tinkerforge
|
|
|
109
120
|
#
|
|
110
121
|
# After a new sensitivity is set, you likely want to call BrickletMultiTouch#recalibrate
|
|
111
122
|
# to calibrate the electrodes with the newly defined sensitivity.
|
|
112
|
-
#
|
|
113
|
-
# The valid sensitivity value range is 5-201.
|
|
114
|
-
#
|
|
115
|
-
# The default sensitivity value is 181.
|
|
116
123
|
def set_electrode_sensitivity(sensitivity)
|
|
117
|
-
|
|
124
|
+
check_validity
|
|
125
|
+
|
|
126
|
+
send_request FUNCTION_SET_ELECTRODE_SENSITIVITY, [sensitivity], 'C', 8, ''
|
|
118
127
|
end
|
|
119
128
|
|
|
120
129
|
# Returns the current sensitivity, as set by BrickletMultiTouch#set_electrode_sensitivity.
|
|
121
130
|
def get_electrode_sensitivity
|
|
122
|
-
|
|
131
|
+
check_validity
|
|
132
|
+
|
|
133
|
+
send_request FUNCTION_GET_ELECTRODE_SENSITIVITY, [], '', 9, 'C'
|
|
123
134
|
end
|
|
124
135
|
|
|
125
136
|
# Returns the UID, the UID where the Bricklet is connected to,
|
|
126
137
|
# the position, the hardware and firmware version as well as the
|
|
127
138
|
# device identifier.
|
|
128
139
|
#
|
|
129
|
-
# The position can be 'a', 'b', 'c' or '
|
|
140
|
+
# The position can be 'a', 'b', 'c', 'd', 'e', 'f', 'g' or 'h' (Bricklet Port).
|
|
141
|
+
# A Bricklet connected to an :ref:`Isolator Bricklet <isolator_bricklet>` is always at
|
|
142
|
+
# position 'z'.
|
|
130
143
|
#
|
|
131
144
|
# The device identifier numbers can be found :ref:`here <device_identifier>`.
|
|
132
145
|
# |device_identifier_constant|
|
|
133
146
|
def get_identity
|
|
134
|
-
send_request FUNCTION_GET_IDENTITY, [], '',
|
|
147
|
+
send_request FUNCTION_GET_IDENTITY, [], '', 33, 'Z8 Z8 k C3 C3 S'
|
|
135
148
|
end
|
|
136
149
|
|
|
137
150
|
# Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# -*- ruby encoding: utf-8 -*-
|
|
2
2
|
#############################################################
|
|
3
|
-
# This file was automatically generated on
|
|
3
|
+
# This file was automatically generated on 2021-01-15. #
|
|
4
4
|
# #
|
|
5
|
-
# Ruby Bindings Version 2.1.
|
|
5
|
+
# Ruby Bindings Version 2.1.28 #
|
|
6
6
|
# #
|
|
7
7
|
# If you have a bugfix for this file and want to commit it, #
|
|
8
8
|
# please fix the bug in the generator. You can find a link #
|
|
9
9
|
# to the generators git repository on tinkerforge.com #
|
|
10
10
|
#############################################################
|
|
11
11
|
|
|
12
|
+
require_relative './ip_connection'
|
|
13
|
+
|
|
12
14
|
module Tinkerforge
|
|
13
15
|
# Capacitive touch sensor for 12 electrodes
|
|
14
16
|
class BrickletMultiTouchV2 < Device
|
|
@@ -68,7 +70,7 @@ module Tinkerforge
|
|
|
68
70
|
# Creates an object with the unique device ID <tt>uid</tt> and adds it to
|
|
69
71
|
# the IP Connection <tt>ipcon</tt>.
|
|
70
72
|
def initialize(uid, ipcon)
|
|
71
|
-
super uid, ipcon
|
|
73
|
+
super uid, ipcon, DEVICE_IDENTIFIER, DEVICE_DISPLAY_NAME
|
|
72
74
|
|
|
73
75
|
@api_version = [2, 0, 0]
|
|
74
76
|
|
|
@@ -95,8 +97,9 @@ module Tinkerforge
|
|
|
95
97
|
@response_expected[FUNCTION_READ_UID] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
96
98
|
@response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
97
99
|
|
|
98
|
-
@callback_formats[CALLBACK_TOUCH_STATE] = '?13'
|
|
100
|
+
@callback_formats[CALLBACK_TOUCH_STATE] = [10, '?13']
|
|
99
101
|
|
|
102
|
+
@ipcon.add_device self
|
|
100
103
|
end
|
|
101
104
|
|
|
102
105
|
# Returns the current touch state. The state is given as a array of
|
|
@@ -119,10 +122,12 @@ module Tinkerforge
|
|
|
119
122
|
# CALLBACK_TOUCH_STATE callback. You can set the callback configuration
|
|
120
123
|
# with BrickletMultiTouchV2#set_touch_state_callback_configuration.
|
|
121
124
|
def get_touch_state
|
|
122
|
-
|
|
125
|
+
check_validity
|
|
126
|
+
|
|
127
|
+
send_request FUNCTION_GET_TOUCH_STATE, [], '', 10, '?13'
|
|
123
128
|
end
|
|
124
129
|
|
|
125
|
-
# The period
|
|
130
|
+
# The period is the period with which the CALLBACK_TOUCH_STATE callback
|
|
126
131
|
# is triggered periodically. A value of 0 turns the callback off.
|
|
127
132
|
#
|
|
128
133
|
# If the `value has to change`-parameter is set to true, the callback is only
|
|
@@ -131,22 +136,26 @@ module Tinkerforge
|
|
|
131
136
|
#
|
|
132
137
|
# If it is set to false, the callback is continuously triggered with the period,
|
|
133
138
|
# independent of the value.
|
|
134
|
-
#
|
|
135
|
-
# The default value is (0, false).
|
|
136
139
|
def set_touch_state_callback_configuration(period, value_has_to_change)
|
|
137
|
-
|
|
140
|
+
check_validity
|
|
141
|
+
|
|
142
|
+
send_request FUNCTION_SET_TOUCH_STATE_CALLBACK_CONFIGURATION, [period, value_has_to_change], 'L ?', 8, ''
|
|
138
143
|
end
|
|
139
144
|
|
|
140
145
|
# Returns the callback configuration as set by
|
|
141
146
|
# BrickletMultiTouchV2#set_touch_state_callback_configuration.
|
|
142
147
|
def get_touch_state_callback_configuration
|
|
143
|
-
|
|
148
|
+
check_validity
|
|
149
|
+
|
|
150
|
+
send_request FUNCTION_GET_TOUCH_STATE_CALLBACK_CONFIGURATION, [], '', 13, 'L ?'
|
|
144
151
|
end
|
|
145
152
|
|
|
146
153
|
# Recalibrates the electrodes. Call this function whenever you changed
|
|
147
154
|
# or moved you electrodes.
|
|
148
155
|
def recalibrate
|
|
149
|
-
|
|
156
|
+
check_validity
|
|
157
|
+
|
|
158
|
+
send_request FUNCTION_RECALIBRATE, [], '', 8, ''
|
|
150
159
|
end
|
|
151
160
|
|
|
152
161
|
# Enables/disables electrodes with a bool array (see BrickletMultiTouchV2#get_touch_state).
|
|
@@ -161,15 +170,17 @@ module Tinkerforge
|
|
|
161
170
|
# traffic that is produced by the CALLBACK_TOUCH_STATE callback.
|
|
162
171
|
#
|
|
163
172
|
# Disabling electrodes will also reduce power consumption.
|
|
164
|
-
#
|
|
165
|
-
# Default: All electrodes enabled.
|
|
166
173
|
def set_electrode_config(enabled_electrodes)
|
|
167
|
-
|
|
174
|
+
check_validity
|
|
175
|
+
|
|
176
|
+
send_request FUNCTION_SET_ELECTRODE_CONFIG, [enabled_electrodes], '?13', 8, ''
|
|
168
177
|
end
|
|
169
178
|
|
|
170
179
|
# Returns the electrode configuration, as set by BrickletMultiTouchV2#set_electrode_config.
|
|
171
180
|
def get_electrode_config
|
|
172
|
-
|
|
181
|
+
check_validity
|
|
182
|
+
|
|
183
|
+
send_request FUNCTION_GET_ELECTRODE_CONFIG, [], '', 10, '?13'
|
|
173
184
|
end
|
|
174
185
|
|
|
175
186
|
# Sets the sensitivity of the electrodes. An electrode with a high sensitivity
|
|
@@ -181,30 +192,32 @@ module Tinkerforge
|
|
|
181
192
|
#
|
|
182
193
|
# After a new sensitivity is set, you likely want to call BrickletMultiTouchV2#recalibrate
|
|
183
194
|
# to calibrate the electrodes with the newly defined sensitivity.
|
|
184
|
-
#
|
|
185
|
-
# The valid sensitivity value range is 5-201.
|
|
186
|
-
#
|
|
187
|
-
# The default sensitivity value is 181.
|
|
188
195
|
def set_electrode_sensitivity(sensitivity)
|
|
189
|
-
|
|
196
|
+
check_validity
|
|
197
|
+
|
|
198
|
+
send_request FUNCTION_SET_ELECTRODE_SENSITIVITY, [sensitivity], 'C', 8, ''
|
|
190
199
|
end
|
|
191
200
|
|
|
192
201
|
# Returns the current sensitivity, as set by BrickletMultiTouchV2#set_electrode_sensitivity.
|
|
193
202
|
def get_electrode_sensitivity
|
|
194
|
-
|
|
203
|
+
check_validity
|
|
204
|
+
|
|
205
|
+
send_request FUNCTION_GET_ELECTRODE_SENSITIVITY, [], '', 9, 'C'
|
|
195
206
|
end
|
|
196
207
|
|
|
197
208
|
# Configures the touch LED to be either turned off, turned on, blink in
|
|
198
209
|
# heartbeat mode or show the touch state (electrode touched = LED on).
|
|
199
|
-
#
|
|
200
|
-
# The default value is 3 (show touch state).
|
|
201
210
|
def set_touch_led_config(config)
|
|
202
|
-
|
|
211
|
+
check_validity
|
|
212
|
+
|
|
213
|
+
send_request FUNCTION_SET_TOUCH_LED_CONFIG, [config], 'C', 8, ''
|
|
203
214
|
end
|
|
204
215
|
|
|
205
216
|
# Returns the LED configuration as set by BrickletMultiTouchV2#set_touch_led_config
|
|
206
217
|
def get_touch_led_config
|
|
207
|
-
|
|
218
|
+
check_validity
|
|
219
|
+
|
|
220
|
+
send_request FUNCTION_GET_TOUCH_LED_CONFIG, [], '', 9, 'C'
|
|
208
221
|
end
|
|
209
222
|
|
|
210
223
|
# Returns the error count for the communication between Brick and Bricklet.
|
|
@@ -219,7 +232,9 @@ module Tinkerforge
|
|
|
219
232
|
# The errors counts are for errors that occur on the Bricklet side. All
|
|
220
233
|
# Bricks have a similar function that returns the errors on the Brick side.
|
|
221
234
|
def get_spitfp_error_count
|
|
222
|
-
|
|
235
|
+
check_validity
|
|
236
|
+
|
|
237
|
+
send_request FUNCTION_GET_SPITFP_ERROR_COUNT, [], '', 24, 'L L L L'
|
|
223
238
|
end
|
|
224
239
|
|
|
225
240
|
# Sets the bootloader mode and returns the status after the requested
|
|
@@ -232,12 +247,16 @@ module Tinkerforge
|
|
|
232
247
|
# This function is used by Brick Viewer during flashing. It should not be
|
|
233
248
|
# necessary to call it in a normal user program.
|
|
234
249
|
def set_bootloader_mode(mode)
|
|
235
|
-
|
|
250
|
+
check_validity
|
|
251
|
+
|
|
252
|
+
send_request FUNCTION_SET_BOOTLOADER_MODE, [mode], 'C', 9, 'C'
|
|
236
253
|
end
|
|
237
254
|
|
|
238
255
|
# Returns the current bootloader mode, see BrickletMultiTouchV2#set_bootloader_mode.
|
|
239
256
|
def get_bootloader_mode
|
|
240
|
-
|
|
257
|
+
check_validity
|
|
258
|
+
|
|
259
|
+
send_request FUNCTION_GET_BOOTLOADER_MODE, [], '', 9, 'C'
|
|
241
260
|
end
|
|
242
261
|
|
|
243
262
|
# Sets the firmware pointer for BrickletMultiTouchV2#write_firmware. The pointer has
|
|
@@ -247,7 +266,9 @@ module Tinkerforge
|
|
|
247
266
|
# This function is used by Brick Viewer during flashing. It should not be
|
|
248
267
|
# necessary to call it in a normal user program.
|
|
249
268
|
def set_write_firmware_pointer(pointer)
|
|
250
|
-
|
|
269
|
+
check_validity
|
|
270
|
+
|
|
271
|
+
send_request FUNCTION_SET_WRITE_FIRMWARE_POINTER, [pointer], 'L', 8, ''
|
|
251
272
|
end
|
|
252
273
|
|
|
253
274
|
# Writes 64 Bytes of firmware at the position as written by
|
|
@@ -259,7 +280,9 @@ module Tinkerforge
|
|
|
259
280
|
# This function is used by Brick Viewer during flashing. It should not be
|
|
260
281
|
# necessary to call it in a normal user program.
|
|
261
282
|
def write_firmware(data)
|
|
262
|
-
|
|
283
|
+
check_validity
|
|
284
|
+
|
|
285
|
+
send_request FUNCTION_WRITE_FIRMWARE, [data], 'C64', 9, 'C'
|
|
263
286
|
end
|
|
264
287
|
|
|
265
288
|
# Sets the status LED configuration. By default the LED shows
|
|
@@ -270,22 +293,28 @@ module Tinkerforge
|
|
|
270
293
|
#
|
|
271
294
|
# If the Bricklet is in bootloader mode, the LED is will show heartbeat by default.
|
|
272
295
|
def set_status_led_config(config)
|
|
273
|
-
|
|
296
|
+
check_validity
|
|
297
|
+
|
|
298
|
+
send_request FUNCTION_SET_STATUS_LED_CONFIG, [config], 'C', 8, ''
|
|
274
299
|
end
|
|
275
300
|
|
|
276
301
|
# Returns the configuration as set by BrickletMultiTouchV2#set_status_led_config
|
|
277
302
|
def get_status_led_config
|
|
278
|
-
|
|
303
|
+
check_validity
|
|
304
|
+
|
|
305
|
+
send_request FUNCTION_GET_STATUS_LED_CONFIG, [], '', 9, 'C'
|
|
279
306
|
end
|
|
280
307
|
|
|
281
|
-
# Returns the temperature
|
|
308
|
+
# Returns the temperature as measured inside the microcontroller. The
|
|
282
309
|
# value returned is not the ambient temperature!
|
|
283
310
|
#
|
|
284
311
|
# The temperature is only proportional to the real temperature and it has bad
|
|
285
312
|
# accuracy. Practically it is only useful as an indicator for
|
|
286
313
|
# temperature changes.
|
|
287
314
|
def get_chip_temperature
|
|
288
|
-
|
|
315
|
+
check_validity
|
|
316
|
+
|
|
317
|
+
send_request FUNCTION_GET_CHIP_TEMPERATURE, [], '', 10, 's'
|
|
289
318
|
end
|
|
290
319
|
|
|
291
320
|
# Calling this function will reset the Bricklet. All configurations
|
|
@@ -295,7 +324,9 @@ module Tinkerforge
|
|
|
295
324
|
# calling functions on the existing ones will result in
|
|
296
325
|
# undefined behavior!
|
|
297
326
|
def reset
|
|
298
|
-
|
|
327
|
+
check_validity
|
|
328
|
+
|
|
329
|
+
send_request FUNCTION_RESET, [], '', 8, ''
|
|
299
330
|
end
|
|
300
331
|
|
|
301
332
|
# Writes a new UID into flash. If you want to set a new UID
|
|
@@ -304,25 +335,31 @@ module Tinkerforge
|
|
|
304
335
|
#
|
|
305
336
|
# We recommend that you use Brick Viewer to change the UID.
|
|
306
337
|
def write_uid(uid)
|
|
307
|
-
|
|
338
|
+
check_validity
|
|
339
|
+
|
|
340
|
+
send_request FUNCTION_WRITE_UID, [uid], 'L', 8, ''
|
|
308
341
|
end
|
|
309
342
|
|
|
310
343
|
# Returns the current UID as an integer. Encode as
|
|
311
344
|
# Base58 to get the usual string version.
|
|
312
345
|
def read_uid
|
|
313
|
-
|
|
346
|
+
check_validity
|
|
347
|
+
|
|
348
|
+
send_request FUNCTION_READ_UID, [], '', 12, 'L'
|
|
314
349
|
end
|
|
315
350
|
|
|
316
351
|
# Returns the UID, the UID where the Bricklet is connected to,
|
|
317
352
|
# the position, the hardware and firmware version as well as the
|
|
318
353
|
# device identifier.
|
|
319
354
|
#
|
|
320
|
-
# The position can be 'a', 'b', 'c' or '
|
|
355
|
+
# The position can be 'a', 'b', 'c', 'd', 'e', 'f', 'g' or 'h' (Bricklet Port).
|
|
356
|
+
# A Bricklet connected to an :ref:`Isolator Bricklet <isolator_bricklet>` is always at
|
|
357
|
+
# position 'z'.
|
|
321
358
|
#
|
|
322
359
|
# The device identifier numbers can be found :ref:`here <device_identifier>`.
|
|
323
360
|
# |device_identifier_constant|
|
|
324
361
|
def get_identity
|
|
325
|
-
send_request FUNCTION_GET_IDENTITY, [], '',
|
|
362
|
+
send_request FUNCTION_GET_IDENTITY, [], '', 33, 'Z8 Z8 k C3 C3 S'
|
|
326
363
|
end
|
|
327
364
|
|
|
328
365
|
# Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# -*- ruby encoding: utf-8 -*-
|
|
2
2
|
#############################################################
|
|
3
|
-
# This file was automatically generated on
|
|
3
|
+
# This file was automatically generated on 2021-01-15. #
|
|
4
4
|
# #
|
|
5
|
-
# Ruby Bindings Version 2.1.
|
|
5
|
+
# Ruby Bindings Version 2.1.28 #
|
|
6
6
|
# #
|
|
7
7
|
# If you have a bugfix for this file and want to commit it, #
|
|
8
8
|
# please fix the bug in the generator. You can find a link #
|
|
9
9
|
# to the generators git repository on tinkerforge.com #
|
|
10
10
|
#############################################################
|
|
11
11
|
|
|
12
|
+
require_relative './ip_connection'
|
|
13
|
+
|
|
12
14
|
module Tinkerforge
|
|
13
15
|
# NFC tag read/write, NFC P2P and Card Emulation
|
|
14
16
|
class BrickletNFC < Device
|
|
@@ -147,7 +149,7 @@ module Tinkerforge
|
|
|
147
149
|
# Creates an object with the unique device ID <tt>uid</tt> and adds it to
|
|
148
150
|
# the IP Connection <tt>ipcon</tt>.
|
|
149
151
|
def initialize(uid, ipcon)
|
|
150
|
-
super uid, ipcon
|
|
152
|
+
super uid, ipcon, DEVICE_IDENTIFIER, DEVICE_DISPLAY_NAME
|
|
151
153
|
|
|
152
154
|
@api_version = [2, 0, 1]
|
|
153
155
|
|
|
@@ -189,10 +191,11 @@ module Tinkerforge
|
|
|
189
191
|
@response_expected[FUNCTION_READ_UID] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
190
192
|
@response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
|
191
193
|
|
|
192
|
-
@callback_formats[CALLBACK_READER_STATE_CHANGED] = 'C ?'
|
|
193
|
-
@callback_formats[CALLBACK_CARDEMU_STATE_CHANGED] = 'C ?'
|
|
194
|
-
@callback_formats[CALLBACK_P2P_STATE_CHANGED] = 'C ?'
|
|
194
|
+
@callback_formats[CALLBACK_READER_STATE_CHANGED] = [10, 'C ?']
|
|
195
|
+
@callback_formats[CALLBACK_CARDEMU_STATE_CHANGED] = [10, 'C ?']
|
|
196
|
+
@callback_formats[CALLBACK_P2P_STATE_CHANGED] = [10, 'C ?']
|
|
195
197
|
|
|
198
|
+
@ipcon.add_device self
|
|
196
199
|
end
|
|
197
200
|
|
|
198
201
|
# Sets the mode. The NFC Bricklet supports four modes:
|
|
@@ -205,30 +208,19 @@ module Tinkerforge
|
|
|
205
208
|
# If you change a mode, the Bricklet will reconfigure the hardware for this mode.
|
|
206
209
|
# Therefore, you can only use functions corresponding to the current mode. For
|
|
207
210
|
# example, in Reader mode you can only use Reader functions.
|
|
208
|
-
#
|
|
209
|
-
# The default mode is "off".
|
|
210
211
|
def set_mode(mode)
|
|
211
|
-
|
|
212
|
+
check_validity
|
|
213
|
+
|
|
214
|
+
send_request FUNCTION_SET_MODE, [mode], 'C', 8, ''
|
|
212
215
|
end
|
|
213
216
|
|
|
214
217
|
# Returns the mode as set by BrickletNFC#set_mode.
|
|
215
218
|
def get_mode
|
|
216
|
-
|
|
219
|
+
check_validity
|
|
220
|
+
|
|
221
|
+
send_request FUNCTION_GET_MODE, [], '', 9, 'C'
|
|
217
222
|
end
|
|
218
223
|
|
|
219
|
-
# To read or write a tag that is in proximity of the NFC Bricklet you
|
|
220
|
-
# first have to call this function with the expected tag type as parameter.
|
|
221
|
-
# It is no problem if you don't know the tag type. You can cycle through
|
|
222
|
-
# the available tag types until the tag answers the request.
|
|
223
|
-
#
|
|
224
|
-
# Currently the following tag types are supported:
|
|
225
|
-
#
|
|
226
|
-
# * Mifare Classic
|
|
227
|
-
# * NFC Forum Type 1
|
|
228
|
-
# * NFC Forum Type 2
|
|
229
|
-
# * NFC Forum Type 3
|
|
230
|
-
# * NFC Forum Type 4
|
|
231
|
-
#
|
|
232
224
|
# After you call BrickletNFC#reader_request_tag_id the NFC Bricklet will try to read
|
|
233
225
|
# the tag ID from the tag. After this process is done the state will change.
|
|
234
226
|
# You can either register the CALLBACK_READER_STATE_CHANGED callback or you can poll
|
|
@@ -247,7 +239,9 @@ module Tinkerforge
|
|
|
247
239
|
# In case of any *ReaderError* state the selection is lost and you have to
|
|
248
240
|
# start again by calling BrickletNFC#reader_request_tag_id.
|
|
249
241
|
def reader_request_tag_id
|
|
250
|
-
|
|
242
|
+
check_validity
|
|
243
|
+
|
|
244
|
+
send_request FUNCTION_READER_REQUEST_TAG_ID, [], '', 8, ''
|
|
251
245
|
end
|
|
252
246
|
|
|
253
247
|
# Returns the tag type and the tag ID. This function can only be called if the
|
|
@@ -261,7 +255,9 @@ module Tinkerforge
|
|
|
261
255
|
# CALLBACK_READER_STATE_CHANGED callback)
|
|
262
256
|
# 3. Call BrickletNFC#reader_get_tag_id
|
|
263
257
|
def reader_get_tag_id_low_level
|
|
264
|
-
|
|
258
|
+
check_validity
|
|
259
|
+
|
|
260
|
+
send_request FUNCTION_READER_GET_TAG_ID_LOW_LEVEL, [], '', 42, 'C C C32'
|
|
265
261
|
end
|
|
266
262
|
|
|
267
263
|
# Returns the current reader state of the NFC Bricklet.
|
|
@@ -281,10 +277,12 @@ module Tinkerforge
|
|
|
281
277
|
#
|
|
282
278
|
# The same approach is used analogously for the other API functions.
|
|
283
279
|
def reader_get_state
|
|
284
|
-
|
|
280
|
+
check_validity
|
|
281
|
+
|
|
282
|
+
send_request FUNCTION_READER_GET_STATE, [], '', 10, 'C ?'
|
|
285
283
|
end
|
|
286
284
|
|
|
287
|
-
# Writes NDEF formated data
|
|
285
|
+
# Writes NDEF formated data.
|
|
288
286
|
#
|
|
289
287
|
# This function currently supports NFC Forum Type 2 and 4.
|
|
290
288
|
#
|
|
@@ -299,7 +297,9 @@ module Tinkerforge
|
|
|
299
297
|
# 5. Wait for state to change to *ReaderWriteNDEFReady* (see BrickletNFC#reader_get_state
|
|
300
298
|
# or CALLBACK_READER_STATE_CHANGED callback)
|
|
301
299
|
def reader_write_ndef_low_level(ndef_length, ndef_chunk_offset, ndef_chunk_data)
|
|
302
|
-
|
|
300
|
+
check_validity
|
|
301
|
+
|
|
302
|
+
send_request FUNCTION_READER_WRITE_NDEF_LOW_LEVEL, [ndef_length, ndef_chunk_offset, ndef_chunk_data], 'S S C60', 8, ''
|
|
303
303
|
end
|
|
304
304
|
|
|
305
305
|
# Reads NDEF formated data from a tag.
|
|
@@ -318,15 +318,17 @@ module Tinkerforge
|
|
|
318
318
|
# or CALLBACK_READER_STATE_CHANGED callback)
|
|
319
319
|
# 6. Call BrickletNFC#reader_read_ndef to retrieve the NDEF message from the buffer
|
|
320
320
|
def reader_request_ndef
|
|
321
|
-
|
|
321
|
+
check_validity
|
|
322
|
+
|
|
323
|
+
send_request FUNCTION_READER_REQUEST_NDEF, [], '', 8, ''
|
|
322
324
|
end
|
|
323
325
|
|
|
324
326
|
# Returns the NDEF data from an internal buffer. To fill the buffer
|
|
325
327
|
# with a NDEF message you have to call BrickletNFC#reader_request_ndef beforehand.
|
|
326
|
-
#
|
|
327
|
-
# The buffer can have a size of up to 8192 bytes.
|
|
328
328
|
def reader_read_ndef_low_level
|
|
329
|
-
|
|
329
|
+
check_validity
|
|
330
|
+
|
|
331
|
+
send_request FUNCTION_READER_READ_NDEF_LOW_LEVEL, [], '', 72, 'S S C60'
|
|
330
332
|
end
|
|
331
333
|
|
|
332
334
|
# Mifare Classic tags use authentication. If you want to read from or write to
|
|
@@ -350,7 +352,9 @@ module Tinkerforge
|
|
|
350
352
|
#
|
|
351
353
|
# The authentication will always work for one whole sector (4 pages).
|
|
352
354
|
def reader_authenticate_mifare_classic_page(page, key_number, key)
|
|
353
|
-
|
|
355
|
+
check_validity
|
|
356
|
+
|
|
357
|
+
send_request FUNCTION_READER_AUTHENTICATE_MIFARE_CLASSIC_PAGE, [page, key_number, key], 'S C C6', 8, ''
|
|
354
358
|
end
|
|
355
359
|
|
|
356
360
|
# Writes a maximum of 8192 bytes starting from the given page. How many pages are written
|
|
@@ -381,7 +385,9 @@ module Tinkerforge
|
|
|
381
385
|
#
|
|
382
386
|
# Choose CC by setting page to 3 or NDEF by setting page to 4.
|
|
383
387
|
def reader_write_page_low_level(page, data_length, data_chunk_offset, data_chunk_data)
|
|
384
|
-
|
|
388
|
+
check_validity
|
|
389
|
+
|
|
390
|
+
send_request FUNCTION_READER_WRITE_PAGE_LOW_LEVEL, [page, data_length, data_chunk_offset, data_chunk_data], 'S S S C58', 8, ''
|
|
385
391
|
end
|
|
386
392
|
|
|
387
393
|
# Reads a maximum of 8192 bytes starting from the given page and stores them into a buffer.
|
|
@@ -415,15 +421,17 @@ module Tinkerforge
|
|
|
415
421
|
#
|
|
416
422
|
# Choose CC by setting page to 3 or NDEF by setting page to 4.
|
|
417
423
|
def reader_request_page(page, length)
|
|
418
|
-
|
|
424
|
+
check_validity
|
|
425
|
+
|
|
426
|
+
send_request FUNCTION_READER_REQUEST_PAGE, [page, length], 'S S', 8, ''
|
|
419
427
|
end
|
|
420
428
|
|
|
421
429
|
# Returns the page data from an internal buffer. To fill the buffer
|
|
422
430
|
# with specific pages you have to call BrickletNFC#reader_request_page beforehand.
|
|
423
|
-
#
|
|
424
|
-
# The buffer can have a size of up to 8192 bytes.
|
|
425
431
|
def reader_read_page_low_level
|
|
426
|
-
|
|
432
|
+
check_validity
|
|
433
|
+
|
|
434
|
+
send_request FUNCTION_READER_READ_PAGE_LOW_LEVEL, [], '', 72, 'S S C60'
|
|
427
435
|
end
|
|
428
436
|
|
|
429
437
|
# Returns the current cardemu state of the NFC Bricklet.
|
|
@@ -443,7 +451,9 @@ module Tinkerforge
|
|
|
443
451
|
#
|
|
444
452
|
# The same approach is used analogously for the other API functions.
|
|
445
453
|
def cardemu_get_state
|
|
446
|
-
|
|
454
|
+
check_validity
|
|
455
|
+
|
|
456
|
+
send_request FUNCTION_CARDEMU_GET_STATE, [], '', 10, 'C ?'
|
|
447
457
|
end
|
|
448
458
|
|
|
449
459
|
# Starts the discovery process. If you call this function while a NFC
|
|
@@ -457,10 +467,12 @@ module Tinkerforge
|
|
|
457
467
|
# If the cardemu state changes to *CardemuDiscoveryReady* you can start the NDEF message
|
|
458
468
|
# transfer with BrickletNFC#cardemu_write_ndef and BrickletNFC#cardemu_start_transfer.
|
|
459
469
|
def cardemu_start_discovery
|
|
460
|
-
|
|
470
|
+
check_validity
|
|
471
|
+
|
|
472
|
+
send_request FUNCTION_CARDEMU_START_DISCOVERY, [], '', 8, ''
|
|
461
473
|
end
|
|
462
474
|
|
|
463
|
-
# Writes the NDEF
|
|
475
|
+
# Writes the NDEF message that is to be transferred to the NFC peer.
|
|
464
476
|
#
|
|
465
477
|
# The maximum supported NDEF message size in Cardemu mode is 255 byte.
|
|
466
478
|
#
|
|
@@ -468,7 +480,9 @@ module Tinkerforge
|
|
|
468
480
|
# will not be overwritten until you call this function again or change the
|
|
469
481
|
# mode.
|
|
470
482
|
def cardemu_write_ndef_low_level(ndef_length, ndef_chunk_offset, ndef_chunk_data)
|
|
471
|
-
|
|
483
|
+
check_validity
|
|
484
|
+
|
|
485
|
+
send_request FUNCTION_CARDEMU_WRITE_NDEF_LOW_LEVEL, [ndef_length, ndef_chunk_offset, ndef_chunk_data], 'S S C60', 8, ''
|
|
472
486
|
end
|
|
473
487
|
|
|
474
488
|
# You can start the transfer of a NDEF message if the cardemu state is *CardemuDiscoveryReady*.
|
|
@@ -480,7 +494,9 @@ module Tinkerforge
|
|
|
480
494
|
# change to *CardemuTransferNDEFReady* if the transfer was successful or
|
|
481
495
|
# *CardemuTransferNDEFError* if it wasn't.
|
|
482
496
|
def cardemu_start_transfer(transfer)
|
|
483
|
-
|
|
497
|
+
check_validity
|
|
498
|
+
|
|
499
|
+
send_request FUNCTION_CARDEMU_START_TRANSFER, [transfer], 'C', 8, ''
|
|
484
500
|
end
|
|
485
501
|
|
|
486
502
|
# Returns the current P2P state of the NFC Bricklet.
|
|
@@ -500,7 +516,9 @@ module Tinkerforge
|
|
|
500
516
|
#
|
|
501
517
|
# The same approach is used analogously for the other API functions.
|
|
502
518
|
def p2p_get_state
|
|
503
|
-
|
|
519
|
+
check_validity
|
|
520
|
+
|
|
521
|
+
send_request FUNCTION_P2P_GET_STATE, [], '', 10, 'C ?'
|
|
504
522
|
end
|
|
505
523
|
|
|
506
524
|
# Starts the discovery process. If you call this function while another NFC
|
|
@@ -514,10 +532,12 @@ module Tinkerforge
|
|
|
514
532
|
# If the P2P state changes to *P2PDiscoveryReady* you can start the NDEF message
|
|
515
533
|
# transfer with BrickletNFC#p2p_start_transfer.
|
|
516
534
|
def p2p_start_discovery
|
|
517
|
-
|
|
535
|
+
check_validity
|
|
536
|
+
|
|
537
|
+
send_request FUNCTION_P2P_START_DISCOVERY, [], '', 8, ''
|
|
518
538
|
end
|
|
519
539
|
|
|
520
|
-
# Writes the NDEF
|
|
540
|
+
# Writes the NDEF message that is to be transferred to the NFC peer.
|
|
521
541
|
#
|
|
522
542
|
# The maximum supported NDEF message size for P2P transfer is 255 byte.
|
|
523
543
|
#
|
|
@@ -525,7 +545,9 @@ module Tinkerforge
|
|
|
525
545
|
# will not be overwritten until you call this function again, change the
|
|
526
546
|
# mode or use P2P to read an NDEF messages.
|
|
527
547
|
def p2p_write_ndef_low_level(ndef_length, ndef_chunk_offset, ndef_chunk_data)
|
|
528
|
-
|
|
548
|
+
check_validity
|
|
549
|
+
|
|
550
|
+
send_request FUNCTION_P2P_WRITE_NDEF_LOW_LEVEL, [ndef_length, ndef_chunk_offset, ndef_chunk_data], 'S S C60', 8, ''
|
|
529
551
|
end
|
|
530
552
|
|
|
531
553
|
# You can start the transfer of a NDEF message if the P2P state is *P2PDiscoveryReady*.
|
|
@@ -541,16 +563,19 @@ module Tinkerforge
|
|
|
541
563
|
# you can now use BrickletNFC#p2p_read_ndef to read the NDEF message that was written
|
|
542
564
|
# by the NFC peer.
|
|
543
565
|
def p2p_start_transfer(transfer)
|
|
544
|
-
|
|
566
|
+
check_validity
|
|
567
|
+
|
|
568
|
+
send_request FUNCTION_P2P_START_TRANSFER, [transfer], 'C', 8, ''
|
|
545
569
|
end
|
|
546
570
|
|
|
547
571
|
# Returns the NDEF message that was written by a NFC peer in NFC P2P mode.
|
|
548
|
-
# The maximum NDEF length is 8192 byte.
|
|
549
572
|
#
|
|
550
573
|
# The NDEF message is ready if you called BrickletNFC#p2p_start_transfer with a
|
|
551
574
|
# read transfer and the P2P state changed to *P2PTransferNDEFReady*.
|
|
552
575
|
def p2p_read_ndef_low_level
|
|
553
|
-
|
|
576
|
+
check_validity
|
|
577
|
+
|
|
578
|
+
send_request FUNCTION_P2P_READ_NDEF_LOW_LEVEL, [], '', 72, 'S S C60'
|
|
554
579
|
end
|
|
555
580
|
|
|
556
581
|
# Sets the detection LED configuration. By default the LED shows
|
|
@@ -560,15 +585,19 @@ module Tinkerforge
|
|
|
560
585
|
#
|
|
561
586
|
# If the Bricklet is in bootloader mode, the LED is off.
|
|
562
587
|
def set_detection_led_config(config)
|
|
563
|
-
|
|
588
|
+
check_validity
|
|
589
|
+
|
|
590
|
+
send_request FUNCTION_SET_DETECTION_LED_CONFIG, [config], 'C', 8, ''
|
|
564
591
|
end
|
|
565
592
|
|
|
566
593
|
# Returns the configuration as set by BrickletNFC#set_detection_led_config
|
|
567
594
|
def get_detection_led_config
|
|
568
|
-
|
|
595
|
+
check_validity
|
|
596
|
+
|
|
597
|
+
send_request FUNCTION_GET_DETECTION_LED_CONFIG, [], '', 9, 'C'
|
|
569
598
|
end
|
|
570
599
|
|
|
571
|
-
# Sets the maximum timeout
|
|
600
|
+
# Sets the maximum timeout.
|
|
572
601
|
#
|
|
573
602
|
# This is a global maximum used for all internal state timeouts. The timeouts depend heavily
|
|
574
603
|
# on the used tags etc. For example: If you use a Type 2 tag and you want to detect if
|
|
@@ -583,21 +612,23 @@ module Tinkerforge
|
|
|
583
612
|
# If you need a fast response time to discover if a tag is present or not you can find
|
|
584
613
|
# a good timeout value by trial and error for your specific tag.
|
|
585
614
|
#
|
|
586
|
-
# By default we use a very conservative timeout, to be sure that any
|
|
615
|
+
# By default we use a very conservative timeout, to be sure that any tag can always
|
|
587
616
|
# answer in time.
|
|
588
617
|
#
|
|
589
|
-
# Default timeout: 2000ms.
|
|
590
|
-
#
|
|
591
618
|
# .. versionadded:: 2.0.1$nbsp;(Plugin)
|
|
592
619
|
def set_maximum_timeout(timeout)
|
|
593
|
-
|
|
620
|
+
check_validity
|
|
621
|
+
|
|
622
|
+
send_request FUNCTION_SET_MAXIMUM_TIMEOUT, [timeout], 'S', 8, ''
|
|
594
623
|
end
|
|
595
624
|
|
|
596
625
|
# Returns the timeout as set by BrickletNFC#set_maximum_timeout
|
|
597
626
|
#
|
|
598
627
|
# .. versionadded:: 2.0.1$nbsp;(Plugin)
|
|
599
628
|
def get_maximum_timeout
|
|
600
|
-
|
|
629
|
+
check_validity
|
|
630
|
+
|
|
631
|
+
send_request FUNCTION_GET_MAXIMUM_TIMEOUT, [], '', 10, 'S'
|
|
601
632
|
end
|
|
602
633
|
|
|
603
634
|
# Returns the error count for the communication between Brick and Bricklet.
|
|
@@ -612,7 +643,9 @@ module Tinkerforge
|
|
|
612
643
|
# The errors counts are for errors that occur on the Bricklet side. All
|
|
613
644
|
# Bricks have a similar function that returns the errors on the Brick side.
|
|
614
645
|
def get_spitfp_error_count
|
|
615
|
-
|
|
646
|
+
check_validity
|
|
647
|
+
|
|
648
|
+
send_request FUNCTION_GET_SPITFP_ERROR_COUNT, [], '', 24, 'L L L L'
|
|
616
649
|
end
|
|
617
650
|
|
|
618
651
|
# Sets the bootloader mode and returns the status after the requested
|
|
@@ -625,12 +658,16 @@ module Tinkerforge
|
|
|
625
658
|
# This function is used by Brick Viewer during flashing. It should not be
|
|
626
659
|
# necessary to call it in a normal user program.
|
|
627
660
|
def set_bootloader_mode(mode)
|
|
628
|
-
|
|
661
|
+
check_validity
|
|
662
|
+
|
|
663
|
+
send_request FUNCTION_SET_BOOTLOADER_MODE, [mode], 'C', 9, 'C'
|
|
629
664
|
end
|
|
630
665
|
|
|
631
666
|
# Returns the current bootloader mode, see BrickletNFC#set_bootloader_mode.
|
|
632
667
|
def get_bootloader_mode
|
|
633
|
-
|
|
668
|
+
check_validity
|
|
669
|
+
|
|
670
|
+
send_request FUNCTION_GET_BOOTLOADER_MODE, [], '', 9, 'C'
|
|
634
671
|
end
|
|
635
672
|
|
|
636
673
|
# Sets the firmware pointer for BrickletNFC#write_firmware. The pointer has
|
|
@@ -640,7 +677,9 @@ module Tinkerforge
|
|
|
640
677
|
# This function is used by Brick Viewer during flashing. It should not be
|
|
641
678
|
# necessary to call it in a normal user program.
|
|
642
679
|
def set_write_firmware_pointer(pointer)
|
|
643
|
-
|
|
680
|
+
check_validity
|
|
681
|
+
|
|
682
|
+
send_request FUNCTION_SET_WRITE_FIRMWARE_POINTER, [pointer], 'L', 8, ''
|
|
644
683
|
end
|
|
645
684
|
|
|
646
685
|
# Writes 64 Bytes of firmware at the position as written by
|
|
@@ -652,7 +691,9 @@ module Tinkerforge
|
|
|
652
691
|
# This function is used by Brick Viewer during flashing. It should not be
|
|
653
692
|
# necessary to call it in a normal user program.
|
|
654
693
|
def write_firmware(data)
|
|
655
|
-
|
|
694
|
+
check_validity
|
|
695
|
+
|
|
696
|
+
send_request FUNCTION_WRITE_FIRMWARE, [data], 'C64', 9, 'C'
|
|
656
697
|
end
|
|
657
698
|
|
|
658
699
|
# Sets the status LED configuration. By default the LED shows
|
|
@@ -663,22 +704,28 @@ module Tinkerforge
|
|
|
663
704
|
#
|
|
664
705
|
# If the Bricklet is in bootloader mode, the LED is will show heartbeat by default.
|
|
665
706
|
def set_status_led_config(config)
|
|
666
|
-
|
|
707
|
+
check_validity
|
|
708
|
+
|
|
709
|
+
send_request FUNCTION_SET_STATUS_LED_CONFIG, [config], 'C', 8, ''
|
|
667
710
|
end
|
|
668
711
|
|
|
669
712
|
# Returns the configuration as set by BrickletNFC#set_status_led_config
|
|
670
713
|
def get_status_led_config
|
|
671
|
-
|
|
714
|
+
check_validity
|
|
715
|
+
|
|
716
|
+
send_request FUNCTION_GET_STATUS_LED_CONFIG, [], '', 9, 'C'
|
|
672
717
|
end
|
|
673
718
|
|
|
674
|
-
# Returns the temperature
|
|
719
|
+
# Returns the temperature as measured inside the microcontroller. The
|
|
675
720
|
# value returned is not the ambient temperature!
|
|
676
721
|
#
|
|
677
722
|
# The temperature is only proportional to the real temperature and it has bad
|
|
678
723
|
# accuracy. Practically it is only useful as an indicator for
|
|
679
724
|
# temperature changes.
|
|
680
725
|
def get_chip_temperature
|
|
681
|
-
|
|
726
|
+
check_validity
|
|
727
|
+
|
|
728
|
+
send_request FUNCTION_GET_CHIP_TEMPERATURE, [], '', 10, 's'
|
|
682
729
|
end
|
|
683
730
|
|
|
684
731
|
# Calling this function will reset the Bricklet. All configurations
|
|
@@ -688,7 +735,9 @@ module Tinkerforge
|
|
|
688
735
|
# calling functions on the existing ones will result in
|
|
689
736
|
# undefined behavior!
|
|
690
737
|
def reset
|
|
691
|
-
|
|
738
|
+
check_validity
|
|
739
|
+
|
|
740
|
+
send_request FUNCTION_RESET, [], '', 8, ''
|
|
692
741
|
end
|
|
693
742
|
|
|
694
743
|
# Writes a new UID into flash. If you want to set a new UID
|
|
@@ -697,25 +746,31 @@ module Tinkerforge
|
|
|
697
746
|
#
|
|
698
747
|
# We recommend that you use Brick Viewer to change the UID.
|
|
699
748
|
def write_uid(uid)
|
|
700
|
-
|
|
749
|
+
check_validity
|
|
750
|
+
|
|
751
|
+
send_request FUNCTION_WRITE_UID, [uid], 'L', 8, ''
|
|
701
752
|
end
|
|
702
753
|
|
|
703
754
|
# Returns the current UID as an integer. Encode as
|
|
704
755
|
# Base58 to get the usual string version.
|
|
705
756
|
def read_uid
|
|
706
|
-
|
|
757
|
+
check_validity
|
|
758
|
+
|
|
759
|
+
send_request FUNCTION_READ_UID, [], '', 12, 'L'
|
|
707
760
|
end
|
|
708
761
|
|
|
709
762
|
# Returns the UID, the UID where the Bricklet is connected to,
|
|
710
763
|
# the position, the hardware and firmware version as well as the
|
|
711
764
|
# device identifier.
|
|
712
765
|
#
|
|
713
|
-
# The position can be 'a', 'b', 'c' or '
|
|
766
|
+
# The position can be 'a', 'b', 'c', 'd', 'e', 'f', 'g' or 'h' (Bricklet Port).
|
|
767
|
+
# A Bricklet connected to an :ref:`Isolator Bricklet <isolator_bricklet>` is always at
|
|
768
|
+
# position 'z'.
|
|
714
769
|
#
|
|
715
770
|
# The device identifier numbers can be found :ref:`here <device_identifier>`.
|
|
716
771
|
# |device_identifier_constant|
|
|
717
772
|
def get_identity
|
|
718
|
-
send_request FUNCTION_GET_IDENTITY, [], '',
|
|
773
|
+
send_request FUNCTION_GET_IDENTITY, [], '', 33, 'Z8 Z8 k C3 C3 S'
|
|
719
774
|
end
|
|
720
775
|
|
|
721
776
|
# Returns the tag type and the tag ID. This function can only be called if the
|
|
@@ -734,7 +789,7 @@ module Tinkerforge
|
|
|
734
789
|
[ret[0], ret[2][0, ret[1]]]
|
|
735
790
|
end
|
|
736
791
|
|
|
737
|
-
# Writes NDEF formated data
|
|
792
|
+
# Writes NDEF formated data.
|
|
738
793
|
#
|
|
739
794
|
# This function currently supports NFC Forum Type 2 and 4.
|
|
740
795
|
#
|
|
@@ -781,8 +836,6 @@ module Tinkerforge
|
|
|
781
836
|
|
|
782
837
|
# Returns the NDEF data from an internal buffer. To fill the buffer
|
|
783
838
|
# with a NDEF message you have to call BrickletNFC#reader_request_ndef beforehand.
|
|
784
|
-
#
|
|
785
|
-
# The buffer can have a size of up to 8192 bytes.
|
|
786
839
|
def reader_read_ndef
|
|
787
840
|
ndef_length = nil # assigned in block
|
|
788
841
|
ndef_data = nil # assigned in block
|
|
@@ -876,8 +929,6 @@ module Tinkerforge
|
|
|
876
929
|
|
|
877
930
|
# Returns the page data from an internal buffer. To fill the buffer
|
|
878
931
|
# with specific pages you have to call BrickletNFC#reader_request_page beforehand.
|
|
879
|
-
#
|
|
880
|
-
# The buffer can have a size of up to 8192 bytes.
|
|
881
932
|
def reader_read_page
|
|
882
933
|
data_length = nil # assigned in block
|
|
883
934
|
data_data = nil # assigned in block
|
|
@@ -911,7 +962,7 @@ module Tinkerforge
|
|
|
911
962
|
data_data[0, data_length]
|
|
912
963
|
end
|
|
913
964
|
|
|
914
|
-
# Writes the NDEF
|
|
965
|
+
# Writes the NDEF message that is to be transferred to the NFC peer.
|
|
915
966
|
#
|
|
916
967
|
# The maximum supported NDEF message size in Cardemu mode is 255 byte.
|
|
917
968
|
#
|
|
@@ -949,7 +1000,7 @@ module Tinkerforge
|
|
|
949
1000
|
ret
|
|
950
1001
|
end
|
|
951
1002
|
|
|
952
|
-
# Writes the NDEF
|
|
1003
|
+
# Writes the NDEF message that is to be transferred to the NFC peer.
|
|
953
1004
|
#
|
|
954
1005
|
# The maximum supported NDEF message size for P2P transfer is 255 byte.
|
|
955
1006
|
#
|
|
@@ -988,7 +1039,6 @@ module Tinkerforge
|
|
|
988
1039
|
end
|
|
989
1040
|
|
|
990
1041
|
# Returns the NDEF message that was written by a NFC peer in NFC P2P mode.
|
|
991
|
-
# The maximum NDEF length is 8192 byte.
|
|
992
1042
|
#
|
|
993
1043
|
# The NDEF message is ready if you called BrickletNFC#p2p_start_transfer with a
|
|
994
1044
|
# read transfer and the P2P state changed to *P2PTransferNDEFReady*.
|