Underwater modem with a secondary data acquisition system
This is a legacy product and is now replaced with the multi-receiver modems.
The Subnero underwater smart modems provide options for customization and extension at many levels. For a research application, a customer required 4 synchronized recordings of a received signal from carefully positioned hydrophones, everytime the signal was detected on the main hydrophone. In order to fulfill this requirement, we integrated 4 preamplifiers and a USB-1608G Series high-speed USB data acquisition system in our standard modem. A driver was developed (in C language) for the multi-receiver acquisition system. This driver published its data to UnetStack using standard baseband recording messages, so that the customer’s software could request these messages.
At the event of detection of a signal on the main hydrophone, a baseband reception notification message RxBasebandSignalNtf is sent by the modem. The customer’s script can look for the reception of this notification message and request a recording using the secondary data acquisition system:
if (msg instanceof RxBasebandSignalNtf) phy << new RecordBasebandSignalReq(adc: 2, recTime: msg.rxTime)The time at which the signal is detected on the main hydrophone is extracted using msg.rxTime. The recording time can be set in the past while requesting the recording to synchronize the recorded data from the multi-receiver acquisition system with the signal recorded on the main hydrophone.
At the completion of the successful recording, a RxBasebandSignalNtf message is received containing the recorded signal:
bbmsg = receive(RxBasebandSignalNtf, 2000)signal = bbmsg.signalSince the recording is requested on the secondary data acquisition system containing multiple receivers, the recorded data stored in signal is interleaved.