Class: RSMP::Validator::Helpers::SignalPriority::RequestHelper
- Inherits:
-
Queue
- Object
- Queue
- RSMP::Validator::Helpers::SignalPriority::RequestHelper
- Includes:
- RSMP::Validator::Helpers::Status
- Defined in:
- lib/rsmp/validator/helpers/signal_priority.rb
Overview
Helper queue for managing signal priority requests during tests.
Instance Method Summary collapse
- #cancel ⇒ Object
- #expect(state) ⇒ Object
-
#initialize(site_proxy, component:, signal_group_id:, timeout:, task:) ⇒ RequestHelper
constructor
A new instance of RequestHelper.
- #request(level: 7, eta: 2, vehicle_type: 'car') ⇒ Object
- #request_unrelated(level: 7, eta: 2, vehicle_type: 'car') ⇒ Object
- #run ⇒ Object
Methods included from RSMP::Validator::Helpers::Status
Constructor Details
#initialize(site_proxy, component:, signal_group_id:, timeout:, task:) ⇒ RequestHelper
Returns a new instance of RequestHelper.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/rsmp/validator/helpers/signal_priority.rb', line 43 def initialize(site_proxy, component:, signal_group_id:, timeout:, task:) super(site_proxy, filter: RSMP::Filter.new( type: 'StatusUpdate', ingoing: true, outgoing: false, component: component ), task: task) @site_proxy = site_proxy @component = component @signal_group_id = signal_group_id @request_id = SecureRandom.uuid[0..3] @matcher = S0033Matcher.new({ 'cCI' => 'S0033', 'q' => 'recent' }, request_id: @request_id) @subscribe_list = [{ 'sCI' => 'S0033', 'n' => 'status', 'uRt' => '0' }] @subscribe_list.map! { |item| item.merge!('sOc' => true) } if @site_proxy.tlc.use_soc? @unsubscribe_list = [{ 'sCI' => 'S0033', 'n' => 'status' }] @got = [] @timeout = timeout end |
Instance Method Details
#cancel ⇒ Object
93 94 95 96 97 98 |
# File 'lib/rsmp/validator/helpers/signal_priority.rb', line 93 def cancel command_list = RSMP::CommandList.new(:M0022, :requestPriority, requestId: @request_id, type: 'cancel').to_a @site_proxy.send_command(command_list, component: @component) end |
#expect(state) ⇒ Object
100 101 102 103 104 105 |
# File 'lib/rsmp/validator/helpers/signal_priority.rb', line 100 def expect(state) @matcher.state = state timeout: @timeout rescue RSMP::TimeoutError raise RSMP::TimeoutError, "Priority request did not reach state #{state} within #{@timeout}s" end |
#request(level: 7, eta: 2, vehicle_type: 'car') ⇒ Object
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/rsmp/validator/helpers/signal_priority.rb', line 71 def request(level: 7, eta: 2, vehicle_type: 'car') command_list = RSMP::CommandList.new(:M0022, :requestPriority, 'requestId' => @request_id, 'signalGroupId' => @signal_group_id, 'type' => 'new', 'level' => level, 'eta' => eta, 'vehicleType' => vehicle_type).to_a @site_proxy.send_command(command_list, component: @component) end |
#request_unrelated(level: 7, eta: 2, vehicle_type: 'car') ⇒ Object
82 83 84 85 86 87 88 89 90 91 |
# File 'lib/rsmp/validator/helpers/signal_priority.rb', line 82 def (level: 7, eta: 2, vehicle_type: 'car') command_list = RSMP::CommandList.new(:M0022, :requestPriority, 'requestId' => SecureRandom.uuid[0..3], 'signalGroupId' => @signal_group_id, 'type' => 'new', 'level' => level, 'eta' => eta, 'vehicleType' => vehicle_type).to_a @site_proxy.send_command(command_list, component: @component) end |
#run ⇒ Object
64 65 66 67 68 69 |
# File 'lib/rsmp/validator/helpers/signal_priority.rb', line 64 def run start yield ensure stop end |