org.mbari.siam.devices.gashound
Class GashoundSubsystem

java.lang.Object
  extended by java.rmi.server.RemoteObject
      extended by java.rmi.server.RemoteServer
          extended by java.rmi.server.UnicastRemoteObject
              extended by org.mbari.siam.core.DeviceService
                  extended by org.mbari.siam.core.InstrumentService
                      extended by org.mbari.siam.devices.gashound.GashoundSubsystem
All Implemented Interfaces:
java.io.Serializable, java.rmi.Remote, ScheduleOwner, Device, DeviceServiceIF, Instrument

public class GashoundSubsystem
extends InstrumentService
implements Instrument

An Onset Tattletale, an embedded microprocessor based datalogger, coordinates the Gashound sensor and associated pump and gas valves. The embedded system also provides serial communications to the host system so the sampled data can also be transmitted to a PC or mooring controller. The subsystem is preconfigured to take a sample set of all channels on the hour every hour. The sampling cycle can take upto 10 minutes to perform during which time no communications with the outside world is possible. The instrument has three distinct operating modes "awake" (or command mode), "asleep" - a low power mode but able to wake itself up automatically at sampling time and "off" - powered down completely. This last operating mode is not a deployment option. To wake the instrument, a single character is sent to the communications port. Provided the unit isn't in the sampling cycle, a response in the form of scheduling information is transmiited to the host. As soon as the host receives the first character of the response the host sends a second character. Sending this second character to the unit causes the unit to enter command mode. The instrument responds with the prompt "SOON>". When in command mode the unit can be interrogated and the last sample retrieved. To exit command mode a "quit" command is sent and the unit returns to the low power sleep mode.

See Also:
Device, Instrument, PowerPort, InstrumentService, Serialized Form

Field Summary
 
Fields inherited from class org.mbari.siam.core.InstrumentService
_defaultSampleScheduleName, _instrumentAttributes, _lastPacket, _lastSensorDataPacket, _messagePacket, _packetLog, _recordType, _schedules, _sensorDataPacket, RECORDTYPE_DEFAULT, RECORDTYPE_METADATA, RECORDTYPE_UNDEFINED
 
Fields inherited from class org.mbari.siam.core.DeviceService
_fromDevice, _instrumentPort, _nodeProperties, _parentNode, _regEntry, _sandBox, _serviceCachePath, _serviceName, _servicePropertiesPath, _serviceXMLPath, _toDevice, CACHED_PROPERTIES_FILENAME, PROPERTIES_FILENAME, XML_FILENAME
 
Fields inherited from class java.rmi.server.RemoteObject
ref
 
Fields inherited from interface org.mbari.siam.distributed.Device
ERROR, INITIAL, INSTRUMENT_STATE, MDATA_ALL, OK, SAFE, SAMPLING, SERVICE_ATTRIBUTES, SERVICE_CACHE, SERVICE_PROPERTIES, SERVICE_XML, SHUTDOWN, SLEEPING, SUSPEND, UNKNOWN
 
Constructor Summary
GashoundSubsystem()
           
 
Method Summary
protected  ScheduleSpecifier createDefaultSampleSchedule()
          Return specifier for default sampling schedule.
protected  byte[] getInstrumentMetadata()
          getInstrumentMetadata Not implemented fror gashound
 SerialPortParameters getSerialPortParameters()
          Return parameters to use on serial port.
protected  PowerPolicy initCommunicationPowerPolicy()
          Return communications interface power policy.
protected  int initCurrentLimit()
          Specify current limit in increments of 120 mA upto 11880 mA.
protected  void initializeInstrument()
          Called by the framework to initialize the instrument prior to sampling.
protected  PowerPolicy initInstrumentPowerPolicy()
          Return instrument power policy.
protected  int initInstrumentStartDelay()
          Specify startup delay (millisec)
protected  int initMaxSampleBytes()
          Specify maximum bytes in raw sample.
protected  byte[] initPromptString()
          Specify prompt string.
protected  byte[] initSampleTerminator()
          Specify sample terminator.
protected  void postSample()
          Deal with Gashound after sample received...
