Showing 1 changed files with 555 additions and 1 deletions
+555 -1
Systems/multikey.xml
... ...
@@ -65,6 +65,560 @@
65 65
         </binding>
66 66
       </key>
67 67
 
68
+      <key n="107">
69
+        <name>k</name>
70
+        <desc>ALT HDG CRS BARO COMM NAV knobs</desc>
71
+        <key n="97">
72
+          <name>a</name>
73
+          <desc>ALT knob</desc>
74
+          <key n="97">
75
+            <name>a</name>
76
+            <desc>push ALT knob</desc>
77
+            <exit/>
78
+            <binding>
79
+              <condition>
80
+                <property>/instrumentation/zkv1000/PFD/status</property>
81
+              </condition>
82
+              <command>nasal</command>
83
+              <script>zkv1000.flightdeck['PFD'].buttons.ALT();</script>
84
+            </binding>
85
+          </key>
86
+          <key n="94">
87
+            <name>^</name>
88
+            <desc>clockwise</desc>
89
+            <no-exit/>
90
+            <binding>
91
+              <condition>
92
+                <property>/instrumentation/zkv1000/PFD/status</property>
93
+              </condition>
94
+             <command>property-adjust</command>
95
+             <property>/instrumentation/zkv1000/afcs/selected-alt-ft</property>
96
+             <step>10</step>
97
+             <min>0</min>
98
+             <max>16000</max>
99
+             <wrap>false</wrap>
100
+            </binding>
101
+          </key>
102
+          <key n="95">
103
+            <name>_</name>
104
+            <desc>clockwise</desc>
105
+            <no-exit/>
106
+            <binding>
107
+              <condition>
108
+                <property>/instrumentation/zkv1000/PFD/status</property>
109
+              </condition>
110
+             <command>property-adjust</command>
111
+             <property>/instrumentation/zkv1000/afcs/selected-alt-ft</property>
112
+             <step>-10</step>
113
+             <min>0</min>
114
+             <max>16000</max>
115
+             <wrap>false</wrap>
116
+            </binding>
117
+          </key>
118
+        </key>
119
+        <key n="98">
120
+          <name>b</name>
121
+          <desc>BARO knob</desc>
122
+          <key n="94">
123
+            <name>^</name>
124
+            <desc>clockwise</desc>
125
+            <no-exit/>
126
+            <binding>
127
+              <condition>
128
+                <property>/instrumentation/zkv1000/PFD/status</property>
129
+              </condition>
130
+              <command>property-adjust</command>
131
+              <property>/instrumentation/altimeter/setting-inhg</property>
132
+              <step>0.01</step>
133
+              <min>28.500</min>
134
+              <max>33.000</max>
135
+              <wrap>false</wrap>
136
+            </binding>
137
+          </key>
138
+          <key n="95">
139
+            <name>_</name>
140
+            <desc>counterclockwise</desc>
141
+            <no-exit/>
142
+            <binding>
143
+              <condition>
144
+                <property>/instrumentation/zkv1000/PFD/status</property>
145
+              </condition>
146
+              <command>property-adjust</command>
147
+              <property>/instrumentation/altimeter/setting-inhg</property>
148
+              <step>-0.01</step>
149
+              <min>28.500</min>
150
+              <max>33.000</max>
151
+              <wrap>false</wrap>
152
+            </binding>
153
+          </key>
154
+        </key>
155
+        <key n="99">
156
+          <name>c</name>
157
+          <desc>CRS knob</desc>
158
+          <no-exit/>
159
+          <key n="94">
160
+            <name>^</name>
161
+            <desc>clockwise</desc>
162
+            <binding>
163
+              <condition>
164
+                <property>/instrumentation/zkv1000/PFD/status</property>
165
+                <not>
166
+                  <equals>
167
+                    <property>/instrumentation/zkv1000/cdi/source</property>
168
+                    <value>GPS</value>
169
+                  </equals>
170
+                  <equals>
171
+                    <property>/instrumentation/gps/mode</property>
172
+                    <value>obs</value>
173
+                  </equals>
174
+                </not>
175
+              </condition>
176
+              <command>property-adjust</command>
177
+              <property>/instrumentation/zkv1000/cdi/course</property>
178
+              <step>1</step>
179
+              <min>0</min>
180
+              <max>359</max>
181
+              <wrap>true</wrap>
182
+            </binding>
183
+            <binding>
184
+              <condition>
185
+                <property>/instrumentation/zkv1000/PFD/status</property>
186
+                <equals>
187
+                  <property>/instrumentation/zkv1000/cdi/source</property>
188
+                  <value>GPS</value>
189
+                </equals>
190
+                <equals>
191
+                  <property>/instrumentation/gps/mode</property>
192
+                  <value>obs</value>
193
+                </equals>
194
+              </condition>
195
+              <command>property-adjust</command>
196
+              <property>/instrumentation/gps/selected-course-deg</property>
197
+              <step>1</step>
198
+              <min>0</min>
199
+              <max>359</max>
200
+              <wrap>true</wrap>
201
+            </binding>
202
+            <binding>
203
+              <condition>
204
+                <property>/instrumentation/zkv1000/PFD/status</property>
205
+              </condition>
206
+              <command>nasal</command>
207
+              <script>
208
+                foreach (var c; keys(zkv1000.flightdeck))
209
+                  if (zkv1000.flightdeck[c].role == 'PFD')
210
+                    zkv1000.flightdeck[c].display.updateCRS();
211
+              </script>
212
+            </binding>
213
+          </key>
214
+          <key n="95">
215
+            <name>_</name>
216
+            <desc>counterclockwise</desc>
217
+            <no-exit/>
218
+            <binding>
219
+              <condition>
220
+                <property>/instrumentation/zkv1000/PFD/status</property>
221
+                <not>
222
+                  <equals>
223
+                    <property>/instrumentation/zkv1000/cdi/source</property>
224
+                    <value>GPS</value>
225
+                  </equals>
226
+                  <equals>
227
+                    <property>/instrumentation/gps/mode</property>
228
+                    <value>obs</value>
229
+                  </equals>
230
+                </not>
231
+              </condition>
232
+              <command>property-adjust</command>
233
+              <property>/instrumentation/zkv1000/cdi/course</property>
234
+              <step>-1</step>
235
+              <min>0</min>
236
+              <max>359</max>
237
+              <wrap>true</wrap>
238
+            </binding>
239
+            <binding>
240
+              <condition>
241
+                <property>/instrumentation/zkv1000/PFD/status</property>
242
+                <equals>
243
+                  <property>/instrumentation/zkv1000/cdi/source</property>
244
+                  <value>GPS</value>
245
+                </equals>
246
+                <equals>
247
+                  <property>/instrumentation/gps/mode</property>
248
+                  <value>obs</value>
249
+                </equals>
250
+              </condition>
251
+              <command>property-adjust</command>
252
+              <property>/instrumentation/gps/selected-course-deg</property>
253
+              <step>-1</step>
254
+              <min>0</min>
255
+              <max>359</max>
256
+              <wrap>true</wrap>
257
+            </binding>
258
+            <binding>
259
+              <condition>
260
+                <property>/instrumentation/zkv1000/PFD/status</property>
261
+              </condition>
262
+              <command>nasal</command>
263
+              <script>
264
+                foreach (var c; keys(zkv1000.flightdeck))
265
+                  if (zkv1000.flightdeck[c].role == 'PFD')
266
+                    zkv1000.flightdeck[c].display.updateCRS();
267
+              </script>
268
+            </binding>
269
+          </key>
270
+        </key>
271
+        <key n="104">
272
+          <name>h</name>
273
+          <desc>HDG knob</desc>
274
+          <key n="104">
275
+            <name>h</name>
276
+            <desc>push HDG knob</desc>
277
+            <exit/>
278
+            <binding>
279
+              <condition>
280
+                <property>/instrumentation/zkv1000/PFD/status</property>
281
+              </condition>
282
+              <command>property-assign</command>
283
+              <property>/instrumentation/zkv1000/afcs/heading-bug-deg</property>
284
+              <property>/orientation/heading-magnetic-deg</property>
285
+            </binding>
286
+          </key>
287
+          <key n="94">
288
+            <name>^</name>
289
+            <desc>clockwise</desc>
290
+            <no-exit/>
291
+            <binding>
292
+              <condition>
293
+                <property>/instrumentation/zkv1000/PFD/status</property>
294
+              </condition>
295
+             <command>property-adjust</command>
296
+             <property>/instrumentation/zkv1000/afcs/heading-bug-deg</property>
297
+             <step>1</step>
298
+             <min>0</min>
299
+             <max>359</max>
300
+             <wrap>true</wrap>
301
+            </binding>
302
+            <binding>
303
+              <condition>
304
+                <property>/instrumentation/zkv1000/PFD/status</property>
305
+              </condition>
306
+              <command>nasal</command>
307
+              <script>
308
+                foreach (var c; keys(zkv1000.flightdeck))
309
+                  if (zkv1000.flightdeck[c].role == 'PFD')
310
+                    zkv1000.flightdeck[c].display.updateHDG();
311
+              </script>
312
+            </binding>
313
+          </key>
314
+          <key n="95">
315
+            <name>_</name>
316
+            <desc>counterclockwise</desc>
317
+            <no-exit/>
318
+            <binding>
319
+              <condition>
320
+                <property>/instrumentation/zkv1000/PFD/status</property>
321
+              </condition>
322
+             <command>property-adjust</command>
323
+             <property>/instrumentation/zkv1000/afcs/heading-bug-deg</property>
324
+             <step>-1</step>
325
+             <min>0</min>
326
+             <max>359</max>
327
+             <wrap>true</wrap>
328
+            </binding>
329
+            <binding>
330
+              <condition>
331
+                <property>/instrumentation/zkv1000/PFD/status</property>
332
+              </condition>
333
+              <command>nasal</command>
334
+              <script>
335
+                foreach (var c; keys(zkv1000.flightdeck))
336
+                  if (zkv1000.flightdeck[c].role == 'PFD')
337
+                    zkv1000.flightdeck[c].display.updateHDG();
338
+              </script>
339
+            </binding>
340
+          </key>
341
+        </key>
342
+        <key n="108">
343
+          <name>n</name>
344
+          <desc>NAV knob</desc>
345
+          <key n="108">
346
+            <name>n</name>
347
+            <desc>push NAV knob</desc>
348
+            <no-exit/>
349
+            <binding>
350
+              <condition>
351
+                <property>/instrumentation/zkv1000/PFD/status</property>
352
+              </condition>
353
+              <command>property-toggle</command>
354
+              <property>/instrumentation/zkv1000/radios/nav-tune</property>
355
+            </binding>
356
+            <binding>
357
+              <condition>
358
+                <property>/instrumentation/zkv1000/PFD/status</property>
359
+              </condition>
360
+              <command>nasal</command>
361
+              <script>
362
+                zkv1000.setNavTune();
363
+                var n = getprop('/instrumentation/zkv1000/radios/nav-tune');
364
+                foreach (var c; keys(zkv1000.flightdeck))
365
+                  zkv1000.flightdeck[c].display.updateNAV({tune:n});
366
+              </script>
367
+            </binding>
368
+          </key>
369
+          <key n="115">
370
+            <name>s</name>
371
+            <desc>Switch NAV freq STBY&lt;-&gt;SEL</desc>
372
+            <exit/>
373
+            <binding>
374
+              <condition>
375
+                <property>/instrumentation/zkv1000/PFD/status</property>
376
+              </condition>
377
+             <command>nasal</command>
378
+             <script>zkv1000.flightdeck['PFD'].buttons.AsSwitchNAV(0);</script>
379
+            </binding>
380
+          </key>
381
+          <key n="118">
382
+            <name>v</name>
383
+            <desc>NAV Volume knob</desc>
384
+            <key n="94">
385
+              <name>^</name>
386
+              <desc>clockwise</desc>
387
+              <no-exit/>
388
+              <binding>
389
+                <condition>
390
+                  <property>/instrumentation/zkv1000/PFD/status</property>
391
+                </condition>
392
+                <command>property-adjust</command>
393
+                <property>/instrumentation/zkv1000/radios/comm-volume</property>
394
+                <step>0.05</step>
395
+                <min>0</min>
396
+                <max>1</max>
397
+                <wrap>false</wrap>
398
+              </binding>
399
+            </key>
400
+            <key n="95">
401
+              <name>_</name>
402
+              <desc>counterclockwise</desc>
403
+              <no-exit/>
404
+              <binding>
405
+                <condition>
406
+                  <property>/instrumentation/zkv1000/PFD/status</property>
407
+                </condition>
408
+                <command>property-adjust</command>
409
+                <property>/instrumentation/zkv1000/radios/comm-volume</property>
410
+                <step>-0.05</step>
411
+                <min>0</min>
412
+                <max>1</max>
413
+                <wrap>false</wrap>
414
+              </binding>
415
+            </key>
416
+          </key>
417
+          <key n="94">
418
+            <name>^</name>
419
+            <desc>clockwise</desc>
420
+            <no-exit/>
421
+            <binding>
422
+              <condition>
423
+                <property>/instrumentation/zkv1000/PFD/status</property>
424
+              </condition>
425
+              <command>property-adjust</command>
426
+              <property>/instrumentation/zkv1000/radios/nav-freq-mhz</property>
427
+              <step>0.05</step>
428
+              <min>108.000</min>
429
+              <max>118.000</max>
430
+              <wrap>true></wrap>
431
+            </binding>
432
+            <binding>
433
+              <condition>
434
+                <property>/instrumentation/zkv1000/PFD/status</property>
435
+              </condition>
436
+              <command>nasal</command>
437
+              <script>
438
+                foreach (var c; keys(zkv1000.flightdeck))
439
+                  zkv1000.flightdeck[c].display.updateNAV({set:1});
440
+              </script>
441
+            </binding>
442
+          </key>
443
+          <key n="95">
444
+            <name>_</name>
445
+            <desc>counterclockwise</desc>
446
+            <no-exit/>
447
+            <binding>
448
+              <condition>
449
+                <property>/instrumentation/zkv1000/PFD/status</property>
450
+              </condition>
451
+              <command>property-adjust</command>
452
+              <property>/instrumentation/zkv1000/radios/nav-freq-mhz</property>
453
+              <step>-0.05</step>
454
+              <min>108.000</min>
455
+              <max>118.000</max>
456
+              <wrap>true></wrap>
457
+            </binding>
458
+            <binding>
459
+              <condition>
460
+                <property>/instrumentation/zkv1000/PFD/status</property>
461
+              </condition>
462
+              <command>nasal</command>
463
+              <script>
464
+                foreach (var c; keys(zkv1000.flightdeck))
465
+                  zkv1000.flightdeck[c].display.updateNAV({set:1});
466
+              </script>
467
+            </binding>
468
+          </key>
469
+        </key>
470
+        <key n="109">
471
+          <name>o</name>
472
+          <desc>COMM knob</desc>
473
+          <key n="109">
474
+            <name>o</name>
475
+            <desc>push COMM knob</desc>
476
+            <no-exit/>
477
+            <binding>
478
+              <condition>
479
+                <property>/instrumentation/zkv1000/PFD/status</property>
480
+              </condition>
481
+              <command>property-toggle</command>
482
+              <property>/instrumentation/zkv1000/radios/comm-tune</property>
483
+            </binding>
484
+            <binding>
485
+              <condition>
486
+                <property>/instrumentation/zkv1000/PFD/status</property>
487
+              </condition>
488
+              <command>nasal</command>
489
+              <script>
490
+                zkv1000.setCommTune();
491
+                var n = getprop('/instrumentation/zkv1000/radios/comm-tune');
492
+                foreach (var c; keys(zkv1000.flightdeck))
493
+                  zkv1000.flightdeck[c].display.updateCOMM({tune:n});
494
+              </script>
495
+            </binding>
496
+          </key>
497
+          <key n="114">
498
+            <name>e</name>
499
+            <desc>Emergency frequency (delay 2 seconds)</desc>
500
+            <exit/>
501
+            <binding>
502
+              <condition>
503
+                <property>/instrumentation/zkv1000/PFD/status</property>
504
+              </condition>
505
+              <command>nasal</command>
506
+              <script>
507
+                call(zkv1000.flightdeck['PFD'].buttons.AsSwitchCOM, [1], zkv1000.flightdeck['PFD'].buttons);
508
+                var e_delay = maketimer(2.1, func {
509
+                  call(zkv1000.flightdeck['PFD'].buttons.AsSwitchCOM, [0], zkv1000.flightdeck['PFD'].buttons);
510
+                });
511
+                e_delay.singleShot = 1;
512
+                e_delay.start();
513
+              </script>
514
+            </binding>
515
+          </key>
516
+          <key n="115">
517
+            <name>s</name>
518
+            <desc>Switch COMM freq SEL&lt;-&gt;STBY</desc>
519
+            <exit/>
520
+            <binding>
521
+              <condition>
522
+                <property>/instrumentation/zkv1000/PFD/status</property>
523
+              </condition>
524
+              <command>nasal</command>
525
+              <script>
526
+                call(zkv1000.flightdeck['PFD'].buttons.AsSwitchCOM, [1], zkv1000.flightdeck['PFD'].buttons);
527
+                call(zkv1000.flightdeck['PFD'].buttons.AsSwitchCOM, [0], zkv1000.flightdeck['PFD'].buttons);
528
+              </script>
529
+            </binding>
530
+          </key>
531
+          <key n="118">
532
+            <name>v</name>
533
+            <desc>COMM Volume knob</desc>
534
+            <key n="94">
535
+              <name>^</name>
536
+              <desc>clockwise</desc>
537
+              <no-exit/>
538
+              <binding>
539
+                <condition>
540
+                  <property>/instrumentation/zkv1000/PFD/status</property>
541
+                </condition>
542
+                <command>property-adjust</command>
543
+                <property>/instrumentation/zkv1000/radios/comm-volume</property>
544
+                <step>0.05</step>
545
+                <min>0</min>
546
+                <max>1</max>
547
+                <wrap>false</wrap>
548
+              </binding>
549
+            </key>
550
+            <key n="95">
551
+              <name>_</name>
552
+              <desc>counterclockwise</desc>
553
+              <no-exit/>
554
+              <binding>
555
+                <condition>
556
+                  <property>/instrumentation/zkv1000/PFD/status</property>
557
+                </condition>
558
+                <command>property-adjust</command>
559
+                <property>/instrumentation/zkv1000/radios/comm-volume</property>
560
+                <step>-0.05</step>
561
+                <min>0</min>
562
+                <max>1</max>
563
+                <wrap>false</wrap>
564
+              </binding>
565
+            </key>
566
+          </key>
567
+          <key n="94">
568
+            <name>^</name>
569
+            <desc>clockwise</desc>
570
+            <no-exit/>
571
+            <binding>
572
+              <condition>
573
+                <property>/instrumentation/zkv1000/PFD/status</property>
574
+              </condition>
575
+              <command>property-adjust</command>
576
+              <property>/instrumentation/zkv1000/radios/comm-freq-mhz</property>
577
+              <step>0.025</step>
578
+              <min>118.000</min>
579
+              <max>137.975</max>
580
+              <wrap>true</wrap>
581
+            </binding>
582
+            <binding>
583
+              <condition>
584
+                <property>/instrumentation/zkv1000/PFD/status</property>
585
+              </condition>
586
+              <command>nasal</command>
587
+              <script>
588
+                foreach (var c; keys(zkv1000.flightdeck))
589
+                  zkv1000.flightdeck[c].display.updateCOMM({set:1});
590
+              </script>
591
+            </binding>
592
+          </key>
593
+          <key n="95">
594
+            <name>_</name>
595
+            <desc>counterclockwise</desc>
596
+            <no-exit/>
597
+            <binding>
598
+              <condition>
599
+                <property>/instrumentation/zkv1000/PFD/status</property>
600
+              </condition>
601
+              <command>property-adjust</command>
602
+              <property>/instrumentation/zkv1000/radios/comm-freq-mhz</property>
603
+              <step>-0.025</step>
604
+              <min>118.000</min>
605
+              <max>137.975</max>
606
+              <wrap>true</wrap>
607
+            </binding>
608
+            <binding>
609
+              <condition>
610
+                <property>/instrumentation/zkv1000/PFD/status</property>
611
+              </condition>
612
+              <command>nasal</command>
613
+              <script>
614
+                foreach (var c; keys(zkv1000.flightdeck))
615
+                  zkv1000.flightdeck[c].display.updateCOMM({set:1});
616
+              </script>
617
+            </binding>
618
+          </key>
619
+        </key>
620
+      </key>
621
+
68 622
       <key n="902">
69 623
         <name>%u</name>
70 624
         <desc>zkv1000 device index %u</desc>
... ...
@@ -80,7 +634,7 @@
80 634
         <key n="109">
81 635
           <name>m</name>
82 636
           <desc>MENU</desc>
83
-          <exit/>
637
+          <no-exit/>
84 638
           <binding>
85 639
             <command>nasal</command>
86 640
             <script>zkv1000_pushButton(arg[0], "MENU");</script>