org.mbari.siam.devices.nortek.vector
Class Vector

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.StreamingInstrumentService
                          extended by org.mbari.siam.devices.nortek.vector.Aquadopp
                              extended by org.mbari.siam.devices.nortek.vector.Vector
All Implemented Interfaces:
java.io.Serializable, java.rmi.Remote, ScheduleOwner, AquadoppIF, Device, DeviceServiceIF, Instrument, Safeable
Direct Known Subclasses:
SimulatedVector

public class Vector
extends Aquadopp
implements AquadoppIF, Safeable

Instrument service for Aquadopp current profiler.

See Also:
Serialized Form

Nested Class Summary
 class Vector.VectorAttributes
          Service attributes.
 
Nested classes/interfaces inherited from class org.mbari.siam.devices.nortek.vector.Aquadopp
Aquadopp.Attributes, Aquadopp.Parser
 
Field Summary
 Vector.VectorAttributes _attributes
          Configurable Aquadopp attributes
protected  SensorDataPacket _avgDataPkt
           
protected  PrintfFormat _avgFmt
           
protected  int _avgSamples
           
protected  long _avgStartTime
          Following are for calculating average velocities
 VectorSystemData _systemData
          Vector system data
 VectorVelocityData _velocityData
          Vector velocity data
protected  double _velXaccum
           
protected  double _velYaccum
           
protected  double _velZaccum
           
static int VECTOR_SYSTEM_DATA
           
static int VECTOR_VELOCITY_DATA
           
 
Fields inherited from class org.mbari.siam.devices.nortek.vector.Aquadopp
ASCII_CONFIG_TAG, BINARY_CONFIG_TAG, HARDWARE_CONFIGURATION, HR_PROFILER_DATA, INSTRUMENT_CONFIGURATION, PROFILER_VELOCITY_DATA, SYNC_BYTE
 
Fields inherited from class org.mbari.siam.core.StreamingInstrumentService
_shutdown, _subsampleInterval, _suspend
 
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
Vector()
           
 
Method Summary
protected  SensorDataPacket acquire(boolean logSample)
          Override acquire() in order to calculate averages
protected  void clearAverages(long now)
           
protected  ScheduleSpecifier createDefaultSampleSchedule()
          Return specifier for default sampling schedule.
protected  byte[] getInstrumentStateMetadata()
          Get Instrument State Metadata.
 PacketParser getParser()
          Return a PacketParser.
protected  PowerPolicy initCommunicationPowerPolicy()
          Sets Vector communications power policy
protected  void initializeInstrument()
          Initialize the Instrument This means to set all initial settings - This section for one time only instrument settings
protected  PowerPolicy initInstrumentPowerPolicy()
          Sets Vector power policy
protected  int initMaxSampleBytes()
          Sets the Aquadopp maximum number of bytes in an instrument data sample
 java.lang.Object parseDataPacket(SensorDataPacket pkt)
          Parse the Vector data into a Velocity struct
protected  int readSample(byte[] sample)
          Read a Nortek binary sample; overrides BaseInstrumentService.readSample().
protected  int readVectorSample(byte[] sample)
          Helper function for readSample to actually get the data from the Vector
protected  void sendConfiguration(java.lang.String configFile)
           
protected  java.lang.String shutdownInstrument()
          Make sure to terminate measurement mode - it is "bad" to disconnect power while in measurement mode.
protected  void startStreaming()
          Put instrument into streaming mode.
protected  void stopStreaming()
          Stop streaming.
 
Methods inherited from class org.mbari.siam.devices.nortek.vector.Aquadopp
enterSafeMode, eraseRecorder, getDevicePacketParser, getSerialPortParameters, initCurrentLimit, initInstrumentStartDelay, initPromptString, initSampleTerminator, isStreaming, setClock, setClock, setMeasurementInterval, test
 
Methods inherited from class org.mbari.siam.core.StreamingInstrumentService
acquireFromStream, doneAcquiring, doScheduledTask, resume, setAttributes, shutdown, suspend
 
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, 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, powerOnCallback, prepareToRun, prepareToSample, printData, processSample, removeAllSchedules, removeSchedule, resetPortDiagnostics, resumeSchedule, running, setCommunicationPowerPolicy, setCurrentLimit, setDefaultSampleScheduleName, setInstrumentPowerPolicy, setInstrumentServiceBlock, setInstrumentStartDelay, setMaxSampleBytes, setMaxSampleTries, setPromptString, setProperty, setRecordType, setSampleTerminator, setSampleTimeout, sleepingUntil, snooze, startDeviceAccess, summaryEnabled, 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.devices.nortek.vector.AquadoppIF
eraseRecorder
 
