rsmp 0.20.7 → 0.22.0

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: 77314f562ebf956079f50f9cabd90be180010d39d55ecc2b96aceeab7b6da553
4
- data.tar.gz: 2c67e8fcca60ecdefec7edb539f56b7625046f3ef7e8d7a0801640c05f8f0535
3
+ metadata.gz: cf205a7a04823c34cc07dc8b0f67ede5a6ef23526ddad4786babc2d79f1d4869
4
+ data.tar.gz: f63deaeaace582207b320895d7b93cdb5f8772bb9fa8891b5f47616eae9b200d
5
5
  SHA512:
6
- metadata.gz: 68a66a9531bff5c01cd743ae61a2b159bae2ce0dc6cfd393b5fa9deddda3838d771cfd1025a25ec8231a5d099d5e1976bbbc9418738ee0ba528875e3d8e63327
7
- data.tar.gz: bac2a033fa66291905fa0ba5a66d79a9bb114900ff7d62f4ec696b7ba5271b8454793c1866f9607f0de0638c9950a09822640935541e9663ee01f74295469834
6
+ metadata.gz: '06580d98b22a7e1570821362bd770f06715637b57abb5c172dc3ceed1be4a887289081382787e2df2661beb20c8487e3be051c3cc66ffebd491766423c160c6d'
7
+ data.tar.gz: 732432f40ab180bf37aa39c2f54f8c296678a9c7c673c694eae7334d041be10c80fff84f47625f153f0f3389cabb40b31cdae5168014c306b6a44ba5ca41f8f9
@@ -13,7 +13,7 @@ jobs:
13
13
  ruby: ['3.2']
14
14
  runs-on: ${{ matrix.os }}
15
15
  steps:
16
- - uses: actions/checkout@v2
16
+ - uses: actions/checkout@v3
17
17
  - uses: ruby/setup-ruby@v1
18
18
  with:
19
19
  ruby-version: ${{ matrix.ruby }}
data/Gemfile.lock CHANGED
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp (0.20.7)
5
- async (~> 2.6.2)
6
- async-io (~> 1.35.0)
4
+ rsmp (0.22.0)
5
+ async (~> 2.6.4)
6
+ async-io (~> 1.36.0)
7
7
  colorize (~> 0.8.1)
8
- rsmp_schema (~> 0.4.0)
8
+ rsmp_schema (~> 0.5)
9
9
  thor (~> 1.2.2)
10
10
 
11
11
  GEM
@@ -18,17 +18,17 @@ GEM
18
18
  cucumber (>= 4.0, < 9.0)
19
19
  rspec-expectations (~> 3.4)
20
20
  thor (~> 1.0)
21
- async (2.6.3)
21
+ async (2.6.4)
22
22
  console (~> 1.10)
23
23
  fiber-annotation
24
24
  io-event (~> 1.1)
25
25
  timers (~> 4.1)
26
- async-io (1.35.0)
26
+ async-io (1.36.0)
27
27
  async
28
28
  builder (3.2.4)
29
29
  childprocess (4.1.0)
30
30
  colorize (0.8.1)
31
- console (1.21.0)
31
+ console (1.23.2)
32
32
  fiber-annotation
33
33
  fiber-local
34
34
  contracts (0.17)
@@ -59,24 +59,24 @@ GEM
59
59
  diff-lcs (1.5.0)
60
60
  ecma-re-validator (0.4.0)
61
61
  regexp_parser (~> 2.2)
62
- ffi (1.15.5)
62
+ ffi (1.16.2)
63
63
  fiber-annotation (0.2.0)
64
64
  fiber-local (1.0.0)
65
65
  hana (1.3.7)
66
- io-event (1.2.3)
66
+ io-event (1.3.2)
67
67
  json_schemer (0.2.25)
68
68
  ecma-re-validator (~> 0.3)
69
69
  hana (~> 1.3)
70
70
  regexp_parser (~> 2.0)
71
71
  simpleidn (~> 0.2)
72
72
  uri_template (~> 0.7)
73
- mime-types (3.4.1)
73
+ mime-types (3.5.1)
74
74
  mime-types-data (~> 3.2015)
75
- mime-types-data (3.2023.0218.1)
75
+ mime-types-data (3.2023.0808)
76
76
  multi_test (1.1.0)
77
77
  rake (13.0.6)
78
78
  regexp_parser (2.8.1)
79
- rsmp_schema (0.4.5)
79
+ rsmp_schema (0.5)
80
80
  json_schemer (~> 0.2.21)
81
81
  thor (~> 1.2.1)
82
82
  rspec (3.12.0)
@@ -88,16 +88,16 @@ GEM
88
88
  rspec-expectations (3.12.3)
89
89
  diff-lcs (>= 1.2.0, < 2.0)
90
90
  rspec-support (~> 3.12.0)
91
- rspec-mocks (3.12.5)
91
+ rspec-mocks (3.12.6)
92
92
  diff-lcs (>= 1.2.0, < 2.0)
93
93
  rspec-support (~> 3.12.0)
94
- rspec-support (3.12.0)
94
+ rspec-support (3.12.1)
95
95
  simpleidn (0.2.1)
96
96
  unf (~> 0.1.4)
97
97
  sys-uname (1.2.3)
98
98
  ffi (~> 1.1)
99
99
  thor (1.2.2)
100
- timecop (0.9.6)
100
+ timecop (0.9.8)
101
101
  timers (4.3.5)
102
102
  unf (0.1.4)
103
103
  unf_ext
