597 lines
17 KiB
Plaintext
597 lines
17 KiB
Plaintext
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
PD - POCSAG Decoder
|
||
|
||
User Documentation
|
||
|
||
Version 2.00 January 1996
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Contents
|
||
|
||
|
||
1. Introduction
|
||
|
||
2. Registration
|
||
|
||
3. Installation
|
||
|
||
4. Interfacing
|
||
|
||
5. Configuration
|
||
5.1 PD.INI
|
||
5.1.1 General Parameters
|
||
5.1.2 Function Codes
|
||
5.1.3 Colours
|
||
5.2 PAGERS.INI
|
||
5.3 REJECT.INI
|
||
|
||
6. Running the program
|
||
6.1 Supported Keys
|
||
6.2 Status Line
|
||
6.3 Normal Mode
|
||
6.4 Debug Mode
|
||
|
||
Appendix A Version History
|
||
|
||
|
||
|
||
|
||
|
||
1. Introduction
|
||
|
||
PD, together with a receiver or scanner, allows the off-air decoding of
|
||
POCSAG paging signals at 512, 1200 or 2400 bits/second. This makes it
|
||
extremely useful for the testing of paging transmitters and systems.
|
||
|
||
Decoding of both numeric and alphanumeric pager data is supported, as is
|
||
the hex dumping of raw POCSAG codewords.
|
||
|
||
PD runs on an IBM PC or equivalent, anything from an 80286 upwards. It
|
||
requires 512K of conventional memory and a small amount of hard disk or
|
||
floppy. Hard disk is recommended.
|
||
|
||
PD runs from DOS, running from Windows is not recommended.
|
||
|
||
|
||
2. Registration
|
||
|
||
PD is freely distributed as a shareware version. This has a timeout of
|
||
about 5 minutes, after which a registration message is displayed and the
|
||
program exits. Also the logging of pager data to disk is disabled.
|
||
|
||
To obtain a fully functional registered copy of PD send a cheque or money
|
||
order for 20.00 Pounds Sterling to:-
|
||
|
||
Peter Baston,
|
||
7 Allerton Close,
|
||
Pen-y-ffordd,
|
||
Chester,
|
||
CH4 0NJ,
|
||
U.K.
|
||
|
||
When ordering please state if the shareware version of PD is already in
|
||
use, and which version. Please also note that the registered software can
|
||
be sent out by email, if this is required please give your email address.
|
||
|
||
3. Installation
|
||
|
||
In order to install the program copy the following files into a directory
|
||
on a hard drive, or onto a floppy:-
|
||
|
||
PD.EXE Pocsag Decoder program
|
||
PD.INI Configuration file
|
||
PAGERS.INI List of pager codes (7 digit RIC's) to be logged
|
||
REJECT.INI List of pager codes to reject
|
||
PD200.TXT This documentation file
|
||
7100MOD.TXT Notes on modifying Icom R-7100 to bring out the
|
||
discriminator output.
|
||
|
||
|
||
|
||
4. Interfacing
|
||
|
||
|
||
The PD program requires serial POCSAG data to be applied to the CTS pin of
|
||
one of the PC's COM ports. RS232 levels are required, ie at least +/- 3v.
|
||
PD is insensitive to polarity, ie it doesn't matter which way up mark and
|
||
space are.
|
||
|
||
|
||
As POCSAG is transmitted as direct FSK of the VHF/UHF carrier the ideal way
|
||
is to take the data direct from the discriminator, via a data slicer. The
|
||
following circuit, however, has been fairly successful, taking audio
|
||
directly from the receiver's speaker output:-
|
||
|
||
|
||
0.1 uF |\ +12v
|
||
---||-----------------------|- \|
|
||
AF IN | |741 \
|
||
---- | | /--------------------- Data Out
|
||
| \ ------|+ /| | CTS (pin 5/8)
|
||
| / 100K | |/-12v |
|
||
| \ | | GND ------ GND (pin 7/5)
|
||
GND / ----/\/\/\----
|
||
| | 100K
|
||
| \ N.B. Pin Numbers for com port are
|
||
GND / given as x/y, where x is for a 25
|
||
\ 10K way, y for a 9 way.
|
||
/
|
||
|
|
||
GND
|
||
|
||
The above circuit is a Schmitt Trigger, having thresholds of about +/- 1v.
|
||
If such a large threshold is not required, eg for a discriminator output,
|
||
then the level of positive feedback may be reduced by either reducing the
|
||
value of the 10K resistor or by increasing the value of the 100K feedback
|
||
resistor.
|
||
|
||
The +/- 12v for the op-amp can be derived from unused signals on the COM
|
||
port (gives more like +/- 10v but works fine !):-
|
||
|
||
|
||
TxD (2/3) --------------|<-------------------------------------- -12v
|
||
| |
|
||
RTS (4/7) --------------|<-------- GND - -
|
||
| | _ + 10uF
|
||
--------->|------- - - |
|
||
Diodes 1N4148 | - + 10uF GND
|
||
| |
|
||
DTR (20/4) ------------->|-------------------------------------- +12v
|
||
|
||
|
||
5. Configuration
|
||
|
||
5.1 PD.INI
|
||
|
||
The PD.INI file allows the operation of PD to be configured. Any text
|
||
editor can be used to edit this file. The file is divided up into sections,
|
||
headed by a name in square brackets, eg [general], [functions]. In each
|
||
section are parameters, set to a value with an "=" sign, eg:-
|
||
|
||
logbeep=100
|
||
func1=alpha
|
||
|
||
In PD.INI, and any of the .INI files, comments may be added by starting the
|
||
line with "#' eg:-
|
||
|
||
# This is a comment.
|
||
|
||
|
||
5.1.1 General Parameters
|
||
|
||
These parameters come under the [general] heading.
|
||
|
||
|
||
5.1.1.1 comport
|
||
|
||
This allows the COM port used by PD to be set. COM port 1,2,3 or 4 may be
|
||
used, eg:-
|
||
|
||
comport=2
|
||
|
||
The default is COM1
|
||
|
||
|
||
5.1.1.2 bitrate
|
||
|
||
This alows the bitrate of POCSAG data to be set. Allowable options are 512,
|
||
1200, 2400 or auto. If auto is selected then the bit rate is determined by
|
||
PD at the beginning of each transmission. Examples:-
|
||
|
||
bitrate=1200
|
||
bitrate=auto
|
||
|
||
The default is auto.
|
||
|
||
|
||
5.1.1.3 logbeep
|
||
|
||
This parameter allows the length of the "beep", sounded when a pager message
|
||
is logged, to be set. It's format is:-
|
||
|
||
logbeep=<number>
|
||
|
||
eg:-
|
||
|
||
logbeep=100
|
||
|
||
Where <number> is the length of the beep in milliseconds. A value of zero
|
||
turns off the beeping, this is the default.
|
||
|
||
5.1.1.4 logging (Registered Version Only)
|
||
|
||
This parameter turn on or off logging to a daily log file. It can take the
|
||
value 0 (no logging), or 1 (enable logging). Example:-
|
||
|
||
logging=1
|
||
|
||
Daily log files have filenames of the form DD-MM-YY.log, or MM-DD-YY.log if
|
||
U.S. date format is selected. All decoded pages are logged to this file. At
|
||
midnight the daily log file is closed, and a new one opened.
|
||
|
||
The default is 0, logging off.
|
||
|
||
|
||
5.1.1.5 log_path (Registered Version Only)
|
||
|
||
This parameter allows the path for the storage of log files to be set. This
|
||
may be either an absolute path or may be relative to the current directory.
|
||
The path must always end in a "\". Examples:-
|
||
|
||
# Log files stored in subdirectory "logs" off the current PD directory:
|
||
log_path=logs\
|
||
|
||
# Log files stored at an absolute location:
|
||
log_path=C:\logfiles\
|
||
|
||
Please note that if the directory referenced does not exist then no logging
|
||
will take place.
|
||
|
||
The default is the current directory.
|
||
|
||
|
||
5.1.1.6 expire (Registered Version Only)
|
||
|
||
This parameter allows daily log files to be automatically deleted after a
|
||
given number of days. This will occur either when PD is started, or just
|
||
after midnight. The format is
|
||
|
||
expire=<number of days>
|
||
|
||
eg:-
|
||
|
||
# Expire any daily logs over 5 days old:
|
||
expire=5
|
||
|
||
The default is 0 (don't expire).
|
||
|
||
5.1.1.7 language
|
||
|
||
This option allows special language features to be enabled. it is currently
|
||
used to enable special "umlaute" characters used in the german language.
|
||
Eg:-
|
||
|
||
language=german
|
||
|
||
When this is enabled the following character translation will take place in
|
||
received alphanumeric paging messages:-
|
||
|
||
Rx Char (decimal) Display Char (decimal) Umlaute
|
||
|
||
125 129 ue <20>
|
||
124 148 oe <20>
|
||
123 132 ae <20>
|
||
126 225 ss
|
||
93 154 UE <20>
|
||
92 153 OE <20>
|
||
91 142 AE <20>
|
||
|
||
The default language is english.
|
||
|
||
|
||
5.1.1.8 accept
|
||
|
||
This parameter determines whether decoded addresses (RIC's) are allowed to
|
||
contain corrected errors. This can have two values, 0 (don't accept errors)
|
||
or 1 (accept errors). Eg:-
|
||
|
||
accept=0
|
||
|
||
The default is 0. This is recommended.
|
||
|
||
|
||
5.1.1.9 date (Registered Version Only)
|
||
|
||
This parameter allows the format of the date used when writing to log files
|
||
to be set. Two formats, uk or usa, are allowed, eg:-
|
||
|
||
# Use U.K. date format:
|
||
date=uk
|
||
|
||
# Use U.S. date format:
|
||
date=usa
|
||
|
||
The U.K. date format is DD/MM/YY, the U.S. date format is MM/DD/YY.
|
||
|
||
The default is the UK format.
|
||
|
||
|
||
5.1.2 Function Codes
|
||
|
||
These parameters come under the [functions] heading. Four parameters are
|
||
supported - func0, func1, func2 and func3. These allow the decoding of the
|
||
pager data to be determined by the function code, transmitted in the
|
||
address codeword. The format for setting these parameters is:-
|
||
|
||
funcx=<string>
|
||
|
||
Where <string> is one of:-
|
||
|
||
alpha - The message will be decoded as alphanumeric ASCII
|
||
data.
|
||
|
||
numeric - The message will be decoded as BCD numeric data.
|
||
|
||
raw - The message will be dumped in raw form, as hex
|
||
codewords.
|
||
|
||
auto - PD will attempt to decide whether the message is
|
||
numeric or alphanumeric, and decode accordingly.
|
||
|
||
reject - Any pages having this function code will be
|
||
rejected.
|
||
|
||
|
||
eg:-
|
||
|
||
func0=raw
|
||
func1=auto
|
||
func2=auto
|
||
func3=alpha
|
||
|
||
The program defaults to decoding all function codes as "alpha" data.
|
||
|
||
|
||
5.1.3 Colours
|
||
|
||
These parameters come under the [colours] heading and may each be set to
|
||
one of the following values:-
|
||
|
||
BLACK 0
|
||
BLUE 1
|
||
GREEN 2
|
||
CYAN 3
|
||
RED 4
|
||
MAGENTA 5
|
||
BROWN 6
|
||
WHITE 7
|
||
GRAY 8
|
||
LIGHTBLUE 9
|
||
LIGHTGREEN 10
|
||
LIGHTCYAN 11
|
||
LIGHTRED 12
|
||
LIGHTMAGENTA 13
|
||
YELLOW 14
|
||
BRIGHTWHITE 15
|
||
|
||
These parameters are in pairs, setting the foreground and background colours
|
||
for a particular screen area:-
|
||
|
||
status_fore/status_back Set the colours for the status line at the
|
||
bottom of the screen.
|
||
|
||
page_fore/page_back Set the colours for the first line of a
|
||
received page. This line contains the
|
||
received RIC, function code, bit rate and
|
||
decoding format.
|
||
|
||
message_fore/message_back Set the colours for the message part of a
|
||
received page. Also sets the colours for
|
||
the debug display, data with no errors.
|
||
|
||
log_fore/log_back Set the colours used to display a RIC code
|
||
that appears in PAGERS.INI.
|
||
|
||
corrected_fore/corrected_back Set the colours in debug mode for codewords
|
||
containing bit errors believed to be
|
||
corrected.
|
||
|
||
errored_for/errored_back Set the colours in debug mode for codewords
|
||
containing un-correctable errors.
|
||
|
||
|
||
5.2 PAGERS.INI
|
||
|
||
This file contains a list of pager addresses to be logged and is simply a
|
||
list of 7 digit RIC's. Each RIC must begin in the first column and any
|
||
characters after the 7th are ignored, and may be used for comments. Also
|
||
lines beginning in "#" may be used for comments. RIC codes may contain
|
||
wildcards, using the "?" character. Eg:-
|
||
|
||
# A few pager numbers....
|
||
|
||
1234567 Fred's pager
|
||
0012345 Joe's pager
|
||
111???? Any pager number beginning "111"
|
||
|
||
This file may contain up to 250 addresses. Every time one of these
|
||
addresses is encountered it is highlighted on the screen, a beep is sounded
|
||
if configured, and the page is logged to disk with a date/time stamp. The
|
||
log filename is <RIC>.LOG, eg 1234567.LOG. Wildcards are translated to
|
||
underscores in filenames, eg 111____.log.
|
||
|
||
Please note that a page will be logged by the first match found in the
|
||
file. For example if this file contained 12?????, and then 1234567 further
|
||
down, then pages to RIC 1234567 would go into 12_____.log and _not_ into
|
||
1234567.log. It is therefore best to put any entries containing wildcards
|
||
towards the bottom of the file so that the individual entries will catch
|
||
them first.
|
||
|
||
5.3 REJECT.INI
|
||
|
||
This file contains a list of pager addresses to be rejected, eg to save
|
||
screen clutter. This file has the same format as PAGERS.INI, described in
|
||
5.2 above.
|
||
|
||
|
||
|
||
6. Running the Program
|
||
|
||
|
||
6.1 Starting
|
||
|
||
PD is run from the DOS prompt by simply typing:-
|
||
|
||
PD<Enter>
|
||
|
||
No command line options are supported, if any are given then PD displays
|
||
the message:-
|
||
|
||
*****************************************************
|
||
*** All PD Configuration is now by editing PD.INI ***
|
||
*** No Command Line Switches are Supported ***
|
||
*****************************************************
|
||
|
||
|
||
6.2 Supported Keys
|
||
|
||
The following keys are supported whilst PD is running:-
|
||
|
||
ESC Exits the program
|
||
|
||
F1 Toggles between NORMAL and DEBUG modes
|
||
|
||
SPACE BAR Toggles PAUSE mode on and off
|
||
|
||
N.B. PAUSE mode stops the output of paging messages to the screen. Any
|
||
logging will still carry on and is not affected.
|
||
|
||
6.3 Status Line
|
||
|
||
After PD starts up it displays a status line along the bottom of the screen,
|
||
with a data area below. The status line is as shown below:-
|
||
|
||
|
||
NORMAL <20> COM1 <20> 1200 <20> REJ <20> PAUSE <20> 13-01-96.LOG 280890 <20> 100.0 <20> \ 13:50:39
|
||
|
||
|
||
The items on the status line are described below, from left to right:-
|
||
|
||
* NORMAL/DEBUG indicator - shows which mode PD is currently operating in.
|
||
|
||
* COM port currently in use.
|
||
|
||
* Current POCSAG bit rate.
|
||
|
||
* REJ indicator - appears when a pager address matches one listed in
|
||
REJECT.INI
|
||
|
||
* RUN/PAUSE indicator - indicates when paused by the space bar.
|
||
|
||
* Filename of current daily log file, and current file size.
|
||
|
||
* Indication of receiving efficiency. 100% indicates that all received
|
||
codewords contain no errors. Any codewords containing errors, whether
|
||
corrected or not, will drive this figure down.
|
||
|
||
* Rotating signal indicator. Appears to rotate when data is being
|
||
received on the correct pin of the COM port. This is no indication of
|
||
good data, just that the levels are correct.
|
||
|
||
* The current time from the PC's real time clock.
|
||
|
||
6.4 Normal Mode
|
||
|
||
In NORMAL mode, as long as good POCSAG data is being received, lines of
|
||
the following form are displayed:-
|
||
|
||
RIC: <RIC code> FUNC: <func code> RATE: <bit rate> <decoding type> [auto]
|
||
|
||
Where:-
|
||
|
||
<RIC code> is the 7-digit pager address
|
||
|
||
<func code> is the single digit function code 0,1,2 or 3
|
||
|
||
<bit rate> is the data rate at which the page was received:
|
||
512, 1200 or 2400
|
||
|
||
<decoding type> specifies how the message data is being decoded:
|
||
|
||
Tone - Tone - only page
|
||
Numeric - BCD numeric page
|
||
Alpha - ASCII alphanumeric page
|
||
|
||
[auto] is appended to the line if PD is making an automatic
|
||
alpha/numeric decision for this function code.
|
||
|
||
In the case of numeric or alphanumeric pages then another line or lines of
|
||
message data follow.
|
||
|
||
eg:-
|
||
|
||
RIC: 1234567 FUNC: 3 RATE: 512 Alpha:
|
||
Please call 1234 - 5688
|
||
RIC: 0345678 FUNC: 1 RATE: 1200 Tone
|
||
RIC: 0000123 FUNC: 2 RATE: 2400 Numeric (auto):
|
||
555-123-1212
|
||
|
||
|
||
Before data is displayed in NORMAL mode the address codeword is checked for
|
||
errors. If the "accept" parameter in PD.INI is set to 0 then this codeword
|
||
must be error free, thus ensuring that the correct RIC is always displayed.
|
||
If "accept" is set to 1 then address codewords will be accepted even if
|
||
they had correctable errors. This means there is a chance that the wrong
|
||
RIC will be displayed - if a large number of bit errors are present.
|
||
|
||
Subsequent data codewords are decoded irrespective of any errors. This
|
||
means that some "garbling" of data will occur in the presence of a lot of
|
||
errors. All codewords are, however, error corrected. This means that, in
|
||
the presence of 1 or 2 bit errors, the orignal codeword will be recovered.
|
||
|
||
6.5 Debug Mode.
|
||
|
||
In Debug mode the batches of raw POCSAG codewords are dumped to the screen
|
||
in hex form, eg:-
|
||
|
||
7A89C197 7A89CI97 7A89C197 7A89C197 7A89C197 7A89C197 7A89C197 7A89C197
|
||
7A89C197 7A89C197 14083EE2 7A89C197 7A89C197 7A89C197 7A89C197 7A89C197
|
||
|
||
|
||
Any codewords containing errors will be displayed in different colours, as
|
||
configured in PD.INI. By default codewords containing corrected errors are
|
||
displayed as yellow on white whilst codewords containing un-correctable
|
||
errors are displayed as red on white.
|
||
|
||
The debug mode is very useful for setting up, as it gives an indication of
|
||
the number of errors currently being received. The shareware version will
|
||
not time out while in debug mode.
|
||
|
||
Please note that no logging will take place while in debug mode.
|
||
|
||
APPENDIX A
|
||
PD Software History
|
||
|
||
|
||
VERSION 1.02 Initial Released Version
|
||
|
||
|
||
VERSION 2.00 Major Release
|
||
|
||
* Now supports 2400 baud and has auto bit-rate detection.
|
||
* Will now attempt to correct up to 2 bit errors in a codeword.
|
||
* Will now attempt to auto-detect numeric or alphanumeric data.
|
||
* Now supports logging of all messages to daily log files.
|
||
* Logging now continues whilst in PAUSE mode.
|
||
* PAGERS.INI and REJECT.INI will now allow comments after pager addresses.
|
||
* PAGERS.INI and REJECT.INI will now allow wildcards in pager addresses.
|
||
* PAGERS.INI and REJECT.INI will now accept up to 250 entries each.
|
||
* Date format may now be configured for the US market.
|
||
* Will now correctly display "umlaute" characters used in German.
|
||
* Screen colours may now be configured.
|
||
|
||
|
||
<<<<<=====>>>>>
|
||
|