blob: 458aa4004304ee6e907481e0e6e57ba90f224ce6 [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="ApogyAddonsSensors",
childCreationExtenders="true",
extensibleProviderFactory="true",
multipleEditorPages="false",
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="ApogyAddonsSensors",
suppressGenModelAnnotations="false",
dynamicTemplates="true",
templateDirectory="platform:/plugin/org.eclipse.apogy.common.emf.codegen/templates")
@GenModel(modelDirectory="/org.eclipse.apogy.addons.sensors/src-gen")
@GenModel(editDirectory="/org.eclipse.apogy.addons.sensors.edit/src-gen")
package org.eclipse.apogy.addons.sensors
import org.eclipse.apogy.common.topology.Node
import org.eclipse.apogy.common.topology.AggregateGroupNode
/**
* Represents the various states that a sensor could be in.
*
* Typical status transitions :
*
* Power up (nominal) : OFF -> BUSY (initialization) -> READY
* Power up (off-nominal) : OFF -> BUSY (initialization) -> FAILED
*
* Data acquisition (nominal): READY -> BUSY (Acquisition) -> READY
* Data acquisition (off-nominal): READY -> BUSY (Acquisition) -> FAILED
*/
enum SensorStatus
{
OFF as "OFF" = 0
READY as "READY" = 1
BUSY as "BUSY" = 2
FAILED as "FAILED" = 3
}
/**
* Base class for Sensors.
*/
class Sensor extends AggregateGroupNode
{
transient SensorStatus status = "OFF"
}
/**
* Defines a item that is referenced relative to a Node.
*/
class Referenceable
{
/**
* The Node that is the reference.
*/
refers Node referenceFrame
}