请选择 进入手机版 | 继续访问电脑版

QQ登录

只需一步,快速开始

查看: 224475|回复: 256

发送和获取FG数据

  [复制链接]

主题

好友

713

积分

版主

发表于 2011-11-23 23:01:59 |显示全部楼层
由C++编写的小程序,开放源码。
总共分为两程序文件,其中SetFDMData用来发送数据并驱动FlightGear视景,另外一个GetFDMData用来获取FG数据。
现在提供给大家,希望能派上用场。
SetFDMData.rar (81.41 KB, 下载次数: 1700)

主题

好友

450

积分

版主

发表于 2011-11-24 13:26:13 |显示全部楼层
class FGNetData
{
public:
        FGNetData(void);
        ~FGNetData(void);
private:
        void htond (double &x);
        void htonf (float &x);
public:
        void ConverData();
public:

public:

        enum {
                FG_MAX_ENGINES = 4,
                FG_MAX_WHEELS = 3,
                FG_MAX_TANKS = 4
        };

        uint32_t version;                // increment when data values change
        uint32_t padding;                // padding

        // Positions
        double longitude;                // geodetic (radians)
        double latitude;                // geodetic (radians)
        double altitude;                // above sea level (meters)
        float agl;                        // above ground level (meters)
        float phi;                        // roll (radians)
        float theta;                // pitch (radians)
        float psi;                        // yaw or true heading (radians)
        float alpha;                // angle of attack (radians)
        float beta;                 // side slip angle (radians)

        // Velocities
        float phidot;                // roll rate (radians/sec)
        float thetadot;                // pitch rate (radians/sec)
        float psidot;                // yaw rate (radians/sec)
        float vcas;                        // calibrated airspeed
        float climb_rate;                // feet per second
        float v_north;              // north velocity in local/body frame, fps
        float v_east;               // east velocity in local/body frame, fps
        float v_down;               // down/vertical velocity in local/body frame, fps
        float v_wind_body_north;    // north velocity in local/body frame
        // relative to local airmass, fps
        float v_wind_body_east;     // east velocity in local/body frame
        // relative to local airmass, fps
        float v_wind_body_down;     // down/vertical velocity in local/body
        // frame relative to local airmass, fps

        // Accelerations
        float A_X_pilot;                // X accel in body frame ft/sec^2
        float A_Y_pilot;                // Y accel in body frame ft/sec^2
        float A_Z_pilot;                // Z accel in body frame ft/sec^2

        // Stall
        float stall_warning;        // 0.0 - 1.0 indicating the amount of stall
        float slip_deg;                // slip ball deflection

        // Pressure

        // Engine status
        uint32_t num_engines;             // Number of valid engines
        uint32_t eng_state[FG_MAX_ENGINES];// Engine state (off, cranking, running)
        float rpm[FG_MAX_ENGINES];             // Engine RPM rev/min
        float fuel_flow[FG_MAX_ENGINES]; // Fuel flow gallons/hr
        float fuel_px[FG_MAX_ENGINES];   // Fuel pressure psi
        float egt[FG_MAX_ENGINES];             // Exhuast gas temp deg F
        float cht[FG_MAX_ENGINES];             // Cylinder head temp deg F
        float mp_osi[FG_MAX_ENGINES];    // Manifold pressure
        float tit[FG_MAX_ENGINES];             // Turbine Inlet Temperature
        float oil_temp[FG_MAX_ENGINES];  // Oil temp deg F
        float oil_px[FG_MAX_ENGINES];    // Oil pressure psi

        // Consumables
        uint32_t num_tanks;                // Max number of fuel tanks
        float fuel_quantity[FG_MAX_TANKS];

        // Gear status
        uint32_t num_wheels;
        uint32_t wow[FG_MAX_WHEELS];
        float gear_pos[FG_MAX_WHEELS];
        float gear_steer[FG_MAX_WHEELS];
        float gear_compression[FG_MAX_WHEELS];

        // Environment
        uint32_t cur_time;           // current unix time
        // FIXME: make this uint64_t before 2038
        int32_t warp;                // offset in seconds to unix time
        float visibility;            // visibility in meters (for env. effects)

        // Control surface positions (normalized values)
        float elevator;
        float elevator_trim_tab;
        float left_flap;
        float right_flap;
        float left_aileron;
        float right_aileron;
        float rudder;
        float nose_wheel;
        float speedbrake;
        float spoilers;

};

有兄弟可以翻译一下各个参数什么意思么?
回复

使用道具 举报

主题

好友

183

积分

理论基础学员

发表于 2011-11-24 18:36:36 |显示全部楼层
谢谢楼主 学习学习
回复

使用道具 举报

主题

好友

508

积分

航院研究生

发表于 2011-11-24 20:12:35 |显示全部楼层
没想到困扰我这么久的问题被楼主这么轻易解决了,膜拜一下。
回复

使用道具 举报

主题

好友

62

积分

航院新生

发表于 2011-11-29 17:24:49 |显示全部楼层
谢谢楼主的贡献
回复

使用道具 举报

主题

好友

24

积分

报考学院待录取

发表于 2011-11-29 20:20:23 |显示全部楼层
膜拜中!
回复

使用道具 举报

主题

好友

57

积分

航院新生

发表于 2012-1-11 11:42:36 |显示全部楼层
非常感谢,
回复

使用道具 举报

主题

好友

57

积分

航院新生

发表于 2012-1-31 16:14:00 |显示全部楼层
多谢楼主              正需要呢
回复

使用道具 举报

主题

好友

86

积分

航院新生

发表于 2012-2-15 21:24:23 |显示全部楼层
xiexie,好东西
回复

使用道具 举报

主题

好友

86

积分

航院新生

发表于 2012-3-1 20:59:00 |显示全部楼层
好东西 谢谢啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入FG

本版积分规则

手机版|联系我们| FlightGear ( 吉ICP备19002044号-7 )

GMT+8, 2024-3-19 21:59

Powered by Discuz! X3.2

© 2001-2013 FlightGear Inc.

返回顶部