All Downloads are FREE. Search and download functionalities are using the official Maven repository.

lrgs.lrgsmain.LrgsInputInterface Maven / Gradle / Ivy

Go to download

A collection of software for aggregatting and processing environmental data such as from NOAA GOES satellites.

The newest version!
/*
*  $Id$
*
*  This is open-source software written by ILEX Engineering, Inc., under
*  contract to the federal government. You are free to copy and use this
*  source code for your own purposes, except that no part of this source
*  code may be claimed to be proprietary.
*
*  Except for specific contractual terms between ILEX and the federal 
*  government, this source code is provided completely without warranty.
*  For more information contact: [email protected]
*
*  $Log$
*  Revision 1.2  2015/01/06 16:09:31  mmaloney
*  First cut of Polling Modules
*
*  Revision 1.1.1.1  2014/05/19 15:28:59  mmaloney
*  OPENDCS 6.0 Initial Checkin
*
*  Revision 1.11  2011/09/10 10:24:58  mmaloney
*  Implement EUMETSAT LRIT File Capability.
*
*  Revision 1.10  2010/01/29 21:25:17  mjmaloney
*  DCP Communications Classes Prototype
*
*  Revision 1.9  2010/01/20 18:29:05  shweta
*  Updated Real Time Status Screen with Secondary group
*
*  Revision 1.8  2010/01/07 21:38:46  shweta
*  Enhancements for multiple DDS Receive  group.
*
*  Revision 1.7  2008/09/23 15:27:58  mjmaloney
*  network DCPs
*
*  Revision 1.6  2008/09/21 18:01:11  mjmaloney
*  network DCPs
*
*  Revision 1.5  2008/09/21 16:08:20  mjmaloney
*  network DCPs
*
*  Revision 1.4  2008/09/08 19:14:03  mjmaloney
*  LRGS 7 dev
*
*  Revision 1.3  2008/07/07 12:03:08  mjmaloney
*  dev
*
*  Revision 1.2  2008/04/19 15:06:33  cvs
*  added TW Sample
*
*  Revision 1.1  2008/04/04 18:21:15  cvs
*  Added legacy code to repository
*
*  Revision 1.7  2007/02/08 16:34:56  mmaloney
*  dev
*
*  Revision 1.6  2007/01/16 19:27:50  mmaloney
*  Implementing LRGS 6
*
*  Revision 1.5  2005/07/15 18:15:05  mjmaloney
*  Implemented quality logging.
*
*  Revision 1.4  2005/06/30 15:15:28  mjmaloney
*  Java Archive Development.
*
*  Revision 1.3  2005/06/28 17:37:02  mjmaloney
*  Java-Only-Archive implementation.
*
*  Revision 1.2  2005/06/23 15:47:19  mjmaloney
*  Java archive search algorithms.
*
*  Revision 1.1  2005/06/09 20:44:34  mjmaloney
*  Working on implementation of Java-Only Archive
*
*/
package lrgs.lrgsmain;

import lrgs.apistatus.DownLink;

/**
All LRGS downlink interfaces (i.e. any process that supplies messages to
be archived) must implement this interface.
*/
public interface LrgsInputInterface
{
	/*
	 * The following constants are used in the 'type' field of a DownLink
	 * status structure.
	 */
	/** Unused slot */
	public static final int DL_UNUSED   = 0;
	/** DOMSAT Downlink */
	public static final int DL_DOMSAT   = 1;
	/** Legacy Network Backup Protocol Client */
	public static final int DL_NETBAK   = 2;
	/** Unused */
	public static final int DL_RESERVED = 3;
	/** GOES DRGS */
	public static final int DL_DRGS     = 4;
	/** DDS Client */
	public static final int DL_DDS      = 5;
	/** NOAAPORT */
	public static final int DL_NOAAPORT = 6;
	/** GOES LRIT */
	public static final int DL_LRIT     = 7;
	/** A specific DDS Receive connection. */
	public static final int DL_DDSCON   = 8;
	/** A specific DRGS Receive connection. */
	public static final int DL_DRGSCON  = 9;
	/** A specific NOAAPORT Receive connection. */
	public static final int DL_NOAAPORTCON = 10;
	/** A GR3110 connection. */
	public static final int DL_GR3110 = 11;
	/** Iridium SBD receiver. */
	public static final int DL_IRIDIUM = 12;
	/** DAMS-NT Network DCP. */
	public static final int DL_NETWORKDCP = 13;
	/** Polling thread */
	public static final int DL_NETDCPPOLL = 14;
	/** Continuous thread */
	public static final int DL_NETDCPCONT = 15;
	/** DDS Secondary Client */
	public static final int DL_DDS_SECONDRAY  = 16;
	/** DCP Session Manager */
	public static final int DL_SESSIONMGR = 17;
	/** EUMETSAT File Monitor (European LRIT) */
	public static final int DL_EUMETSAT = 18;
	/** EDL File Monitor */
	public static final int DL_EDL = 19;

