Lenny-Vanderlinden-thermostat-exercise 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/thermostat +43 -0
- data/lib/convert.rb +50 -0
- data/lib/hello_world.rb +12 -0
- data/lib/mqtt_demo.rb +11 -0
- data/lib/temperature.rb +31 -0
- data/lib/url_reader.rb +12 -0
- metadata +51 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 13cd7b45d01241a91d49fd654f0dc29118bfb282
|
4
|
+
data.tar.gz: 928afe571186b641f3a7b1ba9db72c12529bf04f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e6f61348748eb805b577e2c8974de853b11e9a3e7b6ffc50008367f0c7cd2ee147f7c819ba0a6defb4463a8673fb9ae0cbb48eeca6e49329200e275b10d3539d
|
7
|
+
data.tar.gz: 742165f1ce0755f687e85e44386dbcd2edbd52cbfe4e86ada10a87d94c2fbf15c198e5bd69ae3ece3c2809ded9ad969bdda95f2628493111ea11b0002fed6918
|
data/bin/thermostat
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require_relative "convert"
|
2
|
+
require 'optparse'
|
3
|
+
|
4
|
+
foo = Convert.new
|
5
|
+
#cli
|
6
|
+
#foo = Temperature.new
|
7
|
+
#foo.clitemp(ARGV[0].to_i,ARGV[1].to_i,ARGV[2])
|
8
|
+
|
9
|
+
|
10
|
+
options = {:celcius => nil, :fahrenheit => nil, :kelvin => nil, :range => nil }
|
11
|
+
|
12
|
+
parser = OptionParser.new do |opts|
|
13
|
+
|
14
|
+
opts.banner = "Usage: .rb [options]"
|
15
|
+
|
16
|
+
opts.on('-r', '--range range',Float, 'Range') do |range|
|
17
|
+
options[:range] = range;
|
18
|
+
$range = range
|
19
|
+
end
|
20
|
+
|
21
|
+
opts.on('-c', '--celcius C',Float, 'Celcius') do |celcius|
|
22
|
+
options[:temperature] = foo.convert_temp(celcius,"c");
|
23
|
+
range = foo.convert_range("c");
|
24
|
+
end
|
25
|
+
|
26
|
+
opts.on('-k', '--kelvin K', Float , 'Kevin') do |kelvin|
|
27
|
+
options[:temperature] = foo.convert_temp(kelvin,"k");
|
28
|
+
range = foo.convert_range("k");
|
29
|
+
end
|
30
|
+
|
31
|
+
opts.on('-u', '--fahrenheit F', Float, 'Fahrenheit') do |fahrenheit|
|
32
|
+
options[:temperature] = foo.convert_temp(fahrenheit,"f");
|
33
|
+
range = foo.convert_range("f");
|
34
|
+
end
|
35
|
+
end
|
36
|
+
parser.parse!
|
37
|
+
|
38
|
+
if options[:temperature]
|
39
|
+
while true do
|
40
|
+
ledoutput = foo.output(options[:temperature])
|
41
|
+
break
|
42
|
+
end
|
43
|
+
end
|
data/lib/convert.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
class Convert
|
2
|
+
def convert_temp(temperature,unit)
|
3
|
+
if unit == "f"
|
4
|
+
endtemp = temperature * 1.8 + 32
|
5
|
+
#endrange = (range*1.8 + 32)
|
6
|
+
puts "The temperature is #{endtemp}°F"
|
7
|
+
elsif unit == "k"
|
8
|
+
endtemp = temperature + 273.15
|
9
|
+
#endrange = (range+273.15)
|
10
|
+
puts "The temperature is #{endtemp}°K"
|
11
|
+
elsif unit =="c"
|
12
|
+
endtemp = temperature
|
13
|
+
#endrange = range
|
14
|
+
puts "The temperature is #{endtemp}°C"
|
15
|
+
end
|
16
|
+
return endtemp
|
17
|
+
#return endrange
|
18
|
+
end
|
19
|
+
|
20
|
+
def convert_range(unit)
|
21
|
+
|
22
|
+
if unit == "f"
|
23
|
+
$endrange = $range * 1.8 + 32
|
24
|
+
$idealetemp = 20 *1.8+32
|
25
|
+
puts "The range is #{$endrange}°F"
|
26
|
+
puts "The ideal temperature is #{$idealetemp}°F"
|
27
|
+
elsif unit == "k"
|
28
|
+
$endrange = $range + 273.15
|
29
|
+
$idealetemp = 20+273.15
|
30
|
+
puts "The range is #{$endrange}°K"
|
31
|
+
puts "The ideal temperature is #{$idealetemp}°K"
|
32
|
+
elsif unit =="c"
|
33
|
+
$endrange = $range
|
34
|
+
$idealetemp = 20
|
35
|
+
puts "The range is #{$endrange}°C"
|
36
|
+
|
37
|
+
end
|
38
|
+
return $endrange
|
39
|
+
end
|
40
|
+
|
41
|
+
def output(temperature)
|
42
|
+
if temperature > ($idealetemp + $endrange)
|
43
|
+
puts "red"
|
44
|
+
elsif temperature < ($idealetemp - $endrange)
|
45
|
+
puts "blue"
|
46
|
+
else
|
47
|
+
puts "green"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/hello_world.rb
ADDED
data/lib/mqtt_demo.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require "mqtt"
|
2
|
+
|
3
|
+
temperature_topic = 'softwareengineering/temperature/+'
|
4
|
+
# Publish example
|
5
|
+
MQTT::Client.connect('mqtt.labict.be') do |client|
|
6
|
+
while true
|
7
|
+
client.get(temperature_topic) do |topic,message|
|
8
|
+
puts "#{topic}: #{message}"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
data/lib/temperature.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative "convert"
|
2
|
+
class Temperature
|
3
|
+
=begin
|
4
|
+
def clitemp(temperature,range,unit)
|
5
|
+
$temperature= temperature
|
6
|
+
$range = range
|
7
|
+
$unit = unit
|
8
|
+
foo = Convert.new
|
9
|
+
foo.convert_temp
|
10
|
+
|
11
|
+
if $temperature > (20 +$range)
|
12
|
+
puts "red"
|
13
|
+
elsif $temperature < (20 -$range)
|
14
|
+
puts "blue"
|
15
|
+
else
|
16
|
+
puts "green"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
=end
|
20
|
+
|
21
|
+
def temperatuur(temperature,range,unit)
|
22
|
+
|
23
|
+
#test url
|
24
|
+
=begin
|
25
|
+
def open
|
26
|
+
temp_test = (URI.parse("https://labict.be/software-engineering/temperature/api/temperature/fake").read).to_f
|
27
|
+
puts temp_test
|
28
|
+
|
29
|
+
end
|
30
|
+
=end
|
31
|
+
end
|
data/lib/url_reader.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
class url_reader
|
2
|
+
require 'openssl'
|
3
|
+
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
|
4
|
+
require "open-uri"
|
5
|
+
|
6
|
+
def open
|
7
|
+
url = (URI.parse("https://labict.be/software-engineering/temperature/api/temperature/fake").read).to_f
|
8
|
+
puts url
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: Lenny-Vanderlinden-thermostat-exercise
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Lenny Vanderlinden
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-05-23 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Application to convert the temperature and to tell if its warm/cold or
|
14
|
+
good
|
15
|
+
email: lenny.vanderlinden@student.vives.be
|
16
|
+
executables:
|
17
|
+
- thermostat
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files: []
|
20
|
+
files:
|
21
|
+
- bin/thermostat
|
22
|
+
- lib/convert.rb
|
23
|
+
- lib/hello_world.rb
|
24
|
+
- lib/mqtt_demo.rb
|
25
|
+
- lib/temperature.rb
|
26
|
+
- lib/url_reader.rb
|
27
|
+
homepage: http://git.labict.be/lennyvanderlinden/Ruby-Thermostaat
|
28
|
+
licenses:
|
29
|
+
- MIT
|
30
|
+
metadata: {}
|
31
|
+
post_install_message:
|
32
|
+
rdoc_options: []
|
33
|
+
require_paths:
|
34
|
+
- lib
|
35
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
45
|
+
requirements: []
|
46
|
+
rubyforge_project:
|
47
|
+
rubygems_version: 2.6.12
|
48
|
+
signing_key:
|
49
|
+
specification_version: 4
|
50
|
+
summary: thermostaat
|
51
|
+
test_files: []
|