Commit Graph

699 Commits

Author SHA1 Message Date
Andreas Eversberg af4bcb1522 Remove useless debug lines 2019-08-26 21:10:33 +02:00
Andreas Eversberg 1a76aebbc4 SDR: Use greater offset from center frequency, if only one channel is used. 2019-08-26 21:10:31 +02:00
Andreas Eversberg 3139c7a349 Move American tones into a lib, so that it can be used by IMTS also 2019-08-26 21:10:28 +02:00
Andreas Eversberg d6579c1244 Allow giving alphanumeric channels (Prepare for IMTS) 2019-08-26 21:10:20 +02:00
Martin Hauke 75765d49b7 Fixed many typos in output and source code comments 2019-07-15 21:14:52 +02:00
Andreas Eversberg c357ab5ad5 Allow dialing national and international prefix for AMPS/TACS 2019-07-06 07:30:18 +02:00
Andreas Eversberg 41ee8239df Radio: Add option to change volume of transmission/reception 2019-07-05 21:50:24 +02:00
Andreas Eversberg 1eac087935 Output ASCII art image after all init functions (inside main_mobile.c) 2019-06-30 14:51:01 +02:00
Andreas Eversberg 13245c56f6 C-Netz: Add authentication support (process only)
No real authentication, since the algorithm and the keys inside the cards
are not known. A challenge can be specified and optionally the response
can be verified.
2019-06-30 14:51:01 +02:00
Andreas Eversberg 5d9a9b59c3 OsmoTV: Generate correct amplitude of color signal (hopefully) 2019-06-01 19:15:06 +02:00
Andreas Eversberg 4362c78f38 SDR: Display DC line (center frequency) in the spectrum view 2019-05-30 21:08:23 +02:00
Andreas Eversberg 831b68401a SDR: Move center frequenc (DC) away from channels
If one channel is used, shift the center frequency down by half of the bandwidth.

If more channels are used, select a center frequency between two channels close to the center, but equal distance.

Show the spectum layout on startup.

This patch reverts f1292a985b
2019-05-30 21:07:41 +02:00
Andreas Eversberg 37406db7e3 Minimum frequency must be 8000 Hz 2019-05-30 18:19:06 +02:00
Andreas Eversberg 8c6f78fd63 B-Netz: Make debug text more plausible 2019-05-30 18:17:55 +02:00
Andreas Eversberg b9cc33c6ec OsmoTV: Added more test patterns for TV repair
- improved FUBK
- red screen for DY adjustment
- crosses and dots for convergence adjustment
- EBU color bars
- natural color image
2019-05-12 21:08:09 +02:00
Andreas Eversberg e4314749fd Fixup for fast mathm
Because users of libfm do always call fm_init and fm_exit, it must be
included in every build.
2019-03-23 07:57:28 +01:00
Andreas Eversberg e4fcc080df NMT: Fixed traffic area (Y1Y2) digit conversion 2019-03-09 09:51:09 +01:00
Andreas Eversberg 1321f66456 C-Netz: Add option to control voice deviation 2019-01-02 15:58:34 +01:00
Andreas Eversberg f1292a985b SDR: Move channel away from center frequency, to avoid bad RX 2019-01-02 15:57:54 +01:00
Andreas Eversberg 5311f44daa minor fixes of some prints; fix NMT message counter bug 2018-12-23 19:53:28 +01:00
Andreas Eversberg e16a2dd548 B-Netz: Add base stations of the Netherlands 2018-12-23 19:26:59 +01:00
Andreas Eversberg 32025915d5 Make run faster on ARM CPUs using fast math approximation
Use --fast-math to use sine/cosine tables and approximate atan2.
2018-11-10 15:18:28 +01:00
Andreas Eversberg e8429166c3 Radio: Minor fixes 2018-11-10 15:18:28 +01:00
Andreas Eversberg 73757ba083 NMT: Fix test of SMS code for different time zones 2018-11-10 15:18:28 +01:00
Andreas Eversberg 2cff22ef54 Added little INSTALL document and fixed some compiler issues 2018-11-02 09:28:48 +01:00
Andreas Eversberg e5c4e1f638 NMT: Fixed support for NMT-F (France; SFR)
Works now with Nokia Talkman 520 TMF-1FR
2018-10-30 20:04:21 +01:00
Andreas Eversberg 9444fcdb91 NMT: Fix channel encoding for interleaved 2018-10-30 20:01:59 +01:00
Andreas Eversberg e9a7f610ee Compandor: Remove unused option for unaffected level 2018-10-14 13:07:25 +02:00
Andreas Eversberg 56d8df5351 Rework of displaying supervisory info: NMT and AMPS
Using lower rate to show debug info of supervisory signal.

