1
0
Fork 0
flightgear/utils/fgpanel
2019-07-01 14:51:32 +02:00
..
.gitignore
ApplicationProperties.cxx
ApplicationProperties.hxx
CMakeLists.txt
FGCroppedTexture.cxx
FGCroppedTexture.hxx
FGDummyTextureLoader.cxx
FGDummyTextureLoader.hxx
FGFontCache.cxx
FGFontCache.hxx
FGGLApplication.cxx
FGGLApplication.hxx
FGGroupLayer.cxx
FGGroupLayer.hxx
FGInstrumentLayer.cxx
FGInstrumentLayer.hxx
FGLayeredInstrument.cxx
FGLayeredInstrument.hxx
FGPanel.cxx
FGPanel.hxx
FGPanelApplication.cxx
FGPanelApplication.hxx
FGPanelInstrument.cxx
FGPanelInstrument.hxx
FGPanelProtocol.cxx
FGPanelProtocol.hxx
FGPanelTransformation.cxx
FGPanelTransformation.hxx
FGPNGTextureLoader.cxx
FGPNGTextureLoader.hxx
FGRGBTextureLoader.cxx
FGRGBTextureLoader.hxx Update FGPanel: 2016-12-16 19:35:44 +00:00
FGSwitchLayer.cxx Update FGPanel: 2016-12-16 19:35:44 +00:00
FGSwitchLayer.hxx
FGTextLayer.cxx
FGTextLayer.hxx
FGTexturedLayer.cxx
FGTexturedLayer.hxx
FGTextureLoaderInterface.hxx
GL_utils.cxx
GL_utils.hxx
GLES_utils.cxx
GLES_utils.hxx
main.cxx
panel_io.cxx
panel_io.hxx SGSubsystem classes: Addition of staticSubsystemClassId() to all subsystems. 2019-07-01 14:51:32 +02:00
README
README.RPi

=====================================================================
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>

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