* read timing factors for string transmission by external
program using new xmlrpc query
- main.get_tx_timing
respone - #samples: samplerate: transmit_time (secs)
* read char rate table using external xmlrpc query
- main.get_char_rates
table structure
char, ascii-rep', #samples, samplerate, transmit_time (secs)
* added hidden macro <CPS_TEST> which simulates transmission
of test string and measures the character per second rate
for the modem in use.
- <CPS_TEST> uses internal "Jabberwocky" string
- <CPS_FILE:[full pathname to file]> uses external text file
- <CPS_STRING:ascii text string...>
- produces report similar to:
CPS test
text: /home/dave/dev.git/all.git/pskr-tests/paris.txt
mode: PSK-500R
# chars: 2400
xmt time: 56.580000
data time: 52.480000
data samples: 419840
sample rate: 8000
chars/sec: 45.731707
~WPM: 457.317073
* Allow writing wav file during timing test
* High Speed WAV
- Add macros to enable writing WAV file in at maximum
character throughput.
- disables codec output
- use this for creating wav test files
* Suppress waterfall display for CPS and WAV tests
* Remove PSK printf debug statements
* Fix MFSK xmt 0x05 --> 0x04 during CPS testing
* Modified timeouts and timeout logging
- newer modems timed out waiting for
release from Tx to Rx state.
* Changed sending 0x06 character to ARQ client
from end of ARQ tx buffer event to actual end
of transmit event.
* Added LOG_DEBUG statement to indicate when an
rsid code is not assigned to a modem type.
* Added code to disallow
<!MODEM:SSB> and <!MODEM:ANALYSIS>
macro tags.
* Added code to clear macro queue when T/R returns
to receive using the T/R button.
* Added assigned(trx_mode m) method to class cRsId
- used for testing whether Tx loop should invoke
the cRsID::send(...) method
* Corrected position of dtmf->send() in tx loop
* Changes needed to improve double RsID detection
* Removed resample test and dependent code
* Reimplemented FFT bucket array
- removed array pointer arithmetic
- memory copy and initializers used to update
the bucket array
- modified search routine to insure that all elements
of FFT bucket array are tested.
* Deprecated use of hash tables for initial RsID search
- search sensitivity and hash table use were incompatible
* initialize active_modem pointer to point to
an instance of NULLMODEM, before any other threads
or UI are started.
* eliminates active_modem pointing to a NULL pointer
and being accessed by a thread external from the
thread which initializes the active modem. This
segmentation fault seems associated with an OS
which manages threads over multiple cpu cores.
* Added throw exception statement and loop test to PortAudio
Read and Write while blocks
* Potentially cause of reported faults and unresponsive behavior
by both Linux and Windows users.
* Changed to specifed short/long MT63 mode selection
ie: MT63-500S / MT63-500L
MT63-1000S / MT63-1000L
MT63-2000S / MT63-2000S
* Interleave no longer a configuration item, but fixed
by mode selection
S - short, 32 bit
L - long, 64 bit
* Add function modem->rx_flush() to flush receiver buffer to the
receive window on RSID modem reset/change.
* Repetitive conditional statements removed by reordering code flow
rsid::apply(). This also fixes reported bug by garylinnrobinson
"RxID bug that affects Olivia, Contestia, MFSK, RTTY"
* Add widget and control to retain frequency lock during a modem
reset/change.
* Add widget and control to disable/enable frequency change during
a RSID request while allowing modem change.
* Add widget and control to disable/enable Contestia FEC Block reset
on modem change/reset.
* Moved data flush function above RSID message output
* high speed playback of wav file
* on/off/toggle control is provided with an
undocumented macro tag
- <HS:on|off|t(oggle)>
* Start wav playback at normal speed and allow
decoding to begin. Then change to high speed mode.
Waterfall & scope are disabled during high speed
playback. Rx text display remains active.
* Added ability to playback sound file as single pass
or continuous loop. If in single pass then high speed
if toggled off at end of file.
* This commit contributed to by:
- John Douyere <vk2eta@gmail.com>
- Dave Freese <w1hkj@w1hkj.com>
- John Phelps <kl4yfd@gmail.com>
- Andrej Lajovic <s57ln@hamradio.si>
* New high speed and multi carrier modems
- psk, pskr
- DominoEX
- Thor
* Added separate modem initialization for
Olivia tone / bandwidth pairs:
- 4/250, 8/250
- 4/500, 8/500, 16/500
- 8/1000, 16/1000, 32/1000
- 64/2000
* RSID changes
- Added secondary RsID code set
- RsID code 263 enables detection of the secondary
RsID code burst.
* MFSK UTF-8 tx
- corrected transmit of two-byte UTF-8 characters
* PSK-UTF-8 tx
- corrected transmit of two-byte UTF-8 characters
* Changed PSK multicarrier bandwidth markers to show full
extent of signal in the waterfall.
* THOR modem updates
- Added Thor high speed modes
25x4, 50, 50x2, 100 Baud, all < 1800 Hz bandwidth
- IFK+ Softdecode function for THOR
dynamically detects and suppresses CWI
Rx printing is disabled when "File IO only" is selected for
soundcard. Decoder uses puncture in this condition.
- THOR FEC confidence indicator
Uses the actual path-metrics from the Viterbi decoder.
Displays next to the S/N in the main dialog.
* Still retains use of " ^r " in the user window
* Covers special-case for FLARQ usage where ETX should
stop the modem
* EOT character can now be transmitted from Tx window instead
of switching to Rx mode
* From: Andrej Lajovic <s57ln@hamradio.si>
- Substitute symbolic names for negative return values of
get_tx_char()
* Added Macro <NRSID:[n]> where
- n < 0 will cause |n| RsID bursts and exit from Tx
- n > 0 will cause |n| RxID bursts and Tx continue
- n == 0 will cause a single RxID burst and Tx continue
- multiple RsID bursts are separated by an interval of
200 milliseconds
* Changed DominoEX 85 and THOR 85 to DOM/THOR 44
* Changed DominoEX125 and THOR 125 to DOM/THOR 88
- DominoEX 44 and THOR 44 are doublespaced modes
* Raised the viterbi traceback length to accomodate a long constraint length code.
* added THOR soft bit decoding function
* modem listens for the THOR preamble sequence of tones
* on receving the preamble, flushes the interleaver and viterbi decoder with punctures
clears noise / garbage bits out of soft rx pipeline, improving FEC performance
* changed one, zero soft-bits to unsigned char
* Updated THOR modem configuration tab
* When changing wefax slant, prompts to save configuration on exit.
* Changed wefaxNNN to wefaxNNN_modem
* Changed sample rate initialization
* Fixed prototype for wefax::getfile
* Fixed logging of fax images.
* Added ability to schedule a single macro execution
at a specifice GMT date and time
tag format <SKED:hhmm[:YYYYDDMM]>
where the date defaults to current date.
* Added NULL modem, a device which does not receive
but can enable transmit.
- used as modem type before !QSY, !GOFREQ etc
- used with <DTMF... to transmit DTMF tones and no
other modem audio stream
* Modified IDLE test in get_tx_char
* Fixed potential to hang when processing modem change
from one with a long postamble such as
- Olivia
- MT63
- MFSK
* Added timeout counters to avoid infinite recursion of
calls to Fl::add_timeout
* Created ability to delay execution of designated tags
until the time of occurance in the transmit character
stream. These include:
- <DTMF - dual tones
- <!WPM - CW words per minute
- <!POST - CW post delay
- <!PRE - CW pre delay
- <!RISE - CW rise/decay time
- <!MODEM: - change to specified modem
* The <! tags use the same parameters as their non delayed
counterparts
* Changed implementation to separate class, similar to RsID
implementation
* Added Delay and Tone Pulse Length parameters to <DTMF: tag
- <DTMF:D500:L250:1-256-828-3105>
- | | |_phone #
- | |_250 msec pulse duration, 50 msec default
- |_500 msec wait before first tone, 0 default
* Decoder under development
* Added DTMF encoder accessible as a macro tag
- <DTMF:string of chars> where string of chars can
contain 0..9,space,-,comma,*,#,A..D
- space, hyphen and comma insert a 50 msec silent
period in the transmissions
* This is a fix to commit 64406547b
* Added Tx attenuator control to Audio configuration tab
* Added main dialog short cut keys for tx attenuator control
alt - ==> decrease by 0.1 dB (Command key "-" on OS X)
alt = ==> increase by 0.1 dB (Command key "=" on OS X)
* Modify two-tone generator in Olivia / Contestia to avoid
remultiplication by txlevel
* Added Tx attenuator control to configure Audio
* Added quick key control of Tx attenuator
shift alt + ==> increase by 0.1 dB
shift alt - ==> decrease by 0.1 dB
* New high speed modem types based on dominoex / thor.
- dominoex at 85 baud
- dominoex at 125 baud
- Thor at 85 baud
- Thor at 125 baud
Thor85/125 use a convolutional encoder / viterbi
decoder constraint length of THOR_K=15 (NASA/Galileo)
* Added pre-signal tone which allows triggering
carrier detect / amplifier enable. Used primarily
for VHF/UHF power bricks.
* Reduced pre and post RsID silence periods to 1 RsID
symbol length (~0.0988 sec).
* Combined 3 patches from kb3cs, added value (W1HKJ)
* Expanded video ID text for Olivia, Contestia and RTTY
* Amended macro editor <ID> explanation
* Changed format of auto-generated video ID text.
* Increased number of characters to 8 for both font sizes
* Simplified video generation methods
* Added limit switches on video width
- 500 Hz for US HF compliance
- Mode bandwidth, video constrained to mode in use bw
* Added abbreviated video mode name strings
* Added FEC indicator for DominoEX FEC modes