org.mbari.siam.core
Class PolledInstrumentService

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
All Implemented Interfaces:
java.io.Serializable, java.rmi.Remote, ScheduleOwner, Device, DeviceServiceIF, Instrument
Direct Known Subclasses:
AanderaaO2, ActiVideoServer, AggregateInstrumentService, AnalogInstrument, AxisCamera, CO2SubsystemMonitor, ControlLoopService, CPUTempService, DataLogger, DigitalInputService, DummyInstrument, ElmoService, GarminGPS, HeaveSensor, HydroRad, ISUS2, McLaneProfiler, Medusa, MotorControl, MSP430, Ocr3000, PhDigital, PowerSwitch, SAMI, Seabird, Seahorse, SerialAdc, SineDummyInstrument, SOON, ValveService, WetLabsECO, WhoiAsimet, WorkhorseADCP

public abstract class PolledInstrumentService
extends BaseInstrumentService
implements Instrument, DeviceServiceIF, ScheduleOwner

PolledInstrumentService represents an instrument that is synchronously polled for its data.

See Also:
Serialized Form

Field Summary
 
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
PolledInstrumentService()
          Constructor.
 
Method Summary
protected  SensorDataPacket acquire(boolean logSample)
          Poll instrument for sample, acquire and process it, and put data into output queue.
protected abstract  ScheduleSpecifier createDefaultSampleSchedule()
          Return specifier for default sampling schedule.
 void doScheduledTask(ScheduleTask task)
          Execute the scheduled task, as part of ScheduleOwner implementation.
protected abstract  void requestSample()
          Request a data sample from instrument.
 void setAttributes(ServiceAttributes attributes)
          Set the ServiceAttributes object for this service.
 
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, test
 
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
 

Constructor Detail

PolledInstrumentService

public PolledInstrumentService()
                        throws java.rmi.RemoteException
Constructor.

Throws:
java.rmi.RemoteException
Method Detail

doScheduledTask

public final void doScheduledTask(ScheduleTask task)
Execute the scheduled task, as part of ScheduleOwner implementation.

Specified by:
doScheduledTask in interface ScheduleOwner
Specified by:
doScheduledTask in class BaseInstrumentService

acquire

protected SensorDataPacket acquire(boolean logSample)
                            throws NoDataException
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.

Specified by:
acquire in class BaseInstrumentService
Throws:
NoDataException

setAttributes

public final void setAttributes(ServiceAttributes attributes)
Set the ServiceAttributes object for this service.

Specified by:
setAttributes in interface DeviceServiceIF
Overrides:
setAttributes in class BaseInstrumentService

requestSample

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

Throws:
TimeoutException
java.lang.Exception

createDefaultSampleSchedule

protected abstract ScheduleSpecifier createDefaultSampleSchedule()
                                                          throws ScheduleParseException
Return specifier for default sampling schedule. Subclasses MUST provide the default sample schedule.

Specified by:
createDefaultSampleSchedule in class BaseInstrumentService
Throws:
ScheduleParseException


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.