Commit Graph

150 Commits

Author SHA1 Message Date
Andreas Eversberg
4201717f36 Rework on audio buffer management
Use function to get samples to be sent to fill audio buffers to a
level. This replaces the function that only shows how much data
is in the buffer.

This way the function itself can control how much data will be
sent.
2017-03-04 06:35:38 +01:00
Andreas Eversberg
2e1999b1ee Start streaming of sound/SDR just before main loop
This prevents buffer overflow during init/creation processes
2017-02-25 07:09:53 +01:00
Andreas Eversberg
04fd1ddcea Use thread to record and playback wave files without blocking 2017-02-25 06:29:09 +01:00
Andreas Eversberg
438ce08add SoapySDR support
There is no time stamp handling. It is just TX'ing in advance and
synchronous to received RX rate.
2017-02-18 21:02:55 +01:00
Andreas Eversberg
290b365d67 SDR: Move FM modulation algorithms to a seperate file 2017-02-18 21:02:51 +01:00
Andreas Eversberg
4c0f8e7e95 Rework of sample rate conversion by using linear interpolation 2017-02-18 21:02:51 +01:00
Andreas Eversberg
47f74b38ce SDR transmits with full amplitude 2017-02-18 21:02:50 +01:00
Andreas Eversberg
6a3cfd608e Add ascii-art spectrum analyzer for SDR support 2017-02-18 21:02:49 +01:00
Andreas Eversberg
5026e161aa Open audio device for call (headset) after everything is prepared
It is not allowed to stall after trigger reading of audio device.
2017-02-18 21:01:18 +01:00
Andreas Eversberg
f5e9a97c31 --rx-gain option works now only with sound card 2017-02-18 21:01:16 +01:00
Andreas Eversberg
2b4f5bb228 Minor fix in help output 2017-02-18 21:01:15 +01:00
Andreas Eversberg
7e45f556ce Correcting all levels and move all remaining integer samples to sample_t
The leves are based on the standards of each mobile network. They
are adjusted to the specified frequency deviation now.
2017-02-18 21:01:13 +01:00
Andreas Eversberg
bd7ccc5fa0 Add global DC-Filter and remove all individual DC-Filters 2017-02-18 21:01:12 +01:00
Andreas Eversberg
71e556e7ff Work on emphasis filter: Neutral @ 1000 Hz; Use filter before de-emphasis 2017-02-18 21:01:11 +01:00
Andreas Eversberg
b3fd53b165 Test filter uses a dB graph to show the response graphically 2017-02-18 21:01:10 +01:00
Andreas Eversberg
7ea3bc188d Move samples of int16_t format to sample_t, that is of type double
This prepares the correction of all levels
2017-02-18 21:01:08 +01:00
Andreas Eversberg
23a42aeb2c Fixed calculation of elapsed UHD RX time stamp
Now rates above 1000 RX frames per second works. The bug hit when there
were more than one frame received during one function call. This happens
if the frame rate is above the main loop rate of 1000 frames per second.
(default)
2017-02-18 21:01:05 +01:00
Andreas Eversberg
ac0da3f76e Filter improvement: LP and HP filters, added test function
The -3 dB level at cut-off frequency is now maintained for multiple
iterations.
2017-02-18 21:01:04 +01:00
Andreas Eversberg
799b96c801 Fixed sleep interval in main loop
The elapsed time is calculated, so that it is removed from the sleep
time. This way the loop interval matches the given target.
2017-02-18 21:01:03 +01:00
Andreas Eversberg
a7e47f83d7 Fixed paging channel switching of B-Netz
Now the calling channel is switched correctly.

