blob: 39dbc504fe5e9496f7790fa93b041e58777e5043 [file] [log] [blame]
// *****************************************************************************
// Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// Contributors:
// Pierre Allard - initial API and implementation
// Regent L'Archeveque
//
// SPDX-License-Identifier: EPL-1.0
// *****************************************************************************
@GenModel(prefix="ApogyExamplesLanderApogy",
copyrightText="*******************************************************************************
Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
Contributors:
Pierre Allard - initial API and implementation
Regent L'Archeveque
SPDX-License-Identifier: EPL-1.0
*******************************************************************************",
modelName="ApogyExamplesLanderApogy",
suppressGenModelAnnotations="false",
dynamicTemplates="true",
templateDirectory="platform:/plugin/org.eclipse.apogy.common.emf.codegen/templates")
@GenModel(modelDirectory="/org.eclipse.apogy.examples.lander.apogy/src-gen")
@GenModel(editDirectory="/org.eclipse.apogy.examples.lander.apogy.edit/src-gen")
package org.eclipse.apogy.examples.lander.apogy
import org.eclipse.apogy.core.ApogySystemApiAdapter
import org.eclipse.apogy.core.ApogyInitializationData
import org.eclipse.apogy.examples.lander.LanderLegExtension
import org.eclipse.apogy.common.Apogy
/**
* This class is the specialized Apogy API adapter, used for connecting
* the existing lander example, located at
* {@link org.eclipse.apogy.examples.lander.Lander},
* to Apogy; one can override the well-known callback functions to make
* Apogy perform a variety of useful functions, including initialization,
* disposal and other features.
*/
@Apogy(hasCustomClass="true")
class LanderApogySystemApiAdapter extends ApogySystemApiAdapter
{
/**
* For specific implementation details,
* please see
* {@link org.eclipse.apogy.examples.lander.apogy.impl.LanderApogySystemApiAdapterImpl}
*/
}
/**
* This class specifies the initialization data that Apogy
* should be interested in when (re)initializing the PTU dish
* antenna with the API Adapter (which in this case is
* {@link org.eclipse.apogy.examples.antenna.PTUDishAntennaApogySystemApiAdapter})
*/
@Apogy(hasCustomItemProvider="true")
class LanderData extends ApogyInitializationData
{
/**
* This is whether or not the lander has been initialized.
*/
@GenModel(children="false",
notify="true",
property="Editable",
propertyCategory="Status")
boolean initialized = "false"
/**
* This is whether or not the lander has been disposed.
*/
@GenModel(children="false",
notify="true",
property="Editable",
propertyCategory="Status")
boolean disposed = "false"
/**
* This is whether or not flying is permitted for the
* lander.
*/
@GenModel(children="false",
notify="true",
property="Editable",
propertyCategory="Flight")
boolean flyingEnabled = "false"
/**
* This is the extension position for the lander's
* leg A.
*/
@GenModel(children="false",
notify="true",
property="Editable",
propertyCategory="Legs")
LanderLegExtension legAExtension
/**
* This is the extension position for the lander's
* leg B.
*/
@GenModel(children="false",
notify="true",
property="Editable",
propertyCategory="Legs")
LanderLegExtension legBExtension
/**
* This is the extension position for the lander's
* leg C.
*/
@GenModel(children="false",
notify="true",
property="Editable",
propertyCategory="Legs")
LanderLegExtension legCExtension
/**
* This is the thrust level (in N) of the lander
*/
@Apogy(units="N")
@GenModel(children="false",
notify="true",
property="Editable",
propertyCategory="Flight")
double currThrustLevel = "0.0"
/**
* This is the minimum thrust level (in N) of the lander
*/
@Apogy(units="N")
@GenModel(children="false",
notify="true",
property="Editable",
propertyCategory="Flight")
double minThrustLevel = "0.0"
/**
* This is the maximum thrust level (in N) of the lander
*/
@Apogy(units="N")
@GenModel(children="false",
notify="true",
property="Editable",
propertyCategory="Flight")
double maxThrustLevel = "0.0"
/**
* This is the angular velocity (in radians / second)
* of the lander in the X direction.
*/
@Apogy(units="rad/s")
@GenModel(children="false",
notify="true",
property="Editable",
propertyCategory="Velocities")
double xAngularVelocity = "0.0"
/**
* This is the angular velocity (in radians / second)
* of the lander in the Y direction.
*/
@Apogy(units="rad/s")
@GenModel(children="false",
notify="true",
property="Editable",
propertyCategory="Velocities")
double yAngularVelocity = "0.0"
}