Display supervisory info for NMT and AMPS at measurement display screen.
2018-08-31 20:05:38 +02:00
Andreas Eversberg eac19ddab1 C-Netz: Allow SDR using C-Netz without calibration options
Crystals on SDRs are accurate enough for C-Netz (< 1ppm).
2018-08-26 08:47:56 +02:00
Andreas Eversberg 279dd25b15 SDR: Add presets for LimeSDR-Mini 2018-08-25 10:25:25 +02:00
Andreas Eversberg b2210cd698 Radio: Abort, if no RX sink is specified 2018-08-25 10:22:55 +02:00
Andreas Eversberg 881d4a9f72 SDR: Fix level range of IQ date; must not exceed range of -1 .. 1
LimeSDR mini (and maybe others) do not want IQ data to become a value below
-1 or above 1. This happens slightly when applying the IIR filter after
upsampling. To prevent this, we scale down the IQ level a little bit.

To test the problem:
- set the scale level to 1.0, so it does not take effect
- use LimeSDR mini
- use upsampling (sample rate differs SDR sample rate)
- run loopback mode 2 (-l 2)
- IIR filter must be initialized with 2 or more iterations to take effect
- check linear IQ graph; it will then plot dots inside the circle
2018-08-25 08:13:16 +02:00
Andreas Eversberg 0b22b0305a C-Netz: Correcting some information elements 2018-07-01 09:36:50 +02:00
Andreas Eversberg 40aec4f14c C-Netz: Swtitch speech scrambler only after receiving 3 consecutive frames with different scrambler mode 2018-07-01 09:18:07 +02:00
Andreas Eversberg 7c4cfd5567 TV: Minor code cleanup 2018-06-24 11:40:53 +02:00
Andreas Eversberg 83449726f8 R2000: Fix recall option 2018-06-24 11:39:31 +02:00
Andreas Eversberg b7046a5283 SDR: Add clock source selection, untested yet 2018-06-24 11:36:56 +02:00
Andreas Eversberg f4988297a6 B-Netz: Refactoring tone and quality detection 2018-06-05 07:09:51 +02:00
Andreas Eversberg 3b58408691 Fixed -t (--tone) option 2018-05-27 06:04:09 +02:00
Andreas Eversberg be309e1c83 C-Netz: Fixed display of states (state display function) 2018-05-21 19:43:38 +02:00
Andreas Eversberg 0b504dbeb3 SoapySDR: Flip initialization of RX and TX, so LimeSDR works with frequencies below 30 MHz 2018-05-21 19:39:09 +02:00
Andreas Eversberg c774180082 Osmoradio fixes: Use real time scheduling and always transmit empty buffer 2018-05-21 19:39:09 +02:00
Andreas Eversberg ce4a540745 Add real-time scheduling to osmotv and make it default for all base stations
This is required to drastically reduce the latency of the thread execution.
2018-05-21 19:39:09 +02:00
Andreas Eversberg 4e2ad7dae1 Fix compiler warning in conjunction with strncpy 2018-05-21 19:39:09 +02:00
Andreas Eversberg 3438402fe2 Update ImageMagick support to API version 7 2018-05-21 19:39:09 +02:00
Andreas Eversberg 3b81007210 Refactoring command line option handling
* Use own function to define and parse command line options

 * Command line options can be defined by config file also

 * --limesdr allows to auto-set required SDR option for LimeSDR
