org.mbari.siam.devices.garmin
Class GarminGPS

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.garmin.GarminGPS
All Implemented Interfaces:
java.io.Serializable, java.rmi.Remote, ScheduleOwner, Device, GPS, DeviceServiceIF, Instrument

public class GarminGPS
extends PolledInstrumentService
implements GPS

Service implementation for several models of Garmin GPS, including GPS16, GPS25.

See Also:
Serialized Form

Field Summary
protected  org.mbari.siam.devices.garmin.GarminGPS.Attributes _attributes
           
protected static org.apache.log4j.Logger _log4j
          Log4j logger
 
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
GarminGPS()
           
 
Method Summary
protected  ScheduleSpecifier createDefaultSampleSchedule()
          Return specifier for default sampling schedule.
 void cyclePower(int delay)
           
 void disableAllNMEA()
          Turn off all all NMEA output
 void disableNMEAMessage(java.lang.String msg)
          Disable a NMEA message
 void enableNMEAMessage(java.lang.String msg)
          Enable a NMEA message
protected  boolean getFix(org.mbari.siam.devices.garmin.NMEAString theMessage, byte[] sample)
           
protected  byte[] getInstrumentStateMetadata()
          Get configuration metadata from GPS.
 byte[] getLatestNMEA()
          Get most recent NMEA string from GPS.
 SerialPortParameters getSerialPortParameters()
          Return parameters to use on serial port.
protected  PowerPolicy initCommunicationPowerPolicy()
          Return initial value of instrument power policy.
protected  int initCurrentLimit()
          Return initial value of DPA current limit.
 void initializeInstrument()
          Do instrument- and service-specific initialization.
protected  PowerPolicy initInstrumentPowerPolicy()
          Return initial value of instrument power policy.
protected  int initInstrumentStartDelay()
          Return initial value of instrument startup time in millisec.
protected  int initMaxSampleBytes()
          Return initial value for maximum number of bytes in a instrument data sample.
protected  byte[] initPromptString()
          Return initial value for instrument's "prompt" character.
protected  byte[] initSampleTerminator()
          Return initial value for instrument's sample terminator
protected  int readSample(byte[] sample)
          Read raw sample bytes from serial port into buffer, return number of bytes read.
protected  void requestSample()
          Prepare to read sample (per sample initialization)
 boolean searchSky(long timeout, org.mbari.siam.devices.garmin.NMEAString theMessage, byte[] sample)
           
 void setClock(long t)
          Garmin does not have an internal clock?
 void setDefaultNMEAMessages()
          Set default NMEA messages.
 void setNMEAMessage(java.lang.String msg)
          Enable/Disable a NMEA message
 void sync()
           
 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, 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, 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, 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


_attributes

protected org.mbari.siam.devices.garmin.GarminGPS.Attributes _attributes
Constructor Detail

GarminGPS

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

initPromptString

protected byte[] initPromptString()
Return initial value for instrument's "prompt" character.

Specified by:
initPromptString in class BaseInstrumentService

initSampleTerminator

protected byte[] initSampleTerminator()
Return initial value for instrument's sample terminator

Specified by:
initSampleTerminator in class BaseInstrumentService

initCurrentLimit

protected int initCurrentLimit()
Return initial value of DPA 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 instrument power policy.

Specified by:
initCommunicationPowerPolicy in class BaseInstrumentService

initInstrumentStartDelay

protected int initInstrumentStartDelay()
Return initial value of instrument startup time in millisec.

Specified by:
initInstrumentStartDelay in class BaseInstrumentService

initMaxSampleBytes

protected int initMaxSampleBytes()
Return initial value for maximum number of bytes in a instrument data sample.

Specified by:
initMaxSampleBytes in class BaseInstrumentService

initializeInstrument

public void initializeInstrument()
                          throws InitializeException,
                                 java.lang.Exception
Description copied from class: BaseInstrumentService
Do instrument- and service-specific initialization. By default, this method does nothing, and may be overridden.

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

cyclePower

public void cyclePower(int delay)

searchSky

public boolean searchSky(long timeout,
                         org.mbari.siam.devices.garmin.NMEAString theMessage,
                         byte[] sample)
                  throws java.lang.Exception
Throws:
java.lang.Exception

setNMEAMessage

public void setNMEAMessage(java.lang.String msg)
                    throws java.lang.Exception
Enable/Disable a NMEA message

Parameters:
msg - String: "NMEA_TYPE,1|2|3"
Throws:
java.lang.Exception

sync

public void sync()

enableNMEAMessage

public void enableNMEAMessage(java.lang.String msg)
                       throws java.lang.Exception
Enable a NMEA message

Parameters:
msg - String: "NMEA_TYPE"
Throws:
java.lang.Exception

disableNMEAMessage

public void disableNMEAMessage(java.lang.String msg)
                        throws java.lang.Exception
Disable a NMEA message

Parameters:
msg - String: "NMEA_TYPE"
Throws:
java.lang.Exception

disableAllNMEA

public void disableAllNMEA()
                    throws java.lang.Exception
Turn off all all NMEA output

Throws:
java.lang.Exception

requestSample

protected void requestSample()
Prepare to read sample (per sample initialization)

Specified by:
requestSample in class PolledInstrumentService

getFix

protected boolean getFix(org.mbari.siam.devices.garmin.NMEAString theMessage,
                         byte[] sample)
                  throws java.lang.Exception
Throws:
java.lang.Exception

readSample

protected int readSample(byte[] sample)
                  throws java.lang.Exception
Description copied from class: BaseInstrumentService
Read raw sample bytes from serial port into buffer, return number of bytes read. Reads characters from serial port until sample terminator string is encountered.

Overrides:
readSample in class BaseInstrumentService
Parameters:
sample - output buffer
Throws:
java.lang.Exception

getInstrumentStateMetadata

protected byte[] getInstrumentStateMetadata()
Get configuration metadata from GPS.

Overrides:
getInstrumentStateMetadata in class BaseInstrumentService

setClock

public void setClock(long t)
Garmin 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

getSerialPortParameters

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

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

createDefaultSampleSchedule

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

Specified by:
createDefaultSampleSchedule in class PolledInstrumentService
Throws:
ScheduleParseException

getLatestNMEA

public byte[] getLatestNMEA()
                     throws NoDataException
Get most recent NMEA string from GPS.

Specified by:
getLatestNMEA in interface GPS
Throws:
NoDataException

setDefaultNMEAMessages

public void setDefaultNMEAMessages()
                            throws java.lang.Exception
Set default NMEA messages.

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.