Notes on writing Seacat 16+ CTD driver

Here is the useful notes for writing Seacat 16+ driver:

The SBE 16plus-IM V2 SEACAT is designed to measure conductivity,
temperature, and (optional) pressure in marine or fresh-water environments in
moored applications. The 16plus-IM V2 has internal batteries and non-volatile
memory. It uses an Inductive Modem (IM) to transmit data and receive
commands over a plastic-jacketed steel mooring cable (or other insulated
conductor), using differential-phase-shift-keyed (DPSK) telemetry. No
electrical cables or connectors are required. The 16plus-IM V2’s built-in
inductive coupler (split toroid) and cable clamp provide easy and secure
attachment to the mooring cable.

Communicating with one or more 16plus-IM V2s requires the use of a
Sea-Bird Inductive Modem Module (IMM) or Surface Inductive Modem
(SIM). These devices provide a standard serial interface between the user’s
computer or other controlling device and up to 100 16plus-IM V2s (or other
IM-compatible sensors), coupled to a single cable. The user can communicate
with these devices via full-duplex RS-232C or half-duplex RS-485.
Commands and data are transmitted half-duplex between these devices and the
16plus-IM V2.

Note:
Half-duplex communication is one-
direction at a time (i.e., you cannot
send commands and receive data at
the same time). For example, if the
IMM or SIM commands a 16plus-IM
V2 to upload data, nothing else can
be done while the data is being sent

Commands sent to the 16plus-IM V2 provide status display, data acquisition setup, data retrieval, and diagnostic tests. User-selectable operating modes include:

• Polled sampling – On command, the 16plus-IM V2 takes one sample and
transmits data.
• Autonomous sampling – At pre-programmed intervals, the 16plus-IM
V2 wakes up, samples, stores data in its FLASH memory, and powers off.
• Combo sampling – Autonomous sampling is in progress, and the
16plus-IM V2 can be commanded to transmit the last stored data.

We'll choose combo sampling because it allows both local cache and real-time stream data.