2018-05-21 19:39:09 +02:00
Andreas Eversberg 6ba1b8acab Make LimeSDR tune rx to tx frequency 2018-05-21 19:39:09 +02:00
Andreas Eversberg 32cefbbffc Transcode fourth digit of TACS phone number correctly, if it is 0. 2018-04-19 21:08:45 +02:00
Andreas Eversberg 49050eff90 Add 'osmoradio', an analog radio (FM/AM)
This radio can be a receiver or a transmitter or both simultaniously.
2018-02-16 15:54:42 +01:00
Andreas Eversberg c4d4e7feda Add libam, a library to do AM modulation and demodulation 2018-02-16 15:54:42 +01:00
Andreas Eversberg 3fd0707a3b Add libclipper, a library to 'smoothly' clip overdriven audio levels 2018-02-16 15:54:41 +01:00
Andreas Eversberg 9197320ee6 Improved audio (sdr) handling 2018-02-16 15:54:40 +01:00
Andreas Eversberg 9af2b6e007 Improved wave playback 2018-02-16 15:54:40 +01:00
Andreas Eversberg 3a5fa8837c Improved emphasis 2018-02-16 15:54:39 +01:00
Andreas Eversberg 50fee02c63 remove obsolete function 2018-02-16 15:54:39 +01:00
Andreas Eversberg a57a5c0122 Improving and cleaning configure script 2018-02-16 15:53:48 +01:00
Andreas Eversberg 56f07a473d B-Netz: Add dial sequence generator to emulate call setup from mobile phone 2018-02-15 08:00:20 +01:00
Andreas Eversberg a5aee82e53 B-Netz: Some cleanups 2018-02-15 08:00:20 +01:00
Andreas Eversberg 6b9326982a libwave: Use libdebug for debugging messages. 2018-02-15 08:00:19 +01:00
Andreas Eversberg f91e6f5034 Make libdebug not depend on libdisplay 2018-02-15 08:00:19 +01:00
Andreas Eversberg 6277753574 Minor debug message corrections 2018-02-15 08:00:18 +01:00
Andreas Eversberg 1ef1b93776 B-Netz: Give warning about possibly unsupported channels 2018-02-15 08:00:16 +01:00
Andreas Eversberg 6df0eb46cc Fix compiler warnings 2018-02-15 08:00:15 +01:00
Andreas Eversberg 4cc33c5b0d Make sound card support (Alsa) optional 2018-02-15 08:00:15 +01:00
Andreas Eversberg 0b129d3c7f libdisplay: Removing dependency from libmobile 2018-02-15 08:00:14 +01:00
Andreas Eversberg d3385b498d NMT: Fixes on channel coding/handling 2018-02-15 08:00:12 +01:00
Andreas Eversberg 72bdd3376f Add JollyCom, a simple and experimantal mobile network
This network that can be used with any radio and a DTMF transmitter.
2018-01-21 10:46:09 +01:00
Andreas Eversberg f2eb6b3e70 Squelch improvement
Continuously calculate noise floor and lower threshold level if less noise
was received. High noise or ongoing transmission during start of program will
not cause a threshold that is too far above the actual noise floor.
2017-12-09 20:46:16 +01:00
Andreas Eversberg 9f901384de SDR: Add option to set local oscillator (LO) offset
By default it is set to -1 MHz.
2017-12-09 20:46:14 +01:00
Andreas Eversberg c49ee3b2a8 Remove dependencies between debug, displays and mncc-console
Test functions are cleaned up, due to removed dependencies.
2017-12-09 20:46:13 +01:00
Andreas Eversberg b3866de242 Add 'hold' function and level display to spectrum view 2017-12-05 11:10:47 +01:00
Andreas Eversberg 7c42d57d6e B-Netz: Minor fixes to timings and debug messages 2017-12-05 11:10:46 +01:00
Andreas Eversberg 417151e9a3 SDR: Add DC offset removal (DC bias) 2017-12-05 11:10:44 +01:00
Andreas Eversberg 9e75e64787 Add DTMF decoder to libdtmf
Note: This decoder has no user yet.
2017-12-03 08:46:05 +01:00
Andreas Eversberg 44247ffb53 FM modulation: Never turn carrier completely off
This prevents IIR filter to become very slow for some unknown reason.
2017-12-03 08:46:04 +01:00
Andreas Eversberg 7cbfaa2861 Add NaN debugging to IIR filter (disabled by default) 2017-12-03 08:46:02 +01:00
Andreas Eversberg 06092e90ed Add library to normalize speech level (Sendevolumenregler SVoR)
Note: This lib has no user yet.
2017-12-03 08:46:01 +01:00
Andreas Eversberg 021c695883 Restructure: Fixing library linking order 2017-12-03 08:46:00 +01:00
Andreas Eversberg 1a341f6b4e Restructure: Move debug from common code to 'libdebug' 2017-12-03 08:45:58 +01:00
Andreas Eversberg 016e72d6d7 Restructure: Move display from common code to 'libdisplay' 2017-12-03 08:45:55 +01:00
Andreas Eversberg ab59a26a51 Restructure: Move mobile from common code to 'libmobile' 2017-12-03 08:45:54 +01:00
Andreas Eversberg ed31a26eba Restructure: Move sample from common code to 'libsample' 2017-12-03 08:45:48 +01:00
Andreas Eversberg 1650cc5ad2 Restructure: Move sdr from common code to 'libsdr' 2017-12-03 08:45:45 +01:00
Andreas Eversberg 45a5568f70 Restructure: Move sound from common code to 'libsound' 2017-11-25 19:28:36 +01:00
Andreas Eversberg 0e3e4d9230 Restructure: Move img from common code to 'libimage' 2017-11-25 19:28:35 +01:00
Andreas Eversberg 7b539d5dc7 Restructure: Move mncc from common code to 'libmncc' 2017-11-25 19:28:33 +01:00
Andreas Eversberg 9776736cc4 Restructure: Move compandor from common code to 'libcompandor' 2017-11-25 19:25:10 +01:00
Andreas Eversberg 083ea4edaa Restructure: Move fsk from common code to 'libfsk' 2017-11-25 19:24:03 +01:00
Andreas Eversberg f4754dcb37 Restructure: Move fm_modulation from common code to 'libfm' 2017-11-25 19:24:02 +01:00
Andreas Eversberg 7af9b752a0 Restructure: Move 'libgermantone' to a-netz code 2017-11-25 19:23:59 +01:00
Andreas Eversberg cb30c96bc6 Restructure: Move fft from common code to 'libfft' 2017-11-25 19:23:57 +01:00
Andreas Eversberg 40c24a70b2 Restructure: Move emphasis from common code to 'libemphasis' 2017-11-25 19:23:56 +01:00
Andreas Eversberg 16194c15f9 Restructure: Move goertzel from common code to 'libgoertzel' 2017-11-25 19:23:54 +01:00
Andreas Eversberg c84318b245 Restructure: Move jitter from common code to 'libjitter' 2017-11-25 19:23:53 +01:00
Andreas Eversberg 8f6d0752df Restructure: Move squelch from common code to 'libsquelch' 2017-11-25 19:23:50 +01:00
Andreas Eversberg 60ffdcaf53 Restructure: Move hagelbarger from common code to 'libhagelbarger' 2017-11-25 19:23:49 +01:00
Andreas Eversberg ac7bb3539f Restructure: Move wave from common code to 'libwave' 2017-11-25 19:23:47 +01:00
Andreas Eversberg fd3a4d7ac2 Restructure: Move dtmf from common code to 'libdtmf' 2017-11-25 19:23:46 +01:00
Andreas Eversberg 17b34fbae6 Restructure: Move scrambler from C-Netz code to 'libscrambler' 2017-11-14 21:04:58 +01:00
Andreas Eversberg ffd934709f Restructure: Move classic German tones from common code to 'libgermanton' 2017-11-13 20:14:03 +01:00
Andreas Eversberg b605da1aff Restructure: Move timer from common code to 'libtimer' 2017-11-13 20:00:52 +01:00
Andreas Eversberg 1b183864bb Restructure: Move sample rate conversion from common code to 'libsamplerate' 2017-11-13 19:34:05 +01:00
Andreas Eversberg 669705c6ed Restructure: Move filters from common code to 'libfilter' 2017-11-13 19:15:09 +01:00
Andreas Eversberg fc1c5de547 Fixed pointer corruption bug in timer.c 2017-11-11 09:36:05 +01:00
Andreas Eversberg 8a74805ea6 NMT: Add support for receiving 8-Bit-SMS, because it is mandatory
Benefone Dragon uses this coding scheme for SMS-Submit.
2017-11-11 09:35:46 +01:00
Andreas Eversberg 486d2d5dbe NMT: Fixup assign traffic channel
dms_call state now belongs to transaction, so it is kept while switching
to traffic channel.
2017-11-11 09:35:44 +01:00
Andreas Eversberg ce2bb8ec43 Fixup call control split 2017-11-11 05:55:32 +01:00
Andreas Eversberg e9583d5661 R2000: Make recall work when call is directly answered by call_up_setup
It is not recommended to use recall function with built-in MNCC (auto-answer),
because the phone is not fast enough to switch back to call control channel
and so it misses the first paging. But anyway it works.

