somfy_sdn 2.1.2 → 2.1.3

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.
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