protected  void prepareToSample()
          Wakeup the Gashound in preparation to sample.
protected  void requestSample()
          Issue command to Gashound to acquire last sampled data and wait until the data sync characters have been received.
 void setClock(long t)
          Set the Gashound date and time to the sidearm's date and time.
 int test()
          Run device's self-test routine.
 
Methods inherited from class org.mbari.siam.core.InstrumentService
acquire, acquireSample, addDefaultPacketFilters, addSchedule, addSchedule, annotate, cacheProperties, checkInputProperties, cleanupServiceState, clearDefaultPacketFilters, clearPropertiesCache, createTask, disableSamplingDiagnostics, disableSummary, doScheduledTask, enableSamplingDiagnostics, enableSummary, getAllSchedules, getChildren, getCommunicationPowerPolicy, getCurrentLimit, getDefaultPacketFilters, getDefaultSampleSchedule, getDefaultSampleScheduleName, getDevicePacketParser, getFileBytes, getInstrumentBlock, getInstrumentPowerPolicy, getInstrumentStartDelay, getInstrumentStateMetadata, getLastSample, getLocation, getMaxSampleBytes, getMaxSampleTries, getMetadata, getMetadata, getMetadataPayload, getPackets, getPackets, getParent, getParser, getPortDiagnostics, getPortDiagnosticsSummary, getPromptString, getProperties, getProperty, getSampleBuf, getSampleSchedule, getSampleTerminator, getSampleTimeout, getSchedule, getScheduleKey, getSchedules, getServiceCacheBytes, getServicePropertiesBytes, getServiceXMLBytes, initialize, initializeDriverDefaults, initServiceState, interruptSampling, logPacket, managePowerSleep, managePowerWake, parseDataPacket, powerOff, powerOffCallback, powerOn, powerOnCallback, prepareToRun, printData, processSample, readSample, removeAllSchedules, removeSchedule, resetPortDiagnostics, resumeSchedule, running, setAttributes, setClock, setCommunicationPowerPolicy, setCurrentLimit, setDefaultSampleScheduleName, setInstrumentBlock, setInstrumentPowerPolicy, setInstrumentStartDelay, setMaxSampleBytes, setMaxSampleTries, setPromptString, setProperty, setRecordType, setSampleTerminator, setSampleTimeout, shutdown, shutdownInstrument, sleepingUntil, summaryEnabled, suspend, suspendSchedule, sync, syncSchedule, validateSample
 
Methods inherited from class org.mbari.siam.core.DeviceService
addDataListener, advertiseService, createRegistryEntry, getAttributes, getCommPortName, getFrameworkVersion, getId, getInstrumentPort, getName, getRemoteSerialPort, getRemoteSerialPort, getSamplingCount, getSamplingErrorCount, getSamplingRetryCount, getStatus, host, incRetryCount, initializePropertyDefaults, registryEntry, registryName, removeDataListener, resume, setInstrumentPort, setNodeProperties, setParent, setSerialPort, setStatusError, setStatusInitial, setStatusOk, setStatusSafe, setStatusSampling, setStatusShutdown, setStatusSuspend
 
Methods inherited from class java.rmi.server.UnicastRemoteObject
clone, exportObject, exportObject, exportObject, unexportObject
 
Methods inherited from class java.rmi.server.RemoteServer
getClientHost, getLog, setLog
 
Methods inherited from class java.rmi.server.RemoteObject
equals, getRef, hashCode, toString, toStub
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.mbari.siam.distributed.Instrument
acquireSample, addDefaultPacketFilters, annotate, cacheProperties, clearDefaultPacketFilters, clearPropertiesCache, disableSummary, enableSummary, getDefaultPacketFilters, getLastSample, getPackets, getPackets, getParser, getPortDiagnostics, getPortDiagnosticsSummary, getProperties, getProperty, getSampleSchedule, getSchedules, resetPortDiagnostics, setClock, setProperty, summaryEnabled
 
Methods inherited from interface org.mbari.siam.distributed.Device
getChildren, getCommPortName, getFrameworkVersion, getId, getLocation, getMetadata, getName, getParent, getSamplingCount, getSamplingErrorCount, getSamplingRetryCount, getStatus, host, powerOff, powerOn, prepareToRun, resume, shutdown, suspend
 
Methods inherited from interface org.mbari.siam.distributed.DeviceServiceIF
getName
 

Constructor Detail

GashoundSubsystem

public GashoundSubsystem()
                  throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException - .
Method Detail

initInstrumentStartDelay

protected int initInstrumentStartDelay()
Specify startup delay (millisec)

Specified by:
initInstrumentStartDelay in class InstrumentService

initPromptString

protected byte[] initPromptString()
Specify prompt string.

Specified by:
initPromptString in class InstrumentService

initSampleTerminator

protected byte[] initSampleTerminator()
Specify sample terminator.

Specified by:
initSampleTerminator in class InstrumentService

initMaxSampleBytes

protected int initMaxSampleBytes()
Specify maximum bytes in raw sample.

Specified by:
initMaxSampleBytes in class InstrumentService

initCurrentLimit

protected int initCurrentLimit()
Specify current limit in increments of 120 mA upto 11880 mA.

Specified by:
initCurrentLimit in class InstrumentService

initInstrumentPowerPolicy

protected PowerPolicy initInstrumentPowerPolicy()
Return instrument power policy.

Specified by:
initInstrumentPowerPolicy in class InstrumentService
Returns:
Instrument Power Policy

initCommunicationPowerPolicy

protected PowerPolicy initCommunicationPowerPolicy()
Return communications interface power policy.

Specified by:
initCommunicationPowerPolicy in class InstrumentService
Returns:
Instrument Power Policy

createDefaultSampleSchedule

protected ScheduleSpecifier createDefaultSampleSchedule()
                                                 throws ScheduleParseException
Return specifier for default sampling schedule.

Specified by:
createDefaultSampleSchedule in class InstrumentService
Returns:
Schedule specifier
Throws:
ScheduleParseException

getSerialPortParameters

public SerialPortParameters getSerialPortParameters()
                                             throws gnu.io.UnsupportedCommOperationException
Return parameters to use on serial port.

Overrides:
getSerialPortParameters in class DeviceService
Throws:
gnu.io.UnsupportedCommOperationException

initializeInstrument

protected void initializeInstrument()
                             throws InitializeException,
                                    java.lang.Exception
Called by the framework to initialize the instrument prior to sampling. Normally this method will use properties determined by the setProperties method.

Overrides:
initializeInstrument in class InstrumentService
Throws:
InitializeException
java.lang.Exception

setClock

public void setClock(long t)
              throws NotSupportedException
Set the Gashound date and time to the sidearm's date and time. Note: if t>0L, currently does nothing

Specified by:
setClock in interface Instrument
Specified by:
setClock in class InstrumentService
Throws:
NotSupportedException

prepareToSample

protected void prepareToSample()
                        throws java.lang.Exception
Wakeup the Gashound in preparation to sample. If this is the first time a sample has been taken then synchronize Gashound time w/ Sidearm time.

Overrides:
prepareToSample in class InstrumentService
Throws:
java.lang.Exception

requestSample

protected void requestSample()
                      throws TimeoutException,
                             java.lang.Exception
Issue command to Gashound to acquire last sampled data and wait until the data sync characters have been received.

Specified by:
requestSample in class InstrumentService
Throws:
TimeoutException
java.lang.Exception - not thrown

postSample

protected void postSample()
Deal with Gashound after sample received... If this is the first time a sample has been taken then re-deploy the Gashound otherwise set the Gashound to sleep mode.

Overrides:
postSample in class InstrumentService

getInstrumentMetadata

protected byte[] getInstrumentMetadata()
getInstrumentMetadata Not implemented fror gashound


test

public int test()
Description copied from interface: Device
Run device's self-test routine.

Specified by:
test in interface Device


Copyright © 2003 MBARI.

The Monterey Bay Aquarium Research Institute (MBARI) provides this documentation and code "as is", with no warranty, express or implied, of its quality or consistency. It is provided without support and without obligation on the part of MBARI to assist in its use, correction, modification, or enhancement.