Also the channel layout is checked for having traffic and control channel.
2017-11-05 17:00:01 +01:00
Andreas Eversberg aeb31a7a34 A-Netz: Number of operator can be defined now
Since A-Netz does not allow automatic dialing, the call is forwarded
to an operator. Use -O <number> to change the default operator's number.
2017-11-05 16:59:59 +01:00
Andreas Eversberg ca6d70566c Fixup displaying measurements (array overflow) 2017-11-05 16:59:59 +01:00
Andreas Eversberg e8a3306eee Add option to cross-connect calls; Calls between mobiles are now possible
Use -x to enable call cross-connect. No MNCC socket, no call device must
be specified!

Be sure to have at least one control channel and two voice channels.
Alternatively you can use one combined control/voice channel and one
voice channel.
2017-11-05 16:59:58 +01:00
Andreas Eversberg 87a21a285a NMT: Assign traffic channel for outgoing and incoming calls
This way the control channel stays available for other (idle) phones.

No more loss of coverage for other phones, when a call to a mobile is
made.

It is still possible to define a combined control+traffic channel.
(e.g. for single channel setup)
2017-11-05 16:58:37 +01:00
Andreas Eversberg 5c33b8824b AMPS/TACS: Fixing release towards mobile station on FVC
We must continuously send release frames until Signaling Tone changes,
so we know that the phone has received the release.
2017-11-05 16:58:36 +01:00
Andreas Eversberg ee3fbeb03b Split call control from built-in call console by using MNCC layer 2017-11-05 16:58:31 +01:00
Andreas Eversberg 91b48c09de TV: Fix case where no SDR nor wave file has been selected 2017-10-22 19:23:18 +02:00
Andreas Eversberg 5e14471eb6 B-Netz: Fixup of metering pulse 2017-10-22 19:23:17 +02:00
Andreas Eversberg 2c4d0ee687 SDR: Check if the required bandwidth can be handled by given sample rate 2017-10-22 19:23:09 +02: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 f7a0e4622b Display channel offset with TX and RX channel frequencies on startup 2017-10-22 19:23:06 +02:00
Andreas Eversberg e67c171035 SDR: Minor fixes in error condition handling 2017-10-22 19:23:05 +02:00
Andreas Eversberg f7476bce41 NMT-900: Handle channels >= 1025 correctly 2017-10-22 19:23:04 +02:00
Andreas Eversberg 3218d1a8e0 NMT: Fixed segfault when decoding certain (invalid) messages 2017-10-22 19:23:03 +02:00
Andreas Eversberg 975e34211b Call control: Minor logging fixes 2017-10-22 19:23:02 +02:00
Andreas Eversberg ae29f84ed7 Fixed typo 2017-10-12 19:46:32 +02:00
Andreas Eversberg 595fd845e0 NMT: Removed double implementation of caller ID encoding 2017-10-12 19:46:32 +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 e84d7a082c Use braces to make GCC happy 2017-10-02 12:34:38 +02:00
Andreas Eversberg c645ef9c14 R2000: Use correct debug category 2017-10-02 12:34:35 +02:00
Andreas Eversberg 1a4a08386c Only dial if call is on-hook or disconnected 2017-10-02 12:34:34 +02:00
Andreas Eversberg 3f2f0fdd8c C-Netz: Show standard deviation of bit levels instead of jitter 2017-10-02 12:34:33 +02:00
Andreas Eversberg 5ea48588e5 AMPS/TACS: Change audio level range 2017-10-02 12:34:31 +02:00
Andreas Eversberg 3e1da04f14 AMPS: Minor fixes to loopback test 2017-10-02 12:34:27 +02:00
Andreas Eversberg f469879ed0 SDR: Use filter to remove harmonics caused by downsampling/upsampling
This drastically increases the signal-noise-ratio and removes co-channel
interferences. It gains CPU usage, but only on SDR threads, not on the
main thread.
2017-09-24 15:59:24 +02:00
Andreas Eversberg ff5faa8697 SDR: Improved IQ plot display, increase dynamics of spectrum display 2017-09-24 15:57:56 +02:00
Andreas Eversberg c1fe179d5d AMPS: Fix 'use-after-free-bug' after destroying transaction 2017-09-24 14:11:54 +02:00
Andreas Eversberg b6468b585d NMT: Minor fixes on frame data 2017-09-22 16:51:47 +02:00
Andreas Eversberg 08dd180ea0 Add echo test feature to check mobile phone's mic + speaker
Add '-e' to command line option, but do not select MNCC nor call device
2017-09-21 20:29:30 +02:00
Andreas Eversberg 274cb7992b SDR: Improvement of spectrum view, peaks are drawn correctly 2017-09-16 10:48:48 +02:00
Andreas Eversberg 5b1956fe49 Move sms and dms code (NMT) to separate lib.a 2017-09-11 20:37:03 +02:00
Andreas Eversberg b6326aa473 Move commonly used German tones (A/B/C-Netz) to separate lib.a 2017-09-11 20:35:18 +02:00
Andreas Eversberg 7017fd7b3c Give hint to alter PKG_CONFIG_PATH, if SoapySDR or UHD was not found 2017-09-11 20:31:29 +02:00
Andreas Eversberg d28a5df024 R2000: Minor fix in channel description 2017-09-03 19:13:21 +02:00
Andreas Eversberg 9205767f94 SDR: Display spectrum graph together with channel numbers and position 2017-09-02 15:41:11 +02:00
Andreas Eversberg 496aff5a79 Add implementation of analog TV signal generator (PAL so far)
Quick and dirty Howto:
make && tv/osmotv --sdr-soapy --sdr-tx-gain 60  -r 15000000 -c 21 tx-fubk --sdr-tune-args "OFFSET=-3000000"
2017-09-02 07:34:50 +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 94ed39f5e2 JTACS: Implementation of the Japanese variant of TACS 2017-09-01 18:42:54 +02:00
Andreas Eversberg 489ab9506c TACS: Fix power levels 2017-09-01 18:42:53 +02:00
Andreas Eversberg 05c516ca16 SDR: Fixed stack overflow by allocating memory instead of local buffers 2017-09-01 18:42:52 +02:00
Andreas Eversberg eb0c123433 C-Netz: Fixed overflow bug 2017-09-01 18:42:51 +02:00
Andreas Eversberg dfdad21e3f C-Netz: Work on system informations, metering and call queues
- Make system informations configurable
- Simulate call mertering
- Support for call queues on busy voice channels
2017-09-01 18:42:51 +02:00
Andreas Eversberg 3bfba37fff Corrected print messages in wave file processing. 2017-09-01 18:42:50 +02:00
Andreas Eversberg cff7622f5c Move mobile phone specific code from libcommon.a to libmobile.a 2017-09-01 18:42:49 +02:00
Andreas Eversberg 3c0bcce97b Move German tones from common code to individual implementation 2017-09-01 18:42:48 +02:00
Andreas Eversberg d2472cfca6 Emphasis: Add filter to prevent emphasis above 4000 Hz
Remove obsolete filter from fsk.c.
2017-09-01 18:42:47 +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 1c2e9180a2 Radiocom 2000: Use high-pass filter to remove supervisory signal 2017-09-01 18:42:45 +02:00
Andreas Eversberg ae2b0cce0c B-Netz: Be more tollerant with quality of continuous tones 2017-09-01 18:42:44 +02:00
Andreas Eversberg 064d95f37e Fixup: SDR: Show IQ data with three colors
Use correct threshold values to display colors
2017-09-01 18:42:42 +02:00
Andreas Eversberg ea7cbb8675 SDR: Add option to enable TX timestamps on UHD devices (disabled by default) 2017-08-16 18:51:47 +02:00
Andreas Eversberg 8489914bf0 SDR: Add time consumption debug code 2017-08-16 18:51:46 +02:00
Andreas Eversberg 42a87c1c2f SDR: Name SDR TX and RX threads 2017-08-16 18:51:46 +02:00
Andreas Eversberg ee61c4362b B-Netz: Use standard deviation to determine if an FSK frame is valid or not 2017-08-16 18:51:45 +02:00
Andreas Eversberg 41bd9999b1 B-Netz: Add metering pulse support (Gebuehrenimpuls) 2017-08-16 18:51:44 +02:00
Andreas Eversberg 275be50225 R2000: Fixes 2017-08-16 18:51:43 +02:00
Andreas Eversberg 3afcac8342 SDR: Add option to swap RX and TX frequencies (for testing) 2017-08-10 17:42:54 +02:00
Andreas Eversberg f2d439c1ae UHD: Remove buggy sample rate check 2017-08-10 15:59:29 +02:00
Andreas Eversberg 999b6a2b4d UHD: Make frequency settings more tollerant (+-100 Hz are accepted) 2017-08-09 17:27:14 +02:00
Andreas Eversberg 534411d660 New common FSK implementation, replaces all individual implementations 2017-08-09 17:27:13 +02:00
Andreas Eversberg ffd3b848e1 Implementation of "Radiocom 2000", the analog French mobile network 2017-08-09 17:27:12 +02:00
Andreas Eversberg 8ce3ff455d Add incoming answer to call control, also allow to send recall tone 2017-08-09 17:27:08 +02:00
Andreas Eversberg d20b41a457 Fixed command line option for call audio device (headset)
--call-device option now works.

