1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-04 16:01:14 -05:00
sdrangel/plugins/channelrx/demodais
Jon Beniston 0dd466a900 Add DialogPositioner to ensure dialogs are fully on screen and remain on
screen when screen orientation changes.
Add DialPopup to allow dials to adjusted with a slider, which is easier
on touchscreens.
Add TableTapAndHold to support table context menus on touchscreens.
2022-12-20 10:31:15 +00:00
..
aisdemod.cpp v7: API: added workspace handling for device, spectrum, feature and channel. Implements #1242 2022-05-13 22:24:48 +02:00
aisdemod.h v7: API: added workspace handling for device, spectrum, feature and channel. Implements #1242 2022-05-13 22:24:48 +02:00
aisdemodbaseband.cpp Replace deprecated QMutex(Recursive) with QRecursiveMutex 2022-09-17 23:00:07 +02:00
aisdemodbaseband.h Replace deprecated QMutex(Recursive) with QRecursiveMutex 2022-09-17 23:00:07 +02:00
aisdemodgui.cpp Add DialogPositioner to ensure dialogs are fully on screen and remain on 2022-12-20 10:31:15 +00:00
aisdemodgui.h Update plugins to compile with Qt5 and Qt6 2022-11-17 14:36:12 +00:00
aisdemodgui.ui Set window width to account for miniumum width required for visible rollups. 2022-11-08 09:43:58 +00:00
aisdemodplugin.cpp Updated main and plugin versions 2022-05-14 13:16:33 +02:00
aisdemodplugin.h Add AIS mod, demod and feature. 2021-05-07 21:50:27 +01:00
aisdemodsettings.cpp Massive UI revamping (v7): persistent channel show/hide 2022-04-12 18:27:27 +02:00
aisdemodsettings.h Massive UI revamping (v7): persistent channel show/hide 2022-04-12 18:27:27 +02:00
aisdemodsink.cpp Final cleanup of legacy message pipes. Implements #1154 2022-03-29 23:03:54 +02:00
aisdemodsink.h Remove unnecessary includes 2022-03-01 17:23:04 +00:00
aisdemodwebapiadapter.cpp Add AIS mod, demod and feature. 2021-05-07 21:50:27 +01:00
aisdemodwebapiadapter.h Add AIS mod, demod and feature. 2021-05-07 21:50:27 +01:00
CMakeLists.txt Update CMakeLists.txt to support both Qt5 and Qt6. Add option ENABLE_QT6 2022-11-17 14:34:54 +00:00
readme.md Fix typing errors in readme's 2022-05-22 11:53:36 +02:00

AIS demodulator plugin

Introduction

This plugin can be used to demodulate AIS (Automatic Identification System) messages. AIS can be used to track ships and other marine vessels at sea, that are equipped with AIS transponders. It is also used by shore-side infrastructure known as base stations, aids-to-navigation such as buoys and some search and rescue aircraft.

AIS is broadcast globally on 25kHz channels at 161.975MHz and 162.025MHz, with other frequencies being used regionally or for special purposes. This demodulator is single channel, so if you wish to decode multiple channels simulatenously, you will need to add one AIS demodulator per frequency. As most AIS messages are on 161.975MHz and 162.025MHz, you can set the center frequency as 162MHz, with a sample rate of 100k+Sa/s, with one AIS demod with an input offset -25kHz and another at +25kHz.

The AIS demodulators can send received messages to the AIS feature, which displays a table combining the latest data for vessels amalgamated from multiple demodulators and sends their positiosn to the Map Feature for display in 2D or 3D.

AIS uses GMSK/FM modulation at a baud rate of 9,600, with a modulation index of 0.5. The demodulator works at a sample rate of 57,600Sa/s.

Received AIS messages can be NMEA encoded and forwarded via UDP to 3rd party applications.

The AIS specification is ITU-R M.1371-5: https://www.itu.int/dms_pubrec/itu-r/rec/m/R-REC-M.1371-5-201402-I!!PDF-E.pdf

Interface

The top and bottom bars of the channel window are described here

AIS Demodulator plugin GUI

1: Frequency shift from center frequency of reception

Use the wheels to adjust the frequency shift in Hz from the center frequency of reception. Left click on a digit sets the cursor position at this digit. Right click on a digit sets all digits on the right to zero. This effectively floors value at the digit position. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2.

2: Channel power

Average total power in dB relative to a +/- 1.0 amplitude signal received in the pass band.

3: Level meter in dB

  • top bar (green): average value
  • bottom bar (blue green): instantaneous peak value
  • tip vertical bar (bright green): peak hold value

4: BW - RF Bandwidth

This specifies the bandwidth of a LPF that is applied to the input signal to limit the RF bandwidth. While AIS channels are 25kHz wide, more messages seem to be able to be received if this is around 16kHz.

5: Dev - Frequency deviation

Adjusts the expected frequency deviation in 0.1 kHz steps from 1 to 6 kHz. Typical values are 4.8 kHz, corresponding to a modulation index of 0.5 at 9,600 baud.

6: TH - Correlation Threshold

The correlation threshold between the received signal and the preamble (training sequence). A lower value should be able to demodulate weaker signals, but increases processor usage and may result in invalid messages if too low.

7: Find

Entering a regular expression in the Find field displays only messages where the source MMSI matches the given regular expression.

8: Clear Messages from table

Pressing this button clears all messages from the table.

9: UDP

When checked, received messages are forwarded to the specified UDP address (12) and port (13).

10: UDP address

IP address of the host to forward received messages to via UDP.

11: UDP port

UDP port number to forward received messages to.

12: UDP format

The format the messages are forwarded via UDP in. This can be either binary (which is useful for SDRangel's PERTester feature) or NMEA (which is useful for 3rd party applications such as OpenCPN).

13: Start/stop Logging Messages to .csv File

When checked, writes all received AIS messages to a .csv file.

14: .csv Log Filename

Click to specify the name of the .csv file which received AIS messages are logged to.

15: Read Data from .csv File

Click to specify a previously written AIS .csv log file, which is read and used to update the table.

Received Messages Table

The received messages table displays information about each AIS message received. Only messages with valid CRCs are displayed.

AIS Demodulator plugin GUI

  • Date - The date the message was received.
  • Time - The time the message was received.
  • MMSI - The Maritime Mobile Service Identity number of the source of the message. Double clicking on this column will search for the MMSI on https://www.vesselfinder.com/
  • Type - The type of AIS message. E.g. Position report, Base station report or Ship static and voyage related data.
  • Data - A textual decode of the message displaying the most interesting fields.
  • NMEA - The message in NMEA format.
  • Hex - The message in hex format.

Right clicking on the table header allows you to select which columns to show. The columns can be reorderd by left clicking and dragging the column header. Right clicking on an item in the table allows you to copy the value to the clipboard.