1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-01-08 19:46:06 +01:00
LibrePilot/ground/src/plugins/uavobjects/gpsposition.h
stac 635df28c34 GPSPosition: Add new UAVObject for GPSPosition
This object is not yet populated or used.  This
will soon hold the raw position data from the GPS
receiver.  PositionActual will be converted to
hold the computed position from the AHRS.

Contents of this object are still subject to change.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1355 ebee16cc-31ac-478f-84a7-5cbb03baadba
2010-08-21 16:19:18 +00:00

101 lines
3.0 KiB
C++

/**
******************************************************************************
*
* @file gpsposition.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @see The GNU Public License (GPL) Version 3
* @addtogroup GCSPlugins GCS Plugins
* @{
* @addtogroup UAVObjectsPlugin UAVObjects Plugin
* @{
*
* @note Object definition file: gpsposition.xml.
* This is an automatically generated file.
* DO NOT modify manually.
*
* @brief The UAVUObjects GCS plugin
*****************************************************************************/
/*
* 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 3 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.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef GPSPOSITION_H
#define GPSPOSITION_H
#include "uavdataobject.h"
#include "uavobjectmanager.h"
class UAVOBJECTS_EXPORT GPSPosition: public UAVDataObject
{
Q_OBJECT
public:
// Field structure
typedef struct {
quint8 Status;
qint32 Latitude;
qint32 Longitude;
float Altitude;
float GeoidSeparation;
float Heading;
float Groundspeed;
qint8 Satellites;
float PDOP;
float HDOP;
float VDOP;
} __attribute__((packed)) DataFields;
// Field information
// Field Status information
/* Enumeration options for field Status */
typedef enum { STATUS_NOGPS=0, STATUS_NOFIX=1, STATUS_FIX2D=2, STATUS_FIX3D=3 } StatusOptions;
// Field Latitude information
// Field Longitude information
// Field Altitude information
// Field GeoidSeparation information
// Field Heading information
// Field Groundspeed information
// Field Satellites information
// Field PDOP information
// Field HDOP information
// Field VDOP information
// Constants
static const quint32 OBJID = 3041480770U;
static const QString NAME;
static const bool ISSINGLEINST = 1;
static const bool ISSETTINGS = 0;
static const quint32 NUMBYTES = sizeof(DataFields);
// Functions
GPSPosition();
DataFields getData();
void setData(const DataFields& data);
Metadata getDefaultMetadata();
UAVDataObject* clone(quint32 instID);
static GPSPosition* GetInstance(UAVObjectManager* objMngr, quint32 instID = 0);
private:
DataFields data;
void setDefaultFieldValues();
};
#endif // GPSPOSITION_H