Commit Graph

149 Commits

Author SHA1 Message Date
Andreas Eversberg 45a5568f70 Restructure: Move sound from common code to 'libsound' 2017-11-25 19:28:36 +01:00
Andreas Eversberg 7b539d5dc7 Restructure: Move mncc from common code to 'libmncc' 2017-11-25 19:28:33 +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 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 ac7bb3539f Restructure: Move wave from common code to 'libwave' 2017-11-25 19:23:47 +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 ee3fbeb03b Split call control from built-in call console by using MNCC layer 2017-11-05 16:58:31 +01:00
Andreas Eversberg 5e14471eb6 B-Netz: Fixup of metering pulse 2017-10-22 19:23:17 +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 ba036de226 Add function to display measurements on screen
Use 'm' key to toggle display.
2017-10-12 19:46:30 +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 a52c89800c SDR: Split SDR config from main_mobile.c to sdr_config.c 2017-09-02 07:34:48 +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 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 ae2b0cce0c B-Netz: Be more tollerant with quality of continuous tones 2017-09-01 18:42:44 +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 534411d660 New common FSK implementation, replaces all individual implementations 2017-08-09 17:27:13 +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 7c9ce960d7 Fixes of checking digits 2017-08-08 12:54:21 +02:00
Andreas Eversberg 538b4a42ec Add wave file playback to replace TX audio 2017-07-15 07:38:16 +02:00
Andreas Eversberg 3e86ef95c4 B-Netz: Minor printf fix 2017-06-10 17:49:59 +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 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 c086e66b7c minor cleanups 2017-05-17 20:14:37 +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 3fc4fc54be main_common: Move init and cleanup function to main function 2017-03-04 07:12:12 +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 0611f62b52 Show channel number and basic info when channel was created 2017-02-18 21:02:47 +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 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 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 2d8d7e62c1 Use global init/cleanup function 2017-02-18 21:00:58 +01:00
Andreas Eversberg a5fd375237 Fixed typos 2017-02-18 21:00:55 +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 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 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 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 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 34954b50de B-Netz: Rename special start digit for coin box phone type 2016-11-13 06:39:14 +01:00
Andreas Eversberg 2a4abc62b2 Move realtime scheduling and signal handling to common code 2016-11-13 06:37:56 +01:00
Andreas Eversberg ea32ab3fa3 B-Netz: Move 'telegramm' generation to seperate telegramm.c/h files 2016-10-31 18:21:26 +01:00
Andreas Eversberg 27938d111e Added and fixed extra compiler warnings 2016-10-07 08:55:18 +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
Andreas Eversberg 038ce9d1b7 Add info key 'i' to show some states.
Currently showing C-Netz attached subscribers
2016-08-03 12:03:49 +02:00
Andreas Eversberg 0593f7d066 Fix typos 2016-07-24 12:31:09 +02:00
Andreas Eversberg 6a5af9aeac Typos: acknowledgement -> acknowledgment signalling -> signaling 2016-07-24 12:31:08 +02:00
Andreas Eversberg 4745b29115 NMT: Caller ID support 2016-07-24 12:31:07 +02:00
Andreas Eversberg 8906deb5dd B-Netz: Added description for GFS 19 to reduce transmit power 2016-07-24 12:31:07 +02:00
Andreas Eversberg 5bbbe11666 B-Netz: Rework on dialing start digit: New unknown type added 2016-07-24 12:31:06 +02:00
Andreas Eversberg 3ef9ef88bd B-Netz: Compiler switch to generate a dial sequence (for testing) 2016-07-24 12:30:56 +02:00
Andreas Eversberg f39ee2f15a common code: Add support for main loop handler 2016-07-09 11:27:02 +02:00
Andreas Eversberg ab9aba1a84 B-Netz: Reply the station ID correctly
It must be replied right after it has been received the first time.
It does not matter if this happens a bit later, even a second later.

Thanx to Hans Wigger for providing recording from his B-Netz tester to
figure this out.
2016-07-06 16:19:01 +02:00
Andreas Eversberg 4d52f955b3 common code: Add processing interval option to decrese CPU usage 2016-06-18 19:33:08 +02:00
Andreas Eversberg c933250685 Add dsp mode change fuction to A and B Netz, fixed NMT 2016-06-12 16:11:20 +02:00
Andreas Eversberg 997f8eda43 B-Netz: Add timer for switching back from calling channel
The timer ensures that the paging sequence is sent out by sound card before
switching back to traffic channel
2016-05-29 17:17:49 +02:00
Andreas Eversberg 1ceb3026dd Fixed link problem with alsa lib
Thanx to Martin for pointing to this problem.
2016-05-16 18:41:21 +02:00
Andreas Eversberg 7aa2445b47 Move amplitude (level) debugging to debug.c 2016-05-15 20:37:06 +02:00
Andreas Eversberg 021c34a899 Add geo locations of A-Netz and B-Netz towers. (not exact location) 2016-05-08 16:11:13 +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 97c9eee322 Fix display of correct program name 2016-05-08 08:11:35 +02:00
Andreas Eversberg 38692e430b B-Netz: Calibration of tone levels on TX and RX side 2016-05-08 08:11:17 +02:00
Andreas Eversberg 11487eefe8 B-Netz: Minor fixes on signals 2016-05-08 08:11:02 +02:00
Andreas Eversberg b73894ac49 B-Netz / NMT: minor changes at signal detection 2016-05-06 07:05:40 +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 9de121109d common code: Sample rate conversion now supports any rate above 8000 Hz 2016-04-17 16:49:39 +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 a5db02775e fixup debug class definition: rename DFSK and DAUDIO to DDSP 2016-03-15 19:26:13 +01:00
Andreas Eversberg 3bee5e728a bnetz: Allow calling the phone using '05' prefix 2016-03-13 09:12:43 +01:00
Andreas Eversberg 0dc81fe210 Prepare for NMT: Fixes and improvements at common code 2016-03-13 09:12:23 +01:00
Andreas Eversberg 287b914b56 bnetz: Simplifying 'telegramm' handling 2016-03-13 09:12:19 +01:00
Andreas Eversberg d21be383a6 anetz/bnetz: Move option 'loss detection' from common code to individual code 2016-03-13 09:12:16 +01:00
Andreas Eversberg 9b8e359264 anetz/bnetz: Remove redundant code to enter idle state 2016-03-13 09:12:14 +01:00
Andreas Eversberg 946c9ce10a initial git import 2016-03-13 09:12:11 +01:00