
Linking OP25 TX and RX                                December 2020
===================================================================

The OP25 TX application can be configured to transmit one or more
channels directly to one of the RX apps (rx.py or multi_rx.py) in
each case by specifying a device args string of the form
     udp:host:port
where host and port are the IP address and UDP port number,
respectively.  Typically, the TX is started first followed by
the RX, but they can be started in any order.  UDP port 25252 is
used in the examples.

The sample RX script is in runudp.sh, and the sample TX json config
is in cfg-900.json .

To start the TX
      cd .../op25/op25-gr_repeater/apps/tx
      ./multi_tx.py -c ../cfg-900.json

The RX is started with
      cd .../op25/op25-gr_repeater/apps
      ./runudp.sh

There is a 120KHz sized block of spectrum transmitted (SR=120000)
which is treated as complex baseband with each side pretending that
the spectrum is converted to/from the 900 MHz band.  On the RX side
any frequency-change requests are ignored; instead, a "center 
frequency" is defined.  There are two channels (P25 trunk control
channel and P25 voice channel) spaced at 50 KHz separation.

The TX reads two data files that must be created beforehand.  To 
create the trunk control channel data symbol file, refer to
    tx/README-fakecc.txt
An audio file (PCM/ rate 8000 / mono / signed int16) must also be
created - this file will be real-time encoded with the voice codec
and sent on the P25 voice channel.  These two files must be defined 
in the cfg-900.json file (channel "source" keyword).
