org.mbari.siam.foce.devices.elmo.thruster
Class ElmoThruster

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.elmo.base.ElmoService
                              extended by org.mbari.siam.foce.devices.elmo.thruster.ElmoThruster
All Implemented Interfaces:
java.io.Serializable, java.rmi.Remote, ScheduleOwner, Device, ElmoIF, ElmoThrusterIF, DeviceServiceIF, Instrument, InstrumentDataListener
Direct Known Subclasses:
ESWPump

public class ElmoThruster
extends ElmoService
implements ElmoThrusterIF

See Also:
Serialized Form

Nested Class Summary
 class ElmoThruster.ElmoThrusterAttributes
           
 
Nested classes/interfaces inherited from class org.mbari.siam.foce.devices.elmo.base.ElmoService
ElmoService.Attributes
 
Field Summary
protected static org.apache.log4j.Logger _log4j
          Log4j logger
 
Fields inherited from class org.mbari.siam.foce.devices.elmo.base.ElmoService
_attributes, _elmo, _precision, CLOSED_LOOP, DEFAULT_COUNTS_PER_REVOLUTION, DEFAULT_PRECISION, df, DFL_CURRENT_LIMIT_MILLIAMPS, DFL_MAX_SAMPLE_BYTES, MAX_PRECISION, MIN_PRECISION, OPEN_LOOP, serialVersionUID
 
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
ElmoThruster()
           
 
Method Summary
protected  ScheduleSpecifier createDefaultSampleSchedule()
          required by PolledInstrumentService
 PacketParser getParser()
          Return a PacketParser.
 java.lang.String getThrusterSampleMessage()
          return thruster sample string
 long getTSElapsedMsec()
          Return the elapsed time since last turns sensor trigger (msec)
 int getTSState()
          Return the turns sensor state
 java.lang.String getTSStateName()
          return a mnemonic for turns sensor state
 long getTSTriggerCount()
          Return number of times the turns sensor has been triggered since the last reset
 void initializeController()
          Initialize motor controller
protected  void initializeInstrument()
          Override default initializeInstrument.
 java.lang.Object parseDataPacket(SensorDataPacket pkt)
          Parse a SensorDataPacket into a double[] array (used by infrastructure)
protected  int readSample(byte[] sample)
          Override base class readSample (defined in BaseInstrumentService)
 void setTurnsSensorEnable(boolean value)
          Enable or disable the turns sensor
