|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectjava.rmi.server.RemoteObject
java.rmi.server.RemoteServer
java.rmi.server.UnicastRemoteObject
org.mbari.siam.core.DeviceService
org.mbari.siam.core.InstrumentService
org.mbari.siam.devices.metsys.Metsys
public class Metsys
A Campbell Scientific CR10X, an embedded microprocessor based datalogger, coordinates the sampling of the Metsys sensors. The embedded system also provides serial communications to the host system so the sampled data can also be transmitted to a PC or mooring controller. The subsystem is preconfigured to take a sample set of all sensors every 10 minutes (1 minute in test mode). The instrument has three distinct operating modes "awake" (or command mode), "asleep" - a low power mode but able to wake itself up automatically at sampling time and "off" - powered down completely. This last operating mode is not a deployment option. To wake the instrument, two carriage returns are sent to the communications port spaced by a small delay to allow the CR10X to wake up before receiving the second character. Sending this second character to the unit causes the unit to enter command mode. The instrument responds with the prompt "*". When in command mode the unit can be interrogated and any number of previous samples can be requested from the instrument's circular buffer. To exit command mode an "E" command is sent and the unit returns to the low power sleep mode. Sample Buffer Management The CR10X's sample buffer is controlled by 2 main pointers, the write pointer (reference) and the read pointer (location). Once initialized, it is the responsibility of the Sidearm to control the position of the "location" pointer; the "reference" pointer is exclusively controlled by the Metsys. The first time the Sidearm initializes the Metsys, the "location" pointer is set to the "reference" pointer. A persistent copy of the "location" pointer is always maintained in "SIAM_HOME/logs/metloc". Should the Sidearm power fail after initialization, the stored location pointer is recovered and used to determine how many records to acquire. There is a limit to the number of past records that the Sidearm can acquire. This limit is programmable using the "retroSave" property (see below).
| Field Summary |
|---|
| Fields inherited from class org.mbari.siam.core.InstrumentService |
|---|
_defaultSampleScheduleName, _instrumentAttributes, _lastPacket, _lastSensorDataPacket, _log4j, _messagePacket, _packetLog, _recordType, _schedules, _sensorDataPacket, 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 | |
|---|---|
Metsys()
|
|
| Method Summary | |
|---|---|
protected ScheduleSpecifier |
createDefaultSampleSchedule()
Return specifier for default sampling schedule. |
protected byte[] |
getInstrumentMetadata()
Not implemented |
SerialPortParameters |
getSerialPortParameters()
Return parameters to use on serial port. |
protected PowerPolicy |
initCommunicationPowerPolicy()
Return communications interface power policy. |
protected int |
initCurrentLimit()
Specify current limit in increments of 120 mA upto 11880 mA. |
protected void |
initializeInstrument()
Called by the framework to initialize the instrument prior to sampling. |
protected PowerPolicy |
initInstrumentPowerPolicy()
Return instrument power policy. |
protected int |
initInstrumentStartDelay()
Specify 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 |
postSample()
Deal with Metsys after sample received or on error during sampling/validating... |
protected void |
prepareToSample()
Wakeup the Metsys in preparation to sample. |
protected void |
printData(byte[] buf)
Called by the framework after the sample data has been captured to optionally print the contents of the sample buffer for debug purposes. |
protected void |
requestSample()
Issue command to Metsys to acquire lastest sample(s) |
void |
setClock(long t)
Not implemented. |
int |
test()
Run device's self-test routine. |
protected void |
validateSample(byte[] _sampleBuf,
int nBytes)
Called by the framwwork after receiving sample. |
| 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 |
| Constructor Detail |
|---|
public Metsys()
throws java.rmi.RemoteException
java.rmi.RemoteException - .| Method Detail |
|---|
protected int initInstrumentStartDelay()
initInstrumentStartDelay in class InstrumentServiceprotected byte[] initPromptString()
initPromptString in class InstrumentServiceprotected byte[] initSampleTerminator()
initSampleTerminator in class InstrumentServiceprotected int initMaxSampleBytes()
initMaxSampleBytes in class InstrumentServiceprotected int initCurrentLimit()
initCurrentLimit in class InstrumentServiceprotected PowerPolicy initInstrumentPowerPolicy()
initInstrumentPowerPolicy in class InstrumentServiceprotected PowerPolicy initCommunicationPowerPolicy()
initCommunicationPowerPolicy in class InstrumentService
protected ScheduleSpecifier createDefaultSampleSchedule()
throws ScheduleParseException
createDefaultSampleSchedule in class InstrumentServiceScheduleParseException
public SerialPortParameters getSerialPortParameters()
throws gnu.io.UnsupportedCommOperationException
getSerialPortParameters in class DeviceServicegnu.io.UnsupportedCommOperationException
protected void initializeInstrument()
throws InitializeException,
java.lang.Exception
initializeInstrument in class InstrumentServiceInitializeException
java.lang.Exception
protected void prepareToSample()
throws java.lang.Exception
prepareToSample in class InstrumentServicejava.lang.Exception
protected void requestSample()
throws TimeoutException,
java.lang.Exception
requestSample in class InstrumentServiceTimeoutException
java.lang.Exception - not thrown
protected void validateSample(byte[] _sampleBuf,
int nBytes)
throws InvalidDataException
validateSample in class InstrumentService_sampleBuf - sample datanBytes - number of bytes captured
InvalidDataException - if checksum failedprotected void postSample()
postSample in class InstrumentServiceprotected byte[] getInstrumentMetadata()
public void setClock(long t)
setClock in interface InstrumentsetClock in class InstrumentServicet - protected void printData(byte[] buf)
printData in class InstrumentServicebuf - sample bufferpublic int test()
Device
test in interface Device
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||