mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
AHRS/Flight: Renamed AttitudeSettings to AhrsSettings to make it more intuitive. Added the ability to change the algorithm from GCS.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1383 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
b32184d1ec
commit
bd8fffe4d0
@ -46,7 +46,7 @@
|
||||
* @arg AHRS_PROCESSING - Performing update on the available data
|
||||
*/
|
||||
enum {AHRS_IDLE, AHRS_DATA_READY, AHRS_PROCESSING} ahrs_state;
|
||||
enum {SIMPLE_Algo, INSGPS_Algo} ahrs_algorithm;
|
||||
enum algorithms ahrs_algorithm;
|
||||
|
||||
/**
|
||||
* @addtogroup AHRS_ADC_Configuration ADC Configuration
|
||||
@ -644,6 +644,12 @@ void process_spi_request(void)
|
||||
dump_spi_message(PIOS_COM_AUX, "I", (uint8_t *)&user_tx_v1, sizeof(user_tx_v1));
|
||||
lfsm_user_set_tx_v1 (&user_tx_v1);
|
||||
break;
|
||||
case OPAHRS_MSG_V1_REQ_ALGORITHM:
|
||||
opahrs_msg_v1_init_user_tx (&user_tx_v1, OPAHRS_MSG_V1_RSP_ALGORITHM);
|
||||
ahrs_algorithm = user_rx_v1.payload.user.v.req.algorithm.algorithm;
|
||||
dump_spi_message(PIOS_COM_AUX, "A", (uint8_t *)&user_rx_v1, sizeof(user_rx_v1));
|
||||
lfsm_user_set_tx_v1 (&user_tx_v1);
|
||||
break;
|
||||
case OPAHRS_MSG_V1_REQ_NORTH:
|
||||
opahrs_msg_v1_init_user_tx (&user_tx_v1, OPAHRS_MSG_V1_RSP_NORTH);
|
||||
INSSetMagNorth(user_rx_v1.payload.user.v.req.north.Be);
|
||||
|
@ -167,7 +167,7 @@ SRC += $(OPUAVOBJ)/ahrsstatus.c
|
||||
SRC += $(OPUAVOBJ)/baroaltitude.c
|
||||
SRC += $(OPUAVOBJ)/ahrscalibration.c
|
||||
SRC += $(OPUAVOBJ)/attitudeactual.c
|
||||
SRC += $(OPUAVOBJ)/attitudesettings.c
|
||||
SRC += $(OPUAVOBJ)/ahrssettings.c
|
||||
SRC += $(OPUAVOBJ)/flightsituationactual.c
|
||||
SRC += $(OPUAVOBJ)/navigationsettings.c
|
||||
SRC += $(OPUAVOBJ)/navigationdesired.c
|
||||
|
@ -52,7 +52,7 @@
|
||||
|
||||
#include "ahrs_comms.h"
|
||||
#include "attitudeactual.h"
|
||||
#include "attitudesettings.h"
|
||||
#include "ahrssettings.h"
|
||||
#include "attituderaw.h"
|
||||
#include "ahrsstatus.h"
|
||||
#include "alarms.h"
|
||||
@ -86,6 +86,12 @@ static void update_ahrs_status(struct opahrs_msg_v1_rsp_serial * serial);
|
||||
static void update_calibration(struct opahrs_msg_v1_rsp_calibration * calibration);
|
||||
static void process_update(struct opahrs_msg_v1_rsp_update * update); // main information parser
|
||||
|
||||
static bool AHRSSettingsIsUpdatedFlag = false;
|
||||
static void AHRSSettingsUpdatedCb(UAVObjEvent * ev)
|
||||
{
|
||||
AHRSSettingsIsUpdatedFlag = true;
|
||||
}
|
||||
|
||||
static bool BaroAltitudeIsUpdatedFlag = false;
|
||||
static void BaroAltitudeUpdatedCb(UAVObjEvent * ev)
|
||||
{
|
||||
@ -120,6 +126,7 @@ static void AHRSCalibrationUpdatedCb(UAVObjEvent * ev)
|
||||
*/
|
||||
int32_t AHRSCommsInitialize(void)
|
||||
{
|
||||
AHRSSettingsConnectCallback(AHRSSettingsUpdatedCb);
|
||||
BaroAltitudeConnectCallback(BaroAltitudeUpdatedCb);
|
||||
PositionActualConnectCallback(GPSPositionUpdatedCb);
|
||||
HomeLocationConnectCallback(HomeLocationUpdatedCb);
|
||||
@ -134,7 +141,7 @@ int32_t AHRSCommsInitialize(void)
|
||||
}
|
||||
|
||||
static uint16_t update_errors = 0, attituderaw_errors = 0,
|
||||
home_errors = 0, calibration_errors;
|
||||
home_errors = 0, calibration_errors = 0, algorithm_errors = 0;
|
||||
|
||||
/**
|
||||
* Module thread, should not return.
|
||||
@ -154,6 +161,7 @@ static void ahrscommsTask(void* parameters)
|
||||
AhrsStatusGet(&data);
|
||||
data.HomeSet = AHRSSTATUS_HOMESET_FALSE;
|
||||
data.CalibrationSet = AHRSSTATUS_CALIBRATIONSET_FALSE;
|
||||
data.AlgorithmSet = AHRSSTATUS_CALIBRATIONSET_FALSE;
|
||||
AhrsStatusSet(&data);
|
||||
|
||||
/* Spin here until we're in sync */
|
||||
@ -175,52 +183,10 @@ static void ahrscommsTask(void* parameters)
|
||||
|
||||
/* We're in sync with the AHRS, spin here until an error occurs */
|
||||
while (1) {
|
||||
AttitudeSettingsData settings;
|
||||
AHRSSettingsData settings;
|
||||
|
||||
/* Update settings with latest value */
|
||||
AttitudeSettingsGet(&settings);
|
||||
|
||||
// If settings indicate, grab the raw and filtered data instead of estimate
|
||||
if (settings.UpdateRaw)
|
||||
{
|
||||
if( (result = PIOS_OPAHRS_GetAttitudeRaw(&rsp)) == OPAHRS_RESULT_OK) {
|
||||
update_attitude_raw(&(rsp.payload.user.v.rsp.attituderaw));
|
||||
} else {
|
||||
/* Comms error */
|
||||
attituderaw_errors++;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// Otherwise do standard technique
|
||||
struct opahrs_msg_v1 req;
|
||||
struct opahrs_msg_v1 rsp;
|
||||
|
||||
// Load barometer if updated
|
||||
if (BaroAltitudeIsUpdatedFlag)
|
||||
load_baro_altitude(&(req.payload.user.v.req.update));
|
||||
else
|
||||
req.payload.user.v.req.update.barometer.updated = 0;
|
||||
|
||||
// Load GPS if updated
|
||||
if (GPSPositionIsUpdatedFlag)
|
||||
load_gps_position(&(req.payload.user.v.req.update));
|
||||
else
|
||||
req.payload.user.v.req.update.gps.updated = 0;
|
||||
|
||||
// Transfer packet and process returned attitude
|
||||
if ((result = PIOS_OPAHRS_SetGetUpdate(&req,&rsp)) == OPAHRS_RESULT_OK) {
|
||||
if (req.payload.user.v.req.update.barometer.updated)
|
||||
BaroAltitudeIsUpdatedFlag = false;
|
||||
if (req.payload.user.v.req.update.gps.updated)
|
||||
GPSPositionIsUpdatedFlag = false;
|
||||
process_update(&(rsp.payload.user.v.rsp.update));
|
||||
} else {
|
||||
/* Comms error */
|
||||
update_errors++;
|
||||
break;
|
||||
}
|
||||
AHRSSettingsGet(&settings);
|
||||
|
||||
// Update home coordinate if it hasn't been updated
|
||||
AhrsStatusGet(&data);
|
||||
@ -253,7 +219,7 @@ static void ahrscommsTask(void* parameters)
|
||||
AHRSCalibrationIsUpdatedFlag = false;
|
||||
data.CalibrationSet = AHRSSTATUS_CALIBRATIONSET_TRUE;
|
||||
AhrsStatusSet(&data);
|
||||
|
||||
|
||||
} else {
|
||||
/* Comms error */
|
||||
data.CalibrationSet = AHRSSTATUS_CALIBRATIONSET_FALSE;
|
||||
@ -262,7 +228,72 @@ static void ahrscommsTask(void* parameters)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Update algorithm
|
||||
if (AHRSSettingsIsUpdatedFlag || (data.AlgorithmSet == AHRSSTATUS_ALGORITHMSET_FALSE))
|
||||
{
|
||||
struct opahrs_msg_v1 req;
|
||||
|
||||
req.payload.user.v.req.algorithm.algorithm = settings.Algorithm;
|
||||
|
||||
if(( result = PIOS_OPAHRS_SetAlgorithm(&req) ) == OPAHRS_RESULT_OK ) {
|
||||
data.AlgorithmSet = AHRSSTATUS_ALGORITHMSET_TRUE;
|
||||
AhrsStatusSet(&data);
|
||||
} else {
|
||||
/* Comms error */
|
||||
data.AlgorithmSet = AHRSSTATUS_ALGORITHMSET_FALSE;
|
||||
AhrsStatusSet(&data);
|
||||
algorithm_errors++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// If settings indicate, grab the raw and filtered data instead of estimate
|
||||
if (settings.UpdateRaw)
|
||||
{
|
||||
if( (result = PIOS_OPAHRS_GetAttitudeRaw(&rsp)) == OPAHRS_RESULT_OK) {
|
||||
update_attitude_raw(&(rsp.payload.user.v.rsp.attituderaw));
|
||||
} else {
|
||||
/* Comms error */
|
||||
attituderaw_errors++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (settings.UpdateFiltered)
|
||||
{
|
||||
// Otherwise do standard technique
|
||||
struct opahrs_msg_v1 req;
|
||||
struct opahrs_msg_v1 rsp;
|
||||
|
||||
// Load barometer if updated
|
||||
if (BaroAltitudeIsUpdatedFlag)
|
||||
load_baro_altitude(&(req.payload.user.v.req.update));
|
||||
else
|
||||
req.payload.user.v.req.update.barometer.updated = 0;
|
||||
|
||||
// Load GPS if updated
|
||||
if (GPSPositionIsUpdatedFlag)
|
||||
load_gps_position(&(req.payload.user.v.req.update));
|
||||
else
|
||||
req.payload.user.v.req.update.gps.updated = 0;
|
||||
|
||||
// Transfer packet and process returned attitude
|
||||
if ((result = PIOS_OPAHRS_SetGetUpdate(&req,&rsp)) == OPAHRS_RESULT_OK) {
|
||||
if (req.payload.user.v.req.update.barometer.updated)
|
||||
BaroAltitudeIsUpdatedFlag = false;
|
||||
if (req.payload.user.v.req.update.gps.updated)
|
||||
GPSPositionIsUpdatedFlag = false;
|
||||
process_update(&(rsp.payload.user.v.rsp.update));
|
||||
} else {
|
||||
/* Comms error */
|
||||
update_errors++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Wait for the next update interval */
|
||||
vTaskDelay( settings.UpdatePeriod / portTICK_RATE_MS );
|
||||
}
|
||||
@ -459,6 +490,7 @@ static void update_ahrs_status(struct opahrs_msg_v1_rsp_serial * serial)
|
||||
data.CommErrors[AHRSSTATUS_COMMERRORS_ATTITUDERAW] = attituderaw_errors;
|
||||
data.CommErrors[AHRSSTATUS_COMMERRORS_HOMELOCATION] = home_errors;
|
||||
data.CommErrors[AHRSSTATUS_COMMERRORS_CALIBRATION] = calibration_errors;
|
||||
data.CommErrors[AHRSSTATUS_COMMERRORS_ALGORITHM] = algorithm_errors;
|
||||
|
||||
AhrsStatusSet(&data);
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
*
|
||||
* @file attitudesettings.c
|
||||
* @file ahrssettings.c
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
* @brief Implementation of the AttitudeSettings object. This file has been
|
||||
* @brief Implementation of the AHRSSettings object. This file has been
|
||||
* automatically generated by the UAVObjectGenerator.
|
||||
*
|
||||
* @note Object definition file: attitudesettings.xml.
|
||||
* @note Object definition file: ahrssettings.xml.
|
||||
* This is an automatically generated file.
|
||||
* DO NOT modify manually.
|
||||
*
|
||||
@ -30,7 +30,7 @@
|
||||
*/
|
||||
|
||||
#include "openpilot.h"
|
||||
#include "attitudesettings.h"
|
||||
#include "ahrssettings.h"
|
||||
|
||||
// Private variables
|
||||
static UAVObjHandle handle;
|
||||
@ -43,11 +43,11 @@ static void setDefaults(UAVObjHandle obj, uint16_t instId);
|
||||
* \return 0 Success
|
||||
* \return -1 Failure
|
||||
*/
|
||||
int32_t AttitudeSettingsInitialize()
|
||||
int32_t AHRSSettingsInitialize()
|
||||
{
|
||||
// Register object with the object manager
|
||||
handle = UAVObjRegister(ATTITUDESETTINGS_OBJID, ATTITUDESETTINGS_NAME, ATTITUDESETTINGS_METANAME, 0,
|
||||
ATTITUDESETTINGS_ISSINGLEINST, ATTITUDESETTINGS_ISSETTINGS, ATTITUDESETTINGS_NUMBYTES, &setDefaults);
|
||||
handle = UAVObjRegister(AHRSSETTINGS_OBJID, AHRSSETTINGS_NAME, AHRSSETTINGS_METANAME, 0,
|
||||
AHRSSETTINGS_ISSINGLEINST, AHRSSETTINGS_ISSETTINGS, AHRSSETTINGS_NUMBYTES, &setDefaults);
|
||||
|
||||
// Done
|
||||
if (handle != 0)
|
||||
@ -67,15 +67,16 @@ int32_t AttitudeSettingsInitialize()
|
||||
*/
|
||||
static void setDefaults(UAVObjHandle obj, uint16_t instId)
|
||||
{
|
||||
AttitudeSettingsData data;
|
||||
AHRSSettingsData data;
|
||||
UAVObjMetadata metadata;
|
||||
|
||||
// Initialize object fields to their default values
|
||||
UAVObjGetInstanceData(obj, instId, &data);
|
||||
memset(&data, 0, sizeof(AttitudeSettingsData));
|
||||
memset(&data, 0, sizeof(AHRSSettingsData));
|
||||
data.Algorithm = 0;
|
||||
data.UpdateRaw = 0;
|
||||
data.UpdatePeriod = 500;
|
||||
data.UpdateFiltered = 1;
|
||||
data.UpdatePeriod = 20;
|
||||
|
||||
UAVObjSetInstanceData(obj, instId, &data);
|
||||
|
||||
@ -96,7 +97,7 @@ static void setDefaults(UAVObjHandle obj, uint16_t instId)
|
||||
/**
|
||||
* Get object handle
|
||||
*/
|
||||
UAVObjHandle AttitudeSettingsHandle()
|
||||
UAVObjHandle AHRSSettingsHandle()
|
||||
{
|
||||
return handle;
|
||||
}
|
84
flight/OpenPilot/UAVObjects/inc/ahrssettings.h
Normal file
84
flight/OpenPilot/UAVObjects/inc/ahrssettings.h
Normal file
@ -0,0 +1,84 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
*
|
||||
* @file ahrssettings.h
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
* @brief Implementation of the AHRSSettings object. This file has been
|
||||
* automatically generated by the UAVObjectGenerator.
|
||||
*
|
||||
* @note Object definition file: ahrssettings.xml.
|
||||
* This is an automatically generated file.
|
||||
* DO NOT modify manually.
|
||||
*
|
||||
* @see The GNU Public License (GPL) Version 3
|
||||
*
|
||||
*****************************************************************************/
|
||||
/*
|
||||
* 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 AHRSSETTINGS_H
|
||||
#define AHRSSETTINGS_H
|
||||
|
||||
// Object constants
|
||||
#define AHRSSETTINGS_OBJID 1565605328U
|
||||
#define AHRSSETTINGS_NAME "AHRSSettings"
|
||||
#define AHRSSETTINGS_METANAME "AHRSSettingsMeta"
|
||||
#define AHRSSETTINGS_ISSINGLEINST 1
|
||||
#define AHRSSETTINGS_ISSETTINGS 1
|
||||
#define AHRSSETTINGS_NUMBYTES sizeof(AHRSSettingsData)
|
||||
|
||||
// Object access macros
|
||||
#define AHRSSettingsGet(dataOut) UAVObjGetData(AHRSSettingsHandle(), dataOut)
|
||||
#define AHRSSettingsSet(dataIn) UAVObjSetData(AHRSSettingsHandle(), dataIn)
|
||||
#define AHRSSettingsInstGet(instId, dataOut) UAVObjGetInstanceData(AHRSSettingsHandle(), instId, dataOut)
|
||||
#define AHRSSettingsInstSet(instId, dataIn) UAVObjSetInstanceData(AHRSSettingsHandle(), instId, dataIn)
|
||||
#define AHRSSettingsConnectQueue(queue) UAVObjConnectQueue(AHRSSettingsHandle(), queue, EV_MASK_ALL_UPDATES)
|
||||
#define AHRSSettingsConnectCallback(cb) UAVObjConnectCallback(AHRSSettingsHandle(), cb, EV_MASK_ALL_UPDATES)
|
||||
#define AHRSSettingsCreateInstance() UAVObjCreateInstance(AHRSSettingsHandle())
|
||||
#define AHRSSettingsRequestUpdate() UAVObjRequestUpdate(AHRSSettingsHandle())
|
||||
#define AHRSSettingsRequestInstUpdate(instId) UAVObjRequestInstanceUpdate(AHRSSettingsHandle(), instId)
|
||||
#define AHRSSettingsUpdated() UAVObjUpdated(AHRSSettingsHandle())
|
||||
#define AHRSSettingsInstUpdated(instId) UAVObjUpdated(AHRSSettingsHandle(), instId)
|
||||
#define AHRSSettingsGetMetadata(dataOut) UAVObjGetMetadata(AHRSSettingsHandle(), dataOut)
|
||||
#define AHRSSettingsSetMetadata(dataIn) UAVObjSetMetadata(AHRSSettingsHandle(), dataIn)
|
||||
|
||||
// Object data
|
||||
typedef struct {
|
||||
uint8_t Algorithm;
|
||||
uint8_t UpdateRaw;
|
||||
uint8_t UpdateFiltered;
|
||||
int32_t UpdatePeriod;
|
||||
|
||||
} __attribute__((packed)) AHRSSettingsData;
|
||||
|
||||
// Field information
|
||||
// Field Algorithm information
|
||||
/* Enumeration options for field Algorithm */
|
||||
typedef enum { AHRSSETTINGS_ALGORITHM_INSGPS=0 } AHRSSettingsAlgorithmOptions;
|
||||
// Field UpdateRaw information
|
||||
/* Enumeration options for field UpdateRaw */
|
||||
typedef enum { AHRSSETTINGS_UPDATERAW_FALSE=0, AHRSSETTINGS_UPDATERAW_TRUE=1 } AHRSSettingsUpdateRawOptions;
|
||||
// Field UpdateFiltered information
|
||||
/* Enumeration options for field UpdateFiltered */
|
||||
typedef enum { AHRSSETTINGS_UPDATEFILTERED_FALSE=0, AHRSSETTINGS_UPDATEFILTERED_TRUE=1 } AHRSSettingsUpdateFilteredOptions;
|
||||
// Field UpdatePeriod information
|
||||
|
||||
|
||||
// Generic interface functions
|
||||
int32_t AHRSSettingsInitialize();
|
||||
UAVObjHandle AHRSSettingsHandle();
|
||||
|
||||
#endif // AHRSSETTINGS_H
|
@ -33,7 +33,7 @@
|
||||
#define AHRSSTATUS_H
|
||||
|
||||
// Object constants
|
||||
#define AHRSSTATUS_OBJID 1048419880U
|
||||
#define AHRSSTATUS_OBJID 842145078U
|
||||
#define AHRSSTATUS_NAME "AhrsStatus"
|
||||
#define AHRSSTATUS_METANAME "AhrsStatusMeta"
|
||||
#define AHRSSTATUS_ISSINGLEINST 1
|
||||
@ -58,9 +58,10 @@
|
||||
// Object data
|
||||
typedef struct {
|
||||
uint8_t SerialNumber[25];
|
||||
uint8_t CommErrors[4];
|
||||
uint8_t HomeSet;
|
||||
uint8_t CommErrors[5];
|
||||
uint8_t AlgorithmSet;
|
||||
uint8_t CalibrationSet;
|
||||
uint8_t HomeSet;
|
||||
|
||||
} __attribute__((packed)) AhrsStatusData;
|
||||
|
||||
@ -70,15 +71,18 @@ typedef struct {
|
||||
#define AHRSSTATUS_SERIALNUMBER_NUMELEM 25
|
||||
// Field CommErrors information
|
||||
/* Array element names for field CommErrors */
|
||||
typedef enum { AHRSSTATUS_COMMERRORS_UPDATE=0, AHRSSTATUS_COMMERRORS_ATTITUDERAW=1, AHRSSTATUS_COMMERRORS_HOMELOCATION=2, AHRSSTATUS_COMMERRORS_CALIBRATION=3 } AhrsStatusCommErrorsElem;
|
||||
typedef enum { AHRSSTATUS_COMMERRORS_ALGORITHM=0, AHRSSTATUS_COMMERRORS_UPDATE=1, AHRSSTATUS_COMMERRORS_ATTITUDERAW=2, AHRSSTATUS_COMMERRORS_HOMELOCATION=3, AHRSSTATUS_COMMERRORS_CALIBRATION=4 } AhrsStatusCommErrorsElem;
|
||||
/* Number of elements for field CommErrors */
|
||||
#define AHRSSTATUS_COMMERRORS_NUMELEM 4
|
||||
// Field HomeSet information
|
||||
/* Enumeration options for field HomeSet */
|
||||
typedef enum { AHRSSTATUS_HOMESET_FALSE=0, AHRSSTATUS_HOMESET_TRUE=1 } AhrsStatusHomeSetOptions;
|
||||
#define AHRSSTATUS_COMMERRORS_NUMELEM 5
|
||||
// Field AlgorithmSet information
|
||||
/* Enumeration options for field AlgorithmSet */
|
||||
typedef enum { AHRSSTATUS_ALGORITHMSET_FALSE=0, AHRSSTATUS_ALGORITHMSET_TRUE=1 } AhrsStatusAlgorithmSetOptions;
|
||||
// Field CalibrationSet information
|
||||
/* Enumeration options for field CalibrationSet */
|
||||
typedef enum { AHRSSTATUS_CALIBRATIONSET_FALSE=0, AHRSSTATUS_CALIBRATIONSET_TRUE=1 } AhrsStatusCalibrationSetOptions;
|
||||
// Field HomeSet information
|
||||
/* Enumeration options for field HomeSet */
|
||||
typedef enum { AHRSSTATUS_HOMESET_FALSE=0, AHRSSTATUS_HOMESET_TRUE=1 } AhrsStatusHomeSetOptions;
|
||||
|
||||
|
||||
// Generic interface functions
|
||||
|
@ -1,80 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
*
|
||||
* @file attitudesettings.h
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
* @brief Implementation of the AttitudeSettings object. This file has been
|
||||
* automatically generated by the UAVObjectGenerator.
|
||||
*
|
||||
* @note Object definition file: attitudesettings.xml.
|
||||
* This is an automatically generated file.
|
||||
* DO NOT modify manually.
|
||||
*
|
||||
* @see The GNU Public License (GPL) Version 3
|
||||
*
|
||||
*****************************************************************************/
|
||||
/*
|
||||
* 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 ATTITUDESETTINGS_H
|
||||
#define ATTITUDESETTINGS_H
|
||||
|
||||
// Object constants
|
||||
#define ATTITUDESETTINGS_OBJID 2356162226U
|
||||
#define ATTITUDESETTINGS_NAME "AttitudeSettings"
|
||||
#define ATTITUDESETTINGS_METANAME "AttitudeSettingsMeta"
|
||||
#define ATTITUDESETTINGS_ISSINGLEINST 1
|
||||
#define ATTITUDESETTINGS_ISSETTINGS 1
|
||||
#define ATTITUDESETTINGS_NUMBYTES sizeof(AttitudeSettingsData)
|
||||
|
||||
// Object access macros
|
||||
#define AttitudeSettingsGet(dataOut) UAVObjGetData(AttitudeSettingsHandle(), dataOut)
|
||||
#define AttitudeSettingsSet(dataIn) UAVObjSetData(AttitudeSettingsHandle(), dataIn)
|
||||
#define AttitudeSettingsInstGet(instId, dataOut) UAVObjGetInstanceData(AttitudeSettingsHandle(), instId, dataOut)
|
||||
#define AttitudeSettingsInstSet(instId, dataIn) UAVObjSetInstanceData(AttitudeSettingsHandle(), instId, dataIn)
|
||||
#define AttitudeSettingsConnectQueue(queue) UAVObjConnectQueue(AttitudeSettingsHandle(), queue, EV_MASK_ALL_UPDATES)
|
||||
#define AttitudeSettingsConnectCallback(cb) UAVObjConnectCallback(AttitudeSettingsHandle(), cb, EV_MASK_ALL_UPDATES)
|
||||
#define AttitudeSettingsCreateInstance() UAVObjCreateInstance(AttitudeSettingsHandle())
|
||||
#define AttitudeSettingsRequestUpdate() UAVObjRequestUpdate(AttitudeSettingsHandle())
|
||||
#define AttitudeSettingsRequestInstUpdate(instId) UAVObjRequestInstanceUpdate(AttitudeSettingsHandle(), instId)
|
||||
#define AttitudeSettingsUpdated() UAVObjUpdated(AttitudeSettingsHandle())
|
||||
#define AttitudeSettingsInstUpdated(instId) UAVObjUpdated(AttitudeSettingsHandle(), instId)
|
||||
#define AttitudeSettingsGetMetadata(dataOut) UAVObjGetMetadata(AttitudeSettingsHandle(), dataOut)
|
||||
#define AttitudeSettingsSetMetadata(dataIn) UAVObjSetMetadata(AttitudeSettingsHandle(), dataIn)
|
||||
|
||||
// Object data
|
||||
typedef struct {
|
||||
uint8_t Algorithm;
|
||||
uint8_t UpdateRaw;
|
||||
int32_t UpdatePeriod;
|
||||
|
||||
} __attribute__((packed)) AttitudeSettingsData;
|
||||
|
||||
// Field information
|
||||
// Field Algorithm information
|
||||
/* Enumeration options for field Algorithm */
|
||||
typedef enum { ATTITUDESETTINGS_ALGORITHM_INSGPS=0 } AttitudeSettingsAlgorithmOptions;
|
||||
// Field UpdateRaw information
|
||||
/* Enumeration options for field UpdateRaw */
|
||||
typedef enum { ATTITUDESETTINGS_UPDATERAW_FALSE=0, ATTITUDESETTINGS_UPDATERAW_TRUE=1 } AttitudeSettingsUpdateRawOptions;
|
||||
// Field UpdatePeriod information
|
||||
|
||||
|
||||
// Generic interface functions
|
||||
int32_t AttitudeSettingsInitialize();
|
||||
UAVObjHandle AttitudeSettingsHandle();
|
||||
|
||||
#endif // ATTITUDESETTINGS_H
|
@ -32,11 +32,11 @@
|
||||
#include "actuatordesired.h"
|
||||
#include "actuatorsettings.h"
|
||||
#include "ahrscalibration.h"
|
||||
#include "ahrssettings.h"
|
||||
#include "ahrsstatus.h"
|
||||
#include "attitudeactual.h"
|
||||
#include "attitudedesired.h"
|
||||
#include "attituderaw.h"
|
||||
#include "attitudesettings.h"
|
||||
#include "baroaltitude.h"
|
||||
#include "exampleobject1.h"
|
||||
#include "exampleobject2.h"
|
||||
@ -70,11 +70,11 @@ void UAVObjectsInitializeAll()
|
||||
ActuatorDesiredInitialize();
|
||||
ActuatorSettingsInitialize();
|
||||
AHRSCalibrationInitialize();
|
||||
AHRSSettingsInitialize();
|
||||
AhrsStatusInitialize();
|
||||
AttitudeActualInitialize();
|
||||
AttitudeDesiredInitialize();
|
||||
AttitudeRawInitialize();
|
||||
AttitudeSettingsInitialize();
|
||||
BaroAltitudeInitialize();
|
||||
ExampleObject1Initialize();
|
||||
ExampleObject2Initialize();
|
||||
|
@ -245,6 +245,28 @@ enum opahrs_result PIOS_OPAHRS_GetAttitudeRaw(struct opahrs_msg_v1 *rsp)
|
||||
return opahrs_msg_v1_recv_rsp (OPAHRS_MSG_V1_RSP_ATTITUDERAW, rsp);
|
||||
}
|
||||
|
||||
extern enum opahrs_result PIOS_OPAHRS_SetAlgorithm(struct opahrs_msg_v1 *req)
|
||||
{
|
||||
struct opahrs_msg_v1 rsp;
|
||||
enum opahrs_result rc;
|
||||
|
||||
if (!req) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Make up an attituderaw request */
|
||||
opahrs_msg_v1_init_user_tx (req, OPAHRS_MSG_V1_REQ_ALGORITHM);
|
||||
|
||||
/* Send the message until it is received */
|
||||
rc = opahrs_msg_v1_send_req (req);
|
||||
if (rc != OPAHRS_RESULT_OK) {
|
||||
/* Failed to send the request, bail out */
|
||||
return rc;
|
||||
}
|
||||
|
||||
return opahrs_msg_v1_recv_rsp (OPAHRS_MSG_V1_RSP_ALGORITHM, &rsp);
|
||||
}
|
||||
|
||||
enum opahrs_result PIOS_OPAHRS_SetMagNorth(struct opahrs_msg_v1 *req)
|
||||
{
|
||||
struct opahrs_msg_v1 rsp;
|
||||
|
@ -43,6 +43,7 @@ extern enum opahrs_result PIOS_OPAHRS_Sync(struct opahrs_msg_v1 *rsp);
|
||||
extern enum opahrs_result PIOS_OPAHRS_GetSerial(struct opahrs_msg_v1 *rsp);
|
||||
extern enum opahrs_result PIOS_OPAHRS_SetGetUpdate(struct opahrs_msg_v1 *rsp, struct opahrs_msg_v1 *req);
|
||||
extern enum opahrs_result PIOS_OPAHRS_GetAttitudeRaw(struct opahrs_msg_v1 *rsp);
|
||||
extern enum opahrs_result PIOS_OPAHRS_SetAlgorithm(struct opahrs_msg_v1 *req);
|
||||
extern enum opahrs_result PIOS_OPAHRS_SetMagNorth(struct opahrs_msg_v1 *req);
|
||||
extern enum opahrs_result PIOS_OPAHRS_SetGetCalibration(struct opahrs_msg_v1 *req, struct opahrs_msg_v1 *rsp);
|
||||
extern enum opahrs_result PIOS_OPAHRS_resync(void);
|
||||
|
@ -188,6 +188,12 @@ struct opahrs_msg_v1_req_north {
|
||||
float Be[3];
|
||||
} __attribute__((__packed__));
|
||||
|
||||
enum algorithms {SIMPLE_Algo, INSGPS_Algo};
|
||||
|
||||
struct opahrs_msg_v1_req_algorithm {
|
||||
enum algorithms algorithm;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
struct opahrs_msg_v1_req_update {
|
||||
struct {
|
||||
uint8_t updated;
|
||||
@ -223,6 +229,7 @@ union opahrs_msg_v1_req {
|
||||
struct opahrs_msg_v1_req_reset reset;
|
||||
struct opahrs_msg_v1_req_serial serial;
|
||||
struct opahrs_msg_v1_req_update update;
|
||||
struct opahrs_msg_v1_req_algorithm algorithm;
|
||||
struct opahrs_msg_v1_req_north north;
|
||||
struct opahrs_msg_v1_req_attituderaw attituderaw;
|
||||
struct opahrs_msg_v1_req_calibration calibration;
|
||||
@ -244,6 +251,9 @@ struct opahrs_msg_v1_rsp_serial {
|
||||
struct opahrs_msg_v1_rsp_north {
|
||||
} __attribute__((__packed__));
|
||||
|
||||
struct opahrs_msg_v1_rsp_algorithm {
|
||||
} __attribute__((__packed__));
|
||||
|
||||
struct opahrs_msg_v1_rsp_attituderaw {
|
||||
struct {
|
||||
int16_t x;
|
||||
@ -297,6 +307,7 @@ union opahrs_msg_v1_rsp {
|
||||
struct opahrs_msg_v1_rsp_sync sync;
|
||||
struct opahrs_msg_v1_rsp_serial serial;
|
||||
struct opahrs_msg_v1_rsp_north north;
|
||||
struct opahrs_msg_v1_rsp_algorithm algorithm;
|
||||
struct opahrs_msg_v1_rsp_attituderaw attituderaw;
|
||||
struct opahrs_msg_v1_rsp_update update;
|
||||
struct opahrs_msg_v1_rsp_calibration calibration;
|
||||
@ -308,6 +319,7 @@ enum opahrs_msg_v1_tag {
|
||||
OPAHRS_MSG_V1_REQ_RESET,
|
||||
OPAHRS_MSG_V1_REQ_SERIAL,
|
||||
OPAHRS_MSG_V1_REQ_NORTH,
|
||||
OPAHRS_MSG_V1_REQ_ALGORITHM,
|
||||
OPAHRS_MSG_V1_REQ_UPDATE,
|
||||
OPAHRS_MSG_V1_REQ_ATTITUDERAW,
|
||||
OPAHRS_MSG_V1_REQ_CALIBRATION,
|
||||
@ -315,6 +327,7 @@ enum opahrs_msg_v1_tag {
|
||||
OPAHRS_MSG_V1_RSP_SYNC,
|
||||
OPAHRS_MSG_V1_RSP_SERIAL,
|
||||
OPAHRS_MSG_V1_RSP_NORTH,
|
||||
OPAHRS_MSG_V1_RSP_ALGORITHM,
|
||||
OPAHRS_MSG_V1_RSP_UPDATE,
|
||||
OPAHRS_MSG_V1_RSP_ATTITUDERAW,
|
||||
OPAHRS_MSG_V1_RSP_CALIBRATION,
|
||||
|
@ -6676,8 +6676,8 @@
|
||||
65B367E9121C2620003EAD18 /* attitudeactual.xml */,
|
||||
65B367EA121C2620003EAD18 /* attitudedesired.xml */,
|
||||
65B367EB121C2620003EAD18 /* attituderaw.xml */,
|
||||
65209A1812208B0600453371 /* baroaltitude.xml */,
|
||||
65B367EC121C2620003EAD18 /* attitudesettings.xml */,
|
||||
65209A1812208B0600453371 /* baroaltitude.xml */,
|
||||
65B367ED121C2620003EAD18 /* exampleobject1.xml */,
|
||||
65B367EE121C2620003EAD18 /* exampleobject2.xml */,
|
||||
65B367EF121C2620003EAD18 /* examplesettings.xml */,
|
||||
|
@ -1,7 +1,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
*
|
||||
* @file attitudesettings.cpp
|
||||
* @file ahrssettings.cpp
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
* @see The GNU Public License (GPL) Version 3
|
||||
* @addtogroup GCSPlugins GCS Plugins
|
||||
@ -9,7 +9,7 @@
|
||||
* @addtogroup UAVObjectsPlugin UAVObjects Plugin
|
||||
* @{
|
||||
*
|
||||
* @note Object definition file: attitudesettings.xml.
|
||||
* @note Object definition file: ahrssettings.xml.
|
||||
* This is an automatically generated file.
|
||||
* DO NOT modify manually.
|
||||
*
|
||||
@ -30,15 +30,15 @@
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#include "attitudesettings.h"
|
||||
#include "ahrssettings.h"
|
||||
#include "uavobjectfield.h"
|
||||
|
||||
const QString AttitudeSettings::NAME = QString("AttitudeSettings");
|
||||
const QString AHRSSettings::NAME = QString("AHRSSettings");
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
AttitudeSettings::AttitudeSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
AHRSSettings::AHRSSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
QList<UAVObjectField*> fields;
|
||||
@ -53,6 +53,12 @@ AttitudeSettings::AttitudeSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI
|
||||
UpdateRawEnumOptions.append("FALSE");
|
||||
UpdateRawEnumOptions.append("TRUE");
|
||||
fields.append( new UAVObjectField(QString("UpdateRaw"), QString("raw"), UAVObjectField::ENUM, UpdateRawElemNames, UpdateRawEnumOptions) );
|
||||
QStringList UpdateFilteredElemNames;
|
||||
UpdateFilteredElemNames.append("0");
|
||||
QStringList UpdateFilteredEnumOptions;
|
||||
UpdateFilteredEnumOptions.append("FALSE");
|
||||
UpdateFilteredEnumOptions.append("TRUE");
|
||||
fields.append( new UAVObjectField(QString("UpdateFiltered"), QString("raw"), UAVObjectField::ENUM, UpdateFilteredElemNames, UpdateFilteredEnumOptions) );
|
||||
QStringList UpdatePeriodElemNames;
|
||||
UpdatePeriodElemNames.append("0");
|
||||
fields.append( new UAVObjectField(QString("UpdatePeriod"), QString("ms"), UAVObjectField::INT32, UpdatePeriodElemNames, QStringList()) );
|
||||
@ -66,7 +72,7 @@ AttitudeSettings::AttitudeSettings(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTI
|
||||
/**
|
||||
* Get the default metadata for this object
|
||||
*/
|
||||
UAVObject::Metadata AttitudeSettings::getDefaultMetadata()
|
||||
UAVObject::Metadata AHRSSettings::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
metadata.flightAccess = ACCESS_READWRITE;
|
||||
@ -87,18 +93,19 @@ UAVObject::Metadata AttitudeSettings::getDefaultMetadata()
|
||||
* If a default value is not specified the object fields
|
||||
* will be initialized to zero.
|
||||
*/
|
||||
void AttitudeSettings::setDefaultFieldValues()
|
||||
void AHRSSettings::setDefaultFieldValues()
|
||||
{
|
||||
data.Algorithm = 0;
|
||||
data.UpdateRaw = 0;
|
||||
data.UpdatePeriod = 500;
|
||||
data.UpdateFiltered = 1;
|
||||
data.UpdatePeriod = 20;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the object data fields
|
||||
*/
|
||||
AttitudeSettings::DataFields AttitudeSettings::getData()
|
||||
AHRSSettings::DataFields AHRSSettings::getData()
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
return data;
|
||||
@ -107,7 +114,7 @@ AttitudeSettings::DataFields AttitudeSettings::getData()
|
||||
/**
|
||||
* Set the object data fields
|
||||
*/
|
||||
void AttitudeSettings::setData(const DataFields& data)
|
||||
void AHRSSettings::setData(const DataFields& data)
|
||||
{
|
||||
QMutexLocker locker(mutex);
|
||||
// Get metadata
|
||||
@ -126,9 +133,9 @@ void AttitudeSettings::setData(const DataFields& data)
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* AttitudeSettings::clone(quint32 instID)
|
||||
UAVDataObject* AHRSSettings::clone(quint32 instID)
|
||||
{
|
||||
AttitudeSettings* obj = new AttitudeSettings();
|
||||
AHRSSettings* obj = new AHRSSettings();
|
||||
obj->initialize(instID, this->getMetaObject());
|
||||
return obj;
|
||||
}
|
||||
@ -136,7 +143,7 @@ UAVDataObject* AttitudeSettings::clone(quint32 instID)
|
||||
/**
|
||||
* Static function to retrieve an instance of the object.
|
||||
*/
|
||||
AttitudeSettings* AttitudeSettings::GetInstance(UAVObjectManager* objMngr, quint32 instID)
|
||||
AHRSSettings* AHRSSettings::GetInstance(UAVObjectManager* objMngr, quint32 instID)
|
||||
{
|
||||
return dynamic_cast<AttitudeSettings*>(objMngr->getObject(AttitudeSettings::OBJID, instID));
|
||||
return dynamic_cast<AHRSSettings*>(objMngr->getObject(AHRSSettings::OBJID, instID));
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
*
|
||||
* @file attitudesettings.h
|
||||
* @file ahrssettings.h
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
* @see The GNU Public License (GPL) Version 3
|
||||
* @addtogroup GCSPlugins GCS Plugins
|
||||
@ -9,7 +9,7 @@
|
||||
* @addtogroup UAVObjectsPlugin UAVObjects Plugin
|
||||
* @{
|
||||
*
|
||||
* @note Object definition file: attitudesettings.xml.
|
||||
* @note Object definition file: ahrssettings.xml.
|
||||
* This is an automatically generated file.
|
||||
* DO NOT modify manually.
|
||||
*
|
||||
@ -30,13 +30,13 @@
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
#ifndef ATTITUDESETTINGS_H
|
||||
#define ATTITUDESETTINGS_H
|
||||
#ifndef AHRSSETTINGS_H
|
||||
#define AHRSSETTINGS_H
|
||||
|
||||
#include "uavdataobject.h"
|
||||
#include "uavobjectmanager.h"
|
||||
|
||||
class UAVOBJECTS_EXPORT AttitudeSettings: public UAVDataObject
|
||||
class UAVOBJECTS_EXPORT AHRSSettings: public UAVDataObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@ -45,6 +45,7 @@ public:
|
||||
typedef struct {
|
||||
quint8 Algorithm;
|
||||
quint8 UpdateRaw;
|
||||
quint8 UpdateFiltered;
|
||||
qint32 UpdatePeriod;
|
||||
|
||||
} __attribute__((packed)) DataFields;
|
||||
@ -56,25 +57,28 @@ public:
|
||||
// Field UpdateRaw information
|
||||
/* Enumeration options for field UpdateRaw */
|
||||
typedef enum { UPDATERAW_FALSE=0, UPDATERAW_TRUE=1 } UpdateRawOptions;
|
||||
// Field UpdateFiltered information
|
||||
/* Enumeration options for field UpdateFiltered */
|
||||
typedef enum { UPDATEFILTERED_FALSE=0, UPDATEFILTERED_TRUE=1 } UpdateFilteredOptions;
|
||||
// Field UpdatePeriod information
|
||||
|
||||
|
||||
// Constants
|
||||
static const quint32 OBJID = 2356162226U;
|
||||
static const quint32 OBJID = 1565605328U;
|
||||
static const QString NAME;
|
||||
static const bool ISSINGLEINST = 1;
|
||||
static const bool ISSETTINGS = 1;
|
||||
static const quint32 NUMBYTES = sizeof(DataFields);
|
||||
|
||||
// Functions
|
||||
AttitudeSettings();
|
||||
AHRSSettings();
|
||||
|
||||
DataFields getData();
|
||||
void setData(const DataFields& data);
|
||||
Metadata getDefaultMetadata();
|
||||
UAVDataObject* clone(quint32 instID);
|
||||
|
||||
static AttitudeSettings* GetInstance(UAVObjectManager* objMngr, quint32 instID = 0);
|
||||
static AHRSSettings* GetInstance(UAVObjectManager* objMngr, quint32 instID = 0);
|
||||
|
||||
private:
|
||||
DataFields data;
|
||||
@ -83,4 +87,4 @@ private:
|
||||
|
||||
};
|
||||
|
||||
#endif // ATTITUDESETTINGS_H
|
||||
#endif // AHRSSETTINGS_H
|
@ -1,12 +1,12 @@
|
||||
##
|
||||
##############################################################################
|
||||
#
|
||||
# @file attitudesettings.py
|
||||
# @file ahrssettings.py
|
||||
# @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
# @brief Implementation of the AttitudeSettings object. This file has been
|
||||
# @brief Implementation of the AHRSSettings object. This file has been
|
||||
# automatically generated by the UAVObjectGenerator.
|
||||
#
|
||||
# @note Object definition file: attitudesettings.xml.
|
||||
# @note Object definition file: ahrssettings.xml.
|
||||
# This is an automatically generated file.
|
||||
# DO NOT modify manually.
|
||||
#
|
||||
@ -60,6 +60,18 @@ _fields = [ \
|
||||
'1' : 'TRUE',
|
||||
}
|
||||
),
|
||||
uavobject.UAVObjectField(
|
||||
'UpdateFiltered',
|
||||
'b',
|
||||
1,
|
||||
[
|
||||
'0',
|
||||
],
|
||||
{
|
||||
'0' : 'FALSE',
|
||||
'1' : 'TRUE',
|
||||
}
|
||||
),
|
||||
uavobject.UAVObjectField(
|
||||
'UpdatePeriod',
|
||||
'i',
|
||||
@ -73,11 +85,11 @@ _fields = [ \
|
||||
]
|
||||
|
||||
|
||||
class AttitudeSettings(uavobject.UAVObject):
|
||||
class AHRSSettings(uavobject.UAVObject):
|
||||
## Object constants
|
||||
OBJID = 2356162226
|
||||
NAME = "AttitudeSettings"
|
||||
METANAME = "AttitudeSettingsMeta"
|
||||
OBJID = 1565605328
|
||||
NAME = "AHRSSettings"
|
||||
METANAME = "AHRSSettingsMeta"
|
||||
ISSINGLEINST = 1
|
||||
ISSETTINGS = 1
|
||||
|
||||
@ -101,7 +113,7 @@ class AttitudeSettings(uavobject.UAVObject):
|
||||
|
||||
def main():
|
||||
# Instantiate the object and dump out some interesting info
|
||||
x = AttitudeSettings()
|
||||
x = AHRSSettings()
|
||||
print (x)
|
||||
|
||||
if __name__ == "__main__":
|
@ -70,23 +70,30 @@ AhrsStatus::AhrsStatus(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
SerialNumberElemNames.append("24");
|
||||
fields.append( new UAVObjectField(QString("SerialNumber"), QString("n/a"), UAVObjectField::UINT8, SerialNumberElemNames, QStringList()) );
|
||||
QStringList CommErrorsElemNames;
|
||||
CommErrorsElemNames.append("Algorithm");
|
||||
CommErrorsElemNames.append("Update");
|
||||
CommErrorsElemNames.append("AttitudeRaw");
|
||||
CommErrorsElemNames.append("HomeLocation");
|
||||
CommErrorsElemNames.append("Calibration");
|
||||
fields.append( new UAVObjectField(QString("CommErrors"), QString("count"), UAVObjectField::UINT8, CommErrorsElemNames, QStringList()) );
|
||||
QStringList HomeSetElemNames;
|
||||
HomeSetElemNames.append("0");
|
||||
QStringList HomeSetEnumOptions;
|
||||
HomeSetEnumOptions.append("FALSE");
|
||||
HomeSetEnumOptions.append("TRUE");
|
||||
fields.append( new UAVObjectField(QString("HomeSet"), QString(""), UAVObjectField::ENUM, HomeSetElemNames, HomeSetEnumOptions) );
|
||||
QStringList AlgorithmSetElemNames;
|
||||
AlgorithmSetElemNames.append("0");
|
||||
QStringList AlgorithmSetEnumOptions;
|
||||
AlgorithmSetEnumOptions.append("FALSE");
|
||||
AlgorithmSetEnumOptions.append("TRUE");
|
||||
fields.append( new UAVObjectField(QString("AlgorithmSet"), QString(""), UAVObjectField::ENUM, AlgorithmSetElemNames, AlgorithmSetEnumOptions) );
|
||||
QStringList CalibrationSetElemNames;
|
||||
CalibrationSetElemNames.append("0");
|
||||
QStringList CalibrationSetEnumOptions;
|
||||
CalibrationSetEnumOptions.append("FALSE");
|
||||
CalibrationSetEnumOptions.append("TRUE");
|
||||
fields.append( new UAVObjectField(QString("CalibrationSet"), QString(""), UAVObjectField::ENUM, CalibrationSetElemNames, CalibrationSetEnumOptions) );
|
||||
QStringList HomeSetElemNames;
|
||||
HomeSetElemNames.append("0");
|
||||
QStringList HomeSetEnumOptions;
|
||||
HomeSetEnumOptions.append("FALSE");
|
||||
HomeSetEnumOptions.append("TRUE");
|
||||
fields.append( new UAVObjectField(QString("HomeSet"), QString(""), UAVObjectField::ENUM, HomeSetElemNames, HomeSetEnumOptions) );
|
||||
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
|
@ -44,9 +44,10 @@ public:
|
||||
// Field structure
|
||||
typedef struct {
|
||||
quint8 SerialNumber[25];
|
||||
quint8 CommErrors[4];
|
||||
quint8 HomeSet;
|
||||
quint8 CommErrors[5];
|
||||
quint8 AlgorithmSet;
|
||||
quint8 CalibrationSet;
|
||||
quint8 HomeSet;
|
||||
|
||||
} __attribute__((packed)) DataFields;
|
||||
|
||||
@ -56,19 +57,22 @@ public:
|
||||
static const quint32 SERIALNUMBER_NUMELEM = 25;
|
||||
// Field CommErrors information
|
||||
/* Array element names for field CommErrors */
|
||||
typedef enum { COMMERRORS_UPDATE=0, COMMERRORS_ATTITUDERAW=1, COMMERRORS_HOMELOCATION=2, COMMERRORS_CALIBRATION=3 } CommErrorsElem;
|
||||
typedef enum { COMMERRORS_ALGORITHM=0, COMMERRORS_UPDATE=1, COMMERRORS_ATTITUDERAW=2, COMMERRORS_HOMELOCATION=3, COMMERRORS_CALIBRATION=4 } CommErrorsElem;
|
||||
/* Number of elements for field CommErrors */
|
||||
static const quint32 COMMERRORS_NUMELEM = 4;
|
||||
// Field HomeSet information
|
||||
/* Enumeration options for field HomeSet */
|
||||
typedef enum { HOMESET_FALSE=0, HOMESET_TRUE=1 } HomeSetOptions;
|
||||
static const quint32 COMMERRORS_NUMELEM = 5;
|
||||
// Field AlgorithmSet information
|
||||
/* Enumeration options for field AlgorithmSet */
|
||||
typedef enum { ALGORITHMSET_FALSE=0, ALGORITHMSET_TRUE=1 } AlgorithmSetOptions;
|
||||
// Field CalibrationSet information
|
||||
/* Enumeration options for field CalibrationSet */
|
||||
typedef enum { CALIBRATIONSET_FALSE=0, CALIBRATIONSET_TRUE=1 } CalibrationSetOptions;
|
||||
// Field HomeSet information
|
||||
/* Enumeration options for field HomeSet */
|
||||
typedef enum { HOMESET_FALSE=0, HOMESET_TRUE=1 } HomeSetOptions;
|
||||
|
||||
|
||||
// Constants
|
||||
static const quint32 OBJID = 1048419880U;
|
||||
static const quint32 OBJID = 842145078U;
|
||||
static const QString NAME;
|
||||
static const bool ISSINGLEINST = 1;
|
||||
static const bool ISSETTINGS = 0;
|
||||
|
@ -74,8 +74,9 @@ _fields = [ \
|
||||
uavobject.UAVObjectField(
|
||||
'CommErrors',
|
||||
'B',
|
||||
4,
|
||||
5,
|
||||
[
|
||||
'Algorithm',
|
||||
'Update',
|
||||
'AttitudeRaw',
|
||||
'HomeLocation',
|
||||
@ -85,7 +86,7 @@ _fields = [ \
|
||||
}
|
||||
),
|
||||
uavobject.UAVObjectField(
|
||||
'HomeSet',
|
||||
'AlgorithmSet',
|
||||
'b',
|
||||
1,
|
||||
[
|
||||
@ -108,12 +109,24 @@ _fields = [ \
|
||||
'1' : 'TRUE',
|
||||
}
|
||||
),
|
||||
uavobject.UAVObjectField(
|
||||
'HomeSet',
|
||||
'b',
|
||||
1,
|
||||
[
|
||||
'0',
|
||||
],
|
||||
{
|
||||
'0' : 'FALSE',
|
||||
'1' : 'TRUE',
|
||||
}
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
class AhrsStatus(uavobject.UAVObject):
|
||||
## Object constants
|
||||
OBJID = 1048419880
|
||||
OBJID = 842145078
|
||||
NAME = "AhrsStatus"
|
||||
METANAME = "AhrsStatusMeta"
|
||||
ISSINGLEINST = 1
|
||||
|
@ -16,7 +16,7 @@ HEADERS += uavobjects_global.h \
|
||||
ahrscalibration.h \
|
||||
baroaltitude.h \
|
||||
attitudeactual.h \
|
||||
attitudesettings.h \
|
||||
ahrssettings.h \
|
||||
exampleobject2.h \
|
||||
exampleobject1.h \
|
||||
gcstelemetrystats.h \
|
||||
@ -52,7 +52,7 @@ SOURCES += uavobject.cpp \
|
||||
ahrscalibration.cpp \
|
||||
baroaltitude.cpp \
|
||||
attitudeactual.cpp \
|
||||
attitudesettings.cpp \
|
||||
ahrssettings.cpp \
|
||||
examplesettings.cpp \
|
||||
exampleobject2.cpp \
|
||||
exampleobject1.cpp \
|
||||
|
@ -34,11 +34,11 @@
|
||||
#include "actuatordesired.h"
|
||||
#include "actuatorsettings.h"
|
||||
#include "ahrscalibration.h"
|
||||
#include "ahrssettings.h"
|
||||
#include "ahrsstatus.h"
|
||||
#include "attitudeactual.h"
|
||||
#include "attitudedesired.h"
|
||||
#include "attituderaw.h"
|
||||
#include "attitudesettings.h"
|
||||
#include "baroaltitude.h"
|
||||
#include "exampleobject1.h"
|
||||
#include "exampleobject2.h"
|
||||
@ -72,11 +72,11 @@ void UAVObjectsInitialize(UAVObjectManager* objMngr)
|
||||
objMngr->registerObject( new ActuatorDesired() );
|
||||
objMngr->registerObject( new ActuatorSettings() );
|
||||
objMngr->registerObject( new AHRSCalibration() );
|
||||
objMngr->registerObject( new AHRSSettings() );
|
||||
objMngr->registerObject( new AhrsStatus() );
|
||||
objMngr->registerObject( new AttitudeActual() );
|
||||
objMngr->registerObject( new AttitudeDesired() );
|
||||
objMngr->registerObject( new AttitudeRaw() );
|
||||
objMngr->registerObject( new AttitudeSettings() );
|
||||
objMngr->registerObject( new BaroAltitude() );
|
||||
objMngr->registerObject( new ExampleObject1() );
|
||||
objMngr->registerObject( new ExampleObject2() );
|
||||
|
@ -1,8 +1,9 @@
|
||||
<xml>
|
||||
<object name="AttitudeSettings" singleinstance="true" settings="true">
|
||||
<object name="AHRSSettings" singleinstance="true" settings="true">
|
||||
<field name="Algorithm" units="" type="enum" elements="1" options="INSGPS" defaultvalue="INSGPS"/>
|
||||
<field name="UpdateRaw" units="raw" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="FALSE"/>
|
||||
<field name="UpdatePeriod" units="ms" type="int32" elements="1" defaultvalue="500"/>
|
||||
<field name="UpdateFiltered" units="raw" type="enum" elements="1" options="FALSE,TRUE" defaultvalue="TRUE"/>
|
||||
<field name="UpdatePeriod" units="ms" type="int32" elements="1" defaultvalue="20"/>
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||
<telemetryflight acked="true" updatemode="onchange" period="0"/>
|
@ -1,9 +1,10 @@
|
||||
<xml>
|
||||
<object name="AhrsStatus" singleinstance="true" settings="false">
|
||||
<field name="SerialNumber" units="n/a" type="uint8" elements="25"/>
|
||||
<field name="CommErrors" units="count" type="uint8" elementnames="Update,AttitudeRaw,HomeLocation,Calibration"/>
|
||||
<field name="HomeSet" units="" type="enum" elements="1" options="FALSE,TRUE"/>
|
||||
<field name="CommErrors" units="count" type="uint8" elementnames="Algorithm,Update,AttitudeRaw,HomeLocation,Calibration"/>
|
||||
<field name="AlgorithmSet" units="" type="enum" elements="1" options="FALSE,TRUE"/>
|
||||
<field name="CalibrationSet" units="" type="enum" elements="1" options="FALSE,TRUE"/>
|
||||
<field name="HomeSet" units="" type="enum" elements="1" options="FALSE,TRUE"/>
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
||||
<telemetryflight acked="false" updatemode="periodic" period="1000"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user