diff --git a/flight/OpenPilot/Makefile b/flight/OpenPilot/Makefile index 1b7aeb245..634da234b 100644 --- a/flight/OpenPilot/Makefile +++ b/flight/OpenPilot/Makefile @@ -125,7 +125,8 @@ SRC += $(OPUAVOBJ)/eventdispatcher.c ## UAVOBJECTS - +SRC += $(OPUAVOBJ)/exampleobject.c +SRC += $(OPUAVOBJ)/examplesettings.c ## PIOS Hardware (STM32F10x) SRC += $(PIOSSTM32F10X)/pios_sys.c diff --git a/flight/OpenPilot/UAVObjects/exampleobject.c b/flight/OpenPilot/UAVObjects/exampleobject.c index 7b9fdb098..a67ea27d4 100644 --- a/flight/OpenPilot/UAVObjects/exampleobject.c +++ b/flight/OpenPilot/UAVObjects/exampleobject.c @@ -44,7 +44,7 @@ int32_t ExampleObjectInitialize() UAVObjMetadata metadata; // Register object with the object manager - handle = UAVObjRegister(EXAMPLEOBJECT_OBJID, EXAMPLEOBJECT_NAME, 0, EXAMPLEOBJECT_SINGLEINST, EXAMPLEOBJECT_NUMBYTES); + handle = UAVObjRegister(EXAMPLEOBJECT_OBJID, EXAMPLEOBJECT_NAME, 0, EXAMPLEOBJECT_ISSINGLEINST, EXAMPLEOBJECT_ISSETTINGS, EXAMPLEOBJECT_NUMBYTES); if (handle == 0) return -1; // Initialize metadata diff --git a/flight/OpenPilot/UAVObjects/examplesettings.c b/flight/OpenPilot/UAVObjects/examplesettings.c new file mode 100644 index 000000000..7a76a41b3 --- /dev/null +++ b/flight/OpenPilot/UAVObjects/examplesettings.c @@ -0,0 +1,73 @@ +/** + ****************************************************************************** + * + * @file examplesettings.c + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @brief Implementation of the ExampleSettings object. This file has been + * automatically generated by the UAVObjectGenerator. + * + * @note Object definition file: examplesettings.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 + */ + +#include "examplesettings.h" + +// Private variables +UAVObjHandle handle; + +/** + * Initialize object. + * \return 0 Success + * \return -1 Failure + */ +int32_t ExampleSettingsInitialize() +{ + UAVObjMetadata metadata; + + // Register object with the object manager + handle = UAVObjRegister(EXAMPLESETTINGS_OBJID, EXAMPLESETTINGS_NAME, 0, EXAMPLESETTINGS_ISSINGLEINST, EXAMPLESETTINGS_ISSETTINGS, EXAMPLESETTINGS_NUMBYTES); + if (handle == 0) return -1; + + // Initialize metadata + metadata.telemetryAcked = 1; + metadata.telemetryUpdateMode = UPDATEMODE_ONCHANGE; + metadata.telemetryUpdatePeriod = 0; + metadata.gcsTelemetryAcked = 1; + metadata.gcsTelemetryUpdateMode = UPDATEMODE_ONCHANGE; + metadata.gcsTelemetryUpdatePeriod = 0; + metadata.loggingUpdateMode = UPDATEMODE_NEVER; + metadata.loggingUpdatePeriod = 0; + UAVObjSetMetadata(handle, &metadata); + + // Done + return 0; +} + +/** + * Get object handle + */ +UAVObjHandle ExampleSettingsGetHandle() +{ + return handle; +} + + diff --git a/flight/OpenPilot/UAVObjects/inc/exampleobject.h b/flight/OpenPilot/UAVObjects/inc/exampleobject.h index 232ef3e89..5d6367df5 100644 --- a/flight/OpenPilot/UAVObjects/inc/exampleobject.h +++ b/flight/OpenPilot/UAVObjects/inc/exampleobject.h @@ -37,7 +37,8 @@ // Object constants #define EXAMPLEOBJECT_OBJID 3048370380U #define EXAMPLEOBJECT_NAME "ExampleObject" -#define EXAMPLEOBJECT_SINGLEINST 0 +#define EXAMPLEOBJECT_ISSINGLEINST 0 +#define EXAMPLEOBJECT_ISSETTINGS 0 #define EXAMPLEOBJECT_NUMBYTES sizeof(ExampleObjectData) // Data access macros diff --git a/flight/OpenPilot/UAVObjects/inc/examplesettings.h b/flight/OpenPilot/UAVObjects/inc/examplesettings.h new file mode 100644 index 000000000..17f0f0774 --- /dev/null +++ b/flight/OpenPilot/UAVObjects/inc/examplesettings.h @@ -0,0 +1,61 @@ +/** + ****************************************************************************** + * + * @file examplesettings.h + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @brief Implementation of the ExampleSettings object. This file has been + * automatically generated by the UAVObjectGenerator. + * + * @note Object definition file: examplesettings.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 EXAMPLESETTINGS_H +#define EXAMPLESETTINGS_H + +#include "openpilot.h" + +// Object constants +#define EXAMPLESETTINGS_OBJID 3555345034U +#define EXAMPLESETTINGS_NAME "ExampleSettings" +#define EXAMPLESETTINGS_ISSINGLEINST 1 +#define EXAMPLESETTINGS_ISSETTINGS 1 +#define EXAMPLESETTINGS_NUMBYTES sizeof(ExampleSettingsData) + +// Data access macros +#define ExampleSettingsGet(dataOut) UAVObjGetData(ExampleSettingsGetHandle(), dataOut) +#define ExampleSettingsSet(dataIn) UAVObjSetData(ExampleSettingsGetHandle(), dataIn) + +// Object data +typedef struct { + int8_t setting1; + int16_t setting2; + int8_t setting3; + int32_t setting4; + +} __attribute__((packed)) ExampleSettingsData; + +// Generic interface functions +int32_t ExampleSettingsInitialize(); +UAVObjHandle ExampleSettingsGetHandle(); + +#endif // EXAMPLESETTINGS_H diff --git a/flight/OpenPilot/UAVObjects/inc/uavobjecttemplate.h b/flight/OpenPilot/UAVObjects/inc/uavobjecttemplate.h index 49558b96b..dbe3d7870 100644 --- a/flight/OpenPilot/UAVObjects/inc/uavobjecttemplate.h +++ b/flight/OpenPilot/UAVObjects/inc/uavobjecttemplate.h @@ -37,7 +37,8 @@ // Object constants #define $(NAMEUC)_OBJID $(OBJID)U #define $(NAMEUC)_NAME "$(NAME)" -#define $(NAMEUC)_SINGLEINST $(SINGLEINST) +#define $(NAMEUC)_ISSINGLEINST $(ISSINGLEINST) +#define $(NAMEUC)_ISSETTINGS $(ISSETTINGS) #define $(NAMEUC)_NUMBYTES sizeof($(NAME)Data) // Data access macros diff --git a/flight/OpenPilot/UAVObjects/uavobjectsinit.c b/flight/OpenPilot/UAVObjects/uavobjectsinit.c index feba850d2..7862782a8 100644 --- a/flight/OpenPilot/UAVObjects/uavobjectsinit.c +++ b/flight/OpenPilot/UAVObjects/uavobjectsinit.c @@ -29,6 +29,7 @@ #include "openpilot.h" #include "exampleobject.h" +#include "examplesettings.h" /** @@ -38,5 +39,6 @@ void UAVObjectsInitializeAll() { ExampleObjectInitialize(); + ExampleSettingsInitialize(); } diff --git a/flight/OpenPilot/UAVObjects/uavobjecttemplate.c b/flight/OpenPilot/UAVObjects/uavobjecttemplate.c index 5d58abb23..d6a6825e1 100644 --- a/flight/OpenPilot/UAVObjects/uavobjecttemplate.c +++ b/flight/OpenPilot/UAVObjects/uavobjecttemplate.c @@ -44,7 +44,7 @@ int32_t $(NAME)Initialize() UAVObjMetadata metadata; // Register object with the object manager - handle = UAVObjRegister($(NAMEUC)_OBJID, $(NAMEUC)_NAME, 0, $(NAMEUC)_SINGLEINST, $(NAMEUC)_NUMBYTES); + handle = UAVObjRegister($(NAMEUC)_OBJID, $(NAMEUC)_NAME, 0, $(NAMEUC)_ISSINGLEINST, $(NAMEUC)_ISSETTINGS, $(NAMEUC)_NUMBYTES); if (handle == 0) return -1; // Initialize metadata