tinderfridge 0.1.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/tinderfridge/device.rb +105 -0
- data/lib/tinderfridge/device_collection.rb +101 -4
- data/lib/tinderfridge/device_info.txt +2 -0
- data/lib/tinderfridge/devices/brick_hat/brick_hat.json +10 -0
- data/lib/tinderfridge/devices/brick_hat/brick_hat.rb +18 -0
- data/lib/tinderfridge/devices/brick_hat_zero/brick_hat_zero.json +10 -0
- data/lib/tinderfridge/devices/brick_hat_zero/brick_hat_zero.rb +14 -0
- data/lib/tinderfridge/devices/bricklet_air_quality/bricklet_air_quality.json +3 -0
- data/lib/tinderfridge/devices/bricklet_air_quality/bricklet_air_quality.rb +20 -0
- data/lib/tinderfridge/devices/bricklet_ambient_light_v3/bricklet_ambient_light_v3.json +3 -0
- data/lib/tinderfridge/devices/bricklet_ambient_light_v3/bricklet_ambient_light_v3.rb +19 -0
- data/lib/tinderfridge/devices/bricklet_color_v2/bricklet_color_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_color_v2/bricklet_color_v2.rb +31 -0
- data/lib/tinderfridge/devices/bricklet_dmx/bricklet_dmx.json +3 -0
- data/lib/tinderfridge/devices/bricklet_dmx/bricklet_dmx.rb +18 -0
- data/lib/tinderfridge/devices/bricklet_gps_v2/bricklet_gps_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_gps_v2/bricklet_gps_v2.rb +31 -0
- data/lib/tinderfridge/devices/bricklet_imu_v3/bricklet_imu_v3.json +3 -0
- data/lib/tinderfridge/devices/bricklet_industrial_dual_relay/bricklet_industrial_dual_relay.json +3 -0
- data/lib/tinderfridge/devices/bricklet_industrial_dual_relay/bricklet_industrial_dual_relay.rb +20 -0
- data/lib/tinderfridge/devices/bricklet_isolator/bricklet_isolator.json +3 -0
- data/lib/tinderfridge/devices/bricklet_isolator/bricklet_isolator.rb +17 -0
- data/lib/tinderfridge/devices/bricklet_joystick_v2/bricklet_joystick_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_joystick_v2/bricklet_joystick_v2.rb +15 -0
- data/lib/tinderfridge/devices/bricklet_lcd_128x64/bricklet_lcd_128x64.json +3 -0
- data/lib/tinderfridge/devices/bricklet_lcd_128x64/bricklet_lcd_128x64.rb +31 -0
- data/lib/tinderfridge/devices/bricklet_led_strip_v2/bricklet_led_strip_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_led_strip_v2/bricklet_led_strip_v2.rb +55 -0
- data/lib/tinderfridge/devices/bricklet_motion_detector_v2/bricklet_motion_detector_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_motion_detector_v2/bricklet_motion_detector_v2.rb +22 -0
- data/lib/tinderfridge/devices/bricklet_motorized_linear_poti/bricklet_motorized_linear_poti.json +3 -0
- data/lib/tinderfridge/devices/bricklet_motorized_linear_poti/bricklet_motorized_linear_poti.rb +42 -0
- data/lib/tinderfridge/devices/bricklet_multi_touch_v2/bricklet_multi_touch_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_multi_touch_v2/bricklet_multi_touch_v2.rb +16 -0
- data/lib/tinderfridge/devices/bricklet_nfc/bricklet_nfc.json +3 -0
- data/lib/tinderfridge/devices/bricklet_nfc/bricklet_nfc.rb +16 -0
- data/lib/tinderfridge/devices/bricklet_outdoor_weather/bricklet_outdoor_weather.json +3 -0
- data/lib/tinderfridge/devices/bricklet_outdoor_weather/bricklet_outdoor_weather.rb +19 -0
- data/lib/tinderfridge/devices/bricklet_performance_dc/bricklet_performance_dc.json +3 -0
- data/lib/tinderfridge/devices/bricklet_remote_switch_v2/bricklet_remote_switch_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_remote_switch_v2/bricklet_remote_switch_v2.rb +15 -0
- data/lib/tinderfridge/devices/bricklet_rgb_led_button/bricklet_rgb_led_button.json +3 -0
- data/lib/tinderfridge/devices/bricklet_rgb_led_button/bricklet_rgb_led_button.rb +34 -0
- data/lib/tinderfridge/devices/bricklet_rgb_led_v2/bricklet_rgb_led_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_rgb_led_v2/bricklet_rgb_led_v2.rb +32 -0
- data/lib/tinderfridge/devices/bricklet_rotary_encoder_v2/bricklet_rotary_encoder_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_rotary_encoder_v2/bricklet_rotary_encoder_v2.rb +20 -0
- data/lib/tinderfridge/devices/bricklet_segment_display_4x7_v2/bricklet_segment_display_4x7_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_segment_display_4x7_v2/bricklet_segment_display_4x7_v2.rb +128 -0
- data/lib/tinderfridge/devices/bricklet_servo_v2/bricklet_servo_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_voltage_current_v2/bricklet_voltage_current_v2.json +3 -0
- data/lib/tinderfridge/devices/bricklet_voltage_current_v2/bricklet_voltage_current_v2.rb +18 -0
- data/lib/tinderfridge/ip_connection.rb +76 -21
- data/lib/tinderfridge/tinkerforge.rb +3 -0
- data/lib/tinderfridge/version.rb +1 -1
- metadata +59 -4
@@ -0,0 +1,32 @@
|
|
1
|
+
module Tinkerforge
|
2
|
+
|
3
|
+
class BrickletRGBLEDV2
|
4
|
+
|
5
|
+
# Returns the LED's current color as three values for red, green, and blue (integers in the range 0..255).
|
6
|
+
def rgb
|
7
|
+
get_rgb_value
|
8
|
+
end
|
9
|
+
|
10
|
+
# Sets the LED's color using three values for red, green, and blue (integers in the range 0..255).
|
11
|
+
#
|
12
|
+
# Values can be supplied as an array or as three separate values.
|
13
|
+
def rgb=(*rgb)
|
14
|
+
set_rgb_value *rgb.flatten
|
15
|
+
end
|
16
|
+
|
17
|
+
# Switches off the LED.
|
18
|
+
def blackout
|
19
|
+
self.rgb = 0, 0, 0
|
20
|
+
true
|
21
|
+
end
|
22
|
+
|
23
|
+
# Returns the device's state.
|
24
|
+
def state
|
25
|
+
super.merge(
|
26
|
+
'color_rgb' => get_rgb_value,
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Tinkerforge
|
2
|
+
|
3
|
+
class BrickletRotaryEncoderV2
|
4
|
+
|
5
|
+
# Returns the current count of the encoder.
|
6
|
+
def count
|
7
|
+
get_count(false)
|
8
|
+
end
|
9
|
+
|
10
|
+
# Returns the device's state.
|
11
|
+
def state
|
12
|
+
super.merge(
|
13
|
+
'count' => count,
|
14
|
+
'pressed' => is_pressed,
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
data/lib/tinderfridge/devices/bricklet_segment_display_4x7_v2/bricklet_segment_display_4x7_v2.rb
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
module Tinkerforge
|
2
|
+
|
3
|
+
class BrickletSegmentDisplay4x7V2
|
4
|
+
|
5
|
+
# Clears the display.
|
6
|
+
def clear
|
7
|
+
set_segments [false]*8, [false]*8, [false]*8, [false]*8, [false]*2, false
|
8
|
+
true
|
9
|
+
end
|
10
|
+
|
11
|
+
alias blackout clear
|
12
|
+
|
13
|
+
# Returns the state of all 35 segments.
|
14
|
+
def segments
|
15
|
+
send_request FUNCTION_GET_SEGMENTS, [], '', 14, '?35'
|
16
|
+
end
|
17
|
+
|
18
|
+
# Sets the state of all 35 segments.
|
19
|
+
def segments=(*segments)
|
20
|
+
segs = segments.flatten
|
21
|
+
set_segments segs[0,8], segs[8,8], segs[16,8], segs[24,8], segs[32,2], segs[34]
|
22
|
+
end
|
23
|
+
|
24
|
+
# Returns the state of all 35 segments as a string of 1s and 0s.
|
25
|
+
def segments_string
|
26
|
+
segments.map { |s| s ? '1' : '0' }.join
|
27
|
+
end
|
28
|
+
|
29
|
+
# Sets the state of all 35 segments using a string of 1s and 0s.
|
30
|
+
#
|
31
|
+
# For readability, the string may include spaces and underscores, which will be ignored.
|
32
|
+
# @example
|
33
|
+
# my_bricklet.segments_string = '10000110 11000110 11000110 00000110 00 0'
|
34
|
+
def segments_string=(segments)
|
35
|
+
self.segments = segments.gsub(/[ _]/, '').ljust(35, '0').chars.map { |s| s == '1' }
|
36
|
+
end
|
37
|
+
|
38
|
+
# Returns the device's state.
|
39
|
+
def state
|
40
|
+
super.merge( 'brightness' => get_brightness )
|
41
|
+
end
|
42
|
+
|
43
|
+
# Displays a string.
|
44
|
+
def print(text='')
|
45
|
+
out = ''
|
46
|
+
colon = false
|
47
|
+
|
48
|
+
text.to_s.chars.each do |c|
|
49
|
+
if glyphs.key? c
|
50
|
+
out << glyphs[c] << '0'
|
51
|
+
elsif c == '.' and out[-1] == '0'
|
52
|
+
out[-1] = '1'
|
53
|
+
elsif c == ':' and out.size == 16
|
54
|
+
colon = true
|
55
|
+
else
|
56
|
+
raise "Can not display '#{text}'"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
self.segments_string = out[0,32].ljust(32,'0') + ( colon ? '110' : '000' )
|
61
|
+
nil
|
62
|
+
end
|
63
|
+
|
64
|
+
# Returns the definition of glyphs for Unicode chracters.
|
65
|
+
def glyphs
|
66
|
+
@@glyphs ||= {
|
67
|
+
|
68
|
+
'0' => '1111110',
|
69
|
+
'1' => '0110000',
|
70
|
+
'2' => '1101101',
|
71
|
+
'3' => '1111001',
|
72
|
+
'4' => '0110011',
|
73
|
+
'5' => '1011011',
|
74
|
+
'6' => '1011111',
|
75
|
+
'7' => '1110000',
|
76
|
+
'8' => '1111111',
|
77
|
+
'9' => '1111011',
|
78
|
+
|
79
|
+
'A' => '1110111',
|
80
|
+
'b' => '0011111',
|
81
|
+
'c' => '0001101',
|
82
|
+
'C' => '1001110',
|
83
|
+
'd' => '0111101',
|
84
|
+
'E' => '1001111',
|
85
|
+
'F' => '1000111',
|
86
|
+
'G' => '1011110',
|
87
|
+
'H' => '0110111',
|
88
|
+
'h' => '0010111',
|
89
|
+
'I' => '0110000',
|
90
|
+
'i' => '0010000',
|
91
|
+
'J' => '0111000',
|
92
|
+
'L' => '0001110',
|
93
|
+
'l' => '0001100',
|
94
|
+
'n' => '0010101',
|
95
|
+
'O' => '1111110',
|
96
|
+
'o' => '0011101',
|
97
|
+
'P' => '1100111',
|
98
|
+
'q' => '1110011',
|
99
|
+
'r' => '0000101',
|
100
|
+
'S' => '1011011',
|
101
|
+
't' => '0001111',
|
102
|
+
'U' => '0111110',
|
103
|
+
'u' => '0011100',
|
104
|
+
'V' => '0111110',
|
105
|
+
'v' => '0011100',
|
106
|
+
'y' => '0110011',
|
107
|
+
|
108
|
+
'ö' => '1011101',
|
109
|
+
'ü' => '1011100',
|
110
|
+
|
111
|
+
' ' => '0000000',
|
112
|
+
|
113
|
+
'_' => '0001000',
|
114
|
+
'-' => '0000001',
|
115
|
+
'=' => '0001001',
|
116
|
+
|
117
|
+
'(' => '1001110',
|
118
|
+
')' => '1111000',
|
119
|
+
|
120
|
+
'[' => '1001110',
|
121
|
+
']' => '1111000',
|
122
|
+
|
123
|
+
}
|
124
|
+
end
|
125
|
+
|
126
|
+
end
|
127
|
+
|
128
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Tinkerforge
|
2
|
+
|
3
|
+
class BrickletVoltageCurrentV2
|
4
|
+
|
5
|
+
# Returns the device's state.
|
6
|
+
def state
|
7
|
+
super.merge(
|
8
|
+
'voltage' => get_voltage,
|
9
|
+
'current' => get_current,
|
10
|
+
'power' => get_power,
|
11
|
+
'configuration' => get_configuration,
|
12
|
+
'calibration' => get_calibration,
|
13
|
+
)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -4,10 +4,10 @@ module Tinkerforge
|
|
4
4
|
|
5
5
|
class IPConnection
|
6
6
|
|
7
|
-
# Returns the host for the IP Connection
|
7
|
+
# Returns the host for the IP Connection.
|
8
8
|
attr_reader :host
|
9
9
|
|
10
|
-
# Returns the port for the IP Connection
|
10
|
+
# Returns the port for the IP Connection.
|
11
11
|
attr_reader :port
|
12
12
|
|
13
13
|
# Returns a programmer-friendly representation of the object.
|
@@ -15,46 +15,101 @@ module Tinkerforge
|
|
15
15
|
"%s (%s:%s)" % [self.class, host, port]
|
16
16
|
end
|
17
17
|
|
18
|
-
# Returns
|
19
|
-
|
20
|
-
|
18
|
+
# Returns the state of the IP Connection.
|
19
|
+
def state
|
20
|
+
{
|
21
|
+
'host' => host,
|
22
|
+
'port' => port,
|
23
|
+
'connection_state' => get_connection_state,
|
24
|
+
'auto_reconnect' => get_auto_reconnect,
|
25
|
+
'timeout' => get_timeout,
|
26
|
+
'log_size' => log_size,
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
# Returns true if connected to localhost, false if connected via the network.
|
31
|
+
def localhost?
|
32
|
+
@localhost ||= %w(localhost 127.0.0.1 ::1).include? host
|
33
|
+
end
|
34
|
+
|
35
|
+
# Returns the size (in bytes) of the Brick Daemon log file, if connected to localhost. Nil if connected via the network.
|
36
|
+
def log_size
|
37
|
+
if local_log_path
|
38
|
+
if File.exist? local_log_path
|
39
|
+
File.size local_log_path
|
40
|
+
else
|
41
|
+
0
|
42
|
+
end
|
43
|
+
else
|
44
|
+
nil
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# Returns a Tinkerforge::DeviceCollection with devices discovered for this IP Connection. Discovery may take a few moments.
|
21
49
|
#
|
22
|
-
#
|
23
|
-
# This variable will be filled with devices as they are found. See examples.
|
50
|
+
# Accepts an optional argument for the number of seconds to wait, otherwise returns immediately.
|
24
51
|
#
|
52
|
+
# A good idea is to store the result in a variable, which will then be filled with devices as they are found.
|
25
53
|
# @example Using Tinkerforge.connect
|
26
54
|
# my_devices = Tinkerforge.connect.discover
|
27
55
|
#
|
56
|
+
# @example Wait 1 second
|
57
|
+
# Tinkerforge.connect.discover(1).ls
|
58
|
+
#
|
28
59
|
# @example Classic
|
29
60
|
# ipcon = Tinkerforge::IPConnection.new
|
30
61
|
# ipcon.connect 'localhost', 4223
|
31
62
|
# my_devices = ipcon.discover
|
32
|
-
def discover
|
63
|
+
def discover(seconds=nil)
|
33
64
|
list = Tinkerforge::DeviceCollection.new
|
65
|
+
|
34
66
|
self.register_callback(CALLBACK_ENUMERATE) do |*args|
|
35
67
|
case args[6]
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
list[args.first] = Tinkerforge.const_get( info[2][0] ).new args.first, self
|
42
|
-
else # Device not in device_info
|
43
|
-
list[args.first] = nil
|
68
|
+
when 0, 1
|
69
|
+
unless list.key?(args[0])
|
70
|
+
if dev = device_instance_from_enum_data(args)
|
71
|
+
list[args[0]] = dev
|
72
|
+
end
|
44
73
|
end
|
45
|
-
|
46
|
-
|
47
|
-
list[args.first] = nil
|
48
|
-
|
74
|
+
when 2
|
75
|
+
list.delete args[0]
|
49
76
|
else
|
50
77
|
raise "Unknown Enumeration Type: #{args[6]}"
|
51
|
-
|
52
78
|
end
|
53
79
|
end
|
80
|
+
|
54
81
|
self.enumerate
|
82
|
+
sleep(seconds.to_f) if seconds
|
55
83
|
list
|
56
84
|
end
|
57
85
|
|
86
|
+
private
|
87
|
+
|
88
|
+
# The path for the Brick Daemon log file, if connected to Brickd on the same computer.
|
89
|
+
def local_log_path
|
90
|
+
@local_log_path ||=
|
91
|
+
if localhost?
|
92
|
+
if Gem.win_platform?
|
93
|
+
'C:\ProgramData\Tinkerforge\Brickd\brickd.log'
|
94
|
+
else
|
95
|
+
'/var/log/brickd.log'
|
96
|
+
end
|
97
|
+
else
|
98
|
+
nil
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
# Takes the args supplied by an enumeration callback, and returns a device instance.
|
103
|
+
def device_instance_from_enum_data(enum_data)
|
104
|
+
if dev_info = Tinkerforge.device_info(enum_data[5])
|
105
|
+
require "tinkerforge/#{dev_info[2][1]}"
|
106
|
+
Tinkerforge.const_get(dev_info[2][0]).new enum_data[0], self
|
107
|
+
else
|
108
|
+
warn "Unknown Device Identifier: #{enum_data[5]} (UID: #{enum_data[0]})"
|
109
|
+
nil
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
58
113
|
end
|
59
114
|
|
60
115
|
# Creates an IP Connection object connected to the given host and port.
|
@@ -2,6 +2,9 @@ require 'tinkerforge/ip_connection'
|
|
2
2
|
|
3
3
|
module Tinkerforge
|
4
4
|
|
5
|
+
ALL_VERSIONS_URL = 'https://download.tinkerforge.com/all_versions.txt'
|
6
|
+
LATEST_VERSIONS_URL = 'https://download.tinkerforge.com/latest_versions.txt'
|
7
|
+
|
5
8
|
# Returns the directory where Tinkerforge bindings appear to be installed.
|
6
9
|
def self.lib_dir
|
7
10
|
File.dirname File.dirname Device.instance_method('uid').source_location.first
|
data/lib/tinderfridge/version.rb
CHANGED
metadata
CHANGED
@@ -1,27 +1,33 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tinderfridge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lllist.eu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tinkerforge
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.1'
|
20
|
+
- - ">="
|
18
21
|
- !ruby/object:Gem::Version
|
19
22
|
version: 2.1.27
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '2.1'
|
30
|
+
- - ">="
|
25
31
|
- !ruby/object:Gem::Version
|
26
32
|
version: 2.1.27
|
27
33
|
description:
|
@@ -35,6 +41,55 @@ files:
|
|
35
41
|
- lib/tinderfridge/device_collection.rb
|
36
42
|
- lib/tinderfridge/device_info.rb
|
37
43
|
- lib/tinderfridge/device_info.txt
|
44
|
+
- lib/tinderfridge/devices/brick_hat/brick_hat.json
|
45
|
+
- lib/tinderfridge/devices/brick_hat/brick_hat.rb
|
46
|
+
- lib/tinderfridge/devices/brick_hat_zero/brick_hat_zero.json
|
47
|
+
- lib/tinderfridge/devices/brick_hat_zero/brick_hat_zero.rb
|
48
|
+
- lib/tinderfridge/devices/bricklet_air_quality/bricklet_air_quality.json
|
49
|
+
- lib/tinderfridge/devices/bricklet_air_quality/bricklet_air_quality.rb
|
50
|
+
- lib/tinderfridge/devices/bricklet_ambient_light_v3/bricklet_ambient_light_v3.json
|
51
|
+
- lib/tinderfridge/devices/bricklet_ambient_light_v3/bricklet_ambient_light_v3.rb
|
52
|
+
- lib/tinderfridge/devices/bricklet_color_v2/bricklet_color_v2.json
|
53
|
+
- lib/tinderfridge/devices/bricklet_color_v2/bricklet_color_v2.rb
|
54
|
+
- lib/tinderfridge/devices/bricklet_dmx/bricklet_dmx.json
|
55
|
+
- lib/tinderfridge/devices/bricklet_dmx/bricklet_dmx.rb
|
56
|
+
- lib/tinderfridge/devices/bricklet_gps_v2/bricklet_gps_v2.json
|
57
|
+
- lib/tinderfridge/devices/bricklet_gps_v2/bricklet_gps_v2.rb
|
58
|
+
- lib/tinderfridge/devices/bricklet_imu_v3/bricklet_imu_v3.json
|
59
|
+
- lib/tinderfridge/devices/bricklet_industrial_dual_relay/bricklet_industrial_dual_relay.json
|
60
|
+
- lib/tinderfridge/devices/bricklet_industrial_dual_relay/bricklet_industrial_dual_relay.rb
|
61
|
+
- lib/tinderfridge/devices/bricklet_isolator/bricklet_isolator.json
|
62
|
+
- lib/tinderfridge/devices/bricklet_isolator/bricklet_isolator.rb
|
63
|
+
- lib/tinderfridge/devices/bricklet_joystick_v2/bricklet_joystick_v2.json
|
64
|
+
- lib/tinderfridge/devices/bricklet_joystick_v2/bricklet_joystick_v2.rb
|
65
|
+
- lib/tinderfridge/devices/bricklet_lcd_128x64/bricklet_lcd_128x64.json
|
66
|
+
- lib/tinderfridge/devices/bricklet_lcd_128x64/bricklet_lcd_128x64.rb
|
67
|
+
- lib/tinderfridge/devices/bricklet_led_strip_v2/bricklet_led_strip_v2.json
|
68
|
+
- lib/tinderfridge/devices/bricklet_led_strip_v2/bricklet_led_strip_v2.rb
|
69
|
+
- lib/tinderfridge/devices/bricklet_motion_detector_v2/bricklet_motion_detector_v2.json
|
70
|
+
- lib/tinderfridge/devices/bricklet_motion_detector_v2/bricklet_motion_detector_v2.rb
|
71
|
+
- lib/tinderfridge/devices/bricklet_motorized_linear_poti/bricklet_motorized_linear_poti.json
|
72
|
+
- lib/tinderfridge/devices/bricklet_motorized_linear_poti/bricklet_motorized_linear_poti.rb
|
73
|
+
- lib/tinderfridge/devices/bricklet_multi_touch_v2/bricklet_multi_touch_v2.json
|
74
|
+
- lib/tinderfridge/devices/bricklet_multi_touch_v2/bricklet_multi_touch_v2.rb
|
75
|
+
- lib/tinderfridge/devices/bricklet_nfc/bricklet_nfc.json
|
76
|
+
- lib/tinderfridge/devices/bricklet_nfc/bricklet_nfc.rb
|
77
|
+
- lib/tinderfridge/devices/bricklet_outdoor_weather/bricklet_outdoor_weather.json
|
78
|
+
- lib/tinderfridge/devices/bricklet_outdoor_weather/bricklet_outdoor_weather.rb
|
79
|
+
- lib/tinderfridge/devices/bricklet_performance_dc/bricklet_performance_dc.json
|
80
|
+
- lib/tinderfridge/devices/bricklet_remote_switch_v2/bricklet_remote_switch_v2.json
|
81
|
+
- lib/tinderfridge/devices/bricklet_remote_switch_v2/bricklet_remote_switch_v2.rb
|
82
|
+
- lib/tinderfridge/devices/bricklet_rgb_led_button/bricklet_rgb_led_button.json
|
83
|
+
- lib/tinderfridge/devices/bricklet_rgb_led_button/bricklet_rgb_led_button.rb
|
84
|
+
- lib/tinderfridge/devices/bricklet_rgb_led_v2/bricklet_rgb_led_v2.json
|
85
|
+
- lib/tinderfridge/devices/bricklet_rgb_led_v2/bricklet_rgb_led_v2.rb
|
86
|
+
- lib/tinderfridge/devices/bricklet_rotary_encoder_v2/bricklet_rotary_encoder_v2.json
|
87
|
+
- lib/tinderfridge/devices/bricklet_rotary_encoder_v2/bricklet_rotary_encoder_v2.rb
|
88
|
+
- lib/tinderfridge/devices/bricklet_segment_display_4x7_v2/bricklet_segment_display_4x7_v2.json
|
89
|
+
- lib/tinderfridge/devices/bricklet_segment_display_4x7_v2/bricklet_segment_display_4x7_v2.rb
|
90
|
+
- lib/tinderfridge/devices/bricklet_servo_v2/bricklet_servo_v2.json
|
91
|
+
- lib/tinderfridge/devices/bricklet_voltage_current_v2/bricklet_voltage_current_v2.json
|
92
|
+
- lib/tinderfridge/devices/bricklet_voltage_current_v2/bricklet_voltage_current_v2.rb
|
38
93
|
- lib/tinderfridge/ip_connection.rb
|
39
94
|
- lib/tinderfridge/tinkerforge.rb
|
40
95
|
- lib/tinderfridge/version.rb
|