atc-tools 1.0.2 → 1.0.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 +4 -4
- data/doc/ATCTools/Airport.html +8 -4
- data/doc/ATCTools/FlightPlan.html +50 -5
- data/doc/ATCTools/VRC.html +1 -1
- data/doc/created.rid +4 -4
- data/doc/js/search_index.js +1 -1
- data/doc/table_of_contents.html +4 -2
- data/lib/atc-tools/airport.rb +6 -2
- data/lib/atc-tools/flight_plan.rb +18 -3
- data/lib/atc-tools/vrc.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ce0be091c80b540d74acd8ea12ed054137421e5
|
4
|
+
data.tar.gz: ea2a91d44a6653870287569f0e2373b5dbdcfd8e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4612f2a2fe3744a3763205e999a3e5743992b01184315d1615d5173fc9cfdfd1f6085c94cb8715b9edc8e2990bdb0e765a8f0850e2e3563b7bb18eb5d8c17c0f
|
7
|
+
data.tar.gz: 382a9f4fd5852e3530478bf2bb2892060202ea34a8e3185547d4691abbd3e041faece0dbce2c403000382049ebca67427ec61b04f4231524bf3fede03751c15d
|
data/doc/ATCTools/Airport.html
CHANGED
@@ -433,9 +433,11 @@ variance.</p>
|
|
433
433
|
|
434
434
|
|
435
435
|
<div class="method-source-code" id="magnetic_to_true-source">
|
436
|
-
<pre><span class="ruby-comment"># File lib/atc-tools/airport.rb, line
|
436
|
+
<pre><span class="ruby-comment"># File lib/atc-tools/airport.rb, line 97</span>
|
437
437
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">magnetic_to_true</span>(<span class="ruby-identifier">heading</span>)
|
438
|
-
<span class="ruby-identifier">heading</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@variance</span>
|
438
|
+
<span class="ruby-identifier">value</span> = <span class="ruby-identifier">heading</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@variance</span>
|
439
|
+
<span class="ruby-identifier">value</span> <span class="ruby-operator">-=</span> <span class="ruby-value">360.0</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator">></span> <span class="ruby-value">360.0</span>
|
440
|
+
<span class="ruby-identifier">value</span>
|
439
441
|
<span class="ruby-keyword">end</span></pre>
|
440
442
|
</div><!-- magnetic_to_true-source -->
|
441
443
|
|
@@ -501,7 +503,7 @@ to act as a direct replacement for string input.</p>
|
|
501
503
|
|
502
504
|
|
503
505
|
<div class="method-source-code" id="to_s-source">
|
504
|
-
<pre><span class="ruby-comment"># File lib/atc-tools/airport.rb, line
|
506
|
+
<pre><span class="ruby-comment"># File lib/atc-tools/airport.rb, line 105</span>
|
505
507
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">to_s</span>
|
506
508
|
<span class="ruby-ivar">@code</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">upcase</span>
|
507
509
|
<span class="ruby-keyword">end</span></pre>
|
@@ -611,7 +613,9 @@ variance.</p>
|
|
611
613
|
<div class="method-source-code" id="true_to_magnetic-source">
|
612
614
|
<pre><span class="ruby-comment"># File lib/atc-tools/airport.rb, line 89</span>
|
613
615
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">true_to_magnetic</span>(<span class="ruby-identifier">heading</span>)
|
614
|
-
<span class="ruby-identifier">heading</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@variance</span>
|
616
|
+
<span class="ruby-identifier">value</span> = <span class="ruby-identifier">heading</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@variance</span>
|
617
|
+
<span class="ruby-identifier">value</span> <span class="ruby-operator">+=</span> <span class="ruby-value">360.0</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">value</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span>
|
618
|
+
<span class="ruby-identifier">value</span>
|
615
619
|
<span class="ruby-keyword">end</span></pre>
|
616
620
|
</div><!-- true_to_magnetic-source -->
|
617
621
|
|
@@ -77,6 +77,8 @@
|
|
77
77
|
|
78
78
|
<li ><a href="#method-i-altitude_valid-3F">#altitude_valid?</a>
|
79
79
|
|
80
|
+
<li ><a href="#method-i-cruise-3D">#cruise=</a>
|
81
|
+
|
80
82
|
<li ><a href="#method-i-heading">#heading</a>
|
81
83
|
|
82
84
|
<li ><a href="#method-i-to_s">#to_s</a>
|
@@ -197,7 +199,7 @@
|
|
197
199
|
<div id="attribute-i-cruise" class="method-detail">
|
198
200
|
<div class="method-heading attribute-method-heading">
|
199
201
|
<span class="method-name">cruise</span><span
|
200
|
-
class="attribute-access-type">[
|
202
|
+
class="attribute-access-type">[R]</span>
|
201
203
|
</div>
|
202
204
|
|
203
205
|
<div class="method-description">
|
@@ -377,13 +379,16 @@
|
|
377
379
|
<span class="ruby-ivar">@heading</span> = <span class="ruby-ivar">@depart</span>.<span class="ruby-identifier">magnetic_heading_to</span> <span class="ruby-ivar">@arrive</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@heading</span>
|
378
380
|
|
379
381
|
<span class="ruby-comment"># Strip the zeros off of the altitude for even/odd comparison.</span>
|
380
|
-
<span class="ruby-identifier">
|
382
|
+
<span class="ruby-identifier">len</span> = <span class="ruby-value">0</span>
|
383
|
+
<span class="ruby-identifier">len</span> = <span class="ruby-value">1</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@cruise</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">>=</span> <span class="ruby-value">5</span>
|
384
|
+
<span class="ruby-identifier">cruise_stripped</span> = <span class="ruby-ivar">@cruise</span>.<span class="ruby-identifier">to_s</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">len</span>].<span class="ruby-identifier">to_i</span>
|
385
|
+
|
381
386
|
<span class="ruby-identifier">is_north_east</span> = (<span class="ruby-ivar">@heading</span> <span class="ruby-operator"><</span> <span class="ruby-value">180</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@heading</span> <span class="ruby-operator">>=</span> <span class="ruby-value">360</span>)
|
382
387
|
|
383
388
|
<span class="ruby-identifier">rules</span> = <span class="ruby-ivar">@rules</span>.<span class="ruby-identifier">upcase</span>.<span class="ruby-identifier">to_sym</span>
|
384
389
|
<span class="ruby-keyword">case</span> <span class="ruby-identifier">rules</span>
|
385
390
|
<span class="ruby-keyword">when</span> <span class="ruby-value">:IFR</span>
|
386
|
-
<span class="ruby-identifier">above_fl410</span> = <span class="ruby-identifier">
|
391
|
+
<span class="ruby-identifier">above_fl410</span> = <span class="ruby-ivar">@cruise</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">/</span> <span class="ruby-value">100</span> <span class="ruby-operator">></span> <span class="ruby-value">410</span>
|
387
392
|
|
388
393
|
<span class="ruby-keyword">if</span> <span class="ruby-identifier">above_fl410</span>
|
389
394
|
<span class="ruby-identifier">east_alt</span> = [<span class="ruby-value">45</span>, <span class="ruby-value">49</span>, <span class="ruby-value">53</span>, <span class="ruby-value">57</span>, <span class="ruby-value">61</span>]
|
@@ -414,6 +419,46 @@
|
|
414
419
|
</div><!-- altitude_valid-3F-method -->
|
415
420
|
|
416
421
|
|
422
|
+
<div id="method-i-cruise-3D" class="method-detail ">
|
423
|
+
|
424
|
+
<div class="method-heading">
|
425
|
+
<span class="method-name">cruise=</span><span
|
426
|
+
class="method-args">(value)</span>
|
427
|
+
|
428
|
+
<span class="method-click-advice">click to toggle source</span>
|
429
|
+
|
430
|
+
</div>
|
431
|
+
|
432
|
+
|
433
|
+
<div class="method-description">
|
434
|
+
|
435
|
+
<p>Cruising altitude. Can accept a standard cruising altitude (33000) or
|
436
|
+
flight level (FL370).</p>
|
437
|
+
|
438
|
+
|
439
|
+
|
440
|
+
|
441
|
+
<div class="method-source-code" id="cruise-3D-source">
|
442
|
+
<pre><span class="ruby-comment"># File lib/atc-tools/flight_plan.rb, line 98</span>
|
443
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">cruise=</span>(<span class="ruby-identifier">value</span>)
|
444
|
+
<span class="ruby-comment"># Strip letters from the cruising altitude.</span>
|
445
|
+
<span class="ruby-identifier">v</span> = <span class="ruby-identifier">value</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/[a-zA-Z]/</span>, <span class="ruby-string">''</span>).<span class="ruby-identifier">to_i</span>
|
446
|
+
|
447
|
+
<span class="ruby-comment"># Append two zeros if the altitude is a flight level (three digits).</span>
|
448
|
+
<span class="ruby-identifier">v</span> <span class="ruby-operator">*=</span> <span class="ruby-value">100</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span> <span class="ruby-operator"><</span> <span class="ruby-value">1000</span>
|
449
|
+
|
450
|
+
<span class="ruby-ivar">@cruise</span> = <span class="ruby-identifier">v</span>
|
451
|
+
<span class="ruby-keyword">end</span></pre>
|
452
|
+
</div><!-- cruise-3D-source -->
|
453
|
+
|
454
|
+
</div>
|
455
|
+
|
456
|
+
|
457
|
+
|
458
|
+
|
459
|
+
</div><!-- cruise-3D-method -->
|
460
|
+
|
461
|
+
|
417
462
|
<div id="method-i-heading" class="method-detail ">
|
418
463
|
|
419
464
|
<div class="method-heading">
|
@@ -467,7 +512,7 @@
|
|
467
512
|
|
468
513
|
|
469
514
|
<div class="method-source-code" id="to_s-source">
|
470
|
-
<pre><span class="ruby-comment"># File lib/atc-tools/flight_plan.rb, line
|
515
|
+
<pre><span class="ruby-comment"># File lib/atc-tools/flight_plan.rb, line 113</span>
|
471
516
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">to_s</span>
|
472
517
|
<span class="ruby-identifier">data</span> = <span class="ruby-value"><<EOS
|
473
518
|
Callsign: #{@callsign}
|
@@ -516,7 +561,7 @@ EOS</span>
|
|
516
561
|
|
517
562
|
|
518
563
|
<div class="method-source-code" id="validate-source">
|
519
|
-
<pre><span class="ruby-comment"># File lib/atc-tools/flight_plan.rb, line
|
564
|
+
<pre><span class="ruby-comment"># File lib/atc-tools/flight_plan.rb, line 109</span>
|
520
565
|
<span class="ruby-keyword">def</span> <span class="ruby-identifier">validate</span>
|
521
566
|
<span class="ruby-keyword">end</span></pre>
|
522
567
|
</div><!-- validate-source -->
|
data/doc/ATCTools/VRC.html
CHANGED
@@ -573,7 +573,7 @@ no aircraft is selected.</p>
|
|
573
573
|
<span class="ruby-comment"># ---------------</span>
|
574
574
|
<span class="ruby-comment"># TODO: Implement</span>
|
575
575
|
<span class="ruby-comment"># ---------------</span>
|
576
|
-
<span class="ruby-identifier">result</span> = <span class="ruby-
|
576
|
+
<span class="ruby-identifier">result</span> = <span class="ruby-string">"Aircraft type code not found in database."</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">result</span>.<span class="ruby-identifier">empty?</span>
|
577
577
|
|
578
578
|
<span class="ruby-comment"># File.delete @aclog_path</span>
|
579
579
|
<span class="ruby-keyword">end</span>
|
data/doc/created.rid
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
|
1
|
+
Sun, 27 Oct 2013 02:17:13 -0700
|
2
2
|
lib/atc-tools.rb Thu, 26 Sep 2013 19:45:13 -0700
|
3
3
|
lib/atc-tools/aircraft.rb Fri, 27 Sep 2013 20:48:21 -0700
|
4
|
-
lib/atc-tools/airport.rb
|
5
|
-
lib/atc-tools/flight_plan.rb
|
4
|
+
lib/atc-tools/airport.rb Sun, 27 Oct 2013 00:26:06 -0700
|
5
|
+
lib/atc-tools/flight_plan.rb Sun, 27 Oct 2013 02:13:57 -0700
|
6
6
|
lib/atc-tools/script/flight_plan_validator.rb Fri, 27 Sep 2013 23:04:46 -0700
|
7
|
-
lib/atc-tools/vrc.rb
|
7
|
+
lib/atc-tools/vrc.rb Sat, 26 Oct 2013 14:42:44 -0700
|
data/doc/js/search_index.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
var search_data = {"index":{"searchIndex":["atctools","aircraft","airport","flightplan","flightplanvalidator","headingdiscoveryerror","namediscoveryerror","noaircraftselectederror","vrc","activate_terminal_window!()","activate_vrc_window!()","aircraft_selected?()","altitude_valid?()","command_line()","discover_name()","discover_variance()","execute_command()","execute_command!()","flight_plan()","flight_plan_title()","heading()","magnetic_heading_from()","magnetic_heading_to()","magnetic_to_true()","name()","new()","new()","new()","new()","run()","selected_aircraft()","selected_aircraft_info!()","selected_flight_plan!()","to_s()","to_s()","to_s()","true_heading_from()","true_heading_to()","true_to_magnetic()","validate()"],"longSearchIndex":["atctools","atctools::aircraft","atctools::airport","atctools::flightplan","atctools::flightplanvalidator","atctools::headingdiscoveryerror","atctools::namediscoveryerror","atctools::noaircraftselectederror","atctools::vrc","atctools::vrc#activate_terminal_window!()","atctools::vrc#activate_vrc_window!()","atctools::vrc#aircraft_selected?()","atctools::flightplan#altitude_valid?()","atctools::vrc#command_line()","atctools::airport#discover_name()","atctools::airport#discover_variance()","atctools::vrc#execute_command()","atctools::vrc#execute_command!()","atctools::flightplanvalidator::flight_plan()","atctools::vrc#flight_plan_title()","atctools::flightplan#heading()","atctools::airport#magnetic_heading_from()","atctools::airport#magnetic_heading_to()","atctools::airport#magnetic_to_true()","atctools::airport#name()","atctools::aircraft::new()","atctools::airport::new()","atctools::flightplan::new()","atctools::vrc::new()","atctools::flightplanvalidator::run()","atctools::vrc#selected_aircraft()","atctools::vrc#selected_aircraft_info!()","atctools::vrc#selected_flight_plan!()","atctools::aircraft#to_s()","atctools::airport#to_s()","atctools::flightplan#to_s()","atctools::airport#true_heading_from()","atctools::airport#true_heading_to()","atctools::airport#true_to_magnetic()","atctools::flightplan#validate()"],"info":[["ATCTools","","ATCTools.html","",""],["ATCTools::Aircraft","","ATCTools/Aircraft.html","",""],["ATCTools::Airport","","ATCTools/Airport.html","",""],["ATCTools::FlightPlan","","ATCTools/FlightPlan.html","",""],["ATCTools::FlightPlanValidator","","ATCTools/FlightPlanValidator.html","","<p>Script that extracts a flight plan from VRC.\n"],["ATCTools::HeadingDiscoveryError","","ATCTools/HeadingDiscoveryError.html","",""],["ATCTools::NameDiscoveryError","","ATCTools/NameDiscoveryError.html","",""],["ATCTools::NoAircraftSelectedError","","ATCTools/NoAircraftSelectedError.html","",""],["ATCTools::VRC","","ATCTools/VRC.html","","<p>A class for interfacing with the Virtual Radar Client application.\nwww1.metacraft.com/VRC/\n<p>Methods with …\n"],["activate_terminal_window!","ATCTools::VRC","ATCTools/VRC.html#method-i-activate_terminal_window-21","()","<p>Activate the terminal (command line) window, bringing it to the foreground.\n"],["activate_vrc_window!","ATCTools::VRC","ATCTools/VRC.html#method-i-activate_vrc_window-21","()","<p>Activate the VRC window, bringing it to the foreground.\n"],["aircraft_selected?","ATCTools::VRC","ATCTools/VRC.html#method-i-aircraft_selected-3F","()","<p>True if an aircraft is selected.\n"],["altitude_valid?","ATCTools::FlightPlan","ATCTools/FlightPlan.html#method-i-altitude_valid-3F","()","<p>Validate the cruising altitude given the arrival airport and flight rules.\n"],["command_line","ATCTools::VRC","ATCTools/VRC.html#method-i-command_line","()","<p>Extract the text from the command line.\n"],["discover_name","ATCTools::Airport","ATCTools/Airport.html#method-i-discover_name","()","<p>Discover the airport's full name based on ICAO code.\n"],["discover_variance","ATCTools::Airport","ATCTools/Airport.html#method-i-discover_variance","()","<p>Discover the airport's magnetic variance based on ICAO code.\n"],["execute_command","ATCTools::VRC","ATCTools/VRC.html#method-i-execute_command","(cmd)","<p>Execute a command in the VRC client. Preserves partially-entered commands\nin the text box.\n"],["execute_command!","ATCTools::VRC","ATCTools/VRC.html#method-i-execute_command-21","(cmd)","<p>Execute a command in the VRC client, overwriting any partially-entered\ncommand in the text box.\n"],["flight_plan","ATCTools::FlightPlanValidator","ATCTools/FlightPlanValidator.html#method-c-flight_plan","()","<p>The last flight plan returned.\n"],["flight_plan_title","ATCTools::VRC","ATCTools/VRC.html#method-i-flight_plan_title","()","<p>Title of the VRC flight plan window. This includes the pilot's callsign\nand real name.\n"],["heading","ATCTools::FlightPlan","ATCTools/FlightPlan.html#method-i-heading","()","<p>Magnetic heading from the departure to arrival airport.\n"],["magnetic_heading_from","ATCTools::Airport","ATCTools/Airport.html#method-i-magnetic_heading_from","(departure)","<p>Calculate the magnetic heading from the specified airport. Takes an ICAO\ncode or Airport object.\n"],["magnetic_heading_to","ATCTools::Airport","ATCTools/Airport.html#method-i-magnetic_heading_to","(arrival)","<p>Calculate the magnetic heading to the specified airport. Takes an ICAO code\nor Airport object.\n"],["magnetic_to_true","ATCTools::Airport","ATCTools/Airport.html#method-i-magnetic_to_true","(heading)","<p>Convert a magnetic heading to true based on the airport's magnetic\nvariance.\n"],["name","ATCTools::Airport","ATCTools/Airport.html#method-i-name","()","<p>Airport's full name.\n"],["new","ATCTools::Aircraft","ATCTools/Aircraft.html#method-c-new","(aircraft_code = nil, **kvargs)","<p>Params:\n\n<pre>:info, :model, :code, :equipment\n-- See instance variables for descriptions.</pre>\n"],["new","ATCTools::Airport","ATCTools/Airport.html#method-c-new","(code = nil, **kvargs)","<p>Params: :code, :name, :variance\n"],["new","ATCTools::FlightPlan","ATCTools/FlightPlan.html#method-c-new","(**kvargs)","<p>Params:\n\n<pre>:callsign, :aircraft, :rules, :depart, :arrive, :alternate, :cruse,\n:squawk, :route, :remarks, ...</pre>\n"],["new","ATCTools::VRC","ATCTools/VRC.html#method-c-new","(**kvargs)","<p>Params:\n\n<pre>:aclog_path - Location of the VRC log dump for the aircraft info query.</pre>\n"],["run","ATCTools::FlightPlanValidator","ATCTools/FlightPlanValidator.html#method-c-run","()","<p>Note: Executing this script will call commands in the VRC client and will\ninterfere with the user.\n"],["selected_aircraft","ATCTools::VRC","ATCTools/VRC.html#method-i-selected_aircraft","()","<p>Extracts the callsign of the selected aircraft. Returns an empty string if\nno aircraft is selected.\n"],["selected_aircraft_info!","ATCTools::VRC","ATCTools/VRC.html#method-i-selected_aircraft_info-21","()","<p>Extracts the aircraft info for the selected aircraft.\n"],["selected_flight_plan!","ATCTools::VRC","ATCTools/VRC.html#method-i-selected_flight_plan-21","()","<p>Extracts the flight plan of the selected aircraft.\n"],["to_s","ATCTools::Aircraft","ATCTools/Aircraft.html#method-i-to_s","()","<p>Returns @raw.\n"],["to_s","ATCTools::Airport","ATCTools/Airport.html#method-i-to_s","()","<p>Print the Airport ICAO code. Allows the object to act as a direct\nreplacement for string input.\n"],["to_s","ATCTools::FlightPlan","ATCTools/FlightPlan.html#method-i-to_s","()","<p>Returns a human-readable version of the flight plan.\n"],["true_heading_from","ATCTools::Airport","ATCTools/Airport.html#method-i-true_heading_from","(departure)","<p>Calculate the true heading from the specified airport. Takes an ICAO code\nor Airport object.\n"],["true_heading_to","ATCTools::Airport","ATCTools/Airport.html#method-i-true_heading_to","(arrival)","<p>Calculate the true heading to the specified airport. Takes an ICAO code or\nAirport object.\n"],["true_to_magnetic","ATCTools::Airport","ATCTools/Airport.html#method-i-true_to_magnetic","(heading)","<p>Convert a true heading to magnetic based on the airport's magnetic\nvariance.\n"],["validate","ATCTools::FlightPlan","ATCTools/FlightPlan.html#method-i-validate","()","<p>Validate the flight plan.\n"]]}}
|
1
|
+
var search_data = {"index":{"searchIndex":["atctools","aircraft","airport","flightplan","flightplanvalidator","headingdiscoveryerror","namediscoveryerror","noaircraftselectederror","vrc","activate_terminal_window!()","activate_vrc_window!()","aircraft_selected?()","altitude_valid?()","command_line()","cruise=()","discover_name()","discover_variance()","execute_command()","execute_command!()","flight_plan()","flight_plan_title()","heading()","magnetic_heading_from()","magnetic_heading_to()","magnetic_to_true()","name()","new()","new()","new()","new()","run()","selected_aircraft()","selected_aircraft_info!()","selected_flight_plan!()","to_s()","to_s()","to_s()","true_heading_from()","true_heading_to()","true_to_magnetic()","validate()"],"longSearchIndex":["atctools","atctools::aircraft","atctools::airport","atctools::flightplan","atctools::flightplanvalidator","atctools::headingdiscoveryerror","atctools::namediscoveryerror","atctools::noaircraftselectederror","atctools::vrc","atctools::vrc#activate_terminal_window!()","atctools::vrc#activate_vrc_window!()","atctools::vrc#aircraft_selected?()","atctools::flightplan#altitude_valid?()","atctools::vrc#command_line()","atctools::flightplan#cruise=()","atctools::airport#discover_name()","atctools::airport#discover_variance()","atctools::vrc#execute_command()","atctools::vrc#execute_command!()","atctools::flightplanvalidator::flight_plan()","atctools::vrc#flight_plan_title()","atctools::flightplan#heading()","atctools::airport#magnetic_heading_from()","atctools::airport#magnetic_heading_to()","atctools::airport#magnetic_to_true()","atctools::airport#name()","atctools::aircraft::new()","atctools::airport::new()","atctools::flightplan::new()","atctools::vrc::new()","atctools::flightplanvalidator::run()","atctools::vrc#selected_aircraft()","atctools::vrc#selected_aircraft_info!()","atctools::vrc#selected_flight_plan!()","atctools::aircraft#to_s()","atctools::airport#to_s()","atctools::flightplan#to_s()","atctools::airport#true_heading_from()","atctools::airport#true_heading_to()","atctools::airport#true_to_magnetic()","atctools::flightplan#validate()"],"info":[["ATCTools","","ATCTools.html","",""],["ATCTools::Aircraft","","ATCTools/Aircraft.html","",""],["ATCTools::Airport","","ATCTools/Airport.html","",""],["ATCTools::FlightPlan","","ATCTools/FlightPlan.html","",""],["ATCTools::FlightPlanValidator","","ATCTools/FlightPlanValidator.html","","<p>Script that extracts a flight plan from VRC.\n"],["ATCTools::HeadingDiscoveryError","","ATCTools/HeadingDiscoveryError.html","",""],["ATCTools::NameDiscoveryError","","ATCTools/NameDiscoveryError.html","",""],["ATCTools::NoAircraftSelectedError","","ATCTools/NoAircraftSelectedError.html","",""],["ATCTools::VRC","","ATCTools/VRC.html","","<p>A class for interfacing with the Virtual Radar Client application.\nwww1.metacraft.com/VRC/\n<p>Methods with …\n"],["activate_terminal_window!","ATCTools::VRC","ATCTools/VRC.html#method-i-activate_terminal_window-21","()","<p>Activate the terminal (command line) window, bringing it to the foreground.\n"],["activate_vrc_window!","ATCTools::VRC","ATCTools/VRC.html#method-i-activate_vrc_window-21","()","<p>Activate the VRC window, bringing it to the foreground.\n"],["aircraft_selected?","ATCTools::VRC","ATCTools/VRC.html#method-i-aircraft_selected-3F","()","<p>True if an aircraft is selected.\n"],["altitude_valid?","ATCTools::FlightPlan","ATCTools/FlightPlan.html#method-i-altitude_valid-3F","()","<p>Validate the cruising altitude given the arrival airport and flight rules.\n"],["command_line","ATCTools::VRC","ATCTools/VRC.html#method-i-command_line","()","<p>Extract the text from the command line.\n"],["cruise=","ATCTools::FlightPlan","ATCTools/FlightPlan.html#method-i-cruise-3D","(value)","<p>Cruising altitude. Can accept a standard cruising altitude (33000) or\nflight level (FL370).\n"],["discover_name","ATCTools::Airport","ATCTools/Airport.html#method-i-discover_name","()","<p>Discover the airport's full name based on ICAO code.\n"],["discover_variance","ATCTools::Airport","ATCTools/Airport.html#method-i-discover_variance","()","<p>Discover the airport's magnetic variance based on ICAO code.\n"],["execute_command","ATCTools::VRC","ATCTools/VRC.html#method-i-execute_command","(cmd)","<p>Execute a command in the VRC client. Preserves partially-entered commands\nin the text box.\n"],["execute_command!","ATCTools::VRC","ATCTools/VRC.html#method-i-execute_command-21","(cmd)","<p>Execute a command in the VRC client, overwriting any partially-entered\ncommand in the text box.\n"],["flight_plan","ATCTools::FlightPlanValidator","ATCTools/FlightPlanValidator.html#method-c-flight_plan","()","<p>The last flight plan returned.\n"],["flight_plan_title","ATCTools::VRC","ATCTools/VRC.html#method-i-flight_plan_title","()","<p>Title of the VRC flight plan window. This includes the pilot's callsign\nand real name.\n"],["heading","ATCTools::FlightPlan","ATCTools/FlightPlan.html#method-i-heading","()","<p>Magnetic heading from the departure to arrival airport.\n"],["magnetic_heading_from","ATCTools::Airport","ATCTools/Airport.html#method-i-magnetic_heading_from","(departure)","<p>Calculate the magnetic heading from the specified airport. Takes an ICAO\ncode or Airport object.\n"],["magnetic_heading_to","ATCTools::Airport","ATCTools/Airport.html#method-i-magnetic_heading_to","(arrival)","<p>Calculate the magnetic heading to the specified airport. Takes an ICAO code\nor Airport object.\n"],["magnetic_to_true","ATCTools::Airport","ATCTools/Airport.html#method-i-magnetic_to_true","(heading)","<p>Convert a magnetic heading to true based on the airport's magnetic\nvariance.\n"],["name","ATCTools::Airport","ATCTools/Airport.html#method-i-name","()","<p>Airport's full name.\n"],["new","ATCTools::Aircraft","ATCTools/Aircraft.html#method-c-new","(aircraft_code = nil, **kvargs)","<p>Params:\n\n<pre>:info, :model, :code, :equipment\n-- See instance variables for descriptions.</pre>\n"],["new","ATCTools::Airport","ATCTools/Airport.html#method-c-new","(code = nil, **kvargs)","<p>Params: :code, :name, :variance\n"],["new","ATCTools::FlightPlan","ATCTools/FlightPlan.html#method-c-new","(**kvargs)","<p>Params:\n\n<pre>:callsign, :aircraft, :rules, :depart, :arrive, :alternate, :cruse,\n:squawk, :route, :remarks, ...</pre>\n"],["new","ATCTools::VRC","ATCTools/VRC.html#method-c-new","(**kvargs)","<p>Params:\n\n<pre>:aclog_path - Location of the VRC log dump for the aircraft info query.</pre>\n"],["run","ATCTools::FlightPlanValidator","ATCTools/FlightPlanValidator.html#method-c-run","()","<p>Note: Executing this script will call commands in the VRC client and will\ninterfere with the user.\n"],["selected_aircraft","ATCTools::VRC","ATCTools/VRC.html#method-i-selected_aircraft","()","<p>Extracts the callsign of the selected aircraft. Returns an empty string if\nno aircraft is selected.\n"],["selected_aircraft_info!","ATCTools::VRC","ATCTools/VRC.html#method-i-selected_aircraft_info-21","()","<p>Extracts the aircraft info for the selected aircraft.\n"],["selected_flight_plan!","ATCTools::VRC","ATCTools/VRC.html#method-i-selected_flight_plan-21","()","<p>Extracts the flight plan of the selected aircraft.\n"],["to_s","ATCTools::Aircraft","ATCTools/Aircraft.html#method-i-to_s","()","<p>Returns @raw.\n"],["to_s","ATCTools::Airport","ATCTools/Airport.html#method-i-to_s","()","<p>Print the Airport ICAO code. Allows the object to act as a direct\nreplacement for string input.\n"],["to_s","ATCTools::FlightPlan","ATCTools/FlightPlan.html#method-i-to_s","()","<p>Returns a human-readable version of the flight plan.\n"],["true_heading_from","ATCTools::Airport","ATCTools/Airport.html#method-i-true_heading_from","(departure)","<p>Calculate the true heading from the specified airport. Takes an ICAO code\nor Airport object.\n"],["true_heading_to","ATCTools::Airport","ATCTools/Airport.html#method-i-true_heading_to","(arrival)","<p>Calculate the true heading to the specified airport. Takes an ICAO code or\nAirport object.\n"],["true_to_magnetic","ATCTools::Airport","ATCTools/Airport.html#method-i-true_to_magnetic","(heading)","<p>Convert a true heading to magnetic based on the airport's magnetic\nvariance.\n"],["validate","ATCTools::FlightPlan","ATCTools/FlightPlan.html#method-i-validate","()","<p>Validate the flight plan.\n"]]}}
|
data/doc/table_of_contents.html
CHANGED
@@ -81,6 +81,8 @@
|
|
81
81
|
|
82
82
|
<li class="method"><a href="ATCTools/VRC.html#method-i-command_line">#command_line — ATCTools::VRC</a>
|
83
83
|
|
84
|
+
<li class="method"><a href="ATCTools/FlightPlan.html#method-i-cruise-3D">#cruise= — ATCTools::FlightPlan</a>
|
85
|
+
|
84
86
|
<li class="method"><a href="ATCTools/Airport.html#method-i-discover_name">#discover_name — ATCTools::Airport</a>
|
85
87
|
|
86
88
|
<li class="method"><a href="ATCTools/Airport.html#method-i-discover_variance">#discover_variance — ATCTools::Airport</a>
|
@@ -107,12 +109,12 @@
|
|
107
109
|
|
108
110
|
<li class="method"><a href="ATCTools/VRC.html#method-i-selected_flight_plan-21">#selected_flight_plan! — ATCTools::VRC</a>
|
109
111
|
|
112
|
+
<li class="method"><a href="ATCTools/Airport.html#method-i-to_s">#to_s — ATCTools::Airport</a>
|
113
|
+
|
110
114
|
<li class="method"><a href="ATCTools/FlightPlan.html#method-i-to_s">#to_s — ATCTools::FlightPlan</a>
|
111
115
|
|
112
116
|
<li class="method"><a href="ATCTools/Aircraft.html#method-i-to_s">#to_s — ATCTools::Aircraft</a>
|
113
117
|
|
114
|
-
<li class="method"><a href="ATCTools/Airport.html#method-i-to_s">#to_s — ATCTools::Airport</a>
|
115
|
-
|
116
118
|
<li class="method"><a href="ATCTools/Airport.html#method-i-true_heading_from">#true_heading_from — ATCTools::Airport</a>
|
117
119
|
|
118
120
|
<li class="method"><a href="ATCTools/Airport.html#method-i-true_heading_to">#true_heading_to — ATCTools::Airport</a>
|
data/lib/atc-tools/airport.rb
CHANGED
@@ -87,13 +87,17 @@ module ATCTools
|
|
87
87
|
# Convert a true heading to magnetic based on the airport's
|
88
88
|
# magnetic variance.
|
89
89
|
def true_to_magnetic(heading)
|
90
|
-
heading - @variance
|
90
|
+
value = heading - @variance
|
91
|
+
value += 360.0 if value < 0
|
92
|
+
value
|
91
93
|
end
|
92
94
|
|
93
95
|
# Convert a magnetic heading to true based on the airport's
|
94
96
|
# magnetic variance.
|
95
97
|
def magnetic_to_true(heading)
|
96
|
-
heading + @variance
|
98
|
+
value = heading + @variance
|
99
|
+
value -= 360.0 if value > 360.0
|
100
|
+
value
|
97
101
|
end
|
98
102
|
|
99
103
|
# Print the Airport ICAO code.
|
@@ -16,7 +16,7 @@ module ATCTools
|
|
16
16
|
# Alternate airport.
|
17
17
|
attr_accessor :alternate
|
18
18
|
# Cruising altitude.
|
19
|
-
|
19
|
+
attr_reader :cruise
|
20
20
|
# Squawk code.
|
21
21
|
attr_accessor :squawk
|
22
22
|
# Flight route.
|
@@ -62,13 +62,16 @@ module ATCTools
|
|
62
62
|
@heading = @depart.magnetic_heading_to @arrive unless @heading
|
63
63
|
|
64
64
|
# Strip the zeros off of the altitude for even/odd comparison.
|
65
|
-
|
65
|
+
len = 0
|
66
|
+
len = 1 if @cruise.to_s.length >= 5
|
67
|
+
cruise_stripped = @cruise.to_s[0..len].to_i
|
68
|
+
|
66
69
|
is_north_east = (@heading < 180 || @heading >= 360)
|
67
70
|
|
68
71
|
rules = @rules.upcase.to_sym
|
69
72
|
case rules
|
70
73
|
when :IFR
|
71
|
-
above_fl410 =
|
74
|
+
above_fl410 = @cruise.to_i / 100 > 410
|
72
75
|
|
73
76
|
if above_fl410
|
74
77
|
east_alt = [45, 49, 53, 57, 61]
|
@@ -90,6 +93,18 @@ module ATCTools
|
|
90
93
|
false
|
91
94
|
end
|
92
95
|
|
96
|
+
# Cruising altitude.
|
97
|
+
# Can accept a standard cruising altitude (33000) or flight level (FL370).
|
98
|
+
def cruise=(value)
|
99
|
+
# Strip letters from the cruising altitude.
|
100
|
+
v = value.to_s.gsub(/[a-zA-Z]/, '').to_i
|
101
|
+
|
102
|
+
# Append two zeros if the altitude is a flight level (three digits).
|
103
|
+
v *= 100 if v < 1000
|
104
|
+
|
105
|
+
@cruise = v
|
106
|
+
end
|
107
|
+
|
93
108
|
# Validate the flight plan.
|
94
109
|
def validate
|
95
110
|
end
|
data/lib/atc-tools/vrc.rb
CHANGED
@@ -122,7 +122,7 @@ module ATCTools
|
|
122
122
|
# ---------------
|
123
123
|
# TODO: Implement
|
124
124
|
# ---------------
|
125
|
-
result = "Aircraft type code
|
125
|
+
result = "Aircraft type code not found in database." if result.empty?
|
126
126
|
|
127
127
|
# File.delete @aclog_path
|
128
128
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atc-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex McLain
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rautomation
|