protected  java.lang.String shutdownInstrument()
          Perform any instrument-specific shutdown actions and optionally return a human-readable message (e.g.
protected  void stepStart(int startSpeed, int endSpeed, int increment, long stepTime)
          Brings up motor in step-wise fashion.
protected  java.lang.String switchElmoPower(boolean state)
          Enable or disable power to Elmos Power is switched by memory mapped IO ports on an A/D card (not a standard power port) using foceio.
 
Methods inherited from class org.mbari.siam.foce.devices.elmo.base.ElmoService
beginMotion, counts2orpm, counts2rpm, dataCallback, delay, getCountsPerRevolution, getEncoderVelocity, getEncoderVelocity, getFaultRegister, getGearRatio, getInstrumentStateMetadata, getJoggingVelocity, getPositionCounter, getPositionError, getSerialPortParameters, getStatusRegister, initCommunicationPowerPolicy, initCurrentLimit, initializeController, initInstrumentPowerPolicy, initInstrumentStartDelay, initMaxSampleBytes, initPromptString, initSampleTerminator, isEnabled, jog, orpm2counts, ptpAbsolute, ptpRelative, readRegister, requestSample, rpm2counts, serviceRegisteredCallback, setCountsPerRevolution, setEnable, setGearRatio, setJoggingVelocity, setPositionCounter, setPTPSpeed, setSerialMode, showConfiguration, test, validateSpeed
 
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, initialize, initializeDriverDefaults, initializePooledResources, interruptDeviceAccess, logPacket, managePowerSleep, managePowerWake, nPowerRequests, postSample, powerOff, powerOffCallback, powerOn, powerOnCallback, prepareToRun, prepareToSample, printData, processSample, removeAllSchedules, removeSchedule, resetPortDiagnostics, resume, resumeSchedule, running, setClock, 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.devices.ElmoIF
beginMotion, counts2orpm, counts2rpm, delay, getCountsPerRevolution, getEncoderVelocity, getEncoderVelocity, getFaultRegister, getGearRatio, getJoggingVelocity, getPositionCounter, getPositionError, getStatusRegister, initializeController, isEnabled, jog, orpm2counts, ptpAbsolute, ptpRelative, readRegister, rpm2counts, setCountsPerRevolution, setEnable, setGearRatio, setJoggingVelocity, setPositionCounter, setPTPSpeed, setSerialMode, showConfiguration
 
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
 
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

Constructor Detail

ElmoThruster

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

createDefaultSampleSchedule

protected ScheduleSpecifier createDefaultSampleSchedule()
                                                 throws ScheduleParseException
required by PolledInstrumentService

Overrides:
createDefaultSampleSchedule in class ElmoService
Throws:
ScheduleParseException

initializeInstrument

protected void initializeInstrument()
                             throws InitializeException,
                                    java.lang.Exception
Override default initializeInstrument.

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

initializeController

public void initializeController()
                          throws TimeoutException,
                                 java.io.IOException,
                                 java.lang.Exception,
                                 java.rmi.RemoteException
Initialize motor controller

Specified by:
initializeController in interface ElmoIF
Overrides:
initializeController in class ElmoService
Throws:
TimeoutException
java.io.IOException
java.lang.Exception
java.rmi.RemoteException

setTurnsSensorEnable

public void setTurnsSensorEnable(boolean value)
Description copied from interface: ElmoThrusterIF
Enable or disable the turns sensor

Specified by:
setTurnsSensorEnable in interface ElmoThrusterIF

getTSTriggerCount

public long getTSTriggerCount()
Return number of times the turns sensor has been triggered since the last reset

Specified by:
getTSTriggerCount in interface ElmoThrusterIF

getTSElapsedMsec

public long getTSElapsedMsec()
Return the elapsed time since last turns sensor trigger (msec)

Specified by:
getTSElapsedMsec in interface ElmoThrusterIF

getTSState

public int getTSState()
Return the turns sensor state

Specified by:
getTSState in interface ElmoThrusterIF

getTSStateName

public java.lang.String getTSStateName()
return a mnemonic for turns sensor state

Specified by:
getTSStateName in interface ElmoThrusterIF

getThrusterSampleMessage

public java.lang.String getThrusterSampleMessage()
                                          throws TimeoutException,
                                                 java.io.IOException,
                                                 java.lang.Exception
return thruster sample string

Specified by:
getThrusterSampleMessage in interface ElmoThrusterIF
Throws:
TimeoutException
java.io.IOException
java.lang.Exception

readSample

protected int readSample(byte[] sample)
                  throws TimeoutException,
                         java.io.IOException,
                         java.lang.Exception
Override base class readSample (defined in BaseInstrumentService)

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

stepStart

protected void stepStart(int startSpeed,
                         int endSpeed,
                         int increment,
                         long stepTime)
                  throws java.lang.Exception
Brings up motor in step-wise fashion. For recovering from under-voltage condition. Speeds are in counts.

Throws:
java.lang.Exception

getParser

public PacketParser getParser()
                       throws NotSupportedException
Return a PacketParser.

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

parseDataPacket

public java.lang.Object parseDataPacket(SensorDataPacket pkt)
                                 throws InvalidDataException
Parse a SensorDataPacket into a double[] array (used by infrastructure)

Throws:
InvalidDataException

shutdownInstrument

protected java.lang.String shutdownInstrument()
                                       throws java.lang.Exception
Perform any instrument-specific shutdown actions and optionally return a human-readable message (e.g. noting caveats, status, etc); the returned message is purely for human operator. (override BaseInstrumentService)

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

switchElmoPower

protected java.lang.String switchElmoPower(boolean state)
Enable or disable power to Elmos Power is switched by memory mapped IO ports on an A/D card (not a standard power port) using foceio.

Parameters:
state - true for on, false for off
Returns:
String OK on success, null or error message otherwise


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.