org.mbari.siam.foce.devices.analog
Class SBE18

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.foce.devices.analog.AnalogInstrument
                              extended by org.mbari.siam.foce.devices.analog.SBE18
All Implemented Interfaces:
java.io.Serializable, java.rmi.Remote, ScheduleOwner, Device, DeviceServiceIF, Instrument, InstrumentDataListener

public class SBE18
extends AnalogInstrument
implements Instrument, InstrumentDataListener

SBE18 implements an analog pH sensor driver for the Seabird SBE-18. It extends AnalogInstrument, and uses temperature records from the CTD to compute pH from the the voltages returned by the SBE-18.

See Also:
Serialized Form

Nested Class Summary
 class SBE18.SBE18Attributes
          SBE18Attributes
 
Field Summary
protected  double[] _extResults
          Extended results (voltages, pH, temperature)
protected static org.apache.log4j.Logger _log4j
          Log4j logger
protected  double[] _pHcorrections
          pH correction values for each of (potentially) 8 channels
protected  double _temp
          Temperature acquired
static double K
           
static double KELVIN
           
 
Fields inherited from class org.mbari.siam.foce.devices.analog.AnalogInstrument
_analogBoard, _format, _nullBytes, _numChans, _port, _results, _sampleBytes
 
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
SBE18()
          Zero-arg constructor
 
Method Summary
protected  double[] acquireAnalogData()
          Override acquireAnalogData() in base class.
 void dataCallback(DevicePacket sensorData, PacketParser.Field[] fields)
          dataCallback from the Temperature device
protected  void initializeInstrument()
          Register us for data callbacks from the temperature device
 void serviceRegisteredCallback(RegistryEntry entry)
          Callback for InstrumentDataListener interface, called when the Temperature service is registered with the InstrumentRegistry
protected  void subclassInit()
          Allocate additional buffer space needed for converting volts to pH
 
Methods inherited from class org.mbari.siam.foce.devices.analog.AnalogInstrument
createDefaultSampleSchedule, getInstrumentStateMetadata, getParser, getSerialPortParameters, initCommunicationPowerPolicy, initCurrentLimit, initialize, initInstrumentPowerPolicy, initInstrumentStartDelay, initMaxSampleBytes, initPromptString, initSampleTerminator, parseDataPacket, readSample, requestSample, setClock, test
 
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, getPortDiagnostics, getPortDiagnosticsSummary, getPromptString, getProperties, getProperty, getSampleBuf, getSampleSchedule, getSampleTerminator, getSampleTimeout, getSchedule, getScheduleKey, getSchedules, getServicePropertiesBytes, initializeDriverDefaults, initializePooledResources, interruptDeviceAccess, logPacket, managePowerSleep, managePowerWake, nPowerRequests, postSample, powerOff, powerOffCallback, powerOn, powerOnCallback, prepareToRun, prepareToSample, printData, processSample, removeAllSchedules, removeSchedule, resetPortDiagnostics, resume, resumeSchedule, running, 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, 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
 

Field Detail

_log4j

protected static org.apache.log4j.Logger _log4j
Log4j logger


KELVIN

public static final double KELVIN
See Also:
Constant Field Values

K

public static final double K
See Also:
Constant Field Values

_extResults

protected double[] _extResults
Extended results (voltages, pH, temperature)


_temp

protected double _temp
Temperature acquired


_pHcorrections

protected double[] _pHcorrections
pH correction values for each of (potentially) 8 channels

Constructor Detail

SBE18

public SBE18()
      throws java.rmi.RemoteException
Zero-arg constructor

Throws:
java.rmi.RemoteException
Method Detail

subclassInit

protected void subclassInit()
Allocate additional buffer space needed for converting volts to pH

Overrides:
subclassInit in class AnalogInstrument

initializeInstrument

protected void initializeInstrument()
                             throws InitializeException,
                                    java.lang.Exception
Register us for data callbacks from the temperature device

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

serviceRegisteredCallback

public void serviceRegisteredCallback(RegistryEntry entry)
Callback for InstrumentDataListener interface, called when the Temperature service is registered with the InstrumentRegistry

Specified by:
serviceRegisteredCallback in interface InstrumentDataListener

dataCallback

public void dataCallback(DevicePacket sensorData,
                         PacketParser.Field[] fields)
dataCallback from the Temperature device

Specified by:
dataCallback in interface InstrumentDataListener
Parameters:
sensorData - - SensorDataPacket that instrument logged
fields - - Result of passing sensorData to PacketParser.parseFields() if registered DeviceService is an instanceof BaseInstrumentService. Else null.

acquireAnalogData

protected double[] acquireAnalogData()
                              throws java.io.IOException,
                                     java.lang.NumberFormatException
Override acquireAnalogData() in base class. Get the double[] array, and create new one that adds pH's and temperature used for calculation

Overrides:
acquireAnalogData in class AnalogInstrument
Throws:
java.io.IOException
java.lang.NumberFormatException


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.