mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-18 03:52:11 +01:00
Continuing to work on the java code to be more consistent with GCS code
This commit is contained in:
parent
1810fb61a0
commit
f0e4c10cfa
@ -3,5 +3,6 @@
|
|||||||
<classpathentry kind="src" path="src"/>
|
<classpathentry kind="src" path="src"/>
|
||||||
<classpathentry kind="src" path="gen"/>
|
<classpathentry kind="src" path="gen"/>
|
||||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
@ -2,17 +2,20 @@ package org.openpilot.uavtalk;
|
|||||||
|
|
||||||
public abstract class UAVDataObject extends UAVObject {
|
public abstract class UAVDataObject extends UAVObject {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Constructor for UAVDataObject
|
||||||
|
* @param objID the object id to be created
|
||||||
|
* @param isSingleInst
|
||||||
|
* @param isSet
|
||||||
|
* @param name
|
||||||
|
*/
|
||||||
public UAVDataObject(int objID, Boolean isSingleInst, Boolean isSet, String name) {
|
public UAVDataObject(int objID, Boolean isSingleInst, Boolean isSet, String name) {
|
||||||
super(objID, isSingleInst, name);
|
super(objID, isSingleInst, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initialize(int instID, UAVMetaObject mobj) {
|
public abstract void initialize(int instID, UAVMetaObject mobj);
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void initialize(UAVMetaObject mobj) {
|
public abstract void initialize(UAVMetaObject mobj);
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Boolean isSettings() {
|
Boolean isSettings() {
|
||||||
return null;
|
return null;
|
||||||
@ -22,6 +25,23 @@ public abstract class UAVDataObject extends UAVObject {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract UAVDataObject clone(int instID);
|
public UAVDataObject clone(int instID) {
|
||||||
|
try {
|
||||||
|
return (UAVDataObject) super.clone();
|
||||||
|
} catch (CloneNotSupportedException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
static int OBJID = $(OBJIDHEX);
|
||||||
|
static String NAME;
|
||||||
|
static String DESCRIPTION;
|
||||||
|
static boolean ISSINGLEINST = $(ISSINGLEINST);
|
||||||
|
static boolean ISSETTINGS = $(ISSETTINGS);
|
||||||
|
static int NUMBYTES = sizeof(DataFields);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,23 +2,41 @@ package org.openpilot.uavtalk;
|
|||||||
|
|
||||||
public class UAVMetaObject extends UAVObject {
|
public class UAVMetaObject extends UAVObject {
|
||||||
|
|
||||||
private UAVDataObject parent;
|
public UAVMetaObject(int objID, String name, UAVDataObject parent) {
|
||||||
|
super(objID, true, name);
|
||||||
public UAVMetaObject(int objID, String mname, UAVDataObject parent) {
|
|
||||||
super(objID, true, mname);
|
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
|
|
||||||
|
ownMetadata.flightAccess = UAVObject.AccessMode.ACCESS_READWRITE;
|
||||||
|
ownMetadata.gcsAccess = UAVObject.AccessMode.ACCESS_READWRITE;
|
||||||
|
ownMetadata.flightTelemetryAcked = UAVObject.Acked.TRUE;
|
||||||
|
ownMetadata.flightTelemetryUpdateMode = UAVObject.UpdateMode.UPDATEMODE_ONCHANGE;
|
||||||
|
ownMetadata.flightTelemetryUpdatePeriod = 0;
|
||||||
|
ownMetadata.gcsTelemetryAcked = UAVObject.Acked.TRUE;
|
||||||
|
ownMetadata.gcsTelemetryUpdateMode = UAVObject.UpdateMode.UPDATEMODE_ONCHANGE;
|
||||||
|
ownMetadata.gcsTelemetryUpdatePeriod = 0;
|
||||||
|
ownMetadata.loggingUpdateMode = UAVObject.UpdateMode.UPDATEMODE_ONCHANGE;
|
||||||
|
ownMetadata.loggingUpdatePeriod = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
UAVObject getParentObject() {
|
||||||
|
return parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deserialize(byte[] arr, int offset) {
|
public void deserialize(byte[] arr, int offset) {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UAVMetaObject getDefaultMetadata() {
|
public Metadata getMetadata() {
|
||||||
// TODO Auto-generated method stub
|
return ownMetadata;
|
||||||
return null;
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Metadata getDefaultMetadata() {
|
||||||
|
return ownMetadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -45,4 +63,17 @@ public class UAVMetaObject extends UAVObject {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public UAVMetaObject(quint32 objID, const QString& name, UAVObject* parent);
|
||||||
|
UAVObject* getParentObject();
|
||||||
|
void setMetadata(const Metadata& mdata);
|
||||||
|
void setData(const Metadata& mdata);
|
||||||
|
Metadata getData();
|
||||||
|
|
||||||
|
|
||||||
|
private UAVObject parent;
|
||||||
|
private Metadata ownMetadata;
|
||||||
|
private Metadata parentMetadata;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -20,11 +20,27 @@ public abstract class UAVObject {
|
|||||||
ACCESS_READWRITE,
|
ACCESS_READWRITE,
|
||||||
ACCESS_READONLY
|
ACCESS_READONLY
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
/**
|
||||||
private Boolean isSingleInst;
|
* Access mode
|
||||||
private int instID;
|
*/
|
||||||
private UAVMetaObject meta;
|
public enum Acked{
|
||||||
|
FALSE,
|
||||||
|
TRUE
|
||||||
|
} ;
|
||||||
|
|
||||||
|
final class Metadata {
|
||||||
|
public AccessMode flightAccess; /** Defines the access level for the local flight transactions (readonly and readwrite) */
|
||||||
|
public AccessMode gcsAccess; /** Defines the access level for the local GCS transactions (readonly and readwrite) */
|
||||||
|
public Acked flightTelemetryAcked; /** Defines if an ack is required for the transactions of this object (1:acked, 0:not acked) */
|
||||||
|
public UpdateMode flightTelemetryUpdateMode; /** Update mode used by the autopilot (UpdateMode) */
|
||||||
|
public int flightTelemetryUpdatePeriod; /** Update period used by the autopilot (only if telemetry mode is PERIODIC) */
|
||||||
|
public Acked gcsTelemetryAcked; /** Defines if an ack is required for the transactions of this object (1:acked, 0:not acked) */
|
||||||
|
public UpdateMode gcsTelemetryUpdateMode; /** Update mode used by the GCS (UpdateMode) */
|
||||||
|
public int gcsTelemetryUpdatePeriod; /** Update period used by the GCS (only if telemetry mode is PERIODIC) */
|
||||||
|
public UpdateMode loggingUpdateMode; /** Update mode used by the logging module (UpdateMode) */
|
||||||
|
public int loggingUpdatePeriod; /** Update period used by the logging module (only if logging mode is PERIODIC) */
|
||||||
|
} ;
|
||||||
|
|
||||||
public UAVObject(int objID, Boolean isSingleInst, String name) {
|
public UAVObject(int objID, Boolean isSingleInst, String name) {
|
||||||
assert(objID == getObjID()); // ID is in implementation code, make sure it matches object
|
assert(objID == getObjID()); // ID is in implementation code, make sure it matches object
|
||||||
@ -62,9 +78,13 @@ public abstract class UAVObject {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMetadata(UAVMetaObject obj) { meta = obj; }
|
public abstract void setMetadata(Metadata obj);
|
||||||
public UAVMetaObject getMetadata() { return meta; }
|
public abstract Metadata getMetadata();
|
||||||
public abstract UAVMetaObject getDefaultMetadata();
|
public abstract Metadata getDefaultMetadata();
|
||||||
|
|
||||||
|
private Boolean isSingleInst;
|
||||||
|
private int instID;
|
||||||
|
private UAVMetaObject meta;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// Unported code from QT
|
// Unported code from QT
|
||||||
|
@ -31,29 +31,34 @@ package org.openpilot.uavtalk.uavobjects;
|
|||||||
import org.openpilot.uavtalk.UAVObject;
|
import org.openpilot.uavtalk.UAVObject;
|
||||||
import org.openpilot.uavtalk.UAVDataObject;
|
import org.openpilot.uavtalk.UAVDataObject;
|
||||||
import org.openpilot.uavtalk.UAVMetaObject;
|
import org.openpilot.uavtalk.UAVMetaObject;
|
||||||
|
import org.openpilot.uavtalk.UAVObjectField;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
$(DESCRIPTION)
|
$(DESCRIPTION)
|
||||||
|
|
||||||
generated from $(XMLFILE)
|
generated from $(XMLFILE)
|
||||||
**/
|
**/
|
||||||
public class $(NAME) extends UAVDataObject{
|
public class $(NAME) extends UAVDataObject {
|
||||||
|
|
||||||
$(FIELDSINIT)
|
$(FIELDSINIT)
|
||||||
|
|
||||||
|
public $(NAME) (int objID, Boolean isSingleInst, Boolean isSet, String name) {
|
||||||
|
super(OBJID, ISSINGLEINST, ISSETTINGS, NAME);
|
||||||
|
}
|
||||||
|
|
||||||
public void setGeneratedMetaData() {
|
public void setGeneratedMetaData() {
|
||||||
|
|
||||||
getMetaData().gcsAccess = UAVMetaObject.$(GCSACCESS);
|
getMetaData().gcsAccess = UAVObject.AccessMode.$(GCSACCESS);
|
||||||
getMetaData().gcsTelemetryAcked = UAVMetaObject.$(GCSTELEM_ACKEDTF);
|
getMetaData().gcsTelemetryAcked = UAVObject.Acked.$(GCSTELEM_ACKEDTF);
|
||||||
getMetaData().gcsTelemetryUpdateMode = UAVMetaObject.$(GCSTELEM_UPDATEMODE);
|
getMetaData().gcsTelemetryUpdateMode = UAVObject.UpdateMode.$(GCSTELEM_UPDATEMODE);
|
||||||
getMetaData().gcsTelemetryUpdatePeriod = $(GCSTELEM_UPDATEPERIOD);
|
getMetaData().gcsTelemetryUpdatePeriod = $(GCSTELEM_UPDATEPERIOD);
|
||||||
|
|
||||||
getMetaData().flightAccess = UAVMetaObject.$(FLIGHTACCESS);
|
getMetaData().flightAccess = UAVObject.AccessMode.$(FLIGHTACCESS);
|
||||||
getMetaData().flightTelemetryAcked = UAVMetaObject.$(FLIGHTTELEM_ACKEDTF);
|
getMetaData().flightTelemetryAcked = UAVObject.Acked.$(FLIGHTTELEM_ACKEDTF);
|
||||||
getMetaData().flightTelemetryUpdateMode = UAVMetaObject.$(FLIGHTTELEM_UPDATEMODE);
|
getMetaData().flightTelemetryUpdateMode = UAVObject.UpdateMode.$(FLIGHTTELEM_UPDATEMODE);
|
||||||
getMetaData().flightTelemetryUpdatePeriod = $(FLIGHTTELEM_UPDATEPERIOD);
|
getMetaData().flightTelemetryUpdatePeriod = $(FLIGHTTELEM_UPDATEPERIOD);
|
||||||
|
|
||||||
getMetaData().loggingUpdateMode = UAVMetaObject.$(LOGGING_UPDATEMODE);
|
getMetaData().loggingUpdateMode = UAVObject.UpdateMode.$(LOGGING_UPDATEMODE);
|
||||||
getMetaData().loggingUpdatePeriod = $(LOGGING_UPDATEPERIOD);
|
getMetaData().loggingUpdatePeriod = $(LOGGING_UPDATEPERIOD);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -69,6 +74,15 @@ $(FIELDSINIT)
|
|||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "$(DESCRIPTION)";
|
return "$(DESCRIPTION)";
|
||||||
}
|
}
|
||||||
|
protected:
|
||||||
|
// Constants
|
||||||
|
static final int OBJID = $(OBJIDHEX);
|
||||||
|
static final String NAME;
|
||||||
|
static final String DESCRIPTION;
|
||||||
|
static final boolean ISSINGLEINST = $(ISSINGLEINST);
|
||||||
|
static final boolean ISSETTINGS = $(ISSETTINGS);
|
||||||
|
static final int NUMBYTES = sizeof(DataFields);
|
||||||
|
|
||||||
|
|
||||||
$(GETTERSETTER)
|
$(GETTERSETTER)
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user