Thanx to Fabricio pointing to this bug.
2017-08-08 12:54:45 +02:00
Andreas Eversberg 7c9ce960d7 Fixes of checking digits 2017-08-08 12:54:21 +02:00
Andreas Eversberg 5090f5a18d SDR: Show IQ data with three colors to detect input overdrive
green: up to 0.45
yellow: between 0.45 and 0.9
red: above 0.9
2017-08-08 12:54:03 +02:00
Andreas Eversberg 0cbd9657d2 Move Hagelbarger error correction code from NMT to common code
It will be used by Radiocom 2000 also.
Some minor fixes and improvements apply.
2017-08-08 12:53:48 +02:00
Andreas Eversberg 6c64025717 Move FFSK modem from NMT to common code, so it can be used by other networks 2017-08-08 12:53:34 +02:00
Andreas Eversberg 92ce6d4a42 SDR: Using threads for read and write when doing resampling 2017-08-08 12:53:02 +02:00
Andreas Eversberg 3274812eab NMT-900 System implementation
NMT can now be run as 450 or 900 Network.
2017-08-08 12:52:45 +02:00
Andreas Eversberg 0c9de251be NMT: Implement Hagelbarger Code
This will correct burst errors of received messages. If the message
is too corrupted, it will be ignored, because some element may not
match then. The digits and line signals are checked for consistency,
since they are repeated serveral times in a message.
2017-08-08 12:52:29 +02:00
Andreas Eversberg cd9cb9a107 Minor fix for NMT debug output 2017-07-15 12:45:20 +02:00
Andreas Eversberg a088536533 Minor fix for IQ data display 2017-07-15 12:45:20 +02:00
Andreas Eversberg fda224c27f Fixing and improving SDR support (SoapySDR and UHD)
- Soapy SDR now works.
- Channels can be selected.
- Antennas can be listed and selected.
- Device args, tune args, stream args can be specified.
2017-07-15 12:45:19 +02:00
Andreas Eversberg 538b4a42ec Add wave file playback to replace TX audio 2017-07-15 07:38:16 +02:00
Andreas Eversberg aa20d4e50e Cleanup common/Makefile.am 2017-07-15 07:38:15 +02:00
Andreas Eversberg 557d19de66 NMT: Show trafic areas in hex and allow to select unsupported areas 2017-07-15 07:38:14 +02:00
Andreas Eversberg 3774519631 NMT: Fixed "use after free" bug 2017-07-15 07:38:13 +02:00
Andreas Eversberg 7af886c600 NMT: Fixed NMT digit decoding 2017-07-15 07:38:13 +02:00
Andreas Eversberg 085ceb9173 Minor fixes to compandor 2017-07-15 07:38:12 +02:00
Andreas Eversberg 3ce50f8ab3 AMPS: Fixes in message display and function names 2017-07-15 07:38:10 +02:00
Andreas Eversberg 3788b3e8a5 TACS support (variations added to AMPS code)
These are:

