org.mbari.siam.devices.msp430
Class MSP430

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.msp430.MSP430
All Implemented Interfaces:
java.io.Serializable, java.rmi.Remote, ScheduleOwner, Device, Environmental, DeviceServiceIF, Instrument

public class MSP430
extends PolledInstrumentService
implements Environmental

Driver for MSP430 Environmental service

Author:
Tom O'Reilly modified by Bob Herlien to add commandAndReply method for SleepService
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.mbari.siam.distributed.devices.Environmental
Environmental.Data
 
Field Summary
protected  org.mbari.siam.devices.msp430.MSP430.Attributes _attributes
           
protected static MSP430 _instance
           
protected static int ENV_METADATA_BYTES
          Maximum number of bytes in environmental metadata.
 
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
MSP430()
           
 
Method Summary
 java.lang.String commandAndReply(java.lang.String cmd)
          commandAndReply using default sample timeout
 java.lang.String commandAndReply(java.lang.String cmd, long timeout)
          Send a command to the MSP430 and receive the reply
protected  ScheduleSpecifier createDefaultSampleSchedule()
          Return specifier for default sampling schedule.
protected  void getAttention()
          Get MSP430's attention (i.e.
 Environmental.Data getDataValues(boolean logData)
          Get the latest data sample.
static MSP430 getInstance()
          Get the MSP430 object.
protected  byte[] getInstrumentStateMetadata()
          Get device's notion of its state.
 PacketParser getParser()
          Return packet parser.
 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.
protected  void initializeInstrument()
          Initialize the sensors.
protected  PowerPolicy initInstrumentPowerPolicy()
          Return initial value of instrument power policy.
protected  int initInstrumentStartDelay()
          Specify device 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  void requestSample()
          Request a data sample.
 void resetTurnsCounter(int nTurns)
          Reset compass turns counter to specified value.
 void setClock(long t)
          Environmental sensor does not have an internal clock.
 int test()
          Self-test not implemented.
 
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, readSample, 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, 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
 

Field Detail

_instance

protected static MSP430 _instance

_attributes

protected org.mbari.siam.devices.msp430.MSP430.Attributes _attributes

ENV_METADATA_BYTES

protected static final int ENV_METADATA_BYTES
Maximum number of bytes in environmental metadata.

See Also:
Constant Field Values
Constructor Detail

MSP430

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

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.

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

initInstrumentStartDelay

protected int initInstrumentStartDelay()
Specify device startup delay (millisec)

Specified by:
initInstrumentStartDelay in class BaseInstrumentService

getAttention

protected void getAttention()
                     throws java.io.IOException,
                            TimeoutException,
                            java.lang.Exception
Get MSP430's attention (i.e. user prompt)

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

requestSample

protected void requestSample()
                      throws java.io.IOException
Request a data sample.

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

initializeInstrument

protected void initializeInstrument()
                             throws InitializeException,
                                    java.lang.Exception
Initialize the sensors.

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

getSerialPortParameters

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

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

setClock

public void setClock(long t)
Environmental sensor does not have an internal clock.

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

test

public int test()
Self-test not implemented.

Specified by:
test in interface Device

createDefaultSampleSchedule

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

Specified by:
createDefaultSampleSchedule in class PolledInstrumentService
Throws:
ScheduleParseException

getInstance

public static MSP430 getInstance()
Get the MSP430 object. Note that, unlike "real" singleton getInstance methods, this doesn't actually instantiate the object. PortManager is responsible for instantiating it and assigning it to the appropriate serial port. However, it SHOULD only be instantiated once, so we can save and return THE instance of this class


commandAndReply

public java.lang.String commandAndReply(java.lang.String cmd,
                                        long timeout)
                                 throws TimeoutException,
                                        java.lang.NullPointerException,
                                        java.io.IOException,
                                        java.lang.Exception
Send a command to the MSP430 and receive the reply

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

commandAndReply

public java.lang.String commandAndReply(java.lang.String cmd)
                                 throws TimeoutException,
                                        java.lang.NullPointerException,
                                        java.io.IOException,
                                        java.lang.Exception
commandAndReply using default sample timeout

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

getParser

public PacketParser getParser()
Return packet parser.

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

resetTurnsCounter

public void resetTurnsCounter(int nTurns)
Reset compass turns counter to specified value.

Specified by:
resetTurnsCounter in interface Environmental

getDataValues

public Environmental.Data getDataValues(boolean logData)
                                 throws NoDataException
Get the latest data sample.

Specified by:
getDataValues in interface Environmental
Throws:
NoDataException

getInstrumentStateMetadata

protected byte[] getInstrumentStateMetadata()
Get device's notion of its state.

Overrides:
getInstrumentStateMetadata 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.