Methods inherited from interface org.mbari.siam.distributed.Instrument
acquireSample, addDefaultPacketFilters, annotate, cacheProperties, clearDefaultPacketFilters, clearPropertiesCache, disableSummary, enableSummary, getDefaultPacketFilters, getLastSample, getPackets, getPackets, 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.Safeable
enterSafeMode
 
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

VECTOR_VELOCITY_DATA

public static final int VECTOR_VELOCITY_DATA
See Also:
Constant Field Values

VECTOR_SYSTEM_DATA

public static final int VECTOR_SYSTEM_DATA
See Also:
Constant Field Values

_velocityData

public VectorVelocityData _velocityData
Vector velocity data


_systemData

public VectorSystemData _systemData
Vector system data


_avgStartTime

protected long _avgStartTime
Following are for calculating average velocities


_velXaccum

protected double _velXaccum

_velYaccum

protected double _velYaccum

_velZaccum

protected double _velZaccum

_avgSamples

protected int _avgSamples

_avgDataPkt

protected SensorDataPacket _avgDataPkt

_avgFmt

protected PrintfFormat _avgFmt

_attributes

public Vector.VectorAttributes _attributes
Configurable Aquadopp attributes

Constructor Detail

Vector

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

initInstrumentPowerPolicy

protected PowerPolicy initInstrumentPowerPolicy()
Sets Vector power policy

Overrides:
initInstrumentPowerPolicy in class Aquadopp

initCommunicationPowerPolicy

protected PowerPolicy initCommunicationPowerPolicy()
Sets Vector communications power policy

Overrides:
initCommunicationPowerPolicy in class Aquadopp

initMaxSampleBytes

protected int initMaxSampleBytes()
Sets the Aquadopp maximum number of bytes in an instrument data sample

Overrides:
initMaxSampleBytes in class Aquadopp

initializeInstrument

protected void initializeInstrument()
                             throws InitializeException,
                                    java.lang.Exception
Initialize the Instrument This means to set all initial settings - This section for one time only instrument settings

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

getInstrumentStateMetadata

protected byte[] getInstrumentStateMetadata()
                                     throws java.lang.Exception
Get Instrument State Metadata. TRUE STATE OF INSTRUMENT.

Overrides:
getInstrumentStateMetadata in class Aquadopp
Throws:
java.lang.Exception

sendConfiguration

protected void sendConfiguration(java.lang.String configFile)
                          throws java.lang.Exception
Throws:
java.lang.Exception

createDefaultSampleSchedule

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

Overrides:
createDefaultSampleSchedule in class Aquadopp
Throws:
ScheduleParseException

readVectorSample

protected int readVectorSample(byte[] sample)
                        throws TimeoutException,
                               java.io.IOException,
                               java.lang.Exception
Helper function for readSample to actually get the data from the Vector

Throws:
TimeoutException
java.io.IOException
java.lang.Exception

readSample

protected int readSample(byte[] sample)
                  throws TimeoutException,
                         java.io.IOException,
                         java.lang.Exception
Read a Nortek binary sample; overrides BaseInstrumentService.readSample().

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

clearAverages

protected void clearAverages(long now)

acquire

protected SensorDataPacket acquire(boolean logSample)
                            throws NoDataException
Override acquire() in order to calculate averages

Overrides:
acquire in class StreamingInstrumentService
Throws:
NoDataException

shutdownInstrument

protected java.lang.String shutdownInstrument()
                                       throws java.lang.Exception
Make sure to terminate measurement mode - it is "bad" to disconnect power while in measurement mode.

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

getParser

public PacketParser getParser()
                       throws NotSupportedException
Return a PacketParser.

Specified by:
getParser in interface Instrument
Overrides:
getParser in class Aquadopp
Throws:
NotSupportedException

parseDataPacket

public java.lang.Object parseDataPacket(SensorDataPacket pkt)
                                 throws InvalidDataException
Parse the Vector data into a Velocity struct

Throws:
InvalidDataException

stopStreaming

protected void stopStreaming()
                      throws java.lang.Exception
Stop streaming. Overridden to implement 'listenOnly'

Overrides:
stopStreaming in class Aquadopp
Throws:
java.lang.Exception

startStreaming

protected void startStreaming()
                       throws java.lang.Exception
Put instrument into streaming mode. Overriddent to implement 'listenOnly'

Overrides:
startStreaming in class Aquadopp
Throws:
java.lang.Exception


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.