org.mbari.siam.devices.serialadc
Class SerialAdc

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.devices.serialadc.SerialAdc
All Implemented Interfaces:
java.io.Serializable, java.rmi.Remote, ScheduleOwner, Device, DeviceServiceIF, Instrument
Direct Known Subclasses:
PowerCan

public class SerialAdc
extends PolledInstrumentService
implements Instrument

See Also:
Serialized Form

Nested Class Summary
protected  class SerialAdc.ADCChannel
           
 
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
SerialAdc()
           
 
Method Summary
protected  ScheduleSpecifier createDefaultSampleSchedule()
          Return specifier for default sampling schedule.
 java.lang.String getChannel(java.lang.String channelName)
          Get specified ADC channel line from sample buffer
protected  byte[] getInstrumentStateMetadata()
          Return SerialAdc metadata.
protected  int getPowerStatus(SerialAdc.ADCChannel adcChannel)
          Determine power status based on configurable service attributes (powerOkLow and powerWarningLow), indicating the minimum values for each condition.
 SerialPortParameters getSerialPortParameters()
          Return parameters to use on serial port.
protected  PowerPolicy initCommunicationPowerPolicy()
          Sets SerialAdc communications power policy
protected  int initCurrentLimit()
          Sets SerialAdc current limit
protected  void initializeInstrument()
          Initialize the serial ADC board.
protected  PowerPolicy initInstrumentPowerPolicy()
          Sets SerialAdc power policy
protected  int initInstrumentStartDelay()
          Set SerialAdc startup delay time
protected  int initMaxSampleBytes()
          Sets the SerialAdc maximum number of bytes in a instrument data sample
protected  byte[] initPromptString()
          Sets the SerialAdc command prompt
protected  byte[] initSampleTerminator()
          Sets the SerialAdc sample terminator
protected  void postSample()
          Called after sample has been acquired, processed and logged.
protected  void prepareToSample()
          Signal the SerialAdc that you are ready to fetch the data.
protected  int readSample(byte[] sample)
          Read captured data sample from the SerialAdc.
protected  void requestSample()
          Request captured data from the SerialAdc
 void setClock(long time)
          Set the sensor's clock.
protected  java.lang.String shutdownInstrument()
          Try to gracefully exit P2 app then, stop the service.
 int test()
          Self-test routine; This does nothing in the SerialAdc driver
 
Methods inherited from class org.mbari.siam.core.PolledInstrumentService
acquire, 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, getLastSample, getMaxSampleBytes, getMaxSampleTries, getMetadata, getMetadata, getMetadataPayload, getPackets, getPackets, getParent, getParser, getPortDiagnostics, getPortDiagnosticsSummary, getPromptString, getProperties, getProperty, getSampleBuf, getSampleSchedule, getSampleTerminator, getSampleTimeout, getSchedule, getScheduleKey, getSchedules, getServicePropertiesBytes, initialize, initializeDriverDefaults, initializePooledResources, interruptDeviceAccess, logPacket, managePowerSleep, managePowerWake, nPowerRequests, powerOff, powerOffCallback, powerOn, powerOnCallback, prepareToRun, printData, processSample, removeAllSchedules, removeSchedule, resetPortDiagnostics, resume, resumeSchedule, running, setClock, setCommunicationPowerPolicy, setCurrentLimit, setDefaultSampleScheduleName, setInstrumentPowerPolicy, setInstrumentServiceBlock, setInstrumentStartDelay, setMaxSampleBytes, setMaxSampleTries, setPromptString, setProperty, setRecordType, setSampleTerminator, setSampleTimeout, shutdown, 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, 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, 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
 

Constructor Detail

SerialAdc

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

initInstrumentPowerPolicy

protected PowerPolicy initInstrumentPowerPolicy()
Sets SerialAdc power policy

Specified by:
initInstrumentPowerPolicy in class BaseInstrumentService

initCommunicationPowerPolicy

protected PowerPolicy initCommunicationPowerPolicy()
Sets SerialAdc communications power policy

Specified by:
initCommunicationPowerPolicy in class BaseInstrumentService

initInstrumentStartDelay

protected int initInstrumentStartDelay()
Set SerialAdc startup delay time

Specified by:
initInstrumentStartDelay in class BaseInstrumentService

initCurrentLimit

protected int initCurrentLimit()
Sets SerialAdc current limit

Specified by:
initCurrentLimit in class BaseInstrumentService

initSampleTerminator

protected byte[] initSampleTerminator()
Sets the SerialAdc sample terminator

Specified by:
initSampleTerminator in class BaseInstrumentService

initPromptString

protected byte[] initPromptString()
Sets the SerialAdc command prompt

Specified by:
initPromptString in class BaseInstrumentService

initMaxSampleBytes

protected int initMaxSampleBytes()
Sets the SerialAdc maximum number of bytes in a instrument data sample

Specified by:
initMaxSampleBytes in class BaseInstrumentService

initializeInstrument

protected void initializeInstrument()
Initialize the serial ADC board.

Overrides:
initializeInstrument in class BaseInstrumentService

getSerialPortParameters

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

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

prepareToSample

protected void prepareToSample()
                        throws java.lang.Exception
Signal the SerialAdc that you are ready to fetch the data. This method must be called before request sample

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

readSample

protected int readSample(byte[] sample)
                  throws TimeoutException,
                         java.lang.Exception
Read captured data sample from the SerialAdc.

Overrides:
readSample in class BaseInstrumentService
Parameters:
sample - output buffer
Throws:
TimeoutException
java.lang.Exception

getInstrumentStateMetadata

protected byte[] getInstrumentStateMetadata()
Return SerialAdc metadata.

Overrides:
getInstrumentStateMetadata in class BaseInstrumentService

setClock

public void setClock(long time)
Set the sensor's clock. This does nothing in the SerialAdc driver

Specified by:
setClock in interface Instrument
Overrides:
setClock in class BaseInstrumentService

test

public int test()
Self-test routine; This does nothing in the SerialAdc driver

Specified by:
test in interface Device

requestSample

protected void requestSample()
                      throws java.io.IOException
Request captured data from the SerialAdc

Specified by:
requestSample in class PolledInstrumentService
Throws:
java.io.IOException

shutdownInstrument

protected java.lang.String shutdownInstrument()
                                       throws java.lang.Exception
Try to gracefully exit P2 app then, stop the service.

Overrides:
shutdownInstrument in class BaseInstrumentService
Throws:
java.lang.Exception

createDefaultSampleSchedule

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

Specified by:
createDefaultSampleSchedule in class PolledInstrumentService
Throws:
ScheduleParseException

getPowerStatus

protected int getPowerStatus(SerialAdc.ADCChannel adcChannel)
Determine power status based on configurable service attributes (powerOkLow and powerWarningLow), indicating the minimum values for each condition.


getChannel

public java.lang.String getChannel(java.lang.String channelName)
Get specified ADC channel line from sample buffer


postSample

protected void postSample()
Called after sample has been acquired, processed and logged. By default this method does nothing, an may be overridden in the subclass.

Overrides:
postSample in class BaseInstrumentService


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.