mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-19 09:54:15 +01:00
Rename template files to *.template to screen from uncrustify processing
This commit is contained in:
parent
a5f87bea62
commit
0394a3511c
@ -17,8 +17,8 @@
|
||||
65904F2614632C1700FD9482 /* board-info.mk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "board-info.mk"; sourceTree = "<group>"; };
|
||||
65904F2714632C1700FD9482 /* board-info.mk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "board-info.mk"; sourceTree = "<group>"; };
|
||||
65904F2814632C1700FD9482 /* version-info.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = "version-info.py"; sourceTree = "<group>"; };
|
||||
65904F2914632C1700FD9482 /* firmwareinfotemplate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = firmwareinfotemplate.c; sourceTree = "<group>"; };
|
||||
65904F2A14632C1700FD9482 /* gcsversioninfotemplate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gcsversioninfotemplate.h; sourceTree = "<group>"; };
|
||||
65904F2914632C1700FD9482 /* firmware_info.c.template */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = firmware_info.c.template; sourceTree = "<group>"; };
|
||||
65904F2A14632C1700FD9482 /* gcs_version_info.h.template */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gcs_version_info.h.template; sourceTree = "<group>"; };
|
||||
65904F2D14632C1700FD9482 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
|
||||
65904F2E14632C1700FD9482 /* shell_script.reg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = shell_script.reg; sourceTree = "<group>"; };
|
||||
65904F2F14632C1700FD9482 /* install */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = install; sourceTree = "<group>"; };
|
||||
@ -79,8 +79,8 @@
|
||||
65904F1A14632C1700FD9482 /* templates */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
65904F2914632C1700FD9482 /* firmwareinfotemplate.c */,
|
||||
65904F2A14632C1700FD9482 /* gcsversioninfotemplate.h */,
|
||||
65904F2914632C1700FD9482 /* firmware_info.c.template */,
|
||||
65904F2A14632C1700FD9482 /* gcs_version_info.h.template */,
|
||||
);
|
||||
path = templates;
|
||||
sourceTree = "<group>";
|
||||
|
@ -30,31 +30,21 @@
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
|
||||
from uavobject import *
|
||||
|
||||
$(DATAFIELDS)
|
||||
|
||||
# Object $(NAME) definition
|
||||
class $(NAME)(UAVObject):
|
||||
# Object constants
|
||||
OBJID = $(UOBJID)
|
||||
# Object constants
|
||||
OBJID = $(UOBJID)
|
||||
|
||||
# Constructor
|
||||
def __init__(self):
|
||||
UAVObject.__init__(self, $(NAME).OBJID)
|
||||
# Constructor
|
||||
def __init__(self):
|
||||
UAVObject.__init__(self, $(NAME).OBJID)
|
||||
|
||||
# Create object fields
|
||||
# Create object fields
|
||||
$(DATAFIELDINIT)
|
||||
# Read field data
|
||||
self.read()
|
||||
self.metadata.read()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Read field data
|
||||
self.read()
|
||||
self.metadata.read()
|
@ -257,7 +257,7 @@ ALLSRC = $(ASRCARM) $(ASRC) $(SRCARM) $(SRC) $(CPPSRCARM) $(CPPSRC)
|
||||
ALLSRCBASE = $(notdir $(basename $(ALLSRC)))
|
||||
|
||||
# Define all object files.
|
||||
ALLOBJ = $(addprefix $(OUTDIR)/, $(addsuffix .o, $(ALLSRCBASE) uavobjectsinit.o.firmwareinfo ))
|
||||
ALLOBJ = $(addprefix $(OUTDIR)/, $(addsuffix .o, $(ALLSRCBASE) uavobjectsinit.o.firmware_info ))
|
||||
|
||||
# Define all listing files (used for make clean).
|
||||
LSTFILES = $(addprefix $(OUTDIR)/, $(addsuffix .lst, $(ALLSRCBASE)))
|
||||
|
@ -38,7 +38,7 @@ bin: $(OUTDIR)/$(TARGET).bin
|
||||
|
||||
BL_BIN = $(BUILD_DIR)/bl_$(BOARD_NAME)/bl_$(BOARD_NAME).bin
|
||||
FW_BIN = $(BUILD_DIR)/fw_$(BOARD_NAME)/fw_$(BOARD_NAME).bin
|
||||
FWINFO_BIN = $(FW_BIN).firmwareinfo.bin
|
||||
FWINFO_BIN = $(FW_BIN).firmware_info.bin
|
||||
|
||||
$(OUTDIR)/$(TARGET).bin: $(BL_BIN) $(FW_BIN)
|
||||
$(V0) @$(ECHO) $(MSG_FLASH_IMG) $@
|
||||
|
@ -6,11 +6,11 @@
|
||||
* @brief $(DESCRIPTION)
|
||||
*
|
||||
* Autogenerated files and functions for $(NAME) Object
|
||||
|
||||
*
|
||||
* @{
|
||||
*
|
||||
* @file $(NAMELC).h
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010-2013.
|
||||
* @brief Implementation of the $(NAME) object. This file has been
|
||||
* automatically generated by the UAVObjectGenerator.
|
||||
*
|
||||
@ -40,68 +40,51 @@
|
||||
#ifndef $(NAMEUC)_H
|
||||
#define $(NAMEUC)_H
|
||||
|
||||
// Object constants
|
||||
/* Object constants */
|
||||
#define $(NAMEUC)_OBJID $(OBJIDHEX)
|
||||
#define $(NAMEUC)_ISSINGLEINST $(ISSINGLEINST)
|
||||
#define $(NAMEUC)_ISSETTINGS $(ISSETTINGS)
|
||||
#define $(NAMEUC)_NUMBYTES sizeof($(NAME)Data)
|
||||
|
||||
// Generic interface functions
|
||||
/* Generic interface functions */
|
||||
int32_t $(NAME)Initialize();
|
||||
UAVObjHandle $(NAME)Handle();
|
||||
void $(NAME)SetDefaults(UAVObjHandle obj, uint16_t instId);
|
||||
|
||||
// Packed Object data (unaligned).
|
||||
// Should only be used where 4 byte alignment can be guaranteed
|
||||
// (eg a single instance on the heap)
|
||||
typedef struct {
|
||||
$(DATAFIELDS)
|
||||
} __attribute__((packed)) $(NAME)DataPacked;
|
||||
|
||||
// Packed Object data.
|
||||
// Alignment is forced to 4 bytes so as to avoid the potential for CPU usage faults
|
||||
// on Cortex M4F during load/store of float UAVO fields
|
||||
typedef $(NAME)DataPacked __attribute__((aligned(4))) $(NAME)Data;
|
||||
|
||||
|
||||
// Typesafe Object access functions
|
||||
/**
|
||||
* @function $(NAME)Get(dataOut)
|
||||
* @brief Populate a $(NAME)Data object
|
||||
* @param[out] dataOut
|
||||
/*
|
||||
* Packed Object data (unaligned).
|
||||
* Should only be used where 4 byte alignment can be guaranteed
|
||||
* (eg a single instance on the heap)
|
||||
*/
|
||||
typedef struct {
|
||||
$(DATAFIELDS)} __attribute__((packed)) $(NAME)DataPacked;
|
||||
|
||||
/*
|
||||
* Packed Object data.
|
||||
* Alignment is forced to 4 bytes so as to avoid the potential for CPU usage faults
|
||||
* on Cortex M4F during load/store of float UAVO fields
|
||||
*/
|
||||
typedef $(NAME)DataPacked __attribute__((aligned(4))) $(NAME)Data;
|
||||
|
||||
/* Typesafe Object access functions */
|
||||
static inline int32_t $(NAME)Get($(NAME)Data *dataOut) { return UAVObjGetData($(NAME)Handle(), dataOut); }
|
||||
|
||||
static inline int32_t $(NAME)Set(const $(NAME)Data *dataIn) { return UAVObjSetData($(NAME)Handle(), dataIn); }
|
||||
|
||||
static inline int32_t $(NAME)InstGet(uint16_t instId, $(NAME)Data *dataOut) { return UAVObjGetInstanceData($(NAME)Handle(), instId, dataOut); }
|
||||
|
||||
static inline int32_t $(NAME)InstSet(uint16_t instId, const $(NAME)Data *dataIn) { return UAVObjSetInstanceData($(NAME)Handle(), instId, dataIn); }
|
||||
|
||||
static inline int32_t $(NAME)ConnectQueue(xQueueHandle queue) { return UAVObjConnectQueue($(NAME)Handle(), queue, EV_MASK_ALL_UPDATES); }
|
||||
|
||||
static inline int32_t $(NAME)ConnectCallback(UAVObjEventCallback cb) { return UAVObjConnectCallback($(NAME)Handle(), cb, EV_MASK_ALL_UPDATES); }
|
||||
|
||||
static inline uint16_t $(NAME)CreateInstance() { return UAVObjCreateInstance($(NAME)Handle(), &$(NAME)SetDefaults); }
|
||||
|
||||
static inline void $(NAME)RequestUpdate() { UAVObjRequestUpdate($(NAME)Handle()); }
|
||||
|
||||
static inline void $(NAME)RequestInstUpdate(uint16_t instId) { UAVObjRequestInstanceUpdate($(NAME)Handle(), instId); }
|
||||
|
||||
static inline void $(NAME)Updated() { UAVObjUpdated($(NAME)Handle()); }
|
||||
|
||||
static inline void $(NAME)InstUpdated(uint16_t instId) { UAVObjInstanceUpdated($(NAME)Handle(), instId); }
|
||||
|
||||
static inline int32_t $(NAME)GetMetadata(UAVObjMetadata *dataOut) { return UAVObjGetMetadata($(NAME)Handle(), dataOut); }
|
||||
|
||||
static inline int32_t $(NAME)SetMetadata(const UAVObjMetadata *dataIn) { return UAVObjSetMetadata($(NAME)Handle(), dataIn); }
|
||||
|
||||
static inline int8_t $(NAME)ReadOnly() { return UAVObjReadOnly($(NAME)Handle()); }
|
||||
|
||||
// Field information
|
||||
$(DATAFIELDINFO)
|
||||
|
||||
// set/Get functions
|
||||
/* Set/Get functions */
|
||||
$(SETGETFIELDSEXTERN)
|
||||
|
||||
#endif // $(NAMEUC)_H
|
@ -9,7 +9,7 @@
|
||||
* @{
|
||||
*
|
||||
* @file $(NAMELC).c
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010-2013.
|
||||
* @brief Implementation of the $(NAME) object. This file has been
|
||||
* automatically generated by the UAVObjectGenerator.
|
||||
*
|
||||
@ -36,7 +36,7 @@
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "openpilot.h"
|
||||
#include <openpilot.h>
|
||||
#include "$(NAMELC).h"
|
||||
|
||||
// Private variables
|
||||
@ -53,28 +53,22 @@ static UAVObjHandle handle __attribute__((section("_uavo_handles")));
|
||||
*/
|
||||
int32_t $(NAME)Initialize(void)
|
||||
{
|
||||
// Compile time assertion that the $(NAME)DataPacked and $(NAME)Data structs
|
||||
// have the same size (though instances of $(NAME)Data
|
||||
// should be placed in memory by the linker/compiler on a 4 byte alignment).
|
||||
PIOS_STATIC_ASSERT(sizeof($(NAME)DataPacked) == sizeof($(NAME)Data));
|
||||
// Compile time assertion that the $(NAME)DataPacked and $(NAME)Data structs
|
||||
// have the same size (though instances of $(NAME)Data
|
||||
// should be placed in memory by the linker/compiler on a 4 byte alignment).
|
||||
PIOS_STATIC_ASSERT(sizeof($(NAME)DataPacked) == sizeof($(NAME)Data));
|
||||
|
||||
// Don't set the handle to null if already registered
|
||||
if(UAVObjGetByID($(NAMEUC)_OBJID) != NULL)
|
||||
return -2;
|
||||
|
||||
// Register object with the object manager
|
||||
handle = UAVObjRegister($(NAMEUC)_OBJID,
|
||||
$(NAMEUC)_ISSINGLEINST, $(NAMEUC)_ISSETTINGS, $(NAMEUC)_NUMBYTES, &$(NAME)SetDefaults);
|
||||
// Don't set the handle to null if already registered
|
||||
if (UAVObjGetByID($(NAMEUC)_OBJID)) {
|
||||
return -2;
|
||||
}
|
||||
|
||||
// Done
|
||||
if (handle != 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// Register object with the object manager
|
||||
handle = UAVObjRegister($(NAMEUC)_OBJID,
|
||||
$(NAMEUC)_ISSINGLEINST, $(NAMEUC)_ISSETTINGS, $(NAMEUC)_NUMBYTES, &$(NAME)SetDefaults);
|
||||
|
||||
// Done
|
||||
return handle ? 0 : -1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -84,27 +78,27 @@ int32_t $(NAME)Initialize(void)
|
||||
*/
|
||||
void $(NAME)SetDefaults(UAVObjHandle obj, uint16_t instId)
|
||||
{
|
||||
$(NAME)Data data;
|
||||
UAVObjMetadata metadata;
|
||||
$(NAME)Data data;
|
||||
UAVObjMetadata metadata;
|
||||
|
||||
// Initialize object fields to their default values
|
||||
UAVObjGetInstanceData(obj, instId, &data);
|
||||
memset(&data, 0, sizeof($(NAME)Data));
|
||||
// Initialize object fields to their default values
|
||||
UAVObjGetInstanceData(obj, instId, &data);
|
||||
memset(&data, 0, sizeof($(NAME)Data));
|
||||
$(INITFIELDS)
|
||||
UAVObjSetInstanceData(obj, instId, &data);
|
||||
UAVObjSetInstanceData(obj, instId, &data);
|
||||
|
||||
// Initialize object metadata to their default values
|
||||
metadata.flags =
|
||||
$(FLIGHTACCESS) << UAVOBJ_ACCESS_SHIFT |
|
||||
$(GCSACCESS) << UAVOBJ_GCS_ACCESS_SHIFT |
|
||||
$(FLIGHTTELEM_ACKED) << UAVOBJ_TELEMETRY_ACKED_SHIFT |
|
||||
$(GCSTELEM_ACKED) << UAVOBJ_GCS_TELEMETRY_ACKED_SHIFT |
|
||||
$(FLIGHTTELEM_UPDATEMODE) << UAVOBJ_TELEMETRY_UPDATE_MODE_SHIFT |
|
||||
$(GCSTELEM_UPDATEMODE) << UAVOBJ_GCS_TELEMETRY_UPDATE_MODE_SHIFT;
|
||||
metadata.telemetryUpdatePeriod = $(FLIGHTTELEM_UPDATEPERIOD);
|
||||
metadata.gcsTelemetryUpdatePeriod = $(GCSTELEM_UPDATEPERIOD);
|
||||
metadata.loggingUpdatePeriod = $(LOGGING_UPDATEPERIOD);
|
||||
UAVObjSetMetadata(obj, &metadata);
|
||||
// Initialize object metadata to their default values
|
||||
metadata.flags =
|
||||
$(FLIGHTACCESS) << UAVOBJ_ACCESS_SHIFT |
|
||||
$(GCSACCESS) << UAVOBJ_GCS_ACCESS_SHIFT |
|
||||
$(FLIGHTTELEM_ACKED) << UAVOBJ_TELEMETRY_ACKED_SHIFT |
|
||||
$(GCSTELEM_ACKED) << UAVOBJ_GCS_TELEMETRY_ACKED_SHIFT |
|
||||
$(FLIGHTTELEM_UPDATEMODE) << UAVOBJ_TELEMETRY_UPDATE_MODE_SHIFT |
|
||||
$(GCSTELEM_UPDATEMODE) << UAVOBJ_GCS_TELEMETRY_UPDATE_MODE_SHIFT;
|
||||
metadata.telemetryUpdatePeriod = $(FLIGHTTELEM_UPDATEPERIOD);
|
||||
metadata.gcsTelemetryUpdatePeriod = $(GCSTELEM_UPDATEPERIOD);
|
||||
metadata.loggingUpdatePeriod = $(LOGGING_UPDATEPERIOD);
|
||||
UAVObjSetMetadata(obj, &metadata);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -112,7 +106,7 @@ $(INITFIELDS)
|
||||
*/
|
||||
UAVObjHandle $(NAME)Handle()
|
||||
{
|
||||
return handle;
|
||||
return handle;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -123,4 +117,3 @@ $(SETGETFIELDS)
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
@ -27,7 +27,7 @@
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "openpilot.h"
|
||||
#include <openpilot.h>
|
||||
$(OBJINC)
|
||||
|
||||
/**
|
4
ground/.gitattributes
vendored
4
ground/.gitattributes
vendored
@ -15,3 +15,7 @@
|
||||
|
||||
*.pri text eol=crlf
|
||||
*.pro text eol=crlf
|
||||
|
||||
*.h.template text eol=crlf
|
||||
*.c.template text eol=crlf
|
||||
*.cpp.template text eol=crlf
|
||||
|
@ -34,7 +34,7 @@ PYTHON_DIR = python-2.7.4
|
||||
VERSION_INFO_DIR = $$GCS_BUILD_TREE/../openpilotgcs-synthetics
|
||||
VERSION_INFO_HEADER = $$VERSION_INFO_DIR/gcs_version_info.h
|
||||
VERSION_INFO_SCRIPT = $$ROOT_DIR/make/scripts/version-info.py
|
||||
VERSION_INFO_TEMPLATE = $$ROOT_DIR/make/templates/gcs_version_info_template.h
|
||||
VERSION_INFO_TEMPLATE = $$ROOT_DIR/make/templates/gcs_version_info.h.template
|
||||
VERSION_INFO_COMMAND = $$PYTHON \"$$VERSION_INFO_SCRIPT\"
|
||||
UAVO_DEF_PATH = $$ROOT_DIR/shared/uavobjectdefinition
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
*
|
||||
* @file uavobjecttemplate.cpp
|
||||
* @file $(NAME).java
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
* @brief Template for an uavobject in java
|
||||
* $(GENERATEDWARNING)
|
@ -2,7 +2,7 @@
|
||||
******************************************************************************
|
||||
*
|
||||
*
|
||||
* @file uavobjectsinittemplate.java
|
||||
* @file UAVObjectsInitialize.java
|
||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
||||
* @brief the template for the uavobjects init part
|
||||
* $(GENERATEDWARNING)
|
@ -30,6 +30,7 @@
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "$(NAMELC).h"
|
||||
#include "uavobjectfield.h"
|
||||
|
||||
@ -43,10 +44,10 @@ const QString $(NAME)::CATEGORY = QString("$(CATEGORY)");
|
||||
$(NAME)::$(NAME)(): UAVDataObject(OBJID, ISSINGLEINST, ISSETTINGS, NAME)
|
||||
{
|
||||
// Create fields
|
||||
QList<UAVObjectField*> fields;
|
||||
QList<UAVObjectField *> fields;
|
||||
$(FIELDSINIT)
|
||||
// Initialize object
|
||||
initializeFields(fields, (quint8*)&data, NUMBYTES);
|
||||
initializeFields(fields, (quint8 *)&data, NUMBYTES);
|
||||
// Set the default field values
|
||||
setDefaultFieldValues();
|
||||
// Set the object description
|
||||
@ -55,8 +56,7 @@ $(FIELDSINIT)
|
||||
// Set the Category of this object type
|
||||
setCategory(CATEGORY);
|
||||
|
||||
connect(this, SIGNAL(objectUpdated(UAVObject*)),
|
||||
SLOT(emitNotifications()));
|
||||
connect(this, SIGNAL(objectUpdated(UAVObject *)), SLOT(emitNotifications()));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -66,12 +66,12 @@ UAVObject::Metadata $(NAME)::getDefaultMetadata()
|
||||
{
|
||||
UAVObject::Metadata metadata;
|
||||
metadata.flags =
|
||||
$(FLIGHTACCESS) << UAVOBJ_ACCESS_SHIFT |
|
||||
$(GCSACCESS) << UAVOBJ_GCS_ACCESS_SHIFT |
|
||||
$(FLIGHTTELEM_ACKED) << UAVOBJ_TELEMETRY_ACKED_SHIFT |
|
||||
$(GCSTELEM_ACKED) << UAVOBJ_GCS_TELEMETRY_ACKED_SHIFT |
|
||||
$(FLIGHTTELEM_UPDATEMODE) << UAVOBJ_TELEMETRY_UPDATE_MODE_SHIFT |
|
||||
$(GCSTELEM_UPDATEMODE) << UAVOBJ_GCS_TELEMETRY_UPDATE_MODE_SHIFT;
|
||||
$(FLIGHTACCESS) << UAVOBJ_ACCESS_SHIFT |
|
||||
$(GCSACCESS) << UAVOBJ_GCS_ACCESS_SHIFT |
|
||||
$(FLIGHTTELEM_ACKED) << UAVOBJ_TELEMETRY_ACKED_SHIFT |
|
||||
$(GCSTELEM_ACKED) << UAVOBJ_GCS_TELEMETRY_ACKED_SHIFT |
|
||||
$(FLIGHTTELEM_UPDATEMODE) << UAVOBJ_TELEMETRY_UPDATE_MODE_SHIFT |
|
||||
$(GCSTELEM_UPDATEMODE) << UAVOBJ_GCS_TELEMETRY_UPDATE_MODE_SHIFT;
|
||||
metadata.flightTelemetryUpdatePeriod = $(FLIGHTTELEM_UPDATEPERIOD);
|
||||
metadata.gcsTelemetryUpdatePeriod = $(GCSTELEM_UPDATEPERIOD);
|
||||
metadata.loggingUpdatePeriod = $(LOGGING_UPDATEPERIOD);
|
||||
@ -106,8 +106,7 @@ void $(NAME)::setData(const DataFields& data)
|
||||
// Get metadata
|
||||
Metadata mdata = getMetadata();
|
||||
// Update object if the access mode permits
|
||||
if ( UAVObject::GetGcsAccess(mdata) == ACCESS_READWRITE )
|
||||
{
|
||||
if (UAVObject::GetGcsAccess(mdata) == ACCESS_READWRITE) {
|
||||
this->data = data;
|
||||
emit objectUpdatedAuto(this); // trigger object updated event
|
||||
emit objectUpdated(this);
|
||||
@ -124,9 +123,9 @@ void $(NAME)::emitNotifications()
|
||||
* Do not use this function directly to create new instances, the
|
||||
* UAVObjectManager should be used instead.
|
||||
*/
|
||||
UAVDataObject* $(NAME)::clone(quint32 instID)
|
||||
UAVDataObject *$(NAME)::clone(quint32 instID)
|
||||
{
|
||||
$(NAME)* obj = new $(NAME)();
|
||||
$(NAME) *obj = new $(NAME)();
|
||||
obj->initialize(instID, this->getMetaObject());
|
||||
return obj;
|
||||
}
|
||||
@ -134,18 +133,18 @@ UAVDataObject* $(NAME)::clone(quint32 instID)
|
||||
/**
|
||||
* Create a clone of this object only to be used to retrieve defaults
|
||||
*/
|
||||
UAVDataObject* $(NAME)::dirtyClone()
|
||||
UAVDataObject *$(NAME)::dirtyClone()
|
||||
{
|
||||
$(NAME)* obj = new $(NAME)();
|
||||
$(NAME) *obj = new $(NAME)();
|
||||
return obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* Static function to retrieve an instance of the object.
|
||||
*/
|
||||
$(NAME)* $(NAME)::GetInstance(UAVObjectManager* objMngr, quint32 instID)
|
||||
$(NAME) *$(NAME)::GetInstance(UAVObjectManager *objMngr, quint32 instID)
|
||||
{
|
||||
return dynamic_cast<$(NAME)*>(objMngr->getObject($(NAME)::OBJID, instID));
|
||||
return dynamic_cast<$(NAME) *>(objMngr->getObject($(NAME)::OBJID, instID));
|
||||
}
|
||||
|
||||
$(PROPERTIES_IMPL)
|
@ -29,14 +29,16 @@
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "uavobjectsinit.h"
|
||||
|
||||
$(OBJINC)
|
||||
|
||||
/**
|
||||
* Function used to initialize the first instance of each object.
|
||||
* This file is automatically updated by the UAVObjectGenerator.
|
||||
*/
|
||||
void UAVObjectsInitialize(UAVObjectManager* objMngr)
|
||||
void UAVObjectsInitialize(UAVObjectManager *objMngr)
|
||||
{
|
||||
$(OBJINIT)
|
||||
}
|
@ -35,15 +35,15 @@ bool UAVObjectGeneratorFlight::generate(UAVObjectParser* parser,QString template
|
||||
|
||||
QString flightObjInit,objInc,objFileNames,objNames;
|
||||
qint32 sizeCalc;
|
||||
flightCodePath = QDir( templatepath + QString("flight/uavobjects"));
|
||||
flightCodePath = QDir( templatepath + QString(FLIGHT_CODE_DIR));
|
||||
flightOutputPath = QDir( outputpath + QString("flight") );
|
||||
flightOutputPath.mkpath(flightOutputPath.absolutePath());
|
||||
|
||||
flightCodeTemplate = readFile( flightCodePath.absoluteFilePath("uavobjecttemplate.c") );
|
||||
flightIncludeTemplate = readFile( flightCodePath.absoluteFilePath("inc/uavobjecttemplate.h") );
|
||||
flightInitTemplate = readFile( flightCodePath.absoluteFilePath("uavobjectsinittemplate.c") );
|
||||
flightInitIncludeTemplate = readFile( flightCodePath.absoluteFilePath("inc/uavobjectsinittemplate.h") );
|
||||
flightMakeTemplate = readFile( flightCodePath.absoluteFilePath("Makefiletemplate.inc") );
|
||||
flightCodeTemplate = readFile( flightCodePath.absoluteFilePath("uavobject.c.template") );
|
||||
flightIncludeTemplate = readFile( flightCodePath.absoluteFilePath("inc/uavobject.h.template") );
|
||||
flightInitTemplate = readFile( flightCodePath.absoluteFilePath("uavobjectsinit.c.template") );
|
||||
flightInitIncludeTemplate = readFile( flightCodePath.absoluteFilePath("inc/uavobjectsinit.h.template") );
|
||||
flightMakeTemplate = readFile( flightCodePath.absoluteFilePath("Makefile.inc.template") );
|
||||
|
||||
if ( flightCodeTemplate.isNull() || flightIncludeTemplate.isNull() || flightInitTemplate.isNull()) {
|
||||
cerr << "Error: Could not open flight template files." << endl;
|
||||
@ -54,10 +54,10 @@ bool UAVObjectGeneratorFlight::generate(UAVObjectParser* parser,QString template
|
||||
for (int objidx = 0; objidx < parser->getNumObjects(); ++objidx) {
|
||||
ObjectInfo* info=parser->getObjectByIndex(objidx);
|
||||
process_object(info);
|
||||
flightObjInit.append("#ifdef UAVOBJ_INIT_" + info->namelc +"\r\n");
|
||||
flightObjInit.append(" " + info->name + "Initialize();\r\n");
|
||||
flightObjInit.append("#endif\r\n");
|
||||
objInc.append("#include \"" + info->namelc + ".h\"\r\n");
|
||||
flightObjInit.append("#ifdef UAVOBJ_INIT_" + info->namelc +"\n");
|
||||
flightObjInit.append(" " + info->name + "Initialize();\n");
|
||||
flightObjInit.append("#endif\n");
|
||||
objInc.append("#include \"" + info->namelc + ".h\"\n");
|
||||
objFileNames.append(" " + info->namelc);
|
||||
objNames.append(" " + info->name);
|
||||
if (parser->getNumBytes(objidx)>sizeCalc) {
|
||||
@ -124,12 +124,12 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo* info)
|
||||
// Append field
|
||||
if ( info->fields[n]->numElements > 1 )
|
||||
{
|
||||
fields.append( QString(" %1 %2[%3];\r\n").arg(type)
|
||||
fields.append( QString(" %1 %2[%3];\n").arg(type)
|
||||
.arg(info->fields[n]->name).arg(info->fields[n]->numElements) );
|
||||
}
|
||||
else
|
||||
{
|
||||
fields.append( QString(" %1 %2;\r\n").arg(type).arg(info->fields[n]->name) );
|
||||
fields.append( QString(" %1 %2;\n").arg(type).arg(info->fields[n]->name) );
|
||||
}
|
||||
}
|
||||
outInclude.replace(QString("$(DATAFIELDS)"), fields);
|
||||
@ -138,16 +138,16 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo* info)
|
||||
QString enums;
|
||||
for (int n = 0; n < info->fields.length(); ++n)
|
||||
{
|
||||
enums.append(QString("// Field %1 information\r\n").arg(info->fields[n]->name));
|
||||
enums.append(QString("/* Field %1 information */\n").arg(info->fields[n]->name));
|
||||
// Only for enum types
|
||||
if (info->fields[n]->type == FIELDTYPE_ENUM)
|
||||
{
|
||||
enums.append(QString("/* Enumeration options for field %1 */\r\n").arg(info->fields[n]->name));
|
||||
enums.append("typedef enum { ");
|
||||
enums.append(QString("\n// Enumeration options for field %1\n").arg(info->fields[n]->name));
|
||||
enums.append("typedef enum {\n");
|
||||
// Go through each option
|
||||
QStringList options = info->fields[n]->options;
|
||||
for (int m = 0; m < options.length(); ++m) {
|
||||
QString s = (m == (options.length()-1)) ? "%1_%2_%3=%4" : "%1_%2_%3=%4, ";
|
||||
QString s = (m == (options.length()-1)) ? " %1_%2_%3=%4\n" : " %1_%2_%3=%4,\n";
|
||||
enums.append( s
|
||||
.arg( info->name.toUpper() )
|
||||
.arg( info->fields[n]->name.toUpper() )
|
||||
@ -155,20 +155,20 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo* info)
|
||||
.arg(m) );
|
||||
|
||||
}
|
||||
enums.append( QString(" } %1%2Options;\r\n")
|
||||
enums.append( QString("} %1%2Options;\n")
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name ) );
|
||||
}
|
||||
// Generate element names (only if field has more than one element)
|
||||
if (info->fields[n]->numElements > 1 && !info->fields[n]->defaultElementNames)
|
||||
{
|
||||
enums.append(QString("/* Array element names for field %1 */\r\n").arg(info->fields[n]->name));
|
||||
enums.append("typedef enum { ");
|
||||
enums.append(QString("\n// Array element names for field %1\n").arg(info->fields[n]->name));
|
||||
enums.append("typedef enum {\n");
|
||||
// Go through the element names
|
||||
QStringList elemNames = info->fields[n]->elementNames;
|
||||
for (int m = 0; m < elemNames.length(); ++m)
|
||||
{
|
||||
QString s = (m != (elemNames.length()-1)) ? "%1_%2_%3=%4, " : "%1_%2_%3=%4";
|
||||
QString s = (m != (elemNames.length()-1)) ? " %1_%2_%3=%4,\n" : " %1_%2_%3=%4\n";
|
||||
enums.append( s
|
||||
.arg( info->name.toUpper() )
|
||||
.arg( info->fields[n]->name.toUpper() )
|
||||
@ -176,19 +176,21 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo* info)
|
||||
.arg(m) );
|
||||
|
||||
}
|
||||
enums.append( QString(" } %1%2Elem;\r\n")
|
||||
enums.append( QString("} %1%2Elem;\n")
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name ) );
|
||||
}
|
||||
// Generate array information
|
||||
if (info->fields[n]->numElements > 1)
|
||||
{
|
||||
enums.append(QString("/* Number of elements for field %1 */\r\n").arg(info->fields[n]->name));
|
||||
enums.append( QString("#define %1_%2_NUMELEM %3\r\n")
|
||||
enums.append(QString("\n// Number of elements for field %1\n").arg(info->fields[n]->name));
|
||||
enums.append( QString("#define %1_%2_NUMELEM %3\n")
|
||||
.arg( info->name.toUpper() )
|
||||
.arg( info->fields[n]->name.toUpper() )
|
||||
.arg( info->fields[n]->numElements ) );
|
||||
}
|
||||
|
||||
enums.append(QString("\n"));
|
||||
}
|
||||
outInclude.replace(QString("$(DATAFIELDINFO)"), enums);
|
||||
|
||||
@ -203,19 +205,19 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo* info)
|
||||
{
|
||||
if ( info->fields[n]->type == FIELDTYPE_ENUM )
|
||||
{
|
||||
initfields.append( QString("\tdata.%1 = %2;\r\n")
|
||||
initfields.append( QString(" data.%1 = %2;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( info->fields[n]->options.indexOf( info->fields[n]->defaultValues[0] ) ) );
|
||||
}
|
||||
else if ( info->fields[n]->type == FIELDTYPE_FLOAT32 )
|
||||
{
|
||||
initfields.append( QString("\tdata.%1 = %2;\r\n")
|
||||
initfields.append( QString(" data.%1 = %2;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( info->fields[n]->defaultValues[0].toFloat() ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
initfields.append( QString("\tdata.%1 = %2;\r\n")
|
||||
initfields.append( QString(" data.%1 = %2;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( info->fields[n]->defaultValues[0].toInt() ) );
|
||||
}
|
||||
@ -227,21 +229,21 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo* info)
|
||||
{
|
||||
if ( info->fields[n]->type == FIELDTYPE_ENUM )
|
||||
{
|
||||
initfields.append( QString("\tdata.%1[%2] = %3;\r\n")
|
||||
initfields.append( QString(" data.%1[%2] = %3;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( idx )
|
||||
.arg( info->fields[n]->options.indexOf( info->fields[n]->defaultValues[idx] ) ) );
|
||||
}
|
||||
else if ( info->fields[n]->type == FIELDTYPE_FLOAT32 )
|
||||
{
|
||||
initfields.append( QString("\tdata.%1[%2] = %3;\r\n")
|
||||
initfields.append( QString(" data.%1[%2] = %3;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( idx )
|
||||
.arg( info->fields[n]->defaultValues[idx].toFloat() ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
initfields.append( QString("\tdata.%1[%2] = %3;\r\n")
|
||||
initfields.append( QString(" data.%1[%2] = %3;\n")
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( idx )
|
||||
.arg( info->fields[n]->defaultValues[idx].toInt() ) );
|
||||
@ -263,58 +265,58 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo* info)
|
||||
{
|
||||
|
||||
/* Set */
|
||||
setgetfields.append( QString("void %2%3Set( %1 *New%3 )\r\n")
|
||||
setgetfields.append( QString("void %2%3Set(%1 *New%3)\n")
|
||||
.arg( fieldTypeStrC[info->fields[n]->type] )
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name ) );
|
||||
setgetfields.append( QString("{\r\n") );
|
||||
setgetfields.append( QString("\tUAVObjSetDataField(%1Handle(), (void*)New%2, offsetof( %1Data, %2), sizeof(%3));\r\n")
|
||||
setgetfields.append( QString("{\n") );
|
||||
setgetfields.append( QString(" UAVObjSetDataField(%1Handle(), (void *)New%2, offsetof(%1Data, %2), sizeof(%3));\n")
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( fieldTypeStrC[info->fields[n]->type] ) );
|
||||
setgetfields.append( QString("}\r\n") );
|
||||
setgetfields.append( QString("}\n") );
|
||||
|
||||
/* GET */
|
||||
setgetfields.append( QString("void %2%3Get( %1 *New%3 )\r\n")
|
||||
setgetfields.append( QString("void %2%3Get(%1 *New%3)\n")
|
||||
.arg( fieldTypeStrC[info->fields[n]->type] )
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name ));
|
||||
setgetfields.append( QString("{\r\n") );
|
||||
setgetfields.append( QString("\tUAVObjGetDataField(%1Handle(), (void*)New%2, offsetof( %1Data, %2), sizeof(%3));\r\n")
|
||||
setgetfields.append( QString("{\n") );
|
||||
setgetfields.append( QString(" UAVObjGetDataField(%1Handle(), (void *)New%2, offsetof(%1Data, %2), sizeof(%3));\n")
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( fieldTypeStrC[info->fields[n]->type] ) );
|
||||
setgetfields.append( QString("}\r\n") );
|
||||
setgetfields.append( QString("}\n") );
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
/* SET */
|
||||
setgetfields.append( QString("void %2%3Set( %1 *New%3 )\r\n")
|
||||
setgetfields.append( QString("void %2%3Set( %1 *New%3 )\n")
|
||||
.arg( fieldTypeStrC[info->fields[n]->type] )
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name ) );
|
||||
setgetfields.append( QString("{\r\n") );
|
||||
setgetfields.append( QString("\tUAVObjSetDataField(%1Handle(), (void*)New%2, offsetof( %1Data, %2), %3*sizeof(%4));\r\n")
|
||||
setgetfields.append( QString("{\n") );
|
||||
setgetfields.append( QString(" UAVObjSetDataField(%1Handle(), (void *)New%2, offsetof(%1Data, %2), %3*sizeof(%4));\n")
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( info->fields[n]->numElements )
|
||||
.arg( fieldTypeStrC[info->fields[n]->type] ) );
|
||||
setgetfields.append( QString("}\r\n") );
|
||||
setgetfields.append( QString("}\n") );
|
||||
|
||||
/* GET */
|
||||
setgetfields.append( QString("void %2%3Get( %1 *New%3 )\r\n")
|
||||
setgetfields.append( QString("void %2%3Get( %1 *New%3 )\n")
|
||||
.arg( fieldTypeStrC[info->fields[n]->type] )
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name ) );
|
||||
setgetfields.append( QString("{\r\n") );
|
||||
setgetfields.append( QString("\tUAVObjGetDataField(%1Handle(), (void*)New%2, offsetof( %1Data, %2), %3*sizeof(%4));\r\n")
|
||||
setgetfields.append( QString("{\n") );
|
||||
setgetfields.append( QString(" UAVObjGetDataField(%1Handle(), (void *)New%2, offsetof(%1Data, %2), %3*sizeof(%4));\n")
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name )
|
||||
.arg( info->fields[n]->numElements )
|
||||
.arg( fieldTypeStrC[info->fields[n]->type] ) );
|
||||
setgetfields.append( QString("}\r\n") );
|
||||
setgetfields.append( QString("}\n") );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -328,13 +330,13 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo* info)
|
||||
{
|
||||
|
||||
/* SET */
|
||||
setgetfieldsextern.append( QString("extern void %2%3Set( %1 *New%3 );\r\n")
|
||||
setgetfieldsextern.append( QString("extern void %2%3Set(%1 *New%3);\n")
|
||||
.arg( fieldTypeStrC[info->fields[n]->type] )
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name ) );
|
||||
|
||||
/* GET */
|
||||
setgetfieldsextern.append( QString("extern void %2%3Get( %1 *New%3 );\r\n")
|
||||
setgetfieldsextern.append( QString("extern void %2%3Get(%1 *New%3);\n")
|
||||
.arg( fieldTypeStrC[info->fields[n]->type] )
|
||||
.arg( info->name )
|
||||
.arg( info->fields[n]->name ) );
|
||||
@ -357,5 +359,3 @@ bool UAVObjectGeneratorFlight::process_object(ObjectInfo* info)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -27,6 +27,8 @@
|
||||
#ifndef UAVOBJECTGENERATORFLIGHT_H
|
||||
#define UAVOBJECTGENERATORFLIGHT_H
|
||||
|
||||
#define FLIGHT_CODE_DIR "flight/uavobjects"
|
||||
|
||||
#include "../generator_common.h"
|
||||
|
||||
class UAVObjectGeneratorFlight
|
||||
|
@ -39,9 +39,9 @@ bool UAVObjectGeneratorGCS::generate(UAVObjectParser* parser,QString templatepat
|
||||
gcsOutputPath = QDir( outputpath + QString("gcs") );
|
||||
gcsOutputPath.mkpath(gcsOutputPath.absolutePath());
|
||||
|
||||
gcsCodeTemplate = readFile( gcsCodePath.absoluteFilePath("uavobjecttemplate.cpp") );
|
||||
gcsIncludeTemplate = readFile( gcsCodePath.absoluteFilePath("uavobjecttemplate.h") );
|
||||
QString gcsInitTemplate = readFile( gcsCodePath.absoluteFilePath("uavobjectsinittemplate.cpp") );
|
||||
gcsCodeTemplate = readFile( gcsCodePath.absoluteFilePath("uavobject.cpp.template") );
|
||||
gcsIncludeTemplate = readFile( gcsCodePath.absoluteFilePath("uavobject.h.template") );
|
||||
QString gcsInitTemplate = readFile( gcsCodePath.absoluteFilePath("uavobjectsinit.cpp.template") );
|
||||
|
||||
if (gcsCodeTemplate.isEmpty() || gcsIncludeTemplate.isEmpty() || gcsInitTemplate.isEmpty()) {
|
||||
std::cerr << "Problem reading gcs code templates" << endl;
|
||||
|
@ -39,8 +39,8 @@ bool UAVObjectGeneratorJava::generate(UAVObjectParser* parser,QString templatepa
|
||||
javaOutputPath = QDir( outputpath + QString("java") );
|
||||
javaOutputPath.mkpath(javaOutputPath.absolutePath());
|
||||
|
||||
javaCodeTemplate = readFile( javaCodePath.absoluteFilePath("uavobjecttemplate.java") );
|
||||
QString javaInitTemplate = readFile( javaCodePath.absoluteFilePath("uavobjectsinittemplate.java") );
|
||||
javaCodeTemplate = readFile( javaCodePath.absoluteFilePath("uavobject.java.template") );
|
||||
QString javaInitTemplate = readFile( javaCodePath.absoluteFilePath("uavobjectsinit.java.template") );
|
||||
|
||||
if (javaCodeTemplate.isEmpty() || javaInitTemplate.isEmpty()) {
|
||||
std::cerr << "Problem reading java code templates" << endl;
|
||||
|
@ -35,11 +35,11 @@ bool UAVObjectGeneratorMatlab::generate(UAVObjectParser* parser,QString template
|
||||
fieldSizeStrMatlab << "1" << "2" << "4"
|
||||
<< "1" << "2" << "4" << "4" << "1";
|
||||
|
||||
QDir matlabTemplatePath = QDir( templatepath + QString("ground/openpilotgcs/src/plugins/uavobjects"));
|
||||
QDir matlabTemplatePath = QDir( templatepath + QString(MATLAB_CODE_DIR));
|
||||
QDir matlabOutputPath = QDir( outputpath + QString("matlab") );
|
||||
matlabOutputPath.mkpath(matlabOutputPath.absolutePath());
|
||||
|
||||
QString matlabCodeTemplate = readFile( matlabTemplatePath.absoluteFilePath( "uavobjecttemplate.m") );
|
||||
QString matlabCodeTemplate = readFile( matlabTemplatePath.absoluteFilePath( "uavobject.m.template") );
|
||||
|
||||
if (matlabCodeTemplate.isEmpty() ) {
|
||||
std::cerr << "Problem reading matlab templates" << endl;
|
||||
|
@ -27,6 +27,8 @@
|
||||
#ifndef UAVOBJECTGENERATORMATLAB_H
|
||||
#define UAVOBJECTGENERATORMATLAB_H
|
||||
|
||||
#define MATLAB_CODE_DIR "ground/openpilotgcs/src/plugins/uavobjects"
|
||||
|
||||
#include "../generator_common.h"
|
||||
|
||||
class UAVObjectGeneratorMatlab
|
||||
|
@ -29,10 +29,10 @@ using namespace std;
|
||||
|
||||
bool UAVObjectGeneratorPython::generate(UAVObjectParser* parser,QString templatepath,QString outputpath) {
|
||||
// Load template and setup output directory
|
||||
pythonCodePath = QDir( templatepath + QString("flight/Modules/FlightPlan/lib"));
|
||||
pythonCodePath = QDir( templatepath + QString("flight/modules/FlightPlan/lib"));
|
||||
pythonOutputPath = QDir( outputpath + QString("python") );
|
||||
pythonOutputPath.mkpath(pythonOutputPath.absolutePath());
|
||||
pythonCodeTemplate = readFile( pythonCodePath.absoluteFilePath("uavobjecttemplate.pyt") );
|
||||
pythonCodeTemplate = readFile( pythonCodePath.absoluteFilePath("uavobject.pyt.template") );
|
||||
if (pythonCodeTemplate.isEmpty()) {
|
||||
std::cerr << "Problem reading python templates" << endl;
|
||||
return false;
|
||||
@ -71,20 +71,20 @@ bool UAVObjectGeneratorPython::process_object(ObjectInfo* info)
|
||||
// Only for enum types
|
||||
if (info->fields[n]->type == FIELDTYPE_ENUM)
|
||||
{
|
||||
datafields.append(QString("\t# Enumeration options\n"));
|
||||
datafields.append(QString(" # Enumeration options\n"));
|
||||
// Go through each option
|
||||
QStringList options = info->fields[n]->options;
|
||||
for (int m = 0; m < options.length(); ++m) {
|
||||
QString name = options[m].toUpper().replace(QRegExp(ENUM_SPECIAL_CHARS), "");
|
||||
if (name[0].isDigit())
|
||||
name = QString("N%1").arg(name);
|
||||
datafields.append(QString("\t%1 = %2\n").arg(name).arg(m));
|
||||
datafields.append(QString(" %1 = %2\n").arg(name).arg(m));
|
||||
}
|
||||
}
|
||||
// Generate element names (only if field has more than one element)
|
||||
if (info->fields[n]->numElements > 1 && !info->fields[n]->defaultElementNames)
|
||||
{
|
||||
datafields.append(QString("\t# Array element names\n"));
|
||||
datafields.append(QString(" # Array element names\n"));
|
||||
// Go through the element names
|
||||
QStringList elemNames = info->fields[n]->elementNames;
|
||||
for (int m = 0; m < elemNames.length(); ++m)
|
||||
@ -92,12 +92,12 @@ bool UAVObjectGeneratorPython::process_object(ObjectInfo* info)
|
||||
QString name = elemNames[m].toUpper().replace(QRegExp(ENUM_SPECIAL_CHARS), "");
|
||||
if (name[0].isDigit())
|
||||
name = QString("N%1").arg(name);
|
||||
datafields.append(QString("\t%1 = %2\n").arg(name).arg(m));
|
||||
datafields.append(QString(" %1 = %2\n").arg(name).arg(m));
|
||||
}
|
||||
}
|
||||
// Constructor
|
||||
datafields.append(QString("\tdef __init__(self):\n"));
|
||||
datafields.append(QString("\t\tUAVObjectField.__init__(self, %1, %2)\n\n").arg(info->fields[n]->type).arg(info->fields[n]->numElements));
|
||||
datafields.append(QString(" def __init__(self):\n"));
|
||||
datafields.append(QString(" UAVObjectField.__init__(self, %1, %2)\n\n").arg(info->fields[n]->type).arg(info->fields[n]->numElements));
|
||||
}
|
||||
outCode.replace(QString("$(DATAFIELDS)"), datafields);
|
||||
|
||||
@ -105,8 +105,8 @@ bool UAVObjectGeneratorPython::process_object(ObjectInfo* info)
|
||||
QString fields;
|
||||
for (int n = 0; n < info->fields.length(); ++n)
|
||||
{
|
||||
fields.append(QString("\t\tself.%1 = %1Field()\n").arg(info->fields[n]->name));
|
||||
fields.append(QString("\t\tself.addField(self.%1)\n").arg(info->fields[n]->name));
|
||||
fields.append(QString(" self.%1 = %1Field()\n").arg(info->fields[n]->name));
|
||||
fields.append(QString(" self.addField(self.%1)\n").arg(info->fields[n]->name));
|
||||
}
|
||||
outCode.replace(QString("$(DATAFIELDINIT)"), fields);
|
||||
|
||||
@ -119,4 +119,3 @@ bool UAVObjectGeneratorPython::process_object(ObjectInfo* info)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -40,8 +40,8 @@ bool UAVObjectGeneratorWireshark::generate(UAVObjectParser* parser,QString templ
|
||||
wiresharkOutputPath = QDir( outputpath + QString("wireshark") );
|
||||
wiresharkOutputPath.mkpath(wiresharkOutputPath.absolutePath());
|
||||
|
||||
wiresharkCodeTemplate = readFile( wiresharkCodePath.absoluteFilePath("op-uavobjects/packet-op-uavobjects-template.c") );
|
||||
wiresharkMakeTemplate = readFile( wiresharkCodePath.absoluteFilePath("op-uavobjects/Makefile.common-template") );
|
||||
wiresharkCodeTemplate = readFile( wiresharkCodePath.absoluteFilePath("op-uavobjects/packet-op-uavobjects.c.template") );
|
||||
wiresharkMakeTemplate = readFile( wiresharkCodePath.absoluteFilePath("op-uavobjects/Makefile.common.template") );
|
||||
|
||||
if ( wiresharkCodeTemplate.isNull() || wiresharkMakeTemplate.isNull()) {
|
||||
cerr << "Error: Could not open wireshark template files." << endl;
|
||||
|
4
make/.gitattributes
vendored
4
make/.gitattributes
vendored
@ -7,7 +7,7 @@
|
||||
*.sh text eol=lf
|
||||
|
||||
/doxygen/*.cfg text eol=lf
|
||||
/templates/firmwareinfotemplate.c text eol=lf
|
||||
/templates/gcs_version_info_template.h text eol=crlf
|
||||
/templates/firmware_info.c.template text eol=lf
|
||||
/templates/gcs_version_info.h.template text eol=crlf
|
||||
/templates/*.txt text eol=crlf
|
||||
/uncrustify/*.cfg text eol=lf
|
||||
|
@ -133,21 +133,21 @@ endef
|
||||
define OPFW_TEMPLATE
|
||||
FORCE:
|
||||
|
||||
$(1).firmwareinfo.c: $(1) $(ROOT_DIR)/make/templates/firmwareinfotemplate.c FORCE
|
||||
$(1).firmware_info.c: $(1) $(ROOT_DIR)/make/templates/firmware_info.c.template FORCE
|
||||
@$(ECHO) $(MSG_FWINFO) $$(call toprel, $$@)
|
||||
$(V1) $(VERSION_INFO) \
|
||||
--template=$(ROOT_DIR)/make/templates/firmwareinfotemplate.c \
|
||||
--template=$(ROOT_DIR)/make/templates/firmware_info.c.template \
|
||||
--outfile=$$@ \
|
||||
--image=$(1) \
|
||||
--type=$(2) \
|
||||
--revision=$(3) \
|
||||
--uavodir=$(ROOT_DIR)/shared/uavobjectdefinition
|
||||
|
||||
$(eval $(call COMPILE_C_TEMPLATE, $(1).firmwareinfo.c))
|
||||
$(eval $(call COMPILE_C_TEMPLATE, $(1).firmware_info.c))
|
||||
|
||||
$(OUTDIR)/$(notdir $(basename $(1))).opfw : $(1) $(1).firmwareinfo.bin
|
||||
$(OUTDIR)/$(notdir $(basename $(1))).opfw : $(1) $(1).firmware_info.bin
|
||||
@$(ECHO) $(MSG_OPFIRMWARE) $$(call toprel, $$@)
|
||||
$(V1) $(CAT) $(1) $(1).firmwareinfo.bin > $$@
|
||||
$(V1) $(CAT) $(1) $(1).firmware_info.bin > $$@
|
||||
endef
|
||||
|
||||
# Assemble: create object files from assembler source files.
|
||||
|
Loading…
x
Reference in New Issue
Block a user