- Bandwidth only 25 KHz, so lower deviations
- Data rate only 8000 KHz
- SID is called AID (Area ID)
- MIN1 coding is different
2017-07-15 07:38:09 +02:00
Andreas Eversberg d52f4cd29d NMT: Mark Benelux and Czech/Slovak networks as tested
I have tested the network with B/NL/L and CZ/SK phones, and they work!
2017-06-15 18:28:26 +02:00
Andreas Eversberg 1aebedc66a NMT: Fixed line signal description 2017-06-11 09:01:21 +02:00
Andreas Eversberg 7a9762e28e NMT: Disable Supervisory signal during DMS (SMS) transfer and use Timeout
There is no Supervisory signal during DMS transfer, so there must be
no timeout for Supervisory signal. Instead, the SMS layer will timeout
after some seconds without receiving data.
2017-06-11 08:13:52 +02:00
Andreas Eversberg 3e86ef95c4 B-Netz: Minor printf fix 2017-06-10 17:49:59 +02:00
Andreas Eversberg 19afb792b5 NMT: Fix and adjustements to supervisory signal detection 2017-06-10 17:11:47 +02:00
Andreas Eversberg 50b2021d21 NMT 450: Support for other European counties, like Belgium, Czech, Slovakia 2017-06-10 13:08:51 +02:00
Andreas Eversberg dbdedfe1a1 AMPS: Fixed selecting right CRC values for FOCC words 2017-06-10 13:08:26 +02:00
Andreas Eversberg d23672354f Add option to set MNCC socket name (to run multiple base stations) 2017-06-10 13:08:26 +02:00
Andreas Eversberg 329463bb8c SDR: Add option to give channel number
Using SoapySDR server allows to run different networks on multi channel
SDR devices.
2017-06-10 13:08:25 +02:00
Andreas Eversberg aef4cf0997 Make spectrum display nicer by plotting continuous lines between samples 2017-06-10 13:08:24 +02:00
Andreas Eversberg e0534db15c Make spectrum display a little nicer by using '|' instead of ':' 2017-06-10 13:08:23 +02:00
Andreas Eversberg e653475ff7 NMT: Allow NULL (B'0000') to be used as country selector in traffic area 2017-06-10 13:08:23 +02:00
Andreas Eversberg 57d4d1739e AMPS/C-Netz: Correctly release pending transaction when creating a new one
If transactions is created, look on all channels for pending transaction
with same subscriber.

