rsmp 0.22.0 → 0.23.1

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: cf205a7a04823c34cc07dc8b0f67ede5a6ef23526ddad4786babc2d79f1d4869
4
- data.tar.gz: f63deaeaace582207b320895d7b93cdb5f8772bb9fa8891b5f47616eae9b200d
3
+ metadata.gz: f707eb609c41c8b27092931f6fe104d4fe9ac81d293060a9052dc28e1bf05296
4
+ data.tar.gz: ceedb0e9e1d64b8cfc0b5fa9f7a70f9cdfb59a22987922d1789a263cee11cdff
5
5
  SHA512:
6
- metadata.gz: '06580d98b22a7e1570821362bd770f06715637b57abb5c172dc3ceed1be4a887289081382787e2df2661beb20c8487e3be051c3cc66ffebd491766423c160c6d'
7
- data.tar.gz: 732432f40ab180bf37aa39c2f54f8c296678a9c7c673c694eae7334d041be10c80fff84f47625f153f0f3389cabb40b31cdae5168014c306b6a44ba5ca41f8f9
6
+ metadata.gz: 4ef42389d35c20d7827fc835d4d4be24790f666fd5655cfae40936379124e8baa28283b384f8c25d4a24e29fa471e0175402163b991d14e00a55fe7de9dafeb2
7
+ data.tar.gz: 4ec0c7c86c540379dbdc7a2a61934ee4eb38a6a8c5dabd652b2d0088c710e1890c85ecb977d15ded17d5cc04a8dfb139e1910afdff3b27e420ef4514f6af8eef
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp (0.22.0)
4
+ rsmp (0.23.1)
5
5
  async (~> 2.6.4)
6
6
  async-io (~> 1.36.0)
7
7
  colorize (~> 0.8.1)
@@ -106,6 +106,7 @@ GEM
106
106
 
107
107
  PLATFORMS
108
108
  arm64-darwin-22
109
+ arm64-darwin-23
109
110
  x64-mingw-ucrt
110
111
  x64-mingw32
111
112
  x86_64-darwin-19
data/config/tlc.yaml CHANGED
@@ -2,9 +2,9 @@ site_id: RN+SI0001
2
2
  supervisors:
3
3
  - ip: 127.0.0.1
4
4
  port: 12111
5
- core_versions: '3.2'
5
+ core_versions: '3.2.1'
6
6
  sxl: tlc
7
- sxl_version: '1.1'
7
+ sxl_version: '1.2'
8
8
  components:
9
9
  main:
10
10
  TC:
@@ -302,7 +302,7 @@ module RSMP
302
302
  end
303
303
 
304
304
  def rsmpify_value v
305
- return v if v.is_a? Array
305
+ return v if v.is_a?(Array) || v.is_a?(Set)
306
306
  v.to_s
307
307
  end
308
308
 
@@ -58,8 +58,8 @@ module RSMP
58
58
  @plan_source = 'startup'
59
59
  @intersection = 0
60
60
  @intersection_source = 'startup'
61
- @emergency_route = false
62
- @emergency_route_number = 0
61
+ @emergency_routes = Set.new
62
+ @last_emergency_route = nil
63
63
  @traffic_situation = 0
64
64
  @traffic_situation_source = 'startup'
65
65
  @day_time_table = {}
@@ -260,7 +260,7 @@ module RSMP
260
260
  def handle_m0002 arg, options={}
261
261
  @node.verify_security_code 2, arg['securityCode']
262
262
  if TrafficControllerSite.from_rsmp_bool(arg['status'])
263
- switch_plan arg['timeplan'], source: 'force'
263
+ switch_plan arg['timeplan'], source: 'forced'
264
264
  else
265
265
  switch_plan 0, source: 'startup' # TODO use clock/calender
266
266
  end
@@ -286,13 +286,22 @@ module RSMP
286
286
 
287
287
  def handle_m0005 arg, options={}
288
288
  @node.verify_security_code 2, arg['securityCode']
289
- @emergency_route = (arg['status'] == 'True')
290
- @emergency_route_number = arg['emergencyroute'].to_i
289
+ route = arg['emergencyroute'].to_i
290
+ enable = (arg['status'] == 'True')
291
+ @last_emergency_route = route
291
292
 
292
- if @emergency_route
293
- log "Switching to emergency route #{@emergency_route_number}", level: :info
293
+ if enable
294
+ if @emergency_routes.add? route
295
+ log "Enabling emergency route #{route}", level: :info
296
+ else
297
+ log "Emergency route #{route} already enabled", level: :info
298
+ end
294
299
  else
295
- log "Switching off emergency route", level: :info
300
+ if @emergency_routes.delete? route
301
+ log "Disabling emergency route #{route}", level: :info
302
+ else
303
+ log "Emergency route #{route} already disabled", level: :info
304
+ end
296
305
  end
297
306
  end
298
307
 
@@ -604,7 +613,7 @@ module RSMP
604
613
  'S0008', 'S0009', 'S0010', 'S0011', 'S0012', 'S0013', 'S0014',
605
614
  'S0015', 'S0016', 'S0017', 'S0018', 'S0019', 'S0020', 'S0021',
606
615
  'S0022', 'S0023', 'S0024', 'S0026', 'S0027', 'S0028',
607
- 'S0029', 'S0030', 'S0031', 'S0032', 'S0033',
616
+ 'S0029', 'S0030', 'S0031', 'S0032', 'S0033', 'S0035',
608
617
  'S0091', 'S0092', 'S0095', 'S0096', 'S0097',
609
618
  'S0205', 'S0206', 'S0207', 'S0208'
610
619
  return send("handle_#{code.downcase}", code, name, options)
@@ -659,11 +668,22 @@ module RSMP
659
668
  end
660
669
 
661
670
  def handle_s0006 status_code, status_name=nil, options={}
671
+ if Proxy.version_meets_requirement? options[:sxl_version], '>=1.2'
672
+ log "S0006 is depreciated, use S0035 instead.", level: :warning
673
+ end
662
674
  case status_name
663
675
  when 'status'
664
- TrafficControllerSite.make_status @emergency_route
676
+ TrafficControllerSite.make_status @emergency_routes.include?(@last_emergency_route)
665
677
  when 'emergencystage'
666
- TrafficControllerSite.make_status @emergency_route_number
678
+ TrafficControllerSite.make_status @last_emergency_route || 0
679
+ end
680
+ end
681
+
682
+ def handle_s0035 status_code, status_name=nil, options={}
683
+ case status_name
684
+ when 'emergencyroutes'
685
+ list = @emergency_routes.sort.map {|route| {'id'=>route.to_s}}
686
+ TrafficControllerSite.make_status list
667
687
  end
668
688
  end
669
689
 
data/lib/rsmp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RSMP
2
- VERSION = "0.22.0"
2
+ VERSION = "0.23.1"
3
3
  end
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.22.0
4
+ version: 0.23.1
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-09-29 00:00:00.000000000 Z
11
+ date: 2023-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async