.. | ||
icons | ||
CMakeLists.txt | ||
pagerdemod.cpp | ||
pagerdemod.h | ||
pagerdemodbaseband.cpp | ||
pagerdemodbaseband.h | ||
pagerdemodcharsetdialog.cpp | ||
pagerdemodcharsetdialog.h | ||
pagerdemodcharsetdialog.ui | ||
pagerdemodfilterdialog.cpp | ||
pagerdemodfilterdialog.h | ||
pagerdemodfilterdialog.ui | ||
pagerdemodgui.cpp | ||
pagerdemodgui.h | ||
pagerdemodgui.ui | ||
pagerdemodicons.qrc | ||
pagerdemodnotificationdialog.cpp | ||
pagerdemodnotificationdialog.h | ||
pagerdemodnotificationdialog.ui | ||
pagerdemodplugin.cpp | ||
pagerdemodplugin.h | ||
pagerdemodsettings.cpp | ||
pagerdemodsettings.h | ||
pagerdemodsink.cpp | ||
pagerdemodsink.h | ||
pagerdemodwebapiadapter.cpp | ||
pagerdemodwebapiadapter.h | ||
readme.md |
Pager demodulator plugin
Introduction
This plugin can be used to demodulate POCSAG pager messages.
Interface
The top and bottom bars of the channel window are described here
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.
5: Dev - Frequency deviation
Adjusts the expected frequency deviation in 0.1 kHz steps from 1 to 6 kHz. POCSAG uses FSK with a +/- 4.5 kHz shift.
6: Mod - Modulation
Specifies the pager modulation. Currently only POCSAG is supported.
POCSAG uses FSK with 4.5kHz frequency shift, at 512, 1200 or 2400 baud. High frequency is typically 0, with low 1, but occasionally this appears to be reversed, so the demodulator supports either. Data is framed as specified in ITU-R M.584-2
7: Baud
Specifies the baud rate. For POCSAG, this can be 512, 1200 or 2400.
8: Decode
Specifies how messages are decoded in the Message column in the table:
- Standard - As per ITU-R M.584-2 - Function 0 = numeric, function 1-3 = alphanumeric.
- Inverted - Function 3 = numeric, function 0-2 = alphanumeric.
- Numeric - Always decode as numeric.
- Alphanumeric - Always decode as alphanumeric.
- Heuristic - The plugin will try to guess based on the content of the message.
The table has Numeric and Alphanumeric columns which always display the corresponding decode.
9: Character encoding
Click to open the character encoding dialog, which allows a mapping from the received 7-bit alphanumeric characters to Unicode.
Each row contains a mapping from a 7-bit value to a Unicode code point. Values should be entered in hexadecimal
10: Find
Entering a regular expression in the Find field displays only messages where the address matches the given regular expression.
11: Clear Messages from table
Pressing this button clears all messages from the table.
12: UDP
When checked, received messages are forwarded to the specified UDP address (12) and port (13).
The messages are forwarded as null terminated ASCII strings, in the format: data time address function alpha numeric
13: UDP address
IP address of the host to forward received messages to via UDP.
14: UDP port
UDP port number to forward received messages to.
15: Filter Duplicates
Check to filter (discard) duplicate messages. Right click to show the Duplicate Filter options dialog:
- Match message only: When unchecked, compare address and message. When checked, compare only message, ignoring the address.
- Match last message only: When unchecked the message is compared against all messages in the table. When checked, the message is compared against the last received message only.
16: Open Notifications Dialog
When clicked, opens the Notifications Dialog, which allows speech notifications or programs/scripts to be run when messages matching user-defined rules are received.
By running a program such as cmail on Windows or sendmail on Linux, e-mail notifications can be sent containing the received message.
Messages can be highlighted in a user-defined colour, selected in the Highlight column.
By checking Plot on Map, if a message contains a position specified as latitude and longitude, the message can be displayed on the Map feature. The format of the coordinates should follow ISO 6709, E.g: 50°40′46″N 95°48′26″W or -23.342,5.234
Here are a few examples:
In the Speech and Command strings, variables can be used to substitute data from the received message:
- ${address},
- ${message},
- ${1}, ${2}... are replaced with the string from the corresponding capture group in the regular expression.
To experiment with regular expressions, try https://regexr.com/.
17: Start/stop Logging Messages to .csv File
When checked, writes all received messages to a .csv file.
18: .csv Log Filename
Click to specify the name of the .csv file which received messages are logged to.
19: Read Data from .csv File
Click to specify a previously written .csv log file, which is read and used to update the table.
Received Messages Table
The received messages table displays each pager message received.
- Date - The date the message was received.
- Time - The time the message was received.
- Address - The 21-bit pager address the message is for.
- Message - The decoded message, as per Decode setting (8). This will be empty for "tone only" messages (i.e. when the pager beeps without a message).
- Function - Function bits. In some instances this is used to specify the encoding of the message (Numeric/alphanumeric). In others, it is the pager source address.
- Alpha - Message decoded as alphanumeric text, regardless of Decode setting (8)
- Numeric - Message decoded as numeric, regardless of Decode setting (8).
- Even PE - Number of even parity errors detected in the code words of the message.
- BCH PE - Number of uncorrectable BCH parity errors detected in the code words of the message.
Right clicking on the table header allows you to select which columns to show. The columns can be reordered 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.