Skip to content

Commit

Permalink
Added EA440 protocol to transmit SSPs to the KM EA440 software using …
Browse files Browse the repository at this point in the history
…the AML CALC format

Added description for transmission to EA440 in user manual

Removed redundant ending replace
  • Loading branch information
eriffon committed Nov 28, 2024
1 parent 466ec0d commit 4a60d10
Show file tree
Hide file tree
Showing 9 changed files with 75 additions and 6 deletions.
Binary file added docs/_static/ea440_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/ea440_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/ea440_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/ea440_4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/ea440_5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
65 changes: 65 additions & 0 deletions docs/app_b_connection_settings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -444,3 +444,68 @@ not currently known thus the user must confirm reception in the acquisition syst
:figclass: align-center

While running PDS2000 in acquisition mode, you can verify reception in the Status displays and the “Raw Data” displays. Check the date, time, latitude, longitude against what you sent from SSP package.

Kongsberg EA440
---------------

The Konsgsberg EA440/EA640 single-beam echo sounder data acquisition system accepts SVP transmissions from the *Sound Speed* package. A method to verify reception of the cast is not currently known thus the user should confirm reception in the acquisition system.

In the *Setup* tab of the EA440 software, open the *Installation* window and under *I/O Setup*, configure the IP address and port number where the casts transmitted from the *Sound Speed* package (:numref:`ea440_1_fig`).

.. _ea440_1_fig:

.. figure:: ./_static/ea440_1.png
:width: 600px
:align: center
:alt: alternate text
:figclass: align-center

Add a new LAN Port to receive casts from SSP package.

Under *Sensor Installation*, Add a new sensor with type *Sound Velocity Profile AML CALC*. Select the newly created LAN Port as the port associated with this sensor. Enable both the speed and temperature profiles (:numref:`ea440_2_fig`).

.. _ea440_2_fig:

.. figure:: ./_static/ea440_2.png
:width: 600px
:align: center
:alt: alternate text
:figclass: align-center

Add a new sensor in the AML CALC format to decode casts from SSP package.

Open the *Monitor* window to verify successfull reception of a cast from the *Sound Speed* package (:numref:`ea440_3_fig`). Make sure that the *Sound Speed* package is properly configured with an Output client using the EA440 protocol to accomplish this test.

.. _ea440_3_fig:

.. figure:: ./_static/ea440_3.png
:width: 600px
:align: center
:alt: alternate text
:figclass: align-center

Verify successfull reception of a cast from the *Sound Speed* package using the *Monitor* window

In the *Setup* tab of the EA440 software, open the *Environment* window and under *Water Column*, make sure that the sound speed and temperature sources are set to *Profile* (:numref:`ea440_4_fig`).

.. _ea440_4_fig:

.. figure:: ./_static/ea440_4.png
:width: 600px
:align: center
:alt: alternate text
:figclass: align-center

Source selection for sound speed and temperature

Under *Sound Velocity Profile*, select *Profile From Network* as source. Reception of a new cast from the *Sound Speed* package should immediately update in the sound speed plot (:numref:`ea440_5_fig`).

.. _ea440_5_fig:

.. figure:: ./_static/ea440_5.png
:width: 600px
:align: center
:alt: alternate text
:figclass: align-center

Sound speed profile received from the *Sound Speed* package and displayed in the EA440 software
2 changes: 1 addition & 1 deletion hyo2/ssm2/app/gui/soundspeedsettings/widgets/output.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ def new_client(self):
while True:
# noinspection PyCallByClass
protocol, ok = QtWidgets.QInputDialog.getText(self, "New client",
"Input the protocol (SIS, KCTRL, HYPACK, PDS2000, or QINSY)",
"Input the protocol (SIS, KCTRL, HYPACK, PDS2000, QINSY, or EA440)",
QtWidgets.QLineEdit.Normal,
"SIS")
if not ok:
Expand Down
13 changes: 8 additions & 5 deletions hyo2/ssm2/lib/client/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ def send_cast(self, prj: 'SoundSpeedLibrary', server_mode: bool = False) -> bool

logger.info("transmitting to %s: [%s:%s:%s]" % (self.name, self.ip, self.port, self.protocol))

if self.protocol == "HYPACK":
success = self.send_hyp_format(prj=prj)
if (self.protocol == "HYPACK") or (self.protocol == "EA440"):
success = self.send_aml_format(prj=prj)
else:
success = self.send_kng_format(prj=prj, server_mode=server_mode)

Expand Down Expand Up @@ -90,10 +90,13 @@ def send_kng_format(self, prj: 'SoundSpeedLibrary', server_mode: bool = False) -

return self._transmit(tx_data)

def send_hyp_format(self, prj: 'SoundSpeedLibrary') -> bool:
logger.info("using hyp format")
def send_aml_format(self, prj: 'SoundSpeedLibrary') -> bool:
logger.info("using aml format")
calc = Calc()
tx_data = calc.convert(prj.ssp)
if self.protocol == "HYPACK":
tx_data = calc.convert(prj.ssp)
elif self.protocol == "EA440":
tx_data = calc.convert(prj.ssp).replace("\n", "\r\n")
return self._transmit(tx_data)

def _transmit(self, tx_data: Union[bytes, str]) -> bool:
Expand Down
1 change: 1 addition & 0 deletions hyo2/ssm2/lib/profile/dicts.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@ def first_match(cls, dct, val):
("PDS2000", 2),
("QINSY", 3),
("KCTRL", 4),
("EA440", 5),

])

Expand Down

0 comments on commit 4a60d10

Please sign in to comment.