A global parameter is used to select how paging is performed.
2017-02-18 21:01:03 +01:00
Andreas Eversberg
21c5c3195d Plot IQ data as red points on display, if overdriven (vector length >= 1.0) 2017-02-18 21:01:01 +01:00
Andreas Eversberg
c0e30d35d6 Use individual sample rate and setting for call device (headset) 2017-02-18 21:01:00 +01:00
Andreas Eversberg
19b396ab4d Wave recording and playback now uses multi channels 2017-02-18 21:00:59 +01:00
Andreas Eversberg
2d8d7e62c1 Use global init/cleanup function 2017-02-18 21:00:58 +01:00
Andreas Eversberg
272ebeb0ae SDR: Minor fixes 2017-02-18 21:00:56 +01:00
Andreas Eversberg
a5fd375237 Fixed typos 2017-02-18 21:00:55 +01:00
Andreas Eversberg
d28467c125 SDR: Display IQ data as a plot using 'q' key 2017-02-18 21:00:53 +01:00
Andreas Eversberg
8b9277615d Neu structure for the paging process (B-Netz)
Paging tones are not created within sound_alsa.c
The audio API is now responsible to switch to paging channel.
In case of SDR, the sdr.c will switch frequency offset.
2017-02-18 21:00:50 +01:00
Andreas Eversberg
57993e3e48 Support for UHD SDR interface 2017-02-18 21:00:49 +01:00
Andreas Eversberg
b30b61282c Generic SDR support 2017-02-18 21:00:48 +01:00
Andreas Eversberg
c5cf88ce57 Prepare for SDR: Add bandwidth and deviation info to sender instance 2017-02-18 21:00:47 +01:00
Andreas Eversberg
9ff8c3bb25 Rework on audio interface
Sound instance is now called audio instance and uses funcation pointers.
This gives a clean interface to be exchanged with other technologies,
linke SDR.
2017-02-18 21:00:45 +01:00
Andreas Eversberg
d54d3ac265 prepare audio handling for multi carrier SDR 2017-01-07 06:28:24 +01:00
Andreas Eversberg
713b1ab118 Rename functions and structure of biquad lowpass filter 2017-01-07 06:28:23 +01:00
Andreas Eversberg
e1cbb1649a Fixed memory leak in PDEBUG(). Thanx to valgrind finding that! 2017-01-05 08:36:52 +01:00
Andreas Eversberg
16e1e842b9 A-Netz: Don't allow emphasis, since it is not used with A-Netz 2017-01-02 10:16:49 +01:00
Andreas Eversberg
d47853201c common code: Update call console only when it changes or after debug line 2016-12-11 14:21:22 +01:00
Andreas Eversberg
3400f555fe Add common function to give hotkey help
* Key to dial and hangup
* Key to display wave form
2016-12-09 16:42:38 +01:00
Andreas Eversberg
d52d0242bf Output enhancements
* no more flicker on wave form display while scrolling
* dialing console gets cleared/overwritten correctly
* fixes on stderr output
2016-11-29 07:49:21 +01:00
Andreas Eversberg
b1c452cf12 Changed command line options
* All lower case options define common options
* All upper case options define network specific options
2016-11-27 22:06:47 +01:00
Andreas Eversberg
0a83b19a99 common code: Display wave form in color
Show 0-line as blue and curve as green and channel number as white.
2016-11-17 19:38:36 +01:00
Andreas Eversberg
2a4abc62b2 Move realtime scheduling and signal handling to common code 2016-11-13 06:37:56 +01:00
Andreas Eversberg
4dacec9ceb A-Netz: Use Operator number 010 when calling from mobile station
Also use no caller ID (NULL). The call control code processes the
caller ID and dialed number correctly.
2016-11-13 06:04:54 +01:00
Andreas Eversberg
6c1b6119ad common code: Display multiple wave forms for each channel used
Use 'w' key to enable/disable RX wave form display.
2016-10-31 19:16:47 +01:00
Andreas Eversberg
c1a02a5029 common code: Fix double free bug 2016-10-28 16:55:39 +02:00
Andreas Eversberg
1ea95de120 C-Netz: Use emphasis with 200 uS time constant 2016-10-23 08:46:05 +02:00
Andreas Eversberg
27938d111e Added and fixed extra compiler warnings 2016-10-07 08:55:18 +02:00
Andreas Eversberg
0cec2f28be Add check if fromat at PDEBUG() is consistent (like printf)
The bugs it found are fixed too.
2016-10-07 07:52:17 +02:00
Andreas Eversberg
b205cfcf03 B-Netz: Work on pilot signal generation
The pilot signal to switch to channel 19 can be:
 * a tone
 * a tone that is turned off (notone)
 * positive amplitude
 * negative amplitude
2016-10-03 14:56:15 +02:00
Andreas Eversberg
8d7c7f4425 callref: Move callref from 'sender' to individual implementation of a, b, c-netz
Cellular networks use transaction instances, so callref is now member of
transaction object.
2016-10-02 09:06:03 +02:00