39 Commits

Author SHA1 Message Date
Andreas Eversberg
b605da1aff Restructure: Move timer from common code to 'libtimer' 2017-11-13 20:00:52 +01:00
Andreas Eversberg
b32e0ab602 Implementation of RX level squelch (for A-Netz and B-Netz)
Use -S <dB> for setting RF level or use -S auto for auto level.

When squelch closes, audio is muted. If squelch is closed for some
seconds (depending on network), call is released. (RF loss condition)

The previous loss detection has been removed
2017-10-22 19:23:08 +02:00
Andreas Eversberg
ba036de226 Add function to display measurements on screen
Use 'm' key to toggle display.
2017-10-12 19:46:30 +02:00
Andreas Eversberg
a52c89800c SDR: Split SDR config from main_mobile.c to sdr_config.c 2017-09-02 07:34:48 +02:00
Andreas Eversberg
743d147d16 SDR: Turn TX power off if requested by network
The power level is ramped smoothly within 1 ms up or down.

R2000, AMPS and C-Netz turn off power when voice channel is not i use.

C-Netz turns off power between OgK timeslots.
2017-09-01 18:42:46 +02:00
Andreas Eversberg
8489914bf0 SDR: Add time consumption debug code 2017-08-16 18:51:46 +02:00
Andreas Eversberg
538b4a42ec Add wave file playback to replace TX audio 2017-07-15 07:38:16 +02:00
Andreas Eversberg
2c1ab89723 Notify about usage of channels that are next to each other
It is required to have at least one free channel between channels, to
avoid interferences.
This is only a warning, it will not reject channels next to each other.
2017-05-24 14:01:25 +02:00
Andreas Eversberg
4d10ee7c82 No "sdr" audio device option required anymore (when using SDR) 2017-05-17 20:06:42 +02:00
Andreas Eversberg
ca10048e5c Rename filter -> iir_filter (file name and instance name)
This is useful when using fir_filter in the future.
2017-05-15 21:46:32 +02:00
Andreas Eversberg
6e0e0c9ce8 fixup Rework on audio buffer management 2017-05-15 21:46:28 +02:00
Andreas Eversberg
8e0d7d2513 samplerate.c: Allow transcoding to lower sample rate other than 8000 Hz 2017-03-04 16:52:20 +01:00
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
f5e9a97c31 --rx-gain option works now only with sound card 2017-02-18 21:01:16 +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
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
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
19b396ab4d Wave recording and playback now uses multi channels 2017-02-18 21:00:59 +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
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
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
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
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
f729b32745 C-Netz: Fixed multi-transceiver mode and show channel in various logs 2016-07-31 18:48:19 +02:00
Andreas Eversberg
7d5d3da8d3 Add function to display wave form from input/loop
Use 'w' to toggle display.

Move terminal input processing and main loop to main_common.c
2016-06-17 17:03:28 +02:00
Andreas Eversberg
4d22b11855 common code: Add debug #define for capture generated singal
Used for fundamental debugging of encoded signal
2016-06-12 16:11:20 +02:00
Andreas Eversberg
bae12156a2 common code: Add input gain option 2016-05-08 15:49:45 +02:00
Andreas Eversberg
7434e21dc2 Multi transceiver support
This can be multiple transceivers on multiple sound cards.

Two transceivers can be bundled on one sound device as well, using both channels.
2016-05-08 15:48:13 +02:00
Andreas Eversberg
16acdbf59d Implementation of C-Netz (German mobile telephone system) 2016-04-24 15:19:00 +02:00
Andreas Eversberg
4356c93afa common: Add pre and de emphasis, if the radio does not support it
Connect to the oscillator of the transmitter - good girl!
You need to enable pre emphasis in this case.

Connect to the discriminator of the receiver - good boy!
You need to enable de emphasis in this case.
2016-04-24 15:14:56 +02:00
Andreas Eversberg
1146537d84 common code: Add feature to record received audio and replay it
-W <file.wav> writes a wave file of received audio
-R <file.wav> reads a wave file to feed into decoder

This way you can record a phone and later debug without a phone
and radio equipment.
2016-03-27 17:56:04 +02:00
Andreas Eversberg
946c9ce10a initial git import 2016-03-13 09:12:11 +01:00