sappho-heatmiser-proxy 0.0.6 → 0.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.
@@ -25,7 +25,8 @@ module Sappho
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def communicate
|
28
|
-
|
28
|
+
active = true
|
29
|
+
while active do
|
29
30
|
begin
|
30
31
|
timeout 20 do
|
31
32
|
command = read 5
|
@@ -35,12 +36,14 @@ module Sappho
|
|
35
36
|
'error: no response from heatmiser unit in last minute' :
|
36
37
|
@status.valid ? 'ok' : 'error: last response from heatmiser unit was invalid'
|
37
38
|
}
|
38
|
-
@log.info "client
|
39
|
-
@client.
|
39
|
+
@log.info "client check - reply: #{reply}"
|
40
|
+
@client.write "#{reply}\r\n"
|
41
|
+
active = false
|
40
42
|
else
|
43
|
+
command = command.unpack('c*')
|
41
44
|
@log.debug "header: #{TraceLog.hex command}" if @log.debug?
|
42
45
|
packetSize = (command[1] & 0xFF) | ((command[2] << 8) & 0x0F00)
|
43
|
-
command += read(packetSize - 5)
|
46
|
+
command += read(packetSize - 5).unpack('c*')
|
44
47
|
CommandQueue.instance.push @ip, command unless (command[0] & 0xFF) == 0x93
|
45
48
|
@status.get { @client.write @status.raw.pack('c*') if @status.valid }
|
46
49
|
@log.info "command received from client #{@ip} so it is alive"
|
@@ -48,13 +51,13 @@ module Sappho
|
|
48
51
|
end
|
49
52
|
rescue Timeout::Error
|
50
53
|
@log.info "no command received from client #{@ip} so presuming it dormant"
|
51
|
-
|
54
|
+
active = false
|
52
55
|
rescue HeatmiserClient::ReadError
|
53
56
|
@log.info "unable to receive data from client #{@ip} so presuming it has disconnected"
|
54
|
-
|
57
|
+
active = false
|
55
58
|
rescue => error
|
56
59
|
@log.error error
|
57
|
-
|
60
|
+
active = false
|
58
61
|
end
|
59
62
|
end
|
60
63
|
begin
|
@@ -67,7 +70,7 @@ module Sappho
|
|
67
70
|
def read size
|
68
71
|
data = @client.read size
|
69
72
|
raise HeatmiserClient::ReadError unless data and data.size == size
|
70
|
-
data
|
73
|
+
data
|
71
74
|
end
|
72
75
|
|
73
76
|
class ReadError < Interrupt
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sappho-heatmiser-proxy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 7
|
10
|
+
version: 0.0.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrew Heald
|