1
0
Fork 0
flightgear/utils/fgpanel
Mathias Froehlich 6b6238293f Revert to simgears thread support. Flightgear side.
For all source directories outside of simgear/scene,
which really depends very hard on osg, avoid using osg
classes. This should reenable the use of some basic and
scenegraph independent parts of simgear without the
the need for osg.
2011-09-06 07:31:12 +02:00
..
.cvsignore let fgpanel compile under vc90 2011-05-27 20:53:16 +02:00
.gitignore Initial commit of the fgpanel code 2011-04-14 11:11:17 +02:00
ApplicationProperties.hxx Initial commit of the fgpanel code 2011-04-14 11:11:17 +02:00
CMakeLists.txt Revert to simgears thread support. Flightgear side. 2011-09-06 07:31:12 +02: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: fix compile for OSX 2011-06-04 21:27:04 +02:00
FGGLApplication.hxx Initial commit of the fgpanel code 2011-04-14 11:11:17 +02:00
FGPanelApplication.cxx Fix a data type mismatch 2011-06-05 17:10:04 +02:00
FGPanelApplication.hxx let fgpanel compile under vc90 2011-05-27 20:53:16 +02:00
FGPanelProtocol.cxx let fgpanel compile under vc90 2011-05-27 20:53:16 +02:00
FGPanelProtocol.hxx let fgpanel compile under vc90 2011-05-27 20:53:16 +02: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
Makefile.am Add fgpanel to the automake build system 2011-04-14 15:33:36 +02:00
panel.cxx fgpanel: fix compile for OSX 2011-06-04 21:27:04 +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>

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