@@ -116,7 +116,7 @@ PLATFORMS
116
116
 
117
117
  DEPENDENCIES
118
118
  aruba (~> 2.1.0)
119
- bundler (~> 2.4.13)
119
+ bundler (~> 2.4.20)
120
120
  cucumber (~> 8.0.0)
121
121
  rake (~> 13.0.6)
122
122
  rsmp!
@@ -125,4 +125,4 @@ DEPENDENCIES
125
125
  timecop (~> 0.9.6)
126
126
 
127
127
  BUNDLED WITH
128
- 2.4.13
128
+ 2.4.20
data/lib/rsmp/node.rb CHANGED
@@ -44,19 +44,19 @@ module RSMP
44
44
  @error_queue.enqueue e
45
45
  end
46
46
 
47
- def defer item
48
- @deferred << item
47
+ def defer key, item=nil
48
+ @deferred << [key, item]
49
49
  end
50
50
 
51
51
  def process_deferred
52
52
  cloned = @deferred.clone # clone in case do_deferred restarts the current task
53
53
  @deferred.clear
54
- cloned.each do |item|
55
- do_deferred item
54
+ cloned.each do |pair|
55
+ do_deferred pair.first, pair.last
56
56
  end
57
57
  end
58
58
 
59
- def do_deferred item
59
+ def do_deferred key,item=nil
60
60
  end
61
61
 
62
62
  def clear_deferred
@@ -344,6 +344,45 @@ module RSMP
344
344
 
345
345
  def handle_m0013 arg, options={}
346
346
  @node.verify_security_code 2, arg['securityCode']
347
+ set, clear = [], []
348
+ arg['status'].split(';').map do |part|
349
+ offset, set_bits, clear_bits = part.split(',').map { |i| i.to_i }
350
+ set_bits.to_s(2).reverse.each_char.with_index do |bit,i|
351
+ set << i + offset if bit == '1'
352
+ end
353
+ clear_bits.to_s(2).reverse.each_char.with_index do |bit,i|
354
+ clear << i + offset if bit == '1'
355
+ end
356
+ end
357
+
358
+ set = set.uniq.sort
359
+ clear = clear.uniq.sort
360
+
361
+ # if input is both activated and deacticvated, there is no need to acticate first
362
+ set -= (set & clear)
363
+
364
+ [set,clear].each do |inputs|
365
+ inputs.each do |input|
366
+ if input<1
367
+ raise MessageRejected.new("Cannot acticate inputs #{set} and deactive inputs #{clear}: input #{input} is invalid (must be 1 or higher)"
368
+ ) if input<1
369
+ end
370
+ if input>@inputs.size
371
+ raise MessageRejected.new("Cannot acticate inputs #{set} and deactive inputs #{clear}: input #{input} is invalid (only #{@inputs.size} inputs present)")
372
+ end
373
+ end
374
+ end
375
+
376
+ log "Activating inputs #{set} and deactivating inputs #{clear}", level: :info
377
+
378
+ set.each do |input|
379
+ change = @inputs.set input, true
380
+ input_logic input, change if change != nil
381
+ end
382
+ clear.each do |input|
383
+ change = @inputs.set input, false
384
+ input_logic input, change if change != nil
385
+ end
347
386
  end
348
387
 
349
388
  def find_plan plan_nr
@@ -432,6 +471,7 @@ module RSMP
432
471
  log "Releasing input #{input}", level: :info
433
472
  end
434
473
  change = @inputs.set_forcing input, force, forced_value
474
+
435
475
  input_logic input, change if change != nil
436
476
  end
437
477
 
@@ -149,8 +149,8 @@ module RSMP
149
149
  end
150
150
  end
151
151
 
152
- def do_deferred item
153
- case item
152
+ def do_deferred key, item=nil
153
+ case key
154
154
  when :restart
155
155
  log "Restarting TLC", level: :info
156
156
  restart
data/lib/rsmp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RSMP
2
- VERSION = "0.20.7"
2
+ VERSION = "0.22.0"
3
3
  end
data/rsmp.gemspec CHANGED
@@ -30,13 +30,13 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_dependency "async", "~> 2.6.2"
34
- spec.add_dependency "async-io", "~> 1.35.0"
33
+ spec.add_dependency "async", "~> 2.6.4"
34
+ spec.add_dependency "async-io", "~> 1.36.0"
35
35
  spec.add_dependency "colorize", "~> 0.8.1"
36
36
  spec.add_dependency "thor", "~> 1.2.2"
37
- spec.add_dependency "rsmp_schema", "~> 0.4.0"
37
+ spec.add_dependency "rsmp_schema", "~> 0.5"
38
38
 
39
- spec.add_development_dependency "bundler", "~> 2.4.13"
39
+ spec.add_development_dependency "bundler", "~> 2.4.20"
40
40
  spec.add_development_dependency "rake", "~> 13.0.6"
41
41
  spec.add_development_dependency "rspec", "~> 3.12.0"
42
42
  spec.add_development_dependency "rspec-expectations", "~> 3.12.2"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsmp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.7
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emil Tin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-07 00:00:00.000000000 Z
11
+ date: 2023-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.6.2
19
+ version: 2.6.4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.6.2
26
+ version: 2.6.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: async-io
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.35.0
33
+ version: 1.36.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.35.0
40
+ version: 1.36.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: colorize
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -72,28 +72,28 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.4.0
75
+ version: '0.5'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.4.0
82
+ version: '0.5'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 2.4.13
89
+ version: 2.4.20
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 2.4.13
96
+ version: 2.4.20
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement