1
0
Fork 0
flightgear/utils/fgpanel
ThorstenB 05eade445e fgpanel: avoid lagging
Avoid lagging when data is sent at (slightly) higher rate than
fgpanel's display rate. Always read all available data - display
most recent.
2011-11-12 11:24:08 +01:00
..
.gitignore Remove automake ignores. 2011-11-01 13:53:52 +01:00
ApplicationProperties.hxx fgpanel: improved path handling 2011-10-08 11:28:28 +02:00
CMakeLists.txt Minor CMake packaging tweaks, more to follow. 2011-10-18 12:14:20 +01:00
FGFontCache.cxx let fgpanel compile under vc90 2011-05-27 20:53:16 +02:00
FGFontCache.hxx let fgpanel compile under vc90 2011-05-27 20:53:16 +02:00
FGGLApplication.cxx fgpanel: fixed some error handling/setup issues 2011-09-30 22:20:00 +02:00
FGGLApplication.hxx Initial commit of the fgpanel code 2011-04-14 11:11:17 +02:00
FGPanelApplication.cxx Fix win32 fgpanel build 2011-10-08 13:41:32 +02:00
FGPanelApplication.hxx let fgpanel compile under vc90 2011-05-27 20:53:16 +02:00
FGPanelProtocol.cxx fgpanel: avoid lagging 2011-11-12 11:24:08 +01:00
FGPanelProtocol.hxx Fix (nearly) all the std:: namespace violations in headers, in preparation for fixing SGsmplstat.hxx to *not* do a 'using namespace std'. 2011-10-17 17:41:59 +01:00
FGPNGTextureLoader.cxx fgpanel: fix compile for OSX 2011-06-04 21:27:04 +02:00
FGPNGTextureLoader.hxx Initial commit of the fgpanel code 2011-04-14 11:11:17 +02:00
FGRGBTextureLoader.cxx fgpanel: fix compile for OSX 2011-06-04 21:27:04 +02:00
FGRGBTextureLoader.hxx Initial commit of the fgpanel code 2011-04-14 11:11:17 +02:00
FGTextureLoaderInterface.hxx fgpanel: fix compile for OSX 2011-06-04 21:27:04 +02:00
main.cxx Initial commit of the fgpanel code 2011-04-14 11:11:17 +02:00
panel.cxx fgpanel: don't call nonexisting list 2011-10-27 08:31:24 +02:00
panel.hxx Fixes for include-file flattening - condition.hxx no longer pulls in props or props_io 2011-07-30 10:47:28 +01:00
panel_io.cxx Fixes for include-file flattening - condition.hxx no longer pulls in props or props_io 2011-07-30 10:47:28 +01:00
panel_io.hxx Initial commit of the fgpanel code 2011-04-14 11:11:17 +02:00
README Initial commit of the fgpanel code 2011-04-14 11:11:17 +02:00

=====================================================================
This is fgpanel - basically the stripped down 2D-Panel code from
FlightGear. It is designed as a standalone lightweight panel 
rendering engine to draw 2d panels on a lowcost computer/graphic card
without 3d acceleration at reasonablel framerates.

=====================================================================
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

=====================================================================
Usage
start fgpanel with
fgpanel --fg-root=/path/to/fg/data --panel=Aircraft/MyAircraft/Panels/MyPanel.xml
with the command args set to
--fg-root shall point to the directory where your FGDATA lives
  NOTE: you don't need a full copy of FGDATA, just the panel definition files for
  your aircraft, e.g.
  - Aircraft/MyAircraft/Panels/*
  - Aircraft/Instruments/* (if referenced)

-panel shall point to a panel-configuration file, relative to FGDATA

start flightgear with
fgfs --generic=socket,out,10,239.24.10.64,5432,udp,../Aircraft/MyAircraft/Panels/SampleProtocol

=====================================================================
Sample:

Create the sample files within your aicraft directory, preferrable under Panels
MyPanel.xml
sample-2d-panel.xml
SampleProtocol.xml

=====================================================================
Sample panel configuration file (MyPanel.xml)
<PropertyList>

  <!-- true: run full-screen, false; run in window -->
  <game-mode type="bool">false</game-mode>

  <!-- include the panel definitions (2d-panel syntax)-->
  <panel include="sample-2d-panel.xml"/>

  <!-- compose your property-tree here -->
  <sim>
    <panel>
      <flip-x type="bool">false</flip-x>
    </panel>
    <instrument-options>
      <omit-knobs type="bool">true</omit-knobs>
    </instrument-options>
  </sim>

  <!-- network communication settings -->
  <communication>
    <listen>
      <!-- interface to bind to, 
           leave empty for all interfaces -->
      <host>239.24.10.64</host> <!-- multicast address! -->
      <port>5432</port> <!-- tcp port to listen to -->
      <style>udp</style> <!-- udp or tcp (forget about tcp!) -->
    </listen>

    <!-- the generic protocol definition 
         same as used for fgfs --generic=foobar option
    -->
    <protocol include="SampleProtocol.xml"/>
  </communication>
</PropertyList>

=====================================================================
Sampe 2d-panel configuration file sample-2d-panel.xml
To be included from the panel configuration file

<?xml version="1.0"?>
<PropertyList>
    <name>Sample Instrument Panel</name>
    <w>375</w> <!-- screen width: 375mm -->
    <h>305</h> <!-- screen height: 305mm -->
    <instruments>
        <!-- use FlightGear's c172 attitude indicator -->
        <instrument include="../../Instruments/ati-c172s.xml">
            <name>Attitude Gyro</name>
            <x alias="../../../params/col-2"/>
            <y alias="../../../params/row-1"/>
            <w>80</w>
            <h>80</h>
        </instrument>
    </instruments>
</PropertyList>

=====================================================================
Sample protocol configuration file to drive the AI (SampleProtocol.xml)
<?xml version="1.0"?>

<PropertyList>
 <generic>

  <output>
   <line_separator>newline</line_separator>
   <var_separator>,</var_separator>

   <chunk>
    <type>float</type>
    <format>%.2f</format>
    <node>/position/altitude-agl-ft</node>
   </chunk>

   <chunk>
    <type>float</type>
    <format>%.2f</format>
    <node>/instrumentation/attitude-indicator/indicated-roll-deg</node>
   </chunk>

   <chunk>
    <type>float</type>
    <format>%.2f</format>
    <node>/instrumentation/attitude-indicator/indicated-pitch-deg</node>
   </chunk>

   <chunk>
    <type>float</type>
    <format>%.2f</format>
    <node>/instrumentation/attitude-indicator/horizon-offset-deg</node>
   </chunk>

   <chunk>
    <type>float</type>
    <format>%.4e</format>
    <node>/instrumentation/attitude-indicator/spin</node>
   </chunk>
  </output>
 </generic>
</PropertyList>

=====================================================================