1. Remove that transaction.

2. Make channel return to IDLE.

3. Release call, if callref exists.
2017-06-10 13:08:22 +02:00
Andreas Eversberg 6adfcf7466 Status display
Alows to show status of current channels and users
2017-06-10 13:08:21 +02:00
Andreas Eversberg bb64c6b3ba AMPS: Add DTX support
When DTX is enabled (-S dtx=2 or 3), a missing SAT tone causes the receiver
to mute audio and insert a low level of comfort noise.
Also the missing SAT tone will not cause the connection to be terminated.
2017-06-10 13:08:19 +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 fc3b3e07be Finetuning LOSS (noise) detection
The algorithm is still bad, but works in most cases
2017-05-24 14:00:08 +02:00
Andreas Eversberg 56024b384b AMPS: Serveral minor fixes 2017-05-23 18:11:10 +02:00
Andreas Eversberg 76a3484c5c C-Netz: Make demodulation algorithm (slope or leve) slectable via option
By default (auto), the algorithm is selected, depending on sound card
or SDR usage. For testing and debugging purpose, the algorithm can be
forced.
2017-05-19 19:11:59 +02:00
Andreas Eversberg c086e66b7c minor cleanups 2017-05-17 20:14:37 +02:00
Andreas Eversberg 0557bbbc43 SDR: Checking given parameters with a tollerance of up to 0.001
Rounding errors may cause given parameters to be changed a little.
When comparing the set-values with the get-value, a small amount
of tollerance must be allowed.

