MBARI OASIS Mooring Guide

Appendices

Appendix...

OASIS Command Reference

Command
Arguments
Function

analog

<port_num> is a number between 0 and 7 to designate which A/D port to convert Convert one of the 8 OASIS analog channels and report its A/D value.
Converts the corresponding analog port and returns the A/D value. The A/D converter is a 10 bit converter, so the corresponding value will be in the range of 0 to 1023.

aux
init
sync

<driver> [delay] [parameter]

<driver> is a valid OASIS driver name, and is required If you don't know the name of the driver, use the drvparm command to return the names of all the configured OASIS drivers

[delay] is the amount of time, in seconds, before the driver is called. If left blank, the driver is called immediately, unless the driver is currently running, in which case it will be called again as soon as it finishes. If delay is present and non-zero, the driver will be scheduled to run in delay seconds. This has the side-effect of resetting the future scheduling of the driver, forcing it to synchronize the schedule to the present time plus the indicated delay. Hence the name sync.

[parameter] is a value that is passed to the driver in the drv_usrparm field of the driver header. It is unused in most OASIS drivers. It is presently only used by the Garmin GPS driver, when called via the "init GPS" command, to pass the default altitude in meters. It is also used internally when the SpecPRR calls the shutter driver(s), to pass the open/close command; but this is transparent to the user.

Calls the driver with the DO_AUX|DO_SYNC|DO_INIT flag. Same as sync for most drivers

Following is a list of drivers that have specific responses to driver flags, and hence to the difference between the sync, init, and aux commands. Drivers other than those shown below will behave the same to all three commands; and the response will be to simply run the standard driver.

adcp
sync
Listens for data for much longer time, typically 30 minutes rather than 30 seconds. This is truly a "sync".

co2pump, pump, shutter
sync
DO_SYNC flag used for synchronization between calling driver (e.g. specprr calls shutter) and the completion of called driver. Not normally used by end-user.

GPS (Garmin and Magellan)
init
Performs "cold init" of GPS board

radio
init
Reinitializes packet radio TNC

pCO2

aux
Runs a calibration cycle after normal data cycle

cmdadd

<cmd> <func *> <desc>
<parm type>
<parm type>
<parm type>

Add a user command
For programmers only

Parm Types:
0:NO_PARM
1:STRING
2: ALL
3: DEC
4: HEX

con
<driver name>

Connect to serial instrument
The following instruments allow direct connection:

CTD
specprr

CTL-D breaks and returns to the OASIS prompt

d
<address> Display memory
Power users only
drvadd

<cmd> <name> <func *> <wake *>
[
<parm #>
<parm val>...
]

Add an instrument driver
For programmers only
drvdel
<driver name> Delete an instrument driver
drvparm, dp
<driver> Set or display driver parameters
dump
[start-block]
[end-block]
Logged data from start-block to end block to serial port via Y-Mode protocol. Use logs command to determine number of logs available for download..
getdata
  Get all data since last getdata
For automated downloads only
getlog
  Get specific log data records
h, ?
  Help
load
no arguments Load Intel hex records
Power users only
logs
no arguments Display status of log memory
parm
[<name> <value>] Show/set user parameters
Names:
DISCHR
BRKCHR
TNCCHR
radio_tmout
PwrPerm
ASCII
xoff_tmout
sync_tmout
gmtOffset
logStatus
fileNum
gpsLat
gpsLong
gpsAlt
gpsVelAvg
gpsElMask
gpsAlmanacAge
data
datalen
power
[16-bit power mask] Get/set power bits
quit, q
  Exit OASIS software
reset
[all [delay seconds]] Reset system
s
<address> Set memory Power users only - dangerous!
shutcal
<shutter name> Shutter calibration
Not in all installations
string
[<string name> <value>] Get/Set string parameters
TNC Name
ADCP Type
pCO2 Command
time
  Get or set time and date
tnc
  Send a command to OASIS TNC
Only if OASIS has packet radio


OASIS Memory Map

0000-00FF CPU Registers
0100-01FF OASIS memory-mapped I/O
0200-1FFF Unused, some reserved
2000-5FFF ROM (2000-2080 reserved)
6000-9FFF ROM with shadow RAM (for speed)
A000-DFFF RAM for normal program purposes
E000-FFFF 8K window into 1 MB Log RAM

 

Utility Scripts

Relays (tsunami:/oasis/bin/relays)
jday (tsunami:/oasis/bin/jday)

OASIS Data Logging

OASIS is, in essence, a data logger and instrument controller. But because it is based on a small 16 bit microcontroller, it can't directly address enough memory to be useful. The designers have used a windowed memory scheme to circumvent this limitation. As a result, log memory on OASIS is divided into log blocks and log records. A log block is typically 16K of memory, although it can be any power of 2 up to 64K (the address limitation of the CPU). Within each block, we log as many data records as will fit. Data from every instrument in the system is logged sequentially as it comes in. To keep this straight, every data record is preceded by a record header, which contains the following information:

Field
Size (bytes)
Description
Sync
1
The character e5 (hex), used to resync if we lose sync
Type
1
Instrument that data is from. See Instrument Types
Record No.
2
Record number within current block (0 to 65535)
Length
2
Number of bytes in data field, exclusive of header (0 to 65535)
Time & Date
4
Time & date that data was collected, as Unix time_t (seconds since 1/1/1970)
Data
0 to 65535
Raw data from instrument. Length indicated by length field.


Binary File Format
The binary file format is normally used only the the Eqpac moorings, when the high frequency data is downloaded using the dump command while visiting the mooring. It consists of a stream of binary records as described above. Binary files can be decoded by decode and extract using the -b command-line flag.

Hex File Format
The hex file format is normally not used. Hex output from OASIS is intended to be more readable by humans, but is not an efficient format for downloading and storing data. Nevertheless, it is supported as a file format in decode and extract because sometimes data is (erroneously or intentionally) saved in this format. Use the -h flag. Note that the sync character is not sent. In this format, data is output one record (instrument) per line, unless the data field is too big to fit on a 64 character line, in which case the data portion is broken into multiple lines. The format is: tt rr nn tttt ddd...d, where tt is instrument type (see Instrument Types) rr is record number nn is record length tttt is time & date in Unix time_t format (seconds since 1/1/1970), and ddd...d is the instrument data.

UUencode File Format
The uuencode format is the normal format for downloading data, either via packet radio or a direct serial connection. Uuencode is a format invented by the Unix community to encode binary data as an ASCII stream, in order to allow the data to be passed on channels that can't pass 8 bit binary. The OASIS uuencode format follows the conventions of Unix uuencode, while passing information about block numbers in the field that Unix uses for file names. The format is as follows: begin 644 oasis.nn end begin 644 oasis.nn+1 end etc The nn (or nn+1) in the "begin" statement indicates the block number for the OASIS data (remember that record numbers are in the record headers). The next lines encode the binary data, as documented above, into ASCII characters; each 3 binary bytes is encoded into 4 ASCII characters. Every OASIS record begins on a new uuencode line. Finally, the "end" statement is required by uuencode. A minor difference between the binary and uuencode formats is that the uuencode format doesn't include the sync character. The uuencode format is the default for decode and extract.

OASIS Storage Capacity

Instrument Information

Power Consumption
Record Sizes
Communication Parameters