commit initial
|
1 |
[0%]: https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Progress_00.svg/80px-Progress_00.svg.png "00%" |
2 |
[10%]: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/Progress_10.svg/80px-Progress_10.svg.png "10%" |
|
3 |
[20%]: https://upload.wikimedia.org/wikipedia/commons/thumb/9/96/Progress_20.svg/80px-Progress_20.svg.png "20%" |
|
4 |
[30%]: https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Progress_30.svg/80px-Progress_30.svg.png "30%" |
|
5 |
[40%]: https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Progress_40.svg/80px-Progress_40.svg.png "40%" |
|
6 |
[50%]: https://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Progress_50.svg/80px-Progress_50.svg.png "50%" |
|
7 |
[60%]: https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Progress_60.svg/80px-Progress_60.svg.png "60%" |
|
8 |
[70%]: https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Progress_70.svg/80px-Progress_70.svg.png "70%" |
|
9 |
[80%]: https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Progress_80.svg/80px-Progress_80.svg.png "80%" |
|
10 |
[90%]: https://upload.wikimedia.org/wikipedia/commons/thumb/b/ba/Progress_90.svg/80px-Progress_90.svg.png "90%" |
|
11 |
[100%]: https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Progress_100.svg/80px-Progress_100.svg.png "100%" |
|
12 |
[abandonned]: http://wiki.flightgear.org/images/thumb/3/30/Cross_32px.png/16px-Cross_32px.png "abandonné" |
|
13 |
[done]: http://wiki.flightgear.org/images/thumb/7/75/Tick_32px.png/16px-Tick_32px.png "fait" |
|
14 |
[ongoing]: http://wiki.flightgear.org/images/thumb/3/37/Ongoing.png/16px-Ongoing.png "en cours" |
|
15 |
[pending]: http://wiki.flightgear.org/images/thumb/8/8d/Hourglass_32px.png/16px-Hourglass_32px.png "en attente" |
|
16 |
[fixed]: http://wiki.flightgear.org/images/thumb/8/85/WIP.png/26px-WIP.png "réparé" |
|
17 |
[paused]: http://wiki.flightgear.org/images/thumb/d/dc/Paused.png/16px-Paused.png "en pause" |
|
add bug icon in README.md
|
18 |
[green-bug]: https://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Green_bug.svg/32px-Green_bug.svg.png "non blocking bug" |
19 |
[red-bug]: https://upload.wikimedia.org/wikipedia/commons/thumb/a/a4/Red_bug.svg/32px-Red_bug.svg.png "blocking bug" |
|
uses named icon for warning
|
20 |
[warning]: https://upload.wikimedia.org/wikipedia/commons/thumb/1/12/Achtung-orange.svg/32px-Achtung-orange.svg.png "warning symbol" |
commit initial
|
21 | |
new demo screenshot
|
22 |
![ZKV1000, in flight little after take off from LFBT](https://sebmarque.hd.free.fr/bozon/index.php?f=158f605bd971f9) |
improve README
|
23 |
ZKV1000 just after booting, installed in the Lancair 235 (all other instruments removed) |
24 |
[other pictures available here](https://sebmarque.hd.free.fr/bozon/index.php?f=158cf95340742d) |
|
update README before merging
|
25 | |
26 |
# Thanks |
|
found the author of Farmin/G...
|
27 |
Thanks to [www2](https://forum.flightgear.org/viewtopic.php?f=14&t=25291) the modeller of the [GDU104X project "Farmin/G1000"](http://wiki.flightgear.org/Project_Farmin/FG1000) I can continue the work began many years ago with a nicer (and working) 3D model instrument. Thanks to him/her for the SVG basis file too. |
update README before merging
|
28 |
Thanks to Hooray's nice efforts, and some examples ans snipsets of code here and there from the Canvas team. |
29 |
Thanks to all FlightGear community for the funny project I let too many years off side... |
|
30 | ||
31 |
# Origin |
|
32 |
The first ZKV1000, which was completly XML animated, was completly abandonned. Moreover the Nasal code became unmaintanable from my point of view. Not sure this one is better, but I think |
|
33 |
it is at least more modulable. |
|
34 | ||
35 |
The origin is to simulate a Garmin Primus 1000, as near as possible of the [documentation found](# documentation). |
|
36 | ||
37 |
But as we are in a simulation, the zkv1000 is **definitly not** a replica of the well-known G1000, as it takes the liberty to be integrated with some features that doesn't exit in |
|
38 |
the real device, as well as some real features aren't scheduled to be implemented. But, it should be easy to add or remove features in order to get the real device. |
|
39 |
This is GPL-2 license though :) |
|
40 | ||
41 |
# Objectives |
|
42 |
There is no intention to provide a fully qualified G1000 in order to train or so, but this should be possible to be done from the zkv1000. |
|
43 | ||
44 |
I'm particulary looking at these points: |
|
45 | ||
46 |
1. easy to implement new features |
|
47 |
1. optimized code (from my non-dev point of view...) |
|
48 |
1. easy to integrate in every cockpit with only few lines, and with easy use for the pilot |
|
49 |
1. near from the G1000 documentation but with some neat features added, and some unrelevant features in a sim removed |
|
50 | ||
51 |
# Progress |
|
52 |
Note: this is not because the progress bar show 100% that it means it is 100% bug free :) |
|
53 |
Please report bug at <seb.marque@free.fr>. |
|
54 | ||
55 |
* ![][100%] |
|
56 |
* Basic Flight Instrumentation: AI, IAS, ALT, HDG |
|
57 |
* Wind data widget |
|
58 |
* trends for altitude and speed (6s prevision) |
|
59 |
* TAS and Ground Speed display |
|
60 |
* VSI |
|
61 |
* 3D knobs rotate |
|
62 |
* map display on inflight page (with online maps downloading and caching) |
|
63 |
* display of NavAids on map |
|
XPDR settings via knob or so...
|
64 |
* XPDR from SoftKeys and knob, with respect of delays from the manual |
adds BARO settings
|
65 |
* Selected altitude bug (widget off if IA within 100ft) |
66 |
* baro settings |
|
add some information in READ...
|
67 |
* SoftKeys menus navigation for PFD and MFD: not yet implemented function are logged in console ![][done], softkeys colorized when active ![][done], alerts with white backgroud and black text available ![][done] |
makes the CDI available
|
68 |
* CDI |
adds OMI to PFD
|
69 |
* OMI |
adds slipskid animation
|
70 |
* Slipskid animation |
new var organistaion (and fi...
|
71 |
* Radio stack, including ID for NAV |
update progress in README
|
72 |
* windows management: selectable items ![][done], modifiable items ![][done], scrolling ![][done] |
add V-speeds bugs
|
73 |
* display of V-speeds in ruler: Vx, Vy, Vr and Vglide (specific for aircraft, see installation instruction) |
add Vne Vspeed specific to a...
|
74 |
* some aircraft specific data to retrieve from aircraft XML files (VNE, etc) |
README updated
|
75 |
* possibility to add a copilot's PFD, and other displays |
76 |
* EIS: separation for aircraft specifics (selected by the zkv1000 config) |
|
PFD INSET map available
|
77 |
* Inset Map (PFD) |
update README before merging
|
78 |
* ![][90%] |
TMR/REF available
|
79 |
* TMR/REF Timer ![][done], Vspeeds ![][done], minimums ![][pending] (don't understand the role of this) |
adds AOA display
|
80 |
* angle of attack display (not sure about calculation): specific for each airplane (see Installation instructions below) |
update README before merging
|
81 |
* Bearing needs some checks to be sure it shows the correct information |
82 |
* XPDR: emergency code depending of the country (eg.: 1200 for US, 7700 for Europe), should be set in settings |
|
83 |
* ![][80%] |
|
README updated
|
84 |
* single-prop EIS: texts displayed ![][done], animations for fuel ![][ongoing] |
update README before merging
|
85 |
* ![][70%] |
improve README
|
86 |
* make booting animation visible ![][pending] |
update README before merging
|
87 |
* ![][60%] |
configurable display size, v...
|
88 |
* NOT TESTED: add the posssibility to only use Nasal part of the instrument. This in case of a cockpit which already includes needed objects and animations for screens, knobs and buttons in its config files |
navaids displayed with corre...
|
89 |
* ND and map display: synchronized tiles and navaids ![][done], range change ![][ongoing], map heads up ![][pending] |
update README before merging
|
90 |
* ![][50%] |
91 |
* EIS: animations for temperature for YaSim and JSBSim |
|
92 |
* ![][40%] |
|
93 |
* use of [maketimer()](http://wiki.flightgear.org/Nasal_library#maketimer.28.29) instead of [settimer()](http://wiki.flightgear.org/Nasal_library#settimer.28.29) when possible |
|
94 |
* ![][30%] |
|
95 |
* ![][20%] |
|
adds MFD page selection syst...
|
96 |
* Setting pages (MFD): pages/sub-pages selection via FMS knob ![][done], pages content implementation ![][ongoing] |
update README before merging
|
97 |
* ![][10%] |
98 |
* multikey for every part of the device (actually only power on) |
|
massive code reorganisation ...
|
99 |
* Aircraft Maintainer's Guide |
update README before merging
|
100 |
* ![][0%] (TODO list, unsorted) |
makes the CDI available
|
101 |
* CDI/GPS: scale depending of the flight phase |
update README before merging
|
102 |
* Alerts |
PFD INSET map available
|
103 |
* Map settings: declutter, range/zoom |
104 |
* TOPO map |
|
105 |
* Weather map |
|
update README before merging
|
106 |
* Flight planning (MFD) |
107 |
* PFD settings |
|
108 |
* rotation and zooming of online maps in-flight ![][pending] |
|
navaids displayed with corre...
|
109 |
* replace the use of `clip` by a better system in map display (think also about INSET) |
110 |
* reorganise the mess in initialization phase (`showInitProgress` and `_showInitProgress`) |
|
adds BARO settings
|
111 |
* VS guidance |
112 |
* VNAV |
|
TMR/REF available
|
113 |
* scrolling lift in menus |
update README before merging
|
114 |
* tutorials |
massive code reorganisation ...
|
115 |
* User's Guide |
adds AOA display
|
116 |
* make any Vspeed available (not only Vx, Vy, Vr and Vglide), depending of their presence in aircraft config |
117 |
* [touchable screen](http://wiki.flightgear.org/Canvas_Event_Handling) |
|
update README before merging
|
118 |
* many more... |
commit initial
|
119 | |
improve README
|
120 |
# Installation |
improves README
|
121 |
Just `git clone https://sebmarque.hd.free.fr/git/seb/zkv1000` in your favorite Instrumentation-3d dir. |
122 |
Then somewhere in the XML configuration of your aircraft, put only few lines as described below |
|
improve README
|
123 |
## Create the `zkv1000` Nasal namespace |
124 |
In the `<nasal>` place of your aircraft configuration |
|
125 | ||
126 |
<zkv1000> |
|
127 |
<file>Aircraft/Instruments-3d/zkv1000/zkv1000.nas</file> |
|
128 |
</zkv1000> |
|
129 | ||
130 |
Actually this is where everything begins, please have a look at this code, it would help you to follow the script. |
|
131 | ||
add V-speeds bugs
|
132 |
## Set specific values for your aircraft |
133 |
Specifics values for aircraft can be set via the aircraft configuration, in the `<instrumentation>` section, just add a section `<zkv1000>` and set here the needed values. |
|
134 | ||
135 |
### Vspeeds |
|
uses named icon for warning
|
136 |
To see the Vspeeds bugs or the IAS background color change (Vne), set the corresponding V-speeds in knots by adding in your `<instrumentation><zkv1000>` section the following lines (here are the numbers for the Lancair-235, ![][warning] values are not to be used in real life). |
add V-speeds bugs
|
137 |
If not set, defaults to 999 knots |
138 | ||
139 |
<alerts> |
|
140 |
<Vx>99</Vx> |
|
141 |
<Vy>110</Vy> |
|
142 |
<Vr>65</Vr> |
|
143 |
<Vglide>80</Vglide> |
|
add Vne Vspeed specific to a...
|
144 |
<Vne>170</Vne> |
add V-speeds bugs
|
145 |
</alerts> |
146 | ||
EIS can be aircraft specific
|
147 |
### EIS |
EIS now really specific to a...
|
148 |
This parameter tells the zkv1000 which kind of engines equips your aircraft, and the associated EIS. |
149 |
The Nasal script should include at least three things: |
|
150 | ||
151 |
* a method called `displayClass.showEIS` in which you initialize the EIS, especially by selecting the shown, hide, clipped and texts elements |
|
152 |
* a method called `displayClass.updateEIS` which is used to update the EIS display, it includes its own timer to refresh itself |
|
153 |
* a SVG object with ID `EIS` (generally the background of the EIS display). |
|
154 |
It should appears in the lists in `displayClass.showEIS`. |
|
155 |
![][warning] This object is used to compute the map width, so it is important to set it on the left of the screen |
|
156 | ||
157 |
There are three ways too put an EIS in MFD: |
|
158 | ||
159 |
#### use one of the included simple EIS provided with the zkv1000 |
|
EIS can be aircraft specific
|
160 | |
161 |
<eis> |
|
README updated
|
162 |
<type>single-prop</type> |
EIS can be aircraft specific
|
163 |
</eis> |
164 | ||
EIS now really specific to a...
|
165 |
Defaults to `none`, available entries are the `.nas` files located in `Nasal/EIS/` directory. |
166 | ||
167 |
#### or use the one you specially have created for your aircraft |
|
168 | ||
169 |
<eis> |
|
170 |
<file>Aircraft/My-Nice-Aircraft/Nasal/EIS.nas</file> |
|
171 |
</eis> |
|
172 | ||
173 |
or the on from another aircraft. Anyway if the EIS nasal file targeted doesn't exist, the fallback is the type `none`. |
|
174 | ||
175 |
#### or you can give the absolute path (deprecated) |
|
176 | ||
177 |
</eis> |
|
178 |
<file>/home/foobar/fgfs-data/Nasal/testing-jet-jsbsim-EIS.nas</file> |
|
179 |
</eis> |
|
180 | ||
181 |
Be aware that `canvas.parsesvg` uses only relative path and should not work properly if your .nas is outside of the FG tree. |
|
182 |
If you want to add your own EIS, just copy the `Systems/EIS/single-prop.svg`, modify it to fit your needs, and refer to it in a function named `displayClass.showEIS`, another very important function is `displayClass.updateEIS` (example in [Nasal/EIS/single-prop.nas](zkv1000/blob/master/Nasal/EIS/single-prop.nas)) |
|
183 |
You are even free to modify the softkeys map in order to get according menus, but this has to be described on another document (check [Nasal/softkeys.nas](zkv1000/master/blob/Nasal/softkeys.nas)). |
|
184 | ||
185 |
No matter of the EIS width, as the map size and center are computed relative to the EIS width automatically. |
|
186 | ||
187 |
_Notes:_ |
|
improves README
|
188 | |
EIS now really specific to a...
|
189 |
1. you can use `<file>` or `<type>` indifferently, they are actually identical. |
190 |
1. later on the MFD Engine pages will be managed by the file specified in this section |
|
EIS can be aircraft specific
|
191 | |
adds AOA display
|
192 |
### Angle Of Attack (AOA) |
193 |
You can specify the stall AoA in order to display it in the dedicated display. |
|
194 | ||
195 |
<alerts> |
|
196 |
<stall-aoa>15</stall-aoa> |
|
nicer AOA display
|
197 |
<approach-aoa>4</approach-aoa> |
adds AOA display
|
198 |
</alerts> |
199 | ||
improves README
|
200 |
* Values are in degrees. |
201 |
* If `<stall-aoa>` is not specified or equals to `0` (zero) the AOA display won't be accessible. |
|
202 |
* The `<approach-aoa>` is optionnal, if present a blue marker is visible on AOA display (not in real GarminP1000) |
|
adds AOA display
|
203 | |
improve README
|
204 |
## 3D models |
205 |
In the definition of your flightdeck (here are the values for the installation in the Lancair 235 in which I develop the device) |
|
206 |
put it everywhere you want to |
|
207 | ||
208 |
<model> |
|
adds the avaibility to have ...
|
209 |
<path>Aircraft/Instruments-3d/zkv1000/pfd-pilot.xml</path> |
improve README
|
210 |
<offsets> |
211 |
<x-m> -0.023 </x-m> |
|
212 |
<y-m> -0.235 </y-m> |
|
213 |
<z-m> -0.028 </z-m> |
|
214 |
</offsets> |
|
215 |
</model> |
|
216 |
<model> |
|
217 |
<path>Aircraft/Instruments-3d/zkv1000/mfd.xml</path> |
|
218 |
<offsets> |
|
219 |
<x-m> 0.03 </x-m> |
|
220 |
<y-m> 0.06 </y-m> |
|
221 |
<z-m> -0.028 </z-m> |
|
222 |
<heading-deg> -15 </heading-deg> |
|
223 |
</offsets> |
|
224 |
</model> |
|
225 | ||
adds the avaibility to have ...
|
226 |
You can put as many devices as wanted, but generally they are two (PFD+MFD) or three (2 PFD+ 1 PFD), can be only one which is useful when you just want the PFD or the MFD in your cockpit. |
227 |
The device are identified by a name, which should be unique unless they won't be independant. |
|
228 |
This name is set by one of the property in the XML model file (`instrumentation/zkv1000/<NAME>/status`), which is a property telling if the device is switched off or not (or in reversionnary mode, later). |
|
229 |
Actually there are only two "types of display": MFD or PFD, which is known by the first 3 letters of the name (case sensitive!) |
|
230 |
Other devices as keyboard or non-display can also exists, as long as they don't have a `status` property... |
|
231 |
Not sur I'm clear on this point though :) |
|
add some information in READ...
|
232 | |
improves README
|
233 |
## Map tiles origin |
234 |
By defaults the maps tiles come from `https://maps.wikimedia.org`, type `osm-intl` (please read [https://www.wikimedia.org/wiki/Maps]()), but you can choose your favorite one if you've got one. I've tested `opentopomap.org` and `thunderforest.com` (my favourite). |
|
235 |
You can tell the zkv1000 the tile server, type and eventually apikey by using `--prop:` option while starting FlightGear session: |
|
236 | ||
237 |
In case of apikey (or whatever added at the en of the URL): |
|
238 | ||
239 |
--prop:/sim/online-tiles-server=tile.thunderforest.com |
|
240 |
--prop:/sim/online-tiles-type=landscape |
|
241 |
--prop:/sim/online-tiles-apikey=?apikey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
|
242 | ||
243 |
or if there is no type, just use type `/`: |
|
244 | ||
245 |
--prop:/sim/online-tiles-server=a.tile.opentopomap.org |
|
246 |
--prop:/sim/online-tiles-type=/ |
|
247 | ||
248 |
The only used protocol is `https` (check Nasal/map.nas). |
|
249 | ||
improve README
|
250 |
## Switch it up |
251 |
You can use the multikey (souvenirs, thanks to Melchior having that much expended this feature years ago :)) service by typing: |
|
252 |
`:zo` |
|
253 | ||
254 |
The `:z` will be the multikey entry for all multikeys of the zkv1000. |
|
255 | ||
256 |
1. If you see a single red dot under the `ZKV100O xxx init` message (xxx = MFD or PFD), this is likely the sim is paused (press `p` by default to stop the pause). |
|
257 |
1. If you see multiple dots under the `ZKV1000 xxx init` message, something wrong happened, time to check console |
|
258 |
1. If you see only black screen on one of the screen, something really wrong happened, time to check console |
|
259 | ||
260 |
# Documentation |
|
update README before merging
|
261 |
* [Canvas in FG](http://wiki.flightgear.org/Category:Canvas) |
mise à jour du README
|
262 |
* [Nasal](http://wiki.flightgear.org/Category:Nasal) |
update README before merging
|
263 |
* the guides used to create the scenario from [Garmin website](http://support.garmin.com/support/manuals/searchManuals.faces) |
liens directs vers la doc of...
|
264 |
* [G1000 Pilot’s Guide for the Diamond DA42 (v0370.22)](http://static.garmin.com/pumac/190-00406-07_0B_Web.pdf) *(94 pages)* |
265 |
* [Pilot's Guide, Cirrus Perspective, SR2x (v0764.30)](http://static.garmin.com/pumac/190-00820-11_A.pdf) *(752 pages)* |