tinkerforge 2.0.7
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.
- data/lib/tinkerforge.rb +5 -0
- data/lib/tinkerforge/brick_dc.rb +359 -0
- data/lib/tinkerforge/brick_imu.rb +512 -0
- data/lib/tinkerforge/brick_master.rb +1120 -0
- data/lib/tinkerforge/brick_servo.rb +475 -0
- data/lib/tinkerforge/brick_stepper.rb +556 -0
- data/lib/tinkerforge/bricklet_ambient_light.rb +246 -0
- data/lib/tinkerforge/bricklet_analog_in.rb +273 -0
- data/lib/tinkerforge/bricklet_analog_out.rb +90 -0
- data/lib/tinkerforge/bricklet_barometer.rb +313 -0
- data/lib/tinkerforge/bricklet_current12.rb +274 -0
- data/lib/tinkerforge/bricklet_current25.rb +274 -0
- data/lib/tinkerforge/bricklet_distance_ir.rb +274 -0
- data/lib/tinkerforge/bricklet_dual_relay.rb +127 -0
- data/lib/tinkerforge/bricklet_gps.rb +301 -0
- data/lib/tinkerforge/bricklet_humidity.rb +245 -0
- data/lib/tinkerforge/bricklet_industrial_digital_in_4.rb +165 -0
- data/lib/tinkerforge/bricklet_industrial_digital_out_4.rb +177 -0
- data/lib/tinkerforge/bricklet_industrial_quad_relay.rb +177 -0
- data/lib/tinkerforge/bricklet_io16.rb +237 -0
- data/lib/tinkerforge/bricklet_io4.rb +236 -0
- data/lib/tinkerforge/bricklet_joystick.rb +274 -0
- data/lib/tinkerforge/bricklet_lcd_16x2.rb +175 -0
- data/lib/tinkerforge/bricklet_lcd_20x4.rb +231 -0
- data/lib/tinkerforge/bricklet_linear_poti.rb +241 -0
- data/lib/tinkerforge/bricklet_piezo_buzzer.rb +84 -0
- data/lib/tinkerforge/bricklet_ptc.rb +277 -0
- data/lib/tinkerforge/bricklet_rotary_poti.rb +241 -0
- data/lib/tinkerforge/bricklet_temperature.rb +188 -0
- data/lib/tinkerforge/bricklet_temperature_ir.rb +275 -0
- data/lib/tinkerforge/bricklet_voltage.rb +241 -0
- data/lib/tinkerforge/bricklet_voltage_current.rb +386 -0
- data/lib/tinkerforge/ip_connection.rb +1027 -0
- data/lib/tinkerforge/version.rb +4 -0
- metadata +98 -0
@@ -0,0 +1,127 @@
|
|
1
|
+
# -*- ruby encoding: utf-8 -*-
|
2
|
+
#############################################################
|
3
|
+
# This file was automatically generated on 2013-05-16. #
|
4
|
+
# #
|
5
|
+
# Bindings Version 2.0.7 #
|
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 generator git on tinkerforge.com #
|
10
|
+
#############################################################
|
11
|
+
|
12
|
+
module Tinkerforge
|
13
|
+
# Device for controlling two relays
|
14
|
+
class BrickletDualRelay < Device
|
15
|
+
DEVICE_IDENTIFIER = 26 # :nodoc:
|
16
|
+
|
17
|
+
# This callback is triggered whenever a monoflop timer reaches 0. The
|
18
|
+
# parameter contain the relay (1 or 2) and the current state of the relay
|
19
|
+
# (the state after the monoflop).
|
20
|
+
#
|
21
|
+
# .. versionadded:: 1.1.1~(Plugin)
|
22
|
+
CALLBACK_MONOFLOP_DONE = 5
|
23
|
+
|
24
|
+
FUNCTION_SET_STATE = 1 # :nodoc:
|
25
|
+
FUNCTION_GET_STATE = 2 # :nodoc:
|
26
|
+
FUNCTION_SET_MONOFLOP = 3 # :nodoc:
|
27
|
+
FUNCTION_GET_MONOFLOP = 4 # :nodoc:
|
28
|
+
FUNCTION_SET_SELECTED_STATE = 6 # :nodoc:
|
29
|
+
FUNCTION_GET_IDENTITY = 255 # :nodoc:
|
30
|
+
|
31
|
+
|
32
|
+
# Creates an object with the unique device ID <tt>uid</tt> and adds it to
|
33
|
+
# the IP Connection <tt>ipcon</tt>.
|
34
|
+
def initialize(uid, ipcon)
|
35
|
+
super uid, ipcon
|
36
|
+
|
37
|
+
@api_version = [2, 0, 0]
|
38
|
+
|
39
|
+
@response_expected[FUNCTION_SET_STATE] = RESPONSE_EXPECTED_FALSE
|
40
|
+
@response_expected[FUNCTION_GET_STATE] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
41
|
+
@response_expected[FUNCTION_SET_MONOFLOP] = RESPONSE_EXPECTED_FALSE
|
42
|
+
@response_expected[FUNCTION_GET_MONOFLOP] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
43
|
+
@response_expected[CALLBACK_MONOFLOP_DONE] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
44
|
+
@response_expected[FUNCTION_SET_SELECTED_STATE] = RESPONSE_EXPECTED_FALSE
|
45
|
+
@response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
46
|
+
|
47
|
+
@callback_formats[CALLBACK_MONOFLOP_DONE] = 'C ?'
|
48
|
+
end
|
49
|
+
|
50
|
+
# Sets the state of the relays, *true* means on and *false* means off.
|
51
|
+
# For example: (true, false) turns relay 1 on and relay 2 off.
|
52
|
+
#
|
53
|
+
# If you just want to set one of the relays and don't know the current state
|
54
|
+
# of the other relay, you can get the state with BrickletDualRelay#get_state or you
|
55
|
+
# can use BrickletDualRelay#set_selected_state.
|
56
|
+
#
|
57
|
+
# Running monoflop timers will be overwritten if this function is called.
|
58
|
+
#
|
59
|
+
# The default value is (*false*, *false*).
|
60
|
+
def set_state(relay1, relay2)
|
61
|
+
send_request(FUNCTION_SET_STATE, [relay1, relay2], '? ?', 0, '')
|
62
|
+
end
|
63
|
+
|
64
|
+
# Returns the state of the relays, *true* means on and *false* means off.
|
65
|
+
def get_state
|
66
|
+
send_request(FUNCTION_GET_STATE, [], '', 2, '? ?')
|
67
|
+
end
|
68
|
+
|
69
|
+
# The first parameter can be 1 or 2 (relay 1 or relay 2). The second parameter
|
70
|
+
# is the desired state of the relay (*true* means on and *false* means off).
|
71
|
+
# The third parameter indicates the time (in ms) that the relay should hold
|
72
|
+
# the state.
|
73
|
+
#
|
74
|
+
# If this function is called with the parameters (1, true, 1500):
|
75
|
+
# Relay 1 will turn on and in 1.5s it will turn off again.
|
76
|
+
#
|
77
|
+
# A monoflop can be used as a failsafe mechanism. For example: Lets assume you
|
78
|
+
# have a RS485 bus and a Dual Relay Bricklet connected to one of the slave
|
79
|
+
# stacks. You can now call this function every second, with a time parameter
|
80
|
+
# of two seconds. The relay will be on all the time. If now the RS485
|
81
|
+
# connection is lost, the relay will turn off in at most two seconds.
|
82
|
+
#
|
83
|
+
# .. versionadded:: 1.1.1~(Plugin)
|
84
|
+
def set_monoflop(relay, state, time)
|
85
|
+
send_request(FUNCTION_SET_MONOFLOP, [relay, state, time], 'C ? L', 0, '')
|
86
|
+
end
|
87
|
+
|
88
|
+
# Returns (for the given relay) the current state and the time as set by
|
89
|
+
# BrickletDualRelay#set_monoflop as well as the remaining time until the state flips.
|
90
|
+
#
|
91
|
+
# If the timer is not running currently, the remaining time will be returned
|
92
|
+
# as 0.
|
93
|
+
#
|
94
|
+
# .. versionadded:: 1.1.1~(Plugin)
|
95
|
+
def get_monoflop(relay)
|
96
|
+
send_request(FUNCTION_GET_MONOFLOP, [relay], 'C', 9, '? L L')
|
97
|
+
end
|
98
|
+
|
99
|
+
# Sets the state of the selected relay (1 or 2), *true* means on and *false* means off.
|
100
|
+
#
|
101
|
+
# The other relay remains untouched.
|
102
|
+
#
|
103
|
+
# .. versionadded:: 2.0.0~(Plugin)
|
104
|
+
def set_selected_state(relay, state)
|
105
|
+
send_request(FUNCTION_SET_SELECTED_STATE, [relay, state], 'C ?', 0, '')
|
106
|
+
end
|
107
|
+
|
108
|
+
# Returns the UID, the UID where the Bricklet is connected to,
|
109
|
+
# the position, the hardware and firmware version as well as the
|
110
|
+
# device identifier.
|
111
|
+
#
|
112
|
+
# The position can be 'a', 'b', 'c' or 'd'.
|
113
|
+
#
|
114
|
+
# The device identifiers can be found :ref:`here <device_identifier>`.
|
115
|
+
#
|
116
|
+
# .. versionadded:: 2.0.0~(Plugin)
|
117
|
+
def get_identity
|
118
|
+
send_request(FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S')
|
119
|
+
end
|
120
|
+
|
121
|
+
# Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.
|
122
|
+
def register_callback(id, &block)
|
123
|
+
callback = block
|
124
|
+
@registered_callbacks[id] = callback
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
@@ -0,0 +1,301 @@
|
|
1
|
+
# -*- ruby encoding: utf-8 -*-
|
2
|
+
#############################################################
|
3
|
+
# This file was automatically generated on 2013-05-16. #
|
4
|
+
# #
|
5
|
+
# Bindings Version 2.0.7 #
|
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 generator git on tinkerforge.com #
|
10
|
+
#############################################################
|
11
|
+
|
12
|
+
module Tinkerforge
|
13
|
+
# Device for receiving GPS position
|
14
|
+
class BrickletGPS < Device
|
15
|
+
DEVICE_IDENTIFIER = 222 # :nodoc:
|
16
|
+
|
17
|
+
# This callback is triggered periodically with the period that is set by
|
18
|
+
# BrickletGPS#set_coordinates_callback_period. The parameters are the same
|
19
|
+
# as for BrickletGPS#get_coordinates.
|
20
|
+
#
|
21
|
+
# CALLBACK_COORDINATES is only triggered if the coordinates changed since the
|
22
|
+
# last triggering and if there is currently a fix as indicated by
|
23
|
+
# BrickletGPS#get_status.
|
24
|
+
CALLBACK_COORDINATES = 17
|
25
|
+
|
26
|
+
# This callback is triggered periodically with the period that is set by
|
27
|
+
# BrickletGPS#set_status_callback_period. The parameters are the same
|
28
|
+
# as for BrickletGPS#get_status.
|
29
|
+
#
|
30
|
+
# CALLBACK_STATUS is only triggered if the status changed since the
|
31
|
+
# last triggering.
|
32
|
+
CALLBACK_STATUS = 18
|
33
|
+
|
34
|
+
# This callback is triggered periodically with the period that is set by
|
35
|
+
# BrickletGPS#set_altitude_callback_period. The parameters are the same
|
36
|
+
# as for BrickletGPS#get_altitude.
|
37
|
+
#
|
38
|
+
# CALLBACK_ALTITUDE is only triggered if the altitude changed since the
|
39
|
+
# last triggering and if there is currently a fix as indicated by
|
40
|
+
# BrickletGPS#get_status.
|
41
|
+
CALLBACK_ALTITUDE = 19
|
42
|
+
|
43
|
+
# This callback is triggered periodically with the period that is set by
|
44
|
+
# BrickletGPS#set_motion_callback_period. The parameters are the same
|
45
|
+
# as for BrickletGPS#get_motion.
|
46
|
+
#
|
47
|
+
# CALLBACK_MOTION is only triggered if the motion changed since the
|
48
|
+
# last triggering and if there is currently a fix as indicated by
|
49
|
+
# BrickletGPS#get_status.
|
50
|
+
CALLBACK_MOTION = 20
|
51
|
+
|
52
|
+
# This callback is triggered periodically with the period that is set by
|
53
|
+
# BrickletGPS#set_date_time_callback_period. The parameters are the same
|
54
|
+
# as for BrickletGPS#get_date_time.
|
55
|
+
#
|
56
|
+
# CALLBACK_DATE_TIME is only triggered if the date or time changed since the
|
57
|
+
# last triggering.
|
58
|
+
CALLBACK_DATE_TIME = 21
|
59
|
+
|
60
|
+
FUNCTION_GET_COORDINATES = 1 # :nodoc:
|
61
|
+
FUNCTION_GET_STATUS = 2 # :nodoc:
|
62
|
+
FUNCTION_GET_ALTITUDE = 3 # :nodoc:
|
63
|
+
FUNCTION_GET_MOTION = 4 # :nodoc:
|
64
|
+
FUNCTION_GET_DATE_TIME = 5 # :nodoc:
|
65
|
+
FUNCTION_RESTART = 6 # :nodoc:
|
66
|
+
FUNCTION_SET_COORDINATES_CALLBACK_PERIOD = 7 # :nodoc:
|
67
|
+
FUNCTION_GET_COORDINATES_CALLBACK_PERIOD = 8 # :nodoc:
|
68
|
+
FUNCTION_SET_STATUS_CALLBACK_PERIOD = 9 # :nodoc:
|
69
|
+
FUNCTION_GET_STATUS_CALLBACK_PERIOD = 10 # :nodoc:
|
70
|
+
FUNCTION_SET_ALTITUDE_CALLBACK_PERIOD = 11 # :nodoc:
|
71
|
+
FUNCTION_GET_ALTITUDE_CALLBACK_PERIOD = 12 # :nodoc:
|
72
|
+
FUNCTION_SET_DATE_TIME_CALLBACK_PERIOD = 13 # :nodoc:
|
73
|
+
FUNCTION_GET_DATE_TIME_CALLBACK_PERIOD = 14 # :nodoc:
|
74
|
+
FUNCTION_SET_MOTION_CALLBACK_PERIOD = 15 # :nodoc:
|
75
|
+
FUNCTION_GET_MOTION_CALLBACK_PERIOD = 16 # :nodoc:
|
76
|
+
FUNCTION_GET_IDENTITY = 255 # :nodoc:
|
77
|
+
|
78
|
+
FIX_NO_FIX = 1 # :nodoc:
|
79
|
+
FIX_2D_FIX = 2 # :nodoc:
|
80
|
+
FIX_3D_FIX = 3 # :nodoc:
|
81
|
+
RESTART_TYPE_HOT_START = 0 # :nodoc:
|
82
|
+
RESTART_TYPE_WARM_START = 1 # :nodoc:
|
83
|
+
RESTART_TYPE_COLD_START = 2 # :nodoc:
|
84
|
+
RESTART_TYPE_FACTORY_RESET = 3 # :nodoc:
|
85
|
+
|
86
|
+
# Creates an object with the unique device ID <tt>uid</tt> and adds it to
|
87
|
+
# the IP Connection <tt>ipcon</tt>.
|
88
|
+
def initialize(uid, ipcon)
|
89
|
+
super uid, ipcon
|
90
|
+
|
91
|
+
@api_version = [2, 0, 0]
|
92
|
+
|
93
|
+
@response_expected[FUNCTION_GET_COORDINATES] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
94
|
+
@response_expected[FUNCTION_GET_STATUS] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
95
|
+
@response_expected[FUNCTION_GET_ALTITUDE] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
96
|
+
@response_expected[FUNCTION_GET_MOTION] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
97
|
+
@response_expected[FUNCTION_GET_DATE_TIME] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
98
|
+
@response_expected[FUNCTION_RESTART] = RESPONSE_EXPECTED_FALSE
|
99
|
+
@response_expected[FUNCTION_SET_COORDINATES_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
|
100
|
+
@response_expected[FUNCTION_GET_COORDINATES_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
101
|
+
@response_expected[FUNCTION_SET_STATUS_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
|
102
|
+
@response_expected[FUNCTION_GET_STATUS_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
103
|
+
@response_expected[FUNCTION_SET_ALTITUDE_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
|
104
|
+
@response_expected[FUNCTION_GET_ALTITUDE_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
105
|
+
@response_expected[FUNCTION_SET_DATE_TIME_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
|
106
|
+
@response_expected[FUNCTION_GET_DATE_TIME_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
107
|
+
@response_expected[FUNCTION_SET_MOTION_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
|
108
|
+
@response_expected[FUNCTION_GET_MOTION_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
109
|
+
@response_expected[CALLBACK_COORDINATES] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
110
|
+
@response_expected[CALLBACK_STATUS] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
111
|
+
@response_expected[CALLBACK_ALTITUDE] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
112
|
+
@response_expected[CALLBACK_MOTION] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
113
|
+
@response_expected[CALLBACK_DATE_TIME] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
114
|
+
@response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
115
|
+
|
116
|
+
@callback_formats[CALLBACK_COORDINATES] = 'L k L k S S S S'
|
117
|
+
@callback_formats[CALLBACK_STATUS] = 'C C C'
|
118
|
+
@callback_formats[CALLBACK_ALTITUDE] = 'L L'
|
119
|
+
@callback_formats[CALLBACK_MOTION] = 'L L'
|
120
|
+
@callback_formats[CALLBACK_DATE_TIME] = 'L L'
|
121
|
+
end
|
122
|
+
|
123
|
+
# Returns the GPS coordinates. Latitude and longitude are given in the
|
124
|
+
# DD.dddddd° format, the value 57123468 means 57.123468°.
|
125
|
+
# The parameter ns and ew are the cardinal directions for
|
126
|
+
# latitude and longitude. Possible values for ns and ew are 'N', 'S', 'E'
|
127
|
+
# and 'W' (north, south, east and west).
|
128
|
+
#
|
129
|
+
# PDOP, HDOP and VDOP are the dilution of precision (DOP) values. They specify
|
130
|
+
# the additional multiplicative effect of GPS satellite geometry on GPS
|
131
|
+
# precision. See
|
132
|
+
# `here <http://en.wikipedia.org/wiki/Dilution_of_precision_(GPS)>`__
|
133
|
+
# for more information. The values are give in hundredths.
|
134
|
+
#
|
135
|
+
# EPE is the "Estimated Position Error". The EPE is given in cm. This is not the
|
136
|
+
# absolute maximum error, it is the error with a specific confidence. See
|
137
|
+
# `here <http://www.nps.gov/gis/gps/WhatisEPE.html>`__ for more information.
|
138
|
+
#
|
139
|
+
# This data is only valid if there is currently a fix as indicated by
|
140
|
+
# BrickletGPS#get_status.
|
141
|
+
def get_coordinates
|
142
|
+
send_request(FUNCTION_GET_COORDINATES, [], '', 18, 'L k L k S S S S')
|
143
|
+
end
|
144
|
+
|
145
|
+
# Returns the current fix status, the number of satellites that are in view and
|
146
|
+
# the number of satellites that are currently used.
|
147
|
+
#
|
148
|
+
# Possible fix status values can be:
|
149
|
+
#
|
150
|
+
# "Value", "Description"
|
151
|
+
#
|
152
|
+
# "1", "No Fix"
|
153
|
+
# "2", "2D Fix"
|
154
|
+
# "3", "3D Fix"
|
155
|
+
def get_status
|
156
|
+
send_request(FUNCTION_GET_STATUS, [], '', 3, 'C C C')
|
157
|
+
end
|
158
|
+
|
159
|
+
# Returns the current altitude and corresponding geoidal separation.
|
160
|
+
#
|
161
|
+
# Both values are given in cm.
|
162
|
+
#
|
163
|
+
# This data is only valid if there is currently a fix as indicated by
|
164
|
+
# BrickletGPS#get_status.
|
165
|
+
def get_altitude
|
166
|
+
send_request(FUNCTION_GET_ALTITUDE, [], '', 8, 'L L')
|
167
|
+
end
|
168
|
+
|
169
|
+
# Returns the current course and speed. Course is given in hundredths degree
|
170
|
+
# and speed is given in hundredths km/h. A course of 0° means the Bricklet is
|
171
|
+
# traveling north bound and 90° means it is traveling east bound.
|
172
|
+
#
|
173
|
+
# Please note that this only returns useful values if an actual movement
|
174
|
+
# is present.
|
175
|
+
#
|
176
|
+
# This data is only valid if there is currently a fix as indicated by
|
177
|
+
# BrickletGPS#get_status.
|
178
|
+
def get_motion
|
179
|
+
send_request(FUNCTION_GET_MOTION, [], '', 8, 'L L')
|
180
|
+
end
|
181
|
+
|
182
|
+
# Returns the current date and time. The date is
|
183
|
+
# given in the format ddmmyy and the time is given
|
184
|
+
# in the format hhmmss.sss. For example, 140713 means
|
185
|
+
# 14.05.13 as date and 195923568 means 19:59:23.568 as time.
|
186
|
+
def get_date_time
|
187
|
+
send_request(FUNCTION_GET_DATE_TIME, [], '', 8, 'L L')
|
188
|
+
end
|
189
|
+
|
190
|
+
# Restarts the GPS Bricklet, the following restart types are available:
|
191
|
+
#
|
192
|
+
# "Value", "Description"
|
193
|
+
#
|
194
|
+
# "0", "Hot start (use all available data in the NV store)"
|
195
|
+
# "1", "Warm start (don't use ephemeris at restart)"
|
196
|
+
# "2", "Cold start (don't use time, position, almanacs and ephemeris at restart)"
|
197
|
+
# "3", "Factory reset (clear all system/user configurations at restart)"
|
198
|
+
def restart(restart_type)
|
199
|
+
send_request(FUNCTION_RESTART, [restart_type], 'C', 0, '')
|
200
|
+
end
|
201
|
+
|
202
|
+
# Sets the period in ms with which the CALLBACK_COORDINATES callback is triggered
|
203
|
+
# periodically. A value of 0 turns the callback off.
|
204
|
+
#
|
205
|
+
# CALLBACK_COORDINATES is only triggered if the coordinates changed since the
|
206
|
+
# last triggering.
|
207
|
+
#
|
208
|
+
# The default value is 0.
|
209
|
+
def set_coordinates_callback_period(period)
|
210
|
+
send_request(FUNCTION_SET_COORDINATES_CALLBACK_PERIOD, [period], 'L', 0, '')
|
211
|
+
end
|
212
|
+
|
213
|
+
# Returns the period as set by BrickletGPS#set_coordinates_callback_period.
|
214
|
+
def get_coordinates_callback_period
|
215
|
+
send_request(FUNCTION_GET_COORDINATES_CALLBACK_PERIOD, [], '', 4, 'L')
|
216
|
+
end
|
217
|
+
|
218
|
+
# Sets the period in ms with which the CALLBACK_STATUS callback is triggered
|
219
|
+
# periodically. A value of 0 turns the callback off.
|
220
|
+
#
|
221
|
+
# CALLBACK_STATUS is only triggered if the status changed since the
|
222
|
+
# last triggering.
|
223
|
+
#
|
224
|
+
# The default value is 0.
|
225
|
+
def set_status_callback_period(period)
|
226
|
+
send_request(FUNCTION_SET_STATUS_CALLBACK_PERIOD, [period], 'L', 0, '')
|
227
|
+
end
|
228
|
+
|
229
|
+
# Returns the period as set by BrickletGPS#set_status_callback_period.
|
230
|
+
def get_status_callback_period
|
231
|
+
send_request(FUNCTION_GET_STATUS_CALLBACK_PERIOD, [], '', 4, 'L')
|
232
|
+
end
|
233
|
+
|
234
|
+
# Sets the period in ms with which the CALLBACK_ALTITUDE callback is triggered
|
235
|
+
# periodically. A value of 0 turns the callback off.
|
236
|
+
#
|
237
|
+
# CALLBACK_ALTITUDE is only triggered if the altitude changed since the
|
238
|
+
# last triggering.
|
239
|
+
#
|
240
|
+
# The default value is 0.
|
241
|
+
def set_altitude_callback_period(period)
|
242
|
+
send_request(FUNCTION_SET_ALTITUDE_CALLBACK_PERIOD, [period], 'L', 0, '')
|
243
|
+
end
|
244
|
+
|
245
|
+
# Returns the period as set by BrickletGPS#set_altitude_callback_period.
|
246
|
+
def get_altitude_callback_period
|
247
|
+
send_request(FUNCTION_GET_ALTITUDE_CALLBACK_PERIOD, [], '', 4, 'L')
|
248
|
+
end
|
249
|
+
|
250
|
+
# Sets the period in ms with which the CALLBACK_DATE_TIME callback is triggered
|
251
|
+
# periodically. A value of 0 turns the callback off.
|
252
|
+
#
|
253
|
+
# CALLBACK_DATE_TIME is only triggered if the date or time changed since the
|
254
|
+
# last triggering.
|
255
|
+
#
|
256
|
+
# The default value is 0.
|
257
|
+
def set_date_time_callback_period(period)
|
258
|
+
send_request(FUNCTION_SET_DATE_TIME_CALLBACK_PERIOD, [period], 'L', 0, '')
|
259
|
+
end
|
260
|
+
|
261
|
+
# Returns the period as set by BrickletGPS#set_date_time_callback_period.
|
262
|
+
def get_date_time_callback_period
|
263
|
+
send_request(FUNCTION_GET_DATE_TIME_CALLBACK_PERIOD, [], '', 4, 'L')
|
264
|
+
end
|
265
|
+
|
266
|
+
# Sets the period in ms with which the CALLBACK_MOTION callback is triggered
|
267
|
+
# periodically. A value of 0 turns the callback off.
|
268
|
+
#
|
269
|
+
# CALLBACK_MOTION is only triggered if the motion changed since the
|
270
|
+
# last triggering.
|
271
|
+
#
|
272
|
+
# The default value is 0.
|
273
|
+
def set_motion_callback_period(period)
|
274
|
+
send_request(FUNCTION_SET_MOTION_CALLBACK_PERIOD, [period], 'L', 0, '')
|
275
|
+
end
|
276
|
+
|
277
|
+
# Returns the period as set by BrickletGPS#set_motion_callback_period.
|
278
|
+
def get_motion_callback_period
|
279
|
+
send_request(FUNCTION_GET_MOTION_CALLBACK_PERIOD, [], '', 4, 'L')
|
280
|
+
end
|
281
|
+
|
282
|
+
# Returns the UID, the UID where the Bricklet is connected to,
|
283
|
+
# the position, the hardware and firmware version as well as the
|
284
|
+
# device identifier.
|
285
|
+
#
|
286
|
+
# The position can be 'a', 'b', 'c' or 'd'.
|
287
|
+
#
|
288
|
+
# The device identifiers can be found :ref:`here <device_identifier>`.
|
289
|
+
#
|
290
|
+
# .. versionadded:: 2.0.0~(Plugin)
|
291
|
+
def get_identity
|
292
|
+
send_request(FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S')
|
293
|
+
end
|
294
|
+
|
295
|
+
# Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.
|
296
|
+
def register_callback(id, &block)
|
297
|
+
callback = block
|
298
|
+
@registered_callbacks[id] = callback
|
299
|
+
end
|
300
|
+
end
|
301
|
+
end
|
@@ -0,0 +1,245 @@
|
|
1
|
+
# -*- ruby encoding: utf-8 -*-
|
2
|
+
#############################################################
|
3
|
+
# This file was automatically generated on 2013-05-16. #
|
4
|
+
# #
|
5
|
+
# Bindings Version 2.0.7 #
|
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 generator git on tinkerforge.com #
|
10
|
+
#############################################################
|
11
|
+
|
12
|
+
module Tinkerforge
|
13
|
+
# Device for sensing Humidity
|
14
|
+
class BrickletHumidity < Device
|
15
|
+
DEVICE_IDENTIFIER = 27 # :nodoc:
|
16
|
+
|
17
|
+
# This callback is triggered periodically with the period that is set by
|
18
|
+
# BrickletHumidity#set_humidity_callback_period. The parameter is the humidity of the
|
19
|
+
# sensor.
|
20
|
+
#
|
21
|
+
# CALLBACK_HUMIDITY is only triggered if the humidity has changed since the
|
22
|
+
# last triggering.
|
23
|
+
CALLBACK_HUMIDITY = 13
|
24
|
+
|
25
|
+
# This callback is triggered periodically with the period that is set by
|
26
|
+
# BrickletHumidity#set_analog_value_callback_period. The parameter is the analog value of the
|
27
|
+
# sensor.
|
28
|
+
#
|
29
|
+
# CALLBACK_ANALOG_VALUE is only triggered if the humidity has changed since the
|
30
|
+
# last triggering.
|
31
|
+
CALLBACK_ANALOG_VALUE = 14
|
32
|
+
|
33
|
+
# This callback is triggered when the threshold as set by
|
34
|
+
# BrickletHumidity#set_humidity_callback_threshold is reached.
|
35
|
+
# The parameter is the humidity of the sensor.
|
36
|
+
#
|
37
|
+
# If the threshold keeps being reached, the callback is triggered periodically
|
38
|
+
# with the period as set by BrickletHumidity#set_debounce_period.
|
39
|
+
CALLBACK_HUMIDITY_REACHED = 15
|
40
|
+
|
41
|
+
# This callback is triggered when the threshold as set by
|
42
|
+
# BrickletHumidity#set_analog_value_callback_threshold is reached.
|
43
|
+
# The parameter is the analog value of the sensor.
|
44
|
+
#
|
45
|
+
# If the threshold keeps being reached, the callback is triggered periodically
|
46
|
+
# with the period as set by BrickletHumidity#set_debounce_period.
|
47
|
+
CALLBACK_ANALOG_VALUE_REACHED = 16
|
48
|
+
|
49
|
+
FUNCTION_GET_HUMIDITY = 1 # :nodoc:
|
50
|
+
FUNCTION_GET_ANALOG_VALUE = 2 # :nodoc:
|
51
|
+
FUNCTION_SET_HUMIDITY_CALLBACK_PERIOD = 3 # :nodoc:
|
52
|
+
FUNCTION_GET_HUMIDITY_CALLBACK_PERIOD = 4 # :nodoc:
|
53
|
+
FUNCTION_SET_ANALOG_VALUE_CALLBACK_PERIOD = 5 # :nodoc:
|
54
|
+
FUNCTION_GET_ANALOG_VALUE_CALLBACK_PERIOD = 6 # :nodoc:
|
55
|
+
FUNCTION_SET_HUMIDITY_CALLBACK_THRESHOLD = 7 # :nodoc:
|
56
|
+
FUNCTION_GET_HUMIDITY_CALLBACK_THRESHOLD = 8 # :nodoc:
|
57
|
+
FUNCTION_SET_ANALOG_VALUE_CALLBACK_THRESHOLD = 9 # :nodoc:
|
58
|
+
FUNCTION_GET_ANALOG_VALUE_CALLBACK_THRESHOLD = 10 # :nodoc:
|
59
|
+
FUNCTION_SET_DEBOUNCE_PERIOD = 11 # :nodoc:
|
60
|
+
FUNCTION_GET_DEBOUNCE_PERIOD = 12 # :nodoc:
|
61
|
+
FUNCTION_GET_IDENTITY = 255 # :nodoc:
|
62
|
+
|
63
|
+
THRESHOLD_OPTION_OFF = 'x' # :nodoc:
|
64
|
+
THRESHOLD_OPTION_OUTSIDE = 'o' # :nodoc:
|
65
|
+
THRESHOLD_OPTION_INSIDE = 'i' # :nodoc:
|
66
|
+
THRESHOLD_OPTION_SMALLER = '<' # :nodoc:
|
67
|
+
THRESHOLD_OPTION_GREATER = '>' # :nodoc:
|
68
|
+
|
69
|
+
# Creates an object with the unique device ID <tt>uid</tt> and adds it to
|
70
|
+
# the IP Connection <tt>ipcon</tt>.
|
71
|
+
def initialize(uid, ipcon)
|
72
|
+
super uid, ipcon
|
73
|
+
|
74
|
+
@api_version = [2, 0, 0]
|
75
|
+
|
76
|
+
@response_expected[FUNCTION_GET_HUMIDITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
77
|
+
@response_expected[FUNCTION_GET_ANALOG_VALUE] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
78
|
+
@response_expected[FUNCTION_SET_HUMIDITY_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
|
79
|
+
@response_expected[FUNCTION_GET_HUMIDITY_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
80
|
+
@response_expected[FUNCTION_SET_ANALOG_VALUE_CALLBACK_PERIOD] = RESPONSE_EXPECTED_TRUE
|
81
|
+
@response_expected[FUNCTION_GET_ANALOG_VALUE_CALLBACK_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
82
|
+
@response_expected[FUNCTION_SET_HUMIDITY_CALLBACK_THRESHOLD] = RESPONSE_EXPECTED_TRUE
|
83
|
+
@response_expected[FUNCTION_GET_HUMIDITY_CALLBACK_THRESHOLD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
84
|
+
@response_expected[FUNCTION_SET_ANALOG_VALUE_CALLBACK_THRESHOLD] = RESPONSE_EXPECTED_TRUE
|
85
|
+
@response_expected[FUNCTION_GET_ANALOG_VALUE_CALLBACK_THRESHOLD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
86
|
+
@response_expected[FUNCTION_SET_DEBOUNCE_PERIOD] = RESPONSE_EXPECTED_TRUE
|
87
|
+
@response_expected[FUNCTION_GET_DEBOUNCE_PERIOD] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
88
|
+
@response_expected[CALLBACK_HUMIDITY] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
89
|
+
@response_expected[CALLBACK_ANALOG_VALUE] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
90
|
+
@response_expected[CALLBACK_HUMIDITY_REACHED] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
91
|
+
@response_expected[CALLBACK_ANALOG_VALUE_REACHED] = RESPONSE_EXPECTED_ALWAYS_FALSE
|
92
|
+
@response_expected[FUNCTION_GET_IDENTITY] = RESPONSE_EXPECTED_ALWAYS_TRUE
|
93
|
+
|
94
|
+
@callback_formats[CALLBACK_HUMIDITY] = 'S'
|
95
|
+
@callback_formats[CALLBACK_ANALOG_VALUE] = 'S'
|
96
|
+
@callback_formats[CALLBACK_HUMIDITY_REACHED] = 'S'
|
97
|
+
@callback_formats[CALLBACK_ANALOG_VALUE_REACHED] = 'S'
|
98
|
+
end
|
99
|
+
|
100
|
+
# Returns the humidity of the sensor. The value
|
101
|
+
# has a range of 0 to 1000 and is given in %RH/10 (Relative Humidity),
|
102
|
+
# i.e. a value of 421 means that a humidity of 42.1 %RH is measured.
|
103
|
+
#
|
104
|
+
# If you want to get the humidity periodically, it is recommended to use the
|
105
|
+
# callback CALLBACK_HUMIDITY and set the period with
|
106
|
+
# BrickletHumidity#set_humidity_callback_period.
|
107
|
+
def get_humidity
|
108
|
+
send_request(FUNCTION_GET_HUMIDITY, [], '', 2, 'S')
|
109
|
+
end
|
110
|
+
|
111
|
+
# Returns the value as read by a 12-bit analog-to-digital converter.
|
112
|
+
# The value is between 0 and 4095.
|
113
|
+
#
|
114
|
+
# .. note::
|
115
|
+
# The value returned by BrickletHumidity#get_humidity is averaged over several samples
|
116
|
+
# to yield less noise, while BrickletHumidity#get_analog_value gives back raw
|
117
|
+
# unfiltered analog values. The returned humidity value is calibrated for
|
118
|
+
# room temperatures, if you use the sensor in extreme cold or extreme
|
119
|
+
# warm environments, you might want to calculate the humidity from
|
120
|
+
# the analog value yourself. See the `HIH 5030 datasheet
|
121
|
+
# <https://github.com/Tinkerforge/humidity-bricklet/raw/master/datasheets/hih-5030.pdf>`__.
|
122
|
+
#
|
123
|
+
# If you want the analog value periodically, it is recommended to use the
|
124
|
+
# callback CALLBACK_ANALOG_VALUE and set the period with
|
125
|
+
# BrickletHumidity#set_analog_value_callback_period.
|
126
|
+
def get_analog_value
|
127
|
+
send_request(FUNCTION_GET_ANALOG_VALUE, [], '', 2, 'S')
|
128
|
+
end
|
129
|
+
|
130
|
+
# Sets the period in ms with which the CALLBACK_HUMIDITY callback is triggered
|
131
|
+
# periodically. A value of 0 turns the callback off.
|
132
|
+
#
|
133
|
+
# CALLBACK_HUMIDITY is only triggered if the humidity has changed since the
|
134
|
+
# last triggering.
|
135
|
+
#
|
136
|
+
# The default value is 0.
|
137
|
+
def set_humidity_callback_period(period)
|
138
|
+
send_request(FUNCTION_SET_HUMIDITY_CALLBACK_PERIOD, [period], 'L', 0, '')
|
139
|
+
end
|
140
|
+
|
141
|
+
# Returns the period as set by BrickletHumidity#set_humidity_callback_period.
|
142
|
+
def get_humidity_callback_period
|
143
|
+
send_request(FUNCTION_GET_HUMIDITY_CALLBACK_PERIOD, [], '', 4, 'L')
|
144
|
+
end
|
145
|
+
|
146
|
+
# Sets the period in ms with which the CALLBACK_ANALOG_VALUE callback is triggered
|
147
|
+
# periodically. A value of 0 turns the callback off.
|
148
|
+
#
|
149
|
+
# CALLBACK_ANALOG_VALUE is only triggered if the analog value has changed since the
|
150
|
+
# last triggering.
|
151
|
+
#
|
152
|
+
# The default value is 0.
|
153
|
+
def set_analog_value_callback_period(period)
|
154
|
+
send_request(FUNCTION_SET_ANALOG_VALUE_CALLBACK_PERIOD, [period], 'L', 0, '')
|
155
|
+
end
|
156
|
+
|
157
|
+
# Returns the period as set by BrickletHumidity#set_analog_value_callback_period.
|
158
|
+
def get_analog_value_callback_period
|
159
|
+
send_request(FUNCTION_GET_ANALOG_VALUE_CALLBACK_PERIOD, [], '', 4, 'L')
|
160
|
+
end
|
161
|
+
|
162
|
+
# Sets the thresholds for the CALLBACK_HUMIDITY_REACHED callback.
|
163
|
+
#
|
164
|
+
# The following options are possible:
|
165
|
+
#
|
166
|
+
# "Option", "Description"
|
167
|
+
#
|
168
|
+
# "'x'", "Callback is turned off"
|
169
|
+
# "'o'", "Callback is triggered when the humidity is *outside* the min and max values"
|
170
|
+
# "'i'", "Callback is triggered when the humidity is *inside* the min and max values"
|
171
|
+
# "'<'", "Callback is triggered when the humidity is smaller than the min value (max is ignored)"
|
172
|
+
# "'>'", "Callback is triggered when the humidity is greater than the min value (max is ignored)"
|
173
|
+
#
|
174
|
+
# The default value is ('x', 0, 0).
|
175
|
+
def set_humidity_callback_threshold(option, min, max)
|
176
|
+
send_request(FUNCTION_SET_HUMIDITY_CALLBACK_THRESHOLD, [option, min, max], 'k s s', 0, '')
|
177
|
+
end
|
178
|
+
|
179
|
+
# Returns the threshold as set by BrickletHumidity#set_humidity_callback_threshold.
|
180
|
+
def get_humidity_callback_threshold
|
181
|
+
send_request(FUNCTION_GET_HUMIDITY_CALLBACK_THRESHOLD, [], '', 5, 'k s s')
|
182
|
+
end
|
183
|
+
|
184
|
+
# Sets the thresholds for the CALLBACK_ANALOG_VALUE_REACHED callback.
|
185
|
+
#
|
186
|
+
# The following options are possible:
|
187
|
+
#
|
188
|
+
# "Option", "Description"
|
189
|
+
#
|
190
|
+
# "'x'", "Callback is turned off"
|
191
|
+
# "'o'", "Callback is triggered when the analog value is *outside* the min and max values"
|
192
|
+
# "'i'", "Callback is triggered when the analog value is *inside* the min and max values"
|
193
|
+
# "'<'", "Callback is triggered when the analog value is smaller than the min value (max is ignored)"
|
194
|
+
# "'>'", "Callback is triggered when the analog value is greater than the min value (max is ignored)"
|
195
|
+
#
|
196
|
+
# The default value is ('x', 0, 0).
|
197
|
+
def set_analog_value_callback_threshold(option, min, max)
|
198
|
+
send_request(FUNCTION_SET_ANALOG_VALUE_CALLBACK_THRESHOLD, [option, min, max], 'k S S', 0, '')
|
199
|
+
end
|
200
|
+
|
201
|
+
# Returns the threshold as set by BrickletHumidity#set_analog_value_callback_threshold.
|
202
|
+
def get_analog_value_callback_threshold
|
203
|
+
send_request(FUNCTION_GET_ANALOG_VALUE_CALLBACK_THRESHOLD, [], '', 5, 'k S S')
|
204
|
+
end
|
205
|
+
|
206
|
+
# Sets the period in ms with which the threshold callbacks
|
207
|
+
#
|
208
|
+
# CALLBACK_HUMIDITY_REACHED, CALLBACK_ANALOG_VALUE_REACHED
|
209
|
+
#
|
210
|
+
# are triggered, if the thresholds
|
211
|
+
#
|
212
|
+
# BrickletHumidity#set_humidity_callback_threshold, BrickletHumidity#set_analog_value_callback_threshold
|
213
|
+
#
|
214
|
+
# keep being reached.
|
215
|
+
#
|
216
|
+
# The default value is 100.
|
217
|
+
def set_debounce_period(debounce)
|
218
|
+
send_request(FUNCTION_SET_DEBOUNCE_PERIOD, [debounce], 'L', 0, '')
|
219
|
+
end
|
220
|
+
|
221
|
+
# Returns the debounce period as set by BrickletHumidity#set_debounce_period.
|
222
|
+
def get_debounce_period
|
223
|
+
send_request(FUNCTION_GET_DEBOUNCE_PERIOD, [], '', 4, 'L')
|
224
|
+
end
|
225
|
+
|
226
|
+
# Returns the UID, the UID where the Bricklet is connected to,
|
227
|
+
# the position, the hardware and firmware version as well as the
|
228
|
+
# device identifier.
|
229
|
+
#
|
230
|
+
# The position can be 'a', 'b', 'c' or 'd'.
|
231
|
+
#
|
232
|
+
# The device identifiers can be found :ref:`here <device_identifier>`.
|
233
|
+
#
|
234
|
+
# .. versionadded:: 2.0.0~(Plugin)
|
235
|
+
def get_identity
|
236
|
+
send_request(FUNCTION_GET_IDENTITY, [], '', 25, 'Z8 Z8 k C3 C3 S')
|
237
|
+
end
|
238
|
+
|
239
|
+
# Registers a callback with ID <tt>id</tt> to the block <tt>block</tt>.
|
240
|
+
def register_callback(id, &block)
|
241
|
+
callback = block
|
242
|
+
@registered_callbacks[id] = callback
|
243
|
+
end
|
244
|
+
end
|
245
|
+
end
|