	/** Type Name for DOMSAT */
	public static final String DL_DOMSAT_TYPESTR = "DOMSAT";

	/** Type Name for DRGS */
	public static final String DL_DRGS_TYPESTR = "DRGS";

	/** Type Name for DDS */
	public static final String DL_DDS_TYPESTR = "DDS";

	/** Type Name for DDS */
	public static final String DL_DDSMAIN_TYPESTR = "DDS-MAIN";

	/** Type Name for LRIT */
	public static final String DL_LRIT_TYPESTR = "HRIT";

	/** Type Name for DDSCON */
	public static final String DL_DDSCON_TYPESTR = "DDSCON";

	/** Type Name for DRGSCON */
	public static final String DL_DRGSCON_TYPESTR = "DRGSCON";

	/** Type Name for NOAAPORT */
	public static final String DL_NOAAPORT_TYPESTR = "NOAAPORT";

	/** Type name for legacy GR3110 DRGS interface */
	public static final String DL_GR3110_TYPESTR = "GR3110";

	/** Type name for Iridium interface */
	public static final String DL_IRIDIUM_TYPESTR = "IRIDIUM";

	/** Type name for Network DCP */
	public static final String DL_NETWORKDCP_TYPESTR = "NET-DCP";
	/** Polling thread */
	public static final String DL_NETDCPPOLL_TYPESTR = "NET-DCP-POLL";
	/** Continuous thread */
	public static final String DL_NETDCPCONT_TYPESTR = "NET-DCP-CONT";
	/** DCP Session Manager */
	public static final String DL_SESSIONMGR_TYPESTR = "DCP_SESSION_MGR";
	public static final String DL_EUMETSAT_TYPESTR = "EUMETSAT";
	public static final String DL_EDL_TYPESTR = "EDL";

	/*
	 * Definitions for numeric status codes.
	 * NOTE: These MUST be kept in sync with the definitions in LrgsStatus.idl
	 * int the lrgs/apistatus package!!
	 */
	/** Downlink is disabled. */
	public static final int DL_DISABLED  = 0;

	/** Downlink is initializing. */
	public static final int DL_INIT      = 1;

	/** Downlink is active. */
	public static final int DL_ACTIVE    = 2;

	/** Downlink is timed-out. */
	public static final int DL_TIMEOUT   = 3;

	/** Downlink is in an error state. */
	public static final int DL_ERROR     = 4;

	/** means that the status is in a string. */
	public static final int DL_STRSTAT = 5;

	/**Primary Group. */
	public static final String PRIMARY = "PRIMARY";
	
	/**Secondary GROUP. */
	public static final String SECONDARY = "SECONDARY";
	
	/**
	 * @return the type of this input interface.
	 */
	public int getType();

	/**
	 * All inputs must keep track of their 'slot', which is a unique index
	 * into the LrgsMain's vector of all input interfaces.
	 * @param slot the slot number.
	 */
	public void setSlot(int slot);
	
	/** @return the slot number that this interface was given at startup */
	public int getSlot();

	/**
	 * @return the name of this interface.
	 */
	public String getInputName(); 

	/**
	 * Initializes the interface.
	 * May throw LrgsInputException when an unrecoverable error occurs.
	 */
	public void initLrgsInput()
		throws LrgsInputException;

	/**
	 * Shuts down the interface.
	 * Any errors encountered should be handled within this method.
	 */
	public void shutdownLrgsInput();

	/**
	 * Enable or Disable the interface. 
	 * The interface should only attempt to archive messages when enabled.
	 * @param enabled true if the interface is to be enabled, false if disabled.
	 */
	public void enableLrgsInput(boolean enabled);

	/**
	 * @return true if this downlink can report a Bit Error Rate.
	 */
	public boolean hasBER();

	/**
	 * @return the Bit Error Rate as a string.
	 */
	public String getBER();

	/**
	 * @return true if this downlink assigns a sequence number to each msg.
	 */
	public boolean hasSequenceNums();

	/**
	 * @return the numeric code representing the current status.
	 */
	public int getStatusCode();

	/**
	 * @return a short string description of the current status.
	 */
	public String getStatus();

	/**
	 * @return the unique data source ID for this input interface.
	 */
	public int getDataSourceId();
	
	/** @return true if this interface receives APR messages */
	public boolean getsAPRMessages();
	
	/** @return the group for the DdsRecv Connection (primary or secondary)*/
	public String getGroup() ;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy