somfy_sdn 2.1.2 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aab121215242974fc0570c9495954b8a8584fd02535fe6b758590e3e5baa7a21
4
- data.tar.gz: f2130a9042156d347808409bab26bec3dcdd37ac27d4a5fcd156ed90a889ed6a
3
+ metadata.gz: 10f8660ac4681db000372dc97f6fe9a738d706f2751965a3556d5d6dcf22215a
4
+ data.tar.gz: 8659cf3dc75cf10d677b6329dc2ab65fec9367bb2a6c70da623557f0dfc113b5
5
5
  SHA512:
6
- metadata.gz: a104e2ad0bba74257e89768c36ceba023208190074da12fe35420c451c981b9582521b6276fd342e6513d7949e7264b073c4975a66bbaacd4592577948ad3ed6
7
- data.tar.gz: fce28168771816f6718d116fb0bc84daa02475b9a8318ddf65e16caa288c24303e2f57910d445d654c44b2dbb356ccf23b5b680b29120c3c9f751317ba661a6f
6
+ metadata.gz: 9432f5079edfa4a6a0d70845b4bf17140269c4608fa6a006de501eb68f59806e9f85c44658f41da857c7fbd7c8ae69c4781479de36d149f60649b3c3b9670f19
7
+ data.tar.gz: 25831ea7fa94905b3cab5062216118e9b74b861b2a1c93a7ed49ce4aa64fceba30bcb3e2e79675c43c019d4d639aa944561bb0af7414192a0e981f3649511351
data/lib/sdn/cli/mqtt.rb CHANGED
@@ -45,6 +45,7 @@ module SDN
45
45
 
46
46
  @sdn = Client.new(port)
47
47
 
48
+ Thread.abort_on_exception = true
48
49
  read_thread = Thread.new { read }
49
50
  write_thread = Thread.new { write }
50
51
  @mqtt.get { |packet| handle_message(packet.topic, packet.payload) }
data/lib/sdn/client.rb CHANGED
@@ -58,18 +58,30 @@ module SDN
58
58
  unless message
59
59
  break unless messages.empty?
60
60
 
61
+ # one EOF is just serial ports saying they have no data;
62
+ # two EOFs in a row is the file is dead and gone
63
+ eofs = 0
61
64
  begin
62
65
  block = @io.read_nonblock(64 * 1024)
63
66
  SDN.logger.debug "read #{block.unpack("H*").first.gsub(/\h{2}/, "\\0 ")}"
64
67
  @buffer.concat(block)
65
68
  next
66
- rescue IO::WaitReadable, EOFError
69
+ rescue IO::WaitReadable, EOFError => e
70
+ if e.is_a?(EOFError)
71
+ eofs += 1
72
+ else
73
+ eofs = 0
74
+ end
75
+ raise if eofs == 2
76
+
67
77
  wait = @buffer.empty? ? timeout : WAIT_TIME
68
78
  if @io.wait_readable(wait).nil?
69
79
  # timed out; just discard everything
70
80
  SDN.logger.debug "discarding #{@buffer.unpack("H*").first.gsub(/\h{2}/, "\\0 ")} due to timeout"
71
81
  @buffer = ""
72
82
  end
83
+
84
+ retry
73
85
  end
74
86
  next
75
87
  end
data/lib/sdn/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module SDN
2
- VERSION = '2.1.2'
2
+ VERSION = '2.1.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: somfy_sdn
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Cutrer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-16 00:00:00.000000000 Z
11
+ date: 2022-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mqtt-ccutrer