1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-12-24 10:50:29 -05:00
sdrangel/plugins/channeltx/modais
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
..
aismod.cpp Replace deprecated QMutex(Recursive) with QRecursiveMutex 2022-09-17 23:00:07 +02:00
aismod.h Replace deprecated QMutex(Recursive) with QRecursiveMutex 2022-09-17 23:00:07 +02:00
aismodbaseband.cpp Replace deprecated QMutex(Recursive) with QRecursiveMutex 2022-09-17 23:00:07 +02:00
aismodbaseband.h Replace deprecated QMutex(Recursive) with QRecursiveMutex 2022-09-17 23:00:07 +02:00
aismodgui.cpp Add DialogPositioner to ensure dialogs are fully on screen and remain on 2022-12-20 10:31:15 +00:00
aismodgui.h Update plugins to compile with Qt5 and Qt6 2022-11-17 14:36:12 +00:00
aismodgui.ui Arrange rollups after restore geometry to mitigate issue #1474 2022-11-03 19:07:44 +01:00
aismodplugin.cpp Updated main and plugin versions 2022-05-14 13:16:33 +02:00
aismodplugin.h
aismodrepeatdialog.cpp
aismodrepeatdialog.h
aismodrepeatdialog.ui
aismodsettings.cpp Massive UI revamping (v7): persistent channel show/hide 2022-04-12 18:27:27 +02:00
aismodsettings.h Massive UI revamping (v7): persistent channel show/hide 2022-04-12 18:27:27 +02:00
aismodsource.cpp Message pipes rework: more renaming 2022-03-02 23:57:35 +01:00
aismodsource.h AIS mod: make it effectively work in server mode with remote control. AIS demod: added baud rate in settings API 2021-11-12 00:12:02 +01:00
aismodtxsettingsdialog.cpp
aismodtxsettingsdialog.h
aismodtxsettingsdialog.ui
aismodwebapiadapter.cpp
aismodwebapiadapter.h
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-15 12:39:57 +02:00

AIS modulator plugin

Introduction

This plugin can be used to transmit AIS (Automatic Identification System) messages using GMSK/FM modulation. AIS is used to track ships and other marine vessels at sea.

You need an AIS license to transmit on the AIS VHF frequencies (161.975MHz and 162.025MHz). This plugin should not therefore be used on those frequencies unless the transmitter and receiver are directly connected via coax. If you have an amateur license, you should be able to transmit AIS within amateur bands.

Interface

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

AIS Modulator plugin GUI

1: Frequency shift from center frequency of transmission

Use the wheels to adjust the frequency shift in Hz from the center frequency of transmission. 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 generated in the pass band.

3: Channel mute

Use this button to toggle mute for this channel.

4: Mode

Allows setting of RF bandwidth, FM deviation and BT values according to the chosen mode, which can be Narrow (BW=12.5kHz, Dev=2.4k, BT=0.3) or Wide (BW=25kHz, Dev=4.8k, BT=0.4). The latest specification for AIS, ITU-R M.1371-5, only specifies Wide operation.

5: RF Bandwidth

This specifies the bandwidth of a LPF that is applied to the output signal to limit the RF bandwidth. Typically this should be 25kHz.

6: FM Deviation

This specifies the maximum frequency deviation. Typically this should be 4.8kHz, giving a modulation index of 0.5 at 9,600 baud.

7: BT Bandwidth

Bandwidth-time product for the Gaussian filter, used for GMSK modulation. This should typically be 0.4.

8: Gain

Adjusts the gain in dB from -60 to 0dB. The gain should be set to ensure the level meter remains below 100%.

9: Level meter in %

  • top bar (beige): average value
  • bottom bar (brown): instantaneous peak value
  • tip vertical bar (bright red): peak hold value

10: UDP

When checked, a UDP port is opened to receive messages from other features or applications that will be transmitted. These messages do not need to contain the CRC, as it is appended automatically.

11: UDP address

IP address of the interface open the UDP port on, to receive messages to be transmitted.

12: UDP port

UDP port number to receive messages to be transmitted on.

13: Encode

When pressed, the message field will be set to a hex encoded string that represents the message determined by the following controls.

14: Message Type

Select a message type:

  • Scheduled position report
  • Assigned position report
  • Special position report
  • Base station report

15: MMSI

Enter a 9 digit Maritime Mobile Service Identity, which uniquely identifies a vessel.

16: Status

For position reports, specify the status of the vessel.

17: Latitude

Specify the latitude of the vessel or station in decimal degrees, North positive.

18: Longitude

Specify the longitude of the vessel or station in decimal degrees, East positive.

19: Insert position

Sets the latitude and longitude fields to the values specified under Preferences > My position.

20: Course

For position reports, specify the vessel's course in degrees. This is the direction in which the vessel is moving.

21: Speed

For position reports, specify the vessel's speed in knots.

22: Heading

For position reports, specify the vessel's heading. This is the direction the vessel is pointing towards.

23: Message

The AIS message send. This should be a hex encoded string.

24: Repeat

Check this button to repeatedly transmit a message. Right click to open the dialog to adjust the delay between retransmission and number of times the message should be repeated.

25: TX

Transmits the message. Right click to open a dialog to adjust transmission details allowing parameters different from standard values.

API

Full details of the API can be found in the Swagger documentation. Below are a few examples.

To transmit the current data just send a "tx" action:

curl -X POST "http://127.0.0.1:8091/sdrangel/deviceset/1/channel/0/actions" -d '{"channelType": "AISMod",  "direction": 1, "AISModActions": { "tx": 1}}'

To transmit a message from the command line:

curl -X POST "http://127.0.0.1:8091/sdrangel/deviceset/1/channel/0/actions" -d '{"channelType": "AISMod",  "direction": 1, "AISModActions": { "tx": 1, "data": "000000000000000000000000000000000" }}'

To set the FM deviation:

curl -X PATCH "http://127.0.0.1:8091/sdrangel/deviceset/1/channel/0/settings" -d '{"channelType": "AISMod", "direction": 1, "AISModSettings": {"fmDeviation": 4800}}'