org.mbari.siam.devices.wetlabs
Class WetLabsECO

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.wetlabs.WetLabsECO
All Implemented Interfaces:
java.io.Serializable, java.rmi.Remote, ScheduleOwner, Device, DeviceServiceIF, Instrument, Safeable
Direct Known Subclasses:
WetLabsTriplet

public class WetLabsECO
extends PolledInstrumentService
implements Instrument, Safeable

Implements instrument service for WET Labs ECO instrument. Instrument begins emitting samples at power-up or when the "$run" command is issued; the number of samples that are emitted can be modified by configuration. Thus the instrument has both "streaming" and "polled" characteristics. This implementation extends the PolledInstrumentService class.

See Also:
Serialized Form

Nested Class Summary
protected  class WetLabsECO.Attributes
          Configurable attributes
 
Field Summary
protected  WetLabsECO.Attributes _attributes
           
 
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
WetLabsECO()
          Allocates a new WetLabsECO
 
Method Summary
protected  ScheduleSpecifier createDefaultSampleSchedule()
          Return specifier for default sampling schedule.
protected  void doCommand(java.lang.String command)
          Execute specified command, don't verify response.
protected  void doCommand(java.lang.String cmd, java.lang.String response)
          Method to send commands to the instrument.
protected  void doSoftBreak()
          Issue "soft break" until instrument goes into command mode.
protected  void enterCommandMode()
          Put instrument into command mode.
 void enterSafeMode()
          Enter mode for resource-restricted environement.
 DevicePacketParser getDevicePacketParser()
          Get instruments' DevicePacketParser, which returns JDDAC records.
protected  byte[] getInstrumentStateMetadata()
          Get instrument state information from the device itself.
 SerialPortParameters getSerialPortParameters()
          Return parameters to use on serial port.
protected  PowerPolicy initCommunicationPowerPolicy()
          Return initial value of communication 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 initial value of 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  byte[] mkCmd(java.lang.String cmd)
          Utility method to construct a message of the form: -
protected  void powerOnCallback()
          Called after power is applied; return when instrument is ready for use.
protected  void requestSample()
          Request a data sample from instrument.
 void setClock()
          Set instrument's time and date.
 void setClock(long t)
          Not implemented.
protected  java.lang.String shutdownInstrument()
          Return message regarding power-cycling.
 int test()
          Run device's self-test routine.
 
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, 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, postSample, powerOff, powerOffCallback, powerOn, prepareToRun, prepareToSample, printData, processSample, readSample, removeAllSchedules, removeSchedule, resetPortDiagnostics, resume, resumeSchedule, running, 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, 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

_attributes

protected WetLabsECO.Attributes _attributes
Constructor Detail

WetLabsECO

public WetLabsECO()
           throws java.rmi.RemoteException
Allocates a new WetLabsECO

Throws:
java.rmi.RemoteException - .
Method Detail

initInstrumentStartDelay

protected int initInstrumentStartDelay()
Specify startup delay (millisec)

Specified by:
initInstrumentStartDelay in class BaseInstrumentService

initPromptString

protected byte[] initPromptString()
Specify prompt string.

Specified by:
initPromptString in class BaseInstrumentService

initSampleTerminator

protected byte[] initSampleTerminator()
Specify sample terminator.

Specified by:
initSampleTerminator in class BaseInstrumentService

initMaxSampleBytes

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

Specified by:
initMaxSampleBytes in class BaseInstrumentService

initCurrentLimit

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

Specified by:
initCurrentLimit in class BaseInstrumentService

initInstrumentPowerPolicy

protected PowerPolicy initInstrumentPowerPolicy()
Return initial value of instrument power policy.

Specified by:
initInstrumentPowerPolicy in class BaseInstrumentService

initCommunicationPowerPolicy

protected PowerPolicy initCommunicationPowerPolicy()
Return initial value of communication power policy.

Specified by:
initCommunicationPowerPolicy in class BaseInstrumentService

createDefaultSampleSchedule

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

Specified by:
createDefaultSampleSchedule in class PolledInstrumentService
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.

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

setClock

public void setClock()
              throws NotSupportedException
Set instrument's time and date.

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

requestSample

protected void requestSample()
                      throws TimeoutException,
                             java.lang.Exception
Description copied from class: PolledInstrumentService
Request a data sample from instrument.

Specified by:
requestSample in class PolledInstrumentService
Throws:
TimeoutException - thrown if no data is detected for a period of twice the _preemptionTime
java.lang.Exception - not thrown see setNumSensors see _preemptionTime

getInstrumentStateMetadata

protected byte[] getInstrumentStateMetadata()
Get instrument state information from the device itself.

Overrides:
getInstrumentStateMetadata in class BaseInstrumentService

setClock

public void setClock(long t)
Not implemented. Samples are locally timestamped

Specified by:
setClock in interface Instrument
Overrides:
setClock in class BaseInstrumentService
Parameters:
t -

doCommand

protected void doCommand(java.lang.String cmd,
                         java.lang.String response)
                  throws java.lang.Exception
Method to send commands to the instrument. doCommand makes every attempt to communicate with the unit by a process of resetting, flushing input buffer and resending. Note: Trailing '\r' is automatically added to command string.

Parameters:
cmd - Command string to send
Throws:
java.lang.Exception - thrown if the method fails to send the command.

doCommand

protected void doCommand(java.lang.String command)
                  throws java.lang.Exception
Execute specified command, don't verify response.

Throws:
java.lang.Exception

enterCommandMode

protected void enterCommandMode()
                         throws java.lang.Exception
Put instrument into command mode. Note that it may be necessary to cycle instrument power to get into command mode.

Throws:
java.lang.Exception

doSoftBreak

protected void doSoftBreak()
                    throws java.lang.Exception
Issue "soft break" until instrument goes into command mode.

Throws:
java.lang.Exception

powerOnCallback

protected void powerOnCallback()
Called after power is applied; return when instrument is ready for use. When instrument is powered on, it will stream data in accordance with instrument settings. Since we are treating this as a "polled" instrument, we disable streaming when the instrument powers up.

Overrides:
powerOnCallback in class BaseInstrumentService

mkCmd

protected byte[] mkCmd(java.lang.String cmd)
Utility method to construct a message of the form: -

 
 "cmd + \r" 
and returns this as a byte array for transmission

Parameters:
cmd - basic command string to construct
Returns:
byte array of command

test

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

Specified by:
test in interface Device

enterSafeMode

public void enterSafeMode()
                   throws java.lang.Exception
Enter mode for resource-restricted environement.

Specified by:
enterSafeMode in interface Safeable
Throws:
java.lang.Exception

shutdownInstrument

protected java.lang.String shutdownInstrument()
                                       throws java.lang.Exception
Return message regarding power-cycling.

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

getDevicePacketParser

public DevicePacketParser getDevicePacketParser()
                                         throws NotSupportedException
Description copied from class: BaseInstrumentService
Get instruments' DevicePacketParser, which returns JDDAC records. Not supported by default

Overrides:
getDevicePacketParser in class BaseInstrumentService
Throws:
NotSupportedException


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.