Thanx to Syvain, pointing to this bug!
2017-05-17 20:06:47 +02:00
Andreas Eversberg 683078a7a0 SDR: Spectrum display will not scale FFT result
Instead the greatest possible width that will fit into the window will
be used. This width is 2 to the power of N.
2017-05-17 20:06:46 +02:00
Andreas Eversberg ef7ff26793 C-Netz: SDR now uses zero-crossing to detect level changes.
This does not work with analog radio, but with SDR it works.
The quality should be better and the process is faster.
2017-05-17 20:06:46 +02:00
Andreas Eversberg 9d87b5bf0f C-Netz: Improved transmission of speech
The speech is now correctly ramped up and down during pause bits.
2017-05-17 20:06:44 +02:00
Andreas Eversberg 12dcc6c40f Minor fixes on AMPS messages
- Flipping polarity is now performed after B/I has been applied
- Correcting sysinfo
2017-05-17 20:06:43 +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 d03443c4f1 SDR: Added SoapySDR's compiler flags to common/Makefile 2017-05-15 21:46:30 +02:00
Andreas Eversberg c04d046210 SDR: Fixed SoapySDR's arguments parsing 2017-05-15 21:46:30 +02:00
Andreas Eversberg fbdb9ece01 SDR: Allow direct IQ TX and RX instead of fm modulating a list of channels
This is performed by reading and writing IQ data to "sample" pointer with
channel number set to 0.
2017-05-15 21:46:29 +02:00
Andreas Eversberg 65694f3b80 SDR: disable TX or RX by setting TX or RX frequency to 0
This way it is possible to use SDR simplex
2017-05-15 21:46:29 +02:00
Andreas Eversberg 6e0e0c9ce8 fixup Rework on audio buffer management 2017-05-15 21:46:28 +02:00
Andreas Eversberg 9dda9e1efc SDR: Add option to set IF bandwidth. If not defined, sampling rate is used. 2017-05-15 21:46:27 +02:00
Andreas Eversberg 1445ca2fac SDR: Add option to send (previously recorded) IQ data instead of TX data 2017-05-15 21:46:26 +02:00
Andreas Eversberg 369bda87a9 C-Netz: Improved decoder debugging
FM decoder debug output is now written to text files for better
debugging of process.
2017-05-15 21:46:25 +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 3fc4fc54be main_common: Move init and cleanup function to main function 2017-03-04 07:12:12 +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 04fd1ddcea Use thread to record and playback wave files without blocking 2017-02-25 06:29:09 +01:00
Andreas Eversberg f689244f98 C-Netz: OgK must be on first channel, so sync works correctly 2017-02-18 21:02:56 +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 17b6124122 C-Netz: Remove useless -V option 2017-02-18 21:02:54 +01:00
Andreas Eversberg 58ebc15292 Add test to measure performance of FM modulation and filtering 2017-02-18 21:02:53 +01:00
Andreas Eversberg 4de1e0188d C-Netz: Add low pass filter to eliminate high frequency noise
This improves the FSK decoding quite allot, especially with SDR.
2017-02-18 21:02:52 +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 3fb2ade352 C-Netz: Fix release of call process when no dialing was received from phone 2017-02-18 21:02:48 +01:00
Andreas Eversberg 0611f62b52 Show channel number and basic info when channel was created 2017-02-18 21:02:47 +01:00
Andreas Eversberg 5f1d7bc970 C-Netz: Improve clock speed measurements.
Sound card's clock measurements only requires a few minutes to get sub-ppm
accuracy results.
2017-02-18 21:02:46 +01:00
Andreas Eversberg 54ed5d5f82 AMPS: Fixed setting of signal polarity when using SDR 2017-02-18 21:01:19 +01:00
Andreas Eversberg faa3dfb7d4 C-Netz: Make average to clock measurements for a quicker result 2017-02-18 21:01:19 +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 8cb0187133 C-Netz: Remove the obviously useless noise function for unused timeslots 2017-02-18 21:01:17 +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 f72c53757d B-Netz, NMT: Improved check for minimum required sample rate 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 538a959128 Indexing tables by casting index to unsigned integer only 2017-02-18 21:01:06 +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 bc028cd4d3 NMT: Make supervisory signal default, also allow setting per channel. 2017-02-18 21:00:57 +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 bf0abd627d A-Netz: Option to set gain of paging tones 2017-02-18 21:00:54 +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 fee4846c3f SDR forces default settings: emphasis and FSK polarity 2017-02-18 21:00:52 +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 d447be5e26 NMT: Rework on FSK process, no more requirement for special sample rates 2017-01-07 06:28:20 +01:00
Andreas Eversberg 2d0bc92cde C-Netz: Make demodulation buffer size dynamic 2017-01-07 06:26:50 +01:00
Andreas Eversberg a37dfe38ab C-Netz: Fixed double free bug 2017-01-07 06:26:49 +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 286c11cab4 B-Netz: Add translation of emergency numbers 110 and 112 2017-01-02 17:38:54 +01:00
Andreas Eversberg b59ce96889 B-Netz: Minor change on start image 2017-01-02 10:19:07 +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 e724823c5b A-Netz: Reset tone detector when going idle
A pending tone must be detected as soon as the cell is idle. This happens
if the phone picks up during release guard time.
2017-01-02 10:13:43 +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 7585f9c22d Add function to change dsp state, more debug with channel info 2016-12-09 16:34:33 +01:00
Andreas Eversberg f111c50478 A-Netz / B-Netz: Add function to change state, debug with channel info
Change state uses a function rather than directly setting state
variable.

Some debug commands now use channel number. (for multi-trx setups)
2016-12-06 17:47:58 +01:00
Andreas Eversberg eed826387a work on docs 2016-12-06 17:46:12 +01:00
Andreas Eversberg 27c6e3d860 C-Netz: Add code documentation... 2016-12-01 17:59:08 +01:00
Andreas Eversberg e34d74aa23 C-Netz: Simplifying TX signal clock sync between two channels 2016-11-30 18:09:38 +01:00
Andreas Eversberg 0b43b63d1f Fixed command line option descriptions 2016-11-29 10:59:09 +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 938fb74bae B-Netz: Fixes call procedure according to the standard FTZ 171 R 4 2016-11-27 22:06:47 +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 f911717aa4 C-Netz: Minor coding style changes, no changes to process 2016-11-22 19:09:05 +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 481181fa74 A-Netz: Click removal when changing sequenced paging tones
When tone changes to next tone, a transition of 2ms is performed. The last
tone is faded out and the new tone faded in.
2016-11-14 18:36:50 +01:00
Andreas Eversberg 5f5683e374 NMT: Fixed compiler warning 2016-11-13 06:42:18 +01:00
Andreas Eversberg 34954b50de B-Netz: Rename special start digit for coin box phone type 2016-11-13 06:39:14 +01:00