As you may have noticed, I have a few times committed stuff
to files called "multikey" in the last days. (Couldn't come
up with something better sounding :-). I also posted to the
list about it two and a half days ago, but this message didn't
make it to the list yet. I expect that it will come in a few
days or weeks, but in the meantime, here's an "update":


In a discussion about a desirable keyboard reorganization,
John D. suggested vi-like keyboard commands that consist
of more than one stroke:

  
http://www.mail-archive.com/flightgear-devel%40lists.sourceforge.net/msg13356.html
  contains link to http://www.av8n.com/fly/fgfs/keys.txt

This is now implemented as a pure Nasal solution with XML
config in $FG_ROOT/Input/Keyboard/multikey.xml. I've used
some of John's key combinations for testing purposes, and
Tat has filled in a lot more. The config file looks like
keyboard.xml, only that <key> entries can be nested.
Like in vi, command sequences are always started with the
':'-key. After that there comes a key for the command
group (a -> autopilot, e -> engines, f -> flight, r -> radio,
etc.), Examples:

 :rc1f123.456
  ||||____________________frequency
  |||_________________#1
  ||_____________comm
  |_________radio

 :aht200
  |||_________________true
  ||_____________heading
  |_________autopilot

 :e2m ---------------------> enter number or use CurUp/CurDn
  |||_________________mixture
  ||_____________2
  |_________engine

 :4 -----------------------> execute Nasal-Console tab #4

The config is far from complete. Tat and I would like people
to test the system and to help making the combinations
intuitive and efficient. Patches are, of course, welcome.



Here's a list of the currently available commands (courtesy of Tat,
updated by me):

  # AutoPilot:
  ## Velocity Control
  avt<value>      Enables "speed hold with throttle" at <value> knots
  avp<value>      Enables "speed hold with pitch trim" at <value> knots
  av/             Disables speed hold

  ## Heading Control
  ahb<value>      Enables "heading bug hold" aiming to <value> degree
  aht<value>      Enables "True heading hold" aiming to <value> degree
  ahw             Enables "Wing level hold"
  ahn             Enables "Nav1 hold"
  ah/             Disables Heading control

  ## Pitch / Altitude Control  (altitude stuff should probably use a, not p)
  apv<value>      Sets vertical speed to <value> fpm
  app<value>      Holds Pitch at <value> degree
  apo<value>      Holds AoA at <value> degree
  apa<value>      Holds Altitude at <value> feet
  apg<value>      Holds AGL at <value> feet
  apn             Holds Nav1 glide-slope
  ap/             Disable Pitch / Altitude control

  # Engine Controls (for all selected engines, or a particular engine)
  em<value or up/dn>    Sets mixture to <value> (0.0 to 1.0)
  ep<value or up/dn>    Sets propeller-pitch to <value> (0.0 to 1.0)
  et<value or up/dn>    Sets throttle to <value> (0.0 to 1.0)
  e<value>m<val or u/d> Same as above, but only for one engine (:e3m0) 
  e<value>p<val or u/d>
  e<value>t<val or u/d>

  # Flight Controls  (trim values also changable with cursor keys)
  fa<value>       Adjusts aileron by <value> (-2.0 to +2.0)
  fat<value>      Adjusts aileron trim by <value> (-2.0 to +2.0)
  fat<left/right> Adjusts aileron trim continuously
  fe<value>       Adjusts elevator by <value> (-2.0 to +2.0)
  fet<value>      Adjusts elevator trim to <value> (-2.0 to +2.0); positive 
value nakes nose down)
  fet<up/down>    Adjusts elevator trim continuously ; up arrow makes nose down
  fr<value>       Adjusts rudder to <value> (-2.0 to +2.0)
  frt<left/right> Adjusts rudder trim continuously
  fia             Initializes all trims (FIXME: more proper name...)

  # Radio Settings
  raf<value>      Sets ADF frequency to <value>
  rc<1/2>f<value> Sets Comm<0/1> frequency to <value>
  rc<1/2>t        Toggles Comm<0/1> selected / standby
  rn<1/2>f<value> Sets Nav<1/2> frequency to <value>
  rn<1/2>t        Toggles Nav<0/1> selected / standby

  # Nasal Console
  <digit>         Execute code from the Nasal-Console dialog's tab <value>

  # Environment
  ## Time Settings
  Etc             Sets time to real clock time
  Etn             Sets time to noon

  ## Weather Scenario
  Ewsf            Sets weather scenario to "Fair weather"
  Ewsm            Sets weather scenario to "METAR" (real weather fetch)
  Ewsn            Sets weather scenario to "none"
  Ewst            Sets weather scenario to "Thunderstorm"

  # View direction (just for demonstration purposes, will be removed)
  v<left/right/up/down>  Changes view direction

m.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to