|
From: <fli...@li...> - 2017-10-31 15:47:00
|
Revision: 3068
http://sourceforge.net/p/flightgear/fgaddon/3068
Author: rleibner
Date: 2017-10-31 15:46:58 +0000 (Tue, 31 Oct 2017)
Log Message:
-----------
Version control
Modified Paths:
--------------
trunk/Addons/SpokenGCA/config.xml
trunk/Addons/SpokenGCA/control.nas
trunk/Addons/SpokenGCA/gca_class.nas
trunk/Addons/SpokenGCA/gca_gui.nas
trunk/Addons/SpokenGCA/parscreen_class.nas
Modified: trunk/Addons/SpokenGCA/config.xml
===================================================================
--- trunk/Addons/SpokenGCA/config.xml 2017-10-28 14:24:06 UTC (rev 3067)
+++ trunk/Addons/SpokenGCA/config.xml 2017-10-31 15:46:58 UTC (rev 3068)
@@ -14,7 +14,7 @@
</keyboard>
</input>
<gca>
- <version type="double">0.1</version>
+ <config-version type="double">0.1</config-version>
<tick type="double">1</tick>
<near type="bool">0</near>
<controlled type="bool">0</controlled>
Modified: trunk/Addons/SpokenGCA/control.nas
===================================================================
--- trunk/Addons/SpokenGCA/control.nas 2017-10-28 14:24:06 UTC (rev 3067)
+++ trunk/Addons/SpokenGCA/control.nas 2017-10-31 15:46:58 UTC (rev 3068)
@@ -1,4 +1,4 @@
-print("GCA control 0.3 loaded");
+print("GCA control 0.4 loaded");
var demo = nil;
var Par = nil;
var window = nil;
@@ -6,6 +6,15 @@
var prev_phrase = '';
var Control=func() {
+# 0) Check dependencies
+var needConf = 0.1;
+var needPhras = 2.1;
+var needClass = 0.2;
+var needGui = 0.2;
+if(CheckVersion("phraseology.xml", "/gca/phrases/version", needPhras)) return;
+if(CheckVersion("config.xml", "/gca/config-version", needConf)) return;
+if(CheckVersion("gca_gui.nas", "/gca/gui-version", needGui)) return;
+
if(getprop("/gca/callsign-fmt") ==nil) setprop("/gca/callsign-fmt",'');
@@ -39,6 +48,10 @@
# Instance GCAController
demo = gca.GCAController.new( );
+if(demo.version < needClass) {
+ gui.popupTip("error:\ngca_class.nas Must be version " ~sprintf("%.2f", needClass)
+ ~" or later.\n(You have " ~sprintf("%.2f", demo.version)~").", 10);
+ return; }
demo.setAirport(icao);
demo.setRunway(best);
demo.setFinalApproach(10);
@@ -127,3 +140,13 @@
if(window==nil) window = screen.window.new(nil,-50,10,8);
window.write(str);
} # write
+
+var CheckVersion = func(file,prop,need) {
+ var have = getprop(prop);
+ if(have < need) {
+ gui.popupTip("Error:\n"~file~" Must be version " ~sprintf("%.2f", need)
+ ~" or later.\n(You have " ~sprintf("%.2f", have)~").", 20);
+ return 1;
+ }
+ return 0;
+}
Modified: trunk/Addons/SpokenGCA/gca_class.nas
===================================================================
--- trunk/Addons/SpokenGCA/gca_class.nas 2017-10-28 14:24:06 UTC (rev 3067)
+++ trunk/Addons/SpokenGCA/gca_class.nas 2017-10-31 15:46:58 UTC (rev 3068)
@@ -46,6 +46,7 @@
# constructor
new: func() {
var m = {parents:[GCAController] };
+ m.version = 0.2;
m.aircraft_properties = {altitude_ft: "altitude-ft", latitude_deg: "latitude-deg", longitude_deg: "longitude-deg"};
m.aircraft_state = {latitude_deg:0.00, longitude_deg:0.00, altitude_ft:0.00, heading_magnetic_deg:0.00 };
m.aircraft_object = geo.Coord.new();
Modified: trunk/Addons/SpokenGCA/gca_gui.nas
===================================================================
--- trunk/Addons/SpokenGCA/gca_gui.nas 2017-10-28 14:24:06 UTC (rev 3067)
+++ trunk/Addons/SpokenGCA/gca_gui.nas 2017-10-31 15:46:58 UTC (rev 3068)
@@ -3,6 +3,7 @@
# UI code starts here
#
###
+ setprop("/gca/gui-version",0.2);
var ssr = nil;
var UIwindow = nil;
var STATUS = {SUCCESS:0 , FAILURE:1};
Modified: trunk/Addons/SpokenGCA/parscreen_class.nas
===================================================================
--- trunk/Addons/SpokenGCA/parscreen_class.nas 2017-10-28 14:24:06 UTC (rev 3067)
+++ trunk/Addons/SpokenGCA/parscreen_class.nas 2017-10-31 15:46:58 UTC (rev 3068)
@@ -149,7 +149,7 @@
var y = int(me.y0-dist*math.sin(delta*D2R)*me.XYscale);
var z = int(me.z0 - (getprop("/position/altitude-ft") - rwyAlt) * me.Zscale);
if(myDbg) printf("x=%i ,y=%i, z=%i px ",x,y,z);
-print("numCoords=",me.Track1.getNumCoords());
+if(myDbg) print("numCoords=",me.Track1.getNumCoords());
if(me.Track1.getNumCoords() == 0) {
me.Track1.moveTo(x, z);
me.Track2.moveTo(x, y);
|