org.mbari.siam.core
Class AggregateInstrumentService

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.BaseInstrumentService
                      extended by org.mbari.siam.core.PolledInstrumentService
                          extended by org.mbari.siam.core.AggregateInstrumentService
All Implemented Interfaces:
java.io.Serializable, java.rmi.Remote, ScheduleOwner, Device, DeviceServiceIF, Instrument
Direct Known Subclasses:
SeaBird37im

public abstract class AggregateInstrumentService
extends PolledInstrumentService

This class serves as a base class for instruments that are supervised by a single controller (eg SeaBird37im.java). The

See Also:
Serialized Form

Field Summary
protected  int _numSensors
           
 
Fields inherited from class org.mbari.siam.core.BaseInstrumentService
_defaultSamplerTask, _defaultSampleScheduleName, _errorCache, _instrumentAttributes, _lastPacket, _lastSensorDataPacket, _maxSampleBytes, _messagePacket, _nPowerRequests, _nWakeRequests, _packetLog, _recordType, _running, _samplerWakeupTime, _scheduleKey, _schedules, _sensorDataPacket, _turbinator, MAX_BASE_RECORDTYPE, 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
AggregateInstrumentService()
           
 
Method Summary
 SensorDataPacket acquire(boolean logSample)
          Poll instrument for sample, acquire and process it, and put data into output queue.
protected  void incBadResponseCount()
          called to increment bad response totalizer
protected  void incInvalidDataCount()
          called to increment invalid data count
protected  void incRetryExceededCount()
          called to increment comms retry count
protected  void incSampleCount()
          called to increment sample counter
protected  void incTimeoutCount()
          called to increment comms timeout count
protected  void requestSample()
          This is overridden but not implemented.
protected abstract  void requestSample(int sensorRef)
          Request a data sample from instrument module.
protected  void resetCommStats()
          set communication statistic counters to 0
protected abstract  void setNumSensors(int numSensors)
          Abstract method for setting the number of sensors (instruments) _numSensors supported by sub-class.
 int test()
          Hack - triggers a comms stat dump through RMI
 
Methods inherited from class org.mbari.siam.core.PolledInstrumentService
createDefaultSampleSchedule, doScheduledTask, setAttributes
 
Methods inherited from class org.mbari.siam.core.BaseInstrumentService
acquireSample, addDefaultPacketFilters, addSchedule, addSchedule, annotate, assertSamplingState, cacheProperties, callDataListeners, canSummarize, checkInputProperties, cleanupServiceState, clearDefaultPacketFilters, clearPropertiesCache, createPacketLog, createTask, createTurbinators, disableSummary, enableSummary, endDeviceAccess, getAllSchedules, getChildren, getCommunicationPowerPolicy, getCurrentLimit, getDefaultPacketFilters, getDefaultSampleSchedule, getDefaultSampleScheduleName, getDevicePacketParser, getFileBytes, getInstrumentPowerPolicy, getInstrumentServiceBlock, getInstrumentStartDelay, getInstrumentStateMetadata, getLastSample, getMaxSampleBytes, getMaxSampleTries, getMetadata, getMetadata, getMetadataPayload, getPackets, getPackets, getParent, getParser, getPortDiagnostics, getPortDiagnosticsSummary, getPromptString, getProperties, getProperty, getSampleBuf, getSampleSchedule, getSampleTerminator, getSampleTimeout, getSchedule, getScheduleKey, getSchedules, getServicePropertiesBytes, initCommunicationPowerPolicy, initCurrentLimit, initialize, initializeDriverDefaults, initializeInstrument, initializePooledResources, initInstrumentPowerPolicy, initInstrumentStartDelay, initMaxSampleBytes, initPromptString, initSampleTerminator, interruptDeviceAccess, logPacket, managePowerSleep, managePowerWake, nPowerRequests, postSample, powerOff, powerOffCallback, powerOn, powerOnCallback, prepareToRun, prepareToSample, printData, processSample, readSample, removeAllSchedules, removeSchedule, resetPortDiagnostics, resume, resumeSchedule, running, setClock, setClock, setCommunicationPowerPolicy, setCurrentLimit, setDefaultSampleScheduleName, setInstrumentPowerPolicy, setInstrumentServiceBlock, setInstrumentStartDelay, setMaxSampleBytes, setMaxSampleTries, setPromptString, setProperty, setRecordType, setSampleTerminator, setSampleTimeout, shutdown, shutdownInstrument, sleepingUntil, snooze, startDeviceAccess, summaryEnabled, suspend, suspendSchedule, sync, syncSchedule, validateSample
 
Methods inherited from class org.mbari.siam.core.DeviceService
addDataListener, advertiseService, createRegistryEntry, getAttributes, getCommPortName, getFrameworkVersion, getId, getInstrumentPort, getLocation, getName, getRemoteSerialPort, getRemoteSerialPort, getSamplingCount, getSamplingErrorCount, getSamplingRetryCount, getSerialPortParameters, getStatus, host, incRetryCount, initializePropertyDefaults, registryEntry, registryName, removeDataListener, 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, 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
 
Methods inherited from interface org.mbari.siam.core.ScheduleOwner
addSchedule, getAllSchedules, getScheduleKey, removeAllSchedules, removeSchedule, resumeSchedule, sleepingUntil, suspendSchedule, syncSchedule
 

Field Detail

_numSensors

protected int _numSensors
Constructor Detail

AggregateInstrumentService

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

setNumSensors

protected abstract void setNumSensors(int numSensors)
Abstract method for setting the number of sensors (instruments) _numSensors supported by sub-class.

Parameters:
numSensors - Number ofinstruments supported by sub-class

requestSample

protected abstract void requestSample(int sensorRef)
                               throws TimeoutException,
                                      java.lang.Exception
Request a data sample from instrument module.

Parameters:
sensorRef - reference for sub-class to determine which module to sample
Throws:
TimeoutException
java.lang.Exception

requestSample

protected void requestSample()
                      throws TimeoutException,
                             java.lang.Exception
This is overridden but not implemented.

Specified by:
requestSample in class PolledInstrumentService
Throws:
TimeoutException
java.lang.Exception

acquire

public SensorDataPacket acquire(boolean logSample)
                         throws NoDataException
Description copied from class: PolledInstrumentService
Poll instrument for sample, acquire and process it, and put data into output queue. Call sequence is requestSample(), readSample(), and processSample(). If these are successful, output is put into outbound message queue.

Overrides:
acquire in class PolledInstrumentService
Parameters:
logSample -
Returns:
sensor data packet
Throws:
NoDataException

resetCommStats

protected void resetCommStats()
set communication statistic counters to 0


incSampleCount

protected void incSampleCount()
called to increment sample counter


incRetryExceededCount

protected void incRetryExceededCount()
called to increment comms retry count


incInvalidDataCount

protected void incInvalidDataCount()
called to increment invalid data count


incTimeoutCount

protected void incTimeoutCount()
called to increment comms timeout count


incBadResponseCount

protected void incBadResponseCount()
called to increment bad response totalizer


test

public int test()
Hack - triggers a comms stat dump through RMI

Returns:
n/a


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.