Fixed typos in cli output and source code comments

pull/1/head
Martin Hauke 2 years ago committed by Andreas Eversberg
parent 97636aac1e
commit a07764f0d9
  1. 6
      README
  2. 4
      docs/b-netz.html
  3. 4
      docs/imts.html
  4. 2
      docs/install.html
  5. 2
      docs/radiocom2000.html
  6. 2
      docs/sdr.html
  7. 20
      docs/sim.html
  8. 4
      docs/software.html
  9. 2
      layout/telekarte.brd
  10. 2
      layout/telekarte.sch
  11. 12
      src/amps/amps.h
  12. 6
      src/amps/dsp.c
  13. 8
      src/amps/frame.c
  14. 10
      src/amps/sysinfo.c
  15. 4
      src/amps/sysinfo.h
  16. 8
      src/amps/transaction.c
  17. 4
      src/bnetz/bnetz.h
  18. 4
      src/bnetz/dialer.c
  19. 10
      src/cnetz/cnetz.c
  20. 2
      src/cnetz/cnetz.h
  21. 2
      src/cnetz/database.c
  22. 10
      src/cnetz/dsp.c
  23. 10
      src/cnetz/fsk_demod.c
  24. 4
      src/cnetz/fsk_demod.h
  25. 2
      src/cnetz/main.c
  26. 2
      src/cnetz/telegramm.c
  27. 8
      src/cnetz/transaction.c
  28. 2
      src/cnetz/transaction.h
  29. 6
      src/datenklo/am791x.c
  30. 2
      src/datenklo/datenklo.h
  31. 6
      src/eurosignal/eurosignal.c
  32. 4
      src/eurosignal/eurosignal.h
  33. 4
      src/eurosignal/main.c
  34. 12
      src/fuvst/fuvst.c
  35. 2
      src/imts/dialer.c
  36. 4
      src/imts/dsp.c
  37. 4
      src/imts/imts.c
  38. 8
      src/imts/main.c
  39. 2
      src/jolly/jolly.c
  40. 2
      src/libdisplay/display_measurements.c
  41. 2
      src/libemphasis/emphasis.c
  42. 2
      src/libfilter/fir_filter.c
  43. 4
      src/libfm/fm.c
  44. 2
      src/libfsk/fsk.c
  45. 2
      src/libfsk/fsk.h
  46. 4
      src/libmobile/console.c
  47. 4
      src/libmobile/main_mobile.c
  48. 2
      src/libmobile/sender.c
  49. 20
      src/libmtp/layer2.c
  50. 4
      src/libosmocc/endpoint.c
  51. 6
      src/libosmocc/message.c
  52. 2
      src/libosmocc/message.h
  53. 2
      src/libosmocc/sdp.c
  54. 2
      src/libosmocc/session.c
  55. 2
      src/libosmocc/socket.c
  56. 4
      src/libsamplerate/samplerate.c
  57. 2
      src/libsdr/sdr.c
  58. 10
      src/libsdr/uhd.c
  59. 10
      src/libserial/serial.c
  60. 2
      src/libsound/sound_alsa.c
  61. 2
      src/libv27/scrambler.c
  62. 14
      src/nmt/dms.c
  63. 4
      src/nmt/frame.c
  64. 2
      src/nmt/main.c
  65. 2
      src/nmt/nmt.c
  66. 4
      src/nmt/sms.c
  67. 2
      src/r2000/frame.c
  68. 2
      src/r2000/main.c
  69. 6
      src/r2000/r2000.c
  70. 6
      src/r2000/r2000.h
  71. 2
      src/radio/main.c
  72. 8
      src/radio/radio.c
  73. 4
      src/sim/main.c
  74. 8
      src/sim/sim.c
  75. 6
      src/sim/sim.ino
  76. 2
      src/sim/sniffer.c
  77. 4
      src/test/test_v27scrambler.c
  78. 4
      src/tv/main.c
  79. 2
      src/zeitansage/zeitansage.c

@ -37,10 +37,10 @@ a BSA44 (magnetic card C-Netz hackable phone) back in the 90's.
Andy Zauner for providing signaling specification of C-Netz back in the 90's.
Hans Wigger for providing valuable informations about A-Netz and B-Netz and
Hans Wigger for providing valuable information about A-Netz and B-Netz and
helping me to get an A-Netz phone.
Stephan Hessberger for his work on oebl.de, that provides valuable informations
Stephan Hessberger for his work on oebl.de, that provides valuable information
about A-Netz, B-Netz, C-Netz, Eurosignal and much more.
Friedhelm Hillebrand for providing complete specification of the mobile phone
@ -48,7 +48,7 @@ of C-Netz.
Mikko Ristila for providing newer NMT specs (with DMS/SMS specifications).
Dieter Spaar and Mark Atherton for prividing AMPS informations and recordings
Dieter Spaar and Mark Atherton for providing AMPS information and recordings
to verify and debug AMPS support.
See http://www.idesignz.org/AMPS/AMPS_BS.html for first base station
implementation of AMPS.

@ -417,7 +417,7 @@ The transceiver of the base station switches to channel 19 and sends a paging se
Then the base station returns to the ordered channel and waits 700 ms to 2.1 seconds for the mobile station to send the call acknowledge signal ("Rufbestätigung").
If it is not received, the base station repeats the paging sequence again.
If there is still no call acknowledge signal, it sends a clear signal ("Trennsignal") for at lease 350 ms and returns to idle state and indicates announcement to the calling party that the mobile station is (currently) not available.
(German announcement sais: "Dieser Anschluß ist vorrübergehend nicht erreichbar!")
(German announcement says: "Dieser Anschluß ist vorrübergehend nicht erreichbar!")
</p>
<p>
@ -710,7 +710,7 @@ Detecting loss of carrier signal:
<p>
This works with SDR only, because we do not have any RSSI (Received Signal Strength Indicator) signal from a radio connected to the sound card.
With SDR we know the RX level, so we can define a threashold value for a lost signal.
With SDR we know the RX level, so we can define a threshold value for a lost signal.
Use '-S &lt;db&gt;' or '--squelch &lt;db&gt;' to define the squelch threshold level.
To measure the noise floor, use the 'm' key to get a bar graph of the current RSSI. (RF level)
Add some dB to the noise floor for the squelch threshold value.

@ -576,7 +576,7 @@ imts.c:861 info : Received paging test digit '3' (level 103% delay 67 ms).
<p>
In this case the soundcard's round trip delay is 67 ms.
Substract 67 from 349 and you get 282.
Subtract 67 from 349 and you get 282.
Add '-F 282' to command line option, instead of '-b 5'.
Now we react about 282 ms after we detected the start of the Guard tone.
The reaction now matches the time when the phone transmits the Connect tone.
@ -677,7 +677,7 @@ squelch.c:99 info : RF signal measurement: -69.9 dB noise floor, using squelch
squelch.c:99 info : RF signal measurement: -70.2 dB noise floor, using squelch threshold of -60.2 dB
squelch.c:112 info : RF signal strong: Unmuting audio (RF -54.2 &gt;= -60.2 dB)
dsp.c:476 info : High RF level, unmuting; turning transmitter on.
imts.c:506 info : Detectes RF signal in IDLE mode, calling the opterator at '010'.
imts.c:506 info : Detects RF signal in IDLE mode, calling the opterator at '010'.
call.c:405 info : Incoming call from 'unknown' to '010'
call.c:407 info : -&gt; Call to Operator '010'
call.c:385 info : Indicate MNCC setup towards fixed network

@ -11,7 +11,7 @@
<p>
To run this software, you need a Linux PC with development environment (gcc compiler).
At least one Alsa sound interfaces is required.
Two sound interfaces are required to talk and listen trough the base station using a headset with microphone.
Two sound interfaces are required to talk and listen through the base station using a headset with microphone.
</p>
<p>

@ -43,7 +43,7 @@ The network was closed for the exclusive benefit of the standard GSM in July 28t
<li>Frequency range UHF (Band 1): 424.800 - 427.9875 MHz (down-link); 414.800 - 417.9875 MHz (up-link)
<li>Frequency range VHF (Band 3): 169.800 - 172.9875 MHz (down-link); 165.200 - 168.3875 MHz (up-link)
<li>See software option "-B list" for other bands
<li>256 voice or contol channels
<li>256 voice or control channels
<li>Duplex distance: 10 MHz
<li>Channel spacing: 12.5 KHz
<li>Voice modulation: FM

@ -223,7 +223,7 @@ I suggest to stay below 60% for each threads.
<p>
<b>Example: C-Netz</b><br>
Two channes are created, one the OgK (control channel) and one SpK (speech channel).
Two channels are created, one the OgK (control channel) and one SpK (speech channel).
The distance between channels is 20 KHz (two channels).
Because C-Netz uses only odd channel numbers for 10 KHz spacing, we use channel 131 (OgK) and 135 (SpK).
</p>

@ -63,7 +63,7 @@ Use a diode with a low forward voltage drop, like a Schottky diode. I use a simp
<p>
<font color="red">Important: Some serial interfaces have wrong signal labels.
TX and RX might be reversed, so that TX is actually an input and RX an ouput.
TX and RX might be reversed, so that TX is actually an input and RX an output.
You will find out when you connect an Milliamp meter between signal and ground.
The output will have several Milliamps, but the input doesn't.
</font>
@ -111,42 +111,42 @@ Use the '-s' option to give the correct serial interface:
FUTLN=23100001, Sicherungscode=3103, Kartekennung=3, Sonderheitenschluessel=0, Wartungsschluessel=65535
Telephone directory has 80 entries.
SIM emulator ready, please start the phone!
sim.c:1352 info : Reset singnal on (low)
sim.c:1352 info : Reset singnal off (high)
sim.c:1352 info : Reset signal on (low)
sim.c:1352 info : Reset signal off (high)
sim.c:1371 info : Card has disabled PIN (system PIN '0000') Selecting card #1.
sim.c:1374 info : Sending ATR
sim.c:1125 info : RX message
sim.c:1135 info : control I: N(S)=0 N(R)=0
sim.c: 473 info : SL-APPL app 3
sim.c:1222 info : TX resonse
sim.c:1222 info : TX response
sim.c:1228 info : control I: N(S)=0 N(R)=1
sim.c:1125 info : RX message
sim.c:1135 info : control I: N(S)=1 N(R)=1
sim.c: 558 info : RD-EBDT
sim.c:1222 info : TX resonse
sim.c:1222 info : TX response
sim.c:1228 info : control I: N(S)=1 N(R)=2
sim.c:1125 info : RX message
sim.c:1135 info : control I: N(S)=2 N(R)=2
sim.c: 473 info : SL-APPL app 4
sim.c:1222 info : TX resonse
sim.c:1222 info : TX response
sim.c:1228 info : control I: N(S)=2 N(R)=3
sim.c:1125 info : RX message
sim.c:1135 info : control I: N(S)=3 N(R)=3
sim.c: 473 info : SL-APPL app 3
sim.c:1222 info : TX resonse
sim.c:1222 info : TX response
sim.c:1228 info : control I: N(S)=3 N(R)=4
sim.c:1125 info : RX message
sim.c:1135 info : control I: N(S)=4 N(R)=4
sim.c: 558 info : RD-EBDT
sim.c:1222 info : TX resonse
sim.c:1222 info : TX response
sim.c:1228 info : control I: N(S)=4 N(R)=5
sim.c:1125 info : RX message
sim.c:1135 info : control I: N(S)=5 N(R)=5
sim.c: 599 info : RD-RUFN (loc=0)
sim.c: 655 info : 80 numbers can be stored in EEPROM
sim.c:1222 info : TX resonse
sim.c:1222 info : TX response
sim.c:1228 info : control I: N(S)=5 N(R)=6
sim.c:1352 info : Reset singnal on (low)
sim.c:1352 info : Reset signal on (low)
</pre>

@ -270,7 +270,7 @@ Press 'w' again to turn off this view.
<p>
To check measurements like input level and quality, press the 'm' key.
You will get an ASCII art plot of differen bar graphs.
You will get an ASCII art plot of different bar graphs.
They show tone / frame level and quality.
The green bar shows the current level.
The yellow marker shows the last/peak/average level.
@ -339,7 +339,7 @@ nmt -k 1 -k 4 -a hw:0,0 -a hw:0,0 -T CC/TC -T TC -0 1 -0 2 -Y se,1 -x
</pre>
<p>
This example will run a base station with two channel (1 and 4) via two radios connectd to a stereo sound card.
This example will run a base station with two channel (1 and 4) via two radios connected to a stereo sound card.
The sound card is accessed via '-a hw:0,0'.
Because the sound card is stereo, the '-a' option can be given for two channels.
The first channel is a combined control+traffic channel and the second a traffic channel.

@ -302,7 +302,7 @@ www.bccomponents.com &lt;p&gt;
www.panasonic.com&lt;p&gt;
www.kemet.com&lt;p&gt;
&lt;p&gt;
for trimmer refence see : &lt;u&gt;www.electrospec-inc.com/cross_references/trimpotcrossref.asp&lt;/u&gt;&lt;p&gt;
for trimmer reference see : &lt;u&gt;www.electrospec-inc.com/cross_references/trimpotcrossref.asp&lt;/u&gt;&lt;p&gt;
&lt;map name="nav_main"&gt;
&lt;area shape="rect" coords="0,1,140,23" href="../military_specs.asp" title=""&gt;

@ -1318,7 +1318,7 @@ www.bccomponents.com &lt;p&gt;
www.panasonic.com&lt;p&gt;
www.kemet.com&lt;p&gt;
&lt;p&gt;
for trimmer refence see : &lt;u&gt;www.electrospec-inc.com/cross_references/trimpotcrossref.asp&lt;/u&gt;&lt;p&gt;
for trimmer reference see : &lt;u&gt;www.electrospec-inc.com/cross_references/trimpotcrossref.asp&lt;/u&gt;&lt;p&gt;
&lt;map name="nav_main"&gt;
&lt;area shape="rect" coords="0,1,140,23" href="../military_specs.asp" title=""&gt;

@ -89,12 +89,12 @@ struct amps {
int fsk_rx_sync_tolerant; /* be more tolerant to sync */
/* the dotting buffer stores the elapsed samples, so we can calculate
* an average time of zero-crossings during dotting sequence.
* this buffer wrapps every 256 values */
* this buffer wrpps every 256 values */
double fsk_rx_dotting_elapsed[256]; /* dotting buffer with elapsed samples since last zero-crossing */
uint8_t fsk_rx_dotting_pos; /* position of next value in dotting buffer */
int fsk_rx_dotting_life; /* counter to expire when no sync was found after dotting */
double fsk_rx_dotting_average; /* last average slope position of dotting sequnece. */
/* the ex buffer holds the duration of one bit, and wrapps every
/* the ex buffer holds the duration of one bit, and wraps every
* bit. */
double fsk_rx_bitcount; /* counts the bit. if it reaches or exceeds 1, the bit is complete and the next bit starts */
sample_t *fsk_rx_window; /* rx buffer for one bit */
@ -103,7 +103,7 @@ struct amps {
int fsk_rx_window_begin; /* where to begin detecting level */
int fsk_rx_window_end; /* where to end detecting level */
int fsk_rx_window_pos; /* current position in buffer */
/* the rx bufffer received one frame until rx length */
/* the rx buffer received one frame until rx length */
char fsk_rx_frame[FSK_MAX_BITS + 1]; /* +1 because 0-termination */
int fsk_rx_frame_length; /* length of expected frame */
int fsk_rx_frame_count; /* count number of received bit */
@ -123,7 +123,7 @@ struct amps {
char rx_recc_dialing[33]; /* received dial string */
/* FOCC frame states */
int rx_focc_word_count; /* counts received words */
int tx_focc_frame_count; /* used to schedule system informations */
int tx_focc_frame_count; /* used to schedule system information */
int tx_focc_send; /* if set, send message words */
uint32_t tx_focc_min1; /* mobile id */
uint16_t tx_focc_min2;
@ -131,8 +131,8 @@ struct amps {
uint8_t tx_focc_msg_type; /* message (3 values) */
uint8_t tx_focc_ordq;
uint8_t tx_focc_order;
int tx_focc_word_count; /* counts transmitted words in a muli word message */
int tx_focc_word_repeat; /* countrs repeats of mulit word message */
int tx_focc_word_count; /* counts transmitted words in a multi word message */
int tx_focc_word_repeat; /* counts repeats of multi word message */
/* FVC frame states */
int tx_fvc_send; /* if set, send message words */
int tx_fvc_chan; /* channel to assign for voice call */

@ -22,7 +22,7 @@
*
* AMPS modulates the carrier frequency. If it is 8 kHz above, it is high level,
* if it is 8 kHz below, it is low level. The bits are coded using Manchester
* code. A 1 is coded by low level, followed by a hight level. A 0 is coded by
* code. A 1 is coded by low level, followed by a high level. A 0 is coded by
* a high level, followed by a low level. This will cause at least one level
* change within each bit. Also the level changes between equal bits, see
* Manchester coding. The bit rate is 10 KHz.
@ -239,7 +239,7 @@ int dsp_init_sender(amps_t *amps, int tolerant)
}
amps->fsk_rx_window = spl;
/* create devation and ramp */
/* create deviation and ramp */
amps->fsk_deviation = (!tacs) ? AMPS_FSK_DEVIATION : TACS_FSK_DEVIATION;
dsp_init_ramp(amps);
@ -508,7 +508,7 @@ static void fsk_rx_bit(amps_t *amps, sample_t *spl, int len, int pos, int begin,
int bit;
double max = 0, min = 0;
/* decode one bit. substact the first half from the second half.
/* decode one bit. subtract the first half from the second half.
* the result shows the direction of the bit change: 1 == positive.
*/
pos -= begin; /* possible wrap is handled below */

@ -2136,7 +2136,7 @@ struct amps_ie_desc amps_ie_desc[] = {
{ AMPS_IE_AUTH, "AUTH", "Support of authentication procedures described in TIA/EIA-136-510", ie_yes },
{ AMPS_IE_AUTHBS, "AUTHBS", "Output response of the authentication algorithm initiated by the Base Station Challenge Order", ie_hex },
{ AMPS_IE_AUTHR, "AUTHR", "Output response of the authentication algorithm", ie_hex },
{ AMPS_IE_AUTHU, "AUTHU", "Output of the authentication algorithm when responsing to a Unique Challenge Order", ie_hex },
{ AMPS_IE_AUTHU, "AUTHU", "Output of the authentication algorithm when responding to a Unique Challenge Order", ie_hex },
{ AMPS_IE_Acked_Data, "Acked Data", "Used to identidy the selected privacy mode for a data/fax call", ie_acked_data },
{ AMPS_IE_Async_Data, "Async Data", "Async Data is supported on the current Analog Control Channel", ie_yes },
{ AMPS_IE_BIS, "BIS", "Busy-Idle status field", ie_bis },
@ -2149,7 +2149,7 @@ struct amps_ie_desc amps_ie_desc[] = {
{ AMPS_IE_CHARACTER_3, "CHARACTER 3", "ASCII Character", ie_ascii },
{ AMPS_IE_CMAC, "CMAC", "Control mobile attenuation field", ie_cmac },
{ AMPS_IE_CMAX_1, "CMAX-1", "CMAX is the number of access channels in the system", ie_cmax },
{ AMPS_IE_COUNT, "COUNT", "A modulo-64 count for authenticaiton", NULL },
{ AMPS_IE_COUNT, "COUNT", "A modulo-64 count for authentication", NULL },
{ AMPS_IE_CPA, "CPA", "Combined paging/access field", ie_yes },
{ AMPS_IE_CPN_RL, "CPN_RL", "Number of Characters in Calling Party Number", NULL },
{ AMPS_IE_CRC, "CRC", "Identifies used CRC", ie_crc },
@ -3192,7 +3192,7 @@ static int amps_decode_word_recc(amps_t *amps, uint64_t word, int first)
}
amps->rx_recc_nawc--;
if (amps->rx_recc_nawc != nawc) {
PDEBUG_CHAN(DFRAME, DEBUG_NOTICE, "Received additional word with NAWC missmatch!\n");
PDEBUG_CHAN(DFRAME, DEBUG_NOTICE, "Received additional word with NAWC mismatch!\n");
}
}
@ -3661,7 +3661,7 @@ static int amps_decode_bits_recc(amps_t *amps, const char *bits, int first)
if (debuglevel == DEBUG_DEBUG || crc_ok_count > 0) {
PDEBUG_CHAN(DFRAME, DEBUG_INFO, "RX RECC: DCC=%d (%d of 5 CRCs are ok)\n", dcc, crc_ok_count);
if (dcc != amps->si.dcc) {
PDEBUG(DFRAME, DEBUG_INFO, "received DCC=%d missmatches the base station's DCC=%d\n", dcc, amps->si.dcc);
PDEBUG(DFRAME, DEBUG_INFO, "received DCC=%d mismatches the base station's DCC=%d\n", dcc, amps->si.dcc);
return 0;
}
}

@ -56,7 +56,7 @@ void init_sysinfo(amps_si *si, int cmac, int vmac, int dtx, int dcc, int sid1, i
/* all words */
si->dcc = dcc;
/* VC assginment */
/* VC assignment */
si->vmac = vmac;
/* filler */
@ -100,15 +100,15 @@ void init_sysinfo(amps_si *si, int cmac, int vmac, int dtx, int dcc, int sid1, i
for (i = 0; i < 16; i++)
si->overload.olc[i] = 1;
/* Acces Tyoe */
/* Access Tyoe */
/* 'bis' must be 0, so the phone does not wait for busy bit.
* We cannot respond with B/I fast enough due to processing delay.
* So we don't set the B/I bit to busy on reception of message.
* The access type message (including this 'bis') must also be included.
*/
si->acc_type.bis = bis; /* must be clear to ignore B/I bit */
si->acc_type.pci_home = 0; /* if set, bscap must allso be set */
si->acc_type.pci_roam = 0; /* if set, bscap must allso be set */
si->acc_type.pci_home = 0; /* if set, bscap must also be set */
si->acc_type.pci_roam = 0; /* if set, bscap must also be set */
si->acc_type.bspc = 0;
si->acc_type.bscap = 0;
@ -145,7 +145,7 @@ void prepare_sysinfo(amps_si *si)
si->num = i; /* train is running */
si->count = 0; /* first message in train */
if (i > (int)(sizeof(si->type) / sizeof(si->type[0]))) {
fprintf(stderr, "si type array overflow, pleas fix!\n");
fprintf(stderr, "si type array overflow, please fix!\n");
abort();
}
}

@ -63,7 +63,7 @@ struct sysinfo_overload {
uint8_t olc[16];
};
/* Acces Tyoe */
/* Access Tyoe */
struct sysinfo_acc_type {
uint8_t bis;
uint8_t pci_home;
@ -90,7 +90,7 @@ typedef struct system_information {
int overhead_repeat;
/* all words */
uint8_t dcc;
/* VC assginment */
/* VC assignment */
uint8_t vmac;
/* broadcast */
struct sysinfo_filler filler;

@ -65,7 +65,7 @@ static const char *trans_state_name(int state)
case TRANS_PAGE_REPLY:
return "PAGE REPLY";
default:
return "<invald transaction state>";
return "<invalid transaction state>";
}
}
@ -98,7 +98,7 @@ const char *trans_short_state_name(int state)
case TRANS_PAGE_REPLY:
return "PAGE";
default:
return "<invald transaction state>";
return "<invalid transaction state>";
}
}
@ -109,7 +109,7 @@ transaction_t *create_transaction(amps_t *amps, enum amps_trans_state state, uin
transaction_t *trans = NULL;
amps_t *search_amps;
/* search transaction for this subsriber */
/* search transaction for this subscriber */
for (sender = sender_head; sender; sender = sender->next) {
search_amps = (amps_t *) sender;
/* search transaction for this callref */
@ -121,7 +121,7 @@ transaction_t *create_transaction(amps_t *amps, enum amps_trans_state state, uin
const char *number = amps_min2number(trans->min1, trans->min2);
int old_callref = trans->callref;
amps_t *old_amps = trans->amps;
PDEBUG(DTRANS, DEBUG_NOTICE, "Found alredy pending transaction for subscriber '%s', deleting!\n", number);
PDEBUG(DTRANS, DEBUG_NOTICE, "Found already pending transaction for subscriber '%s', deleting!\n", number);
destroy_transaction(trans);
if (old_amps) /* should be... */
amps_go_idle(old_amps);

@ -89,11 +89,11 @@ typedef struct bnetz {
enum dsp_mode dsp_mode; /* current mode: audio, durable tone 0 or 1, "Telegramm" */
fsk_mod_t fsk_mod; /* fsk modem instance */
fsk_demod_t fsk_demod;
uint16_t rx_telegramm; /* rx shift register for receiveing telegramm */
uint16_t rx_telegramm; /* rx shift register for receiving telegramm */
double rx_telegramm_quality[16];/* quality of each bit in telegramm */
double rx_telegramm_level[16]; /* level of each bit in telegramm */
int rx_telegramm_qualidx; /* index of quality array above */
uint16_t rx_tone; /* rx shift register for receiveing continuous tone */
uint16_t rx_tone; /* rx shift register for receiving continuous tone */
double rx_tone_quality[16]; /* quality of tone fragment (100th of second) */
double rx_tone_level[16]; /* level of tone fragment (100th of second) */
int rx_tone_qualidx; /* index of quality array above */

@ -153,7 +153,7 @@ static int handle_options(int short_option, int __attribute__((unused)) argi, ch
/* process next fsk bit.
* if the dial string terminats, change to SILENCE mode
* if the dial string terminates, change to SILENCE mode
*/
static int fsk_send_bit(void __attribute__((unused)) *inst)
{
@ -236,7 +236,7 @@ again:
}
}
/* loop that gets audio from encoder and fowards it to sound card.
/* loop that gets audio from encoder and forwards it to sound card.
* alternatively a sound file is written.
*/
static void process_signal(void)

@ -42,7 +42,7 @@
* If no SpK is available, the call is rejected. If queue (Warteschlange) is
* enabled, WSK(R) is scheduled. After transmission, the state changes to
* TRANS_MT_QUEUE. Upon timeout (no channel becomes available), the call is
* rejected by scheduling VA(R). Upon available channel the call proceeeds with
* rejected by scheduling VA(R). Upon available channel the call proceeds with
* VAK(R) as described above.
*
* If an MO (mobile originating) call is made (received VWG(K)), a transaction
@ -57,11 +57,11 @@
* (Warteschlange) is enabled, WWBP(R) is scheduled. After transmission, the
* state is changed to TRANS_MO_QUEUE. Upon timeout (no channel becomes
* available), the call is rejected by scheduling VA(R). Upon available channel
* the call proceeeds with VAG(R) as described above.
* the call proceeds with VAG(R) as described above.
*
* Switching to SpK is performed two time slots after transmitting VAK(R) or
* VAG(R). The timer is started. The schedulers schedules 8 times BQ(K) and
* awaits at least one BEL(K). If BEK(K) is received, the timer is stoped. If
* awaits at least one BEL(K). If BEK(K) is received, the timer is stopped. If
* BQ(K) was sent at least 8 times and if timer is stopped, the scheduler
* schedules VHQ(K). If no BEL(K) was received, AFK(K) is scheduled N_AFKT
* times, then the process on OgK (WBP+VAG or VAK) is repeated N times.
@ -114,7 +114,7 @@
/*
* Notes on the combined channel hack:
*
* For combined SpK+OgK hack, the channel is used as SpK as last choise. This
* For combined SpK+OgK hack, the channel is used as SpK as last choice. This
* allows to use only one transceiver for making C-Netz to work. Also it allows
* to use all transceivers for simultanious phone calls. Some phones may not
* work with that.
@ -508,7 +508,7 @@ void cnetz_go_idle(cnetz_t *cnetz)
/* set scheduler to OgK or turn off SpK */
if (cnetz->dsp_mode == DSP_MODE_SPK_K || cnetz->dsp_mode == DSP_MODE_SPK_V) {
/* switch next frame after distributed signaling boundary (mutliple of 8 slots) */
/* switch next frame after distributed signaling boundary (multiple of 8 slots) */
cnetz_set_sched_dsp_mode(cnetz, (atoi(cnetz->sender.kanal) == CNETZ_OGK_KANAL) ? DSP_MODE_OGK : DSP_MODE_OFF, (cnetz->sched_ts + 8) & 24);
} else {
/* switch next frame */

@ -10,7 +10,7 @@ typedef struct cnetz cnetz_t;
/* dsp modes of transmission */
enum dsp_mode {
DSP_SCHED_NONE = 0, /* use for sheduling: nothing to shedule */
DSP_SCHED_NONE = 0, /* use for scheduling: nothing to schedule */
DSP_MODE_OFF, /* send nothing on unused SpK */
DSP_MODE_OGK, /* send "Telegramm" on OgK */
DSP_MODE_SPK_K, /* send concentrated "Telegramm" SpK */

@ -94,7 +94,7 @@ int update_db(cnetz_t __attribute__((unused)) *cnetz, uint8_t futln_nat, uint8_t
{
cnetz_db_t *db, **dbp;
/* search transaction for this subsriber */
/* search transaction for this subscriber */
db = cnetz_db_head;
while (db) {
if (db->futln_nat == futln_nat

@ -118,7 +118,7 @@ int dsp_init_sender(cnetz_t *cnetz, int measure_speed, double clock_speed[2], en
}
if (clock_speed[0] > 1000 || clock_speed[0] < -1000 || clock_speed[1] > 1000 || clock_speed[1] < -1000) {
PDEBUG_CHAN(DDSP, DEBUG_ERROR, "Clock speed %.1f,%.1f ppm out of range! Plese use range between +-1000 ppm!\n", clock_speed[0], clock_speed[1]);
PDEBUG_CHAN(DDSP, DEBUG_ERROR, "Clock speed %.1f,%.1f ppm out of range! Please use range between +-1000 ppm!\n", clock_speed[0], clock_speed[1]);
return -EINVAL;
}
PDEBUG_CHAN(DDSP, DEBUG_INFO, "Using clock speed of %.1f ppm (RX) and %.1f ppm (TX) to correct sound card's clock.\n", clock_speed[0], clock_speed[1]);
@ -136,7 +136,7 @@ int dsp_init_sender(cnetz_t *cnetz, int measure_speed, double clock_speed[2], en
goto error;
}
/* create devation and ramp */
/* create deviation and ramp */
cnetz->fsk_deviation = FSK_DEVIATION;
dsp_init_ramp(cnetz);
@ -229,7 +229,7 @@ void calc_clock_speed(cnetz_t *cnetz, double samples, int tx, int result)
ti = get_time();
/* skip some time to avoid false mesurement due to filling of buffers */
/* skip some time to avoid false measurement due to filling of buffers */
if (cs->meas_ti == 0.0) {
cs->meas_ti = ti + 1.0;
return;
@ -431,7 +431,7 @@ static int fsk_block_encode(cnetz_t *cnetz, const char *bits, int ogk)
* the marker is placed in the middle of the 6th bit.
* because we have a transition (ramp) in the middle of each bit.
* the phone will see the position of the marker as start of the 6th bit.
* the marker marks the pont where the speech is ramped up, so the phone
* the marker marks the point where the speech is ramped up, so the phone
* will see the speech completely ramped up after the 6th bit
*/
static int fsk_distributed_encode(cnetz_t *cnetz, const char *bits)
@ -662,7 +662,7 @@ again:
if (cnetz->sched_dsp_mode_ts >= 0 && cnetz->sched_r_m == 0) {
if (cnetz->sched_dsp_mode_ts == cnetz->sched_ts) {
/* OgK / SpK(K) / SpK(V) */
PDEBUG_CHAN(DDSP, DEBUG_INFO, "Now switchting channel mode to %s at timeslot %d\n", cnetz_dsp_mode_name(cnetz->sched_dsp_mode), cnetz->sched_dsp_mode_ts);
PDEBUG_CHAN(DDSP, DEBUG_INFO, "Now switching channel mode to %s at timeslot %d\n", cnetz_dsp_mode_name(cnetz->sched_dsp_mode), cnetz->sched_dsp_mode_ts);
cnetz->sched_dsp_mode_ts = -1;
cnetz_set_dsp_mode(cnetz, cnetz->sched_dsp_mode);
}

@ -39,13 +39,13 @@
* 0-level of the phone's transmitter is. (level of carrier frequency) Also we
* use receiver and sound card that cause any level to return to 0 after some
* time, Even if the transmitter still transmits a level above or below the
* carrier frequnecy. Insted we look at the change of the received signal. An
* carrier frequnecy. Instead we look at the change of the received signal. An
* upward change indicates 1. An downward change indicates 0. (This may also be
* reversed, if we find out, that we received a sync sequence in reversed
* polarity.) If there is no significant change in level, we keep the value of
* last change, regardless of what level we actually receive.
*
* To determine a change from noise, we use a theshold. This is set to half of
* To determine a change from noise, we use a threshold. This is set to half of
* the level of last received change. This means that the next change may be
* down to a half lower. There is a special case during distributed signaling.
* The first level change of each data chunk raises or falls from 0-level
@ -65,7 +65,7 @@
* determine the highest slope, the highest difference between subsequent
* samples is used. For every sample we move the window one bit to the right
* (next sample), check if change level matches the threshold and highest slope
* is in the middle and so forth. Only if the highes slope is exactly in the
* is in the middle and so forth. Only if the highest slope is exactly in the
* middle, we declare a change. This means that we detect a slope about half of
* a bit duration later.
*
@ -342,12 +342,12 @@ static inline void got_bit(fsk_fm_demod_t *fsk, int bit, double change_level)
case FSK_SYNC_NONE:
fsk->rx_sync = (fsk->rx_sync << 1) | bit;
/* use half level of last change for threshold change detection.
* if there is no change detected for 5 bits, set theshold to
* if there is no change detected for 5 bits, set threshold to
* 1 percent, so the 7 pause bits before a frame will make sure
* that the change is below noise level, so the first sync
* bit is detected. then the change is set and adjusted
* for all other bits in the sync sequence.
* after sync, the theshold is set to half of the average of
* after sync, the threshold is set to half of the average of
* all changes in the sync sequence */
if (change_level > 0.0) {
fsk->level_threshold = change_level / 2.0;

@ -1,6 +1,6 @@
#define BITS_PER_SUPERFRAME 12672.0 /* super frame (Oberrahmen) has duration of excactly 2.4 seconds */
#define BITS_PER_BLOCK 198.0 /* block has duration of excactly 37.5 milli seconds */
#define BITS_PER_SUPERFRAME 12672.0 /* super frame (Oberrahmen) has duration of exactly 2.4 seconds */
#define BITS_PER_BLOCK 198.0 /* block has duration of exactly 37.5 milli seconds */
#define BITS_PER_SPK_BLOCK 66.0 /* spk block has a duration of exactly 12.5 milli seconds */
/* fsk rx sync state */

@ -103,7 +103,7 @@ void print_help(const char *arg0)
printf(" Power level 8 starts with level 6 and is then reduced on SpK.\n");
printf(" -A --authentication <challenge>\n");
printf(" Enable authorization flag on the base station and use given challenge\n");
printf(" as autorization random. Depending on the key inside the card you will\n");
printf(" as authorization random. Depending on the key inside the card you will\n");
printf(" get a response. Any response is accepted. Phone must have smart card!\n");
printf(" The challenge can be any 64 bit (hex) number like: 0x0123456789abcdef\n");
printf(" Note: Authentication is automatically enabled for the base station\n");

@ -1204,7 +1204,7 @@ int init_coding(void)
block_code[i] = word;
}
/* check if redunancy of a single bit matches the combined redundancy */
/* check if redundancy of a single bit matches the combined redundancy */
for (i = 0; i < 128; i++) {
int r = 0;
for (j = 0; j < 7; j++) {

@ -44,7 +44,7 @@ transaction_t *create_transaction(cnetz_t *cnetz, uint64_t state, uint8_t futln_
transaction_t *trans = NULL;
cnetz_t *search_cnetz;
/* search transaction for this subsriber */
/* search transaction for this subscriber */
for (sender = sender_head; sender; sender = sender->next) {
search_cnetz = (cnetz_t *) sender;
/* search transaction for this callref */
@ -56,7 +56,7 @@ transaction_t *create_transaction(cnetz_t *cnetz, uint64_t state, uint8_t futln_
const char *rufnummer = transaction2rufnummer(trans);
int old_callref = trans->callref;
cnetz_t *old_cnetz = trans->cnetz;
PDEBUG(DTRANS, DEBUG_NOTICE, "Found alredy pending transaction for subscriber '%s', deleting!\n", rufnummer);
PDEBUG(DTRANS, DEBUG_NOTICE, "Found already pending transaction for subscriber '%s', deleting!\n", rufnummer);
destroy_transaction(trans);
if (old_cnetz) /* should be... */
cnetz_go_idle(old_cnetz);
@ -261,7 +261,7 @@ static const char *trans_state_name(uint64_t state)
case TRANS_MT_DELAY:
return "MT_DELAY";
default:
return "<invald transaction state>";
return "<invalid transaction state>";
}
}
@ -309,7 +309,7 @@ const char *trans_short_state_name(uint64_t state)
case TRANS_MT_DELAY:
return "IN QUEUE";
default:
return "<invald transaction state>";
return "<invalid transaction state>";
}
}

@ -13,7 +13,7 @@
#define TRANS_WBN (1 << 7) /* dialing received, waiting for time slot to reject call */
#define TRANS_VAG (1 << 8) /* establishment of call sent, switching channel */
/* mobile terminated call */
#define TRANS_WSK (1 << 9) /* incomming call in queue */
#define TRANS_WSK (1 << 9) /* incoming call in queue */
#define TRANS_VAK (1 << 10) /* establishment of call sent, switching channel */
/* traffic channel */
#define TRANS_BQ (1 << 11) /* accnowledge channel */

@ -31,7 +31,7 @@
* DTR state:
* When DTR is off, state is clamped to INIT state.
* When DTR becomes on, RX and TX state machines begin to run.
* When DTR becomes off, state machines change to INIT state immidiately.
* When DTR becomes off, state machines change to INIT state immediately.
*
* (B)RTS state:
* When (B)RTS becomes on, data transmission is enabled.
@ -61,7 +61,7 @@
* When data reception is not blocked, data is received from the demodulator
* and forwarded towards upper layer.
* While receiving in half duplex mode, (B)RD is blocked, meaning that '1'
* (MARK) is forwarded toward upper layer, regardless fo the data from the
* (MARK) is forwarded toward upper layer, regardless of the data from the
* demodulator.
* Squelch (mute receive audio) is used to prevent noise when turning off
* half duplex transmission.
@ -91,7 +91,7 @@
#define RX_CD_ON_7911 -42.0 /* according to datasheet (at 600 Ohms) */
#define RX_CD_OFF_7910 -45.0 /* according to datasheet (at 600 Ohms) */
#define RX_CD_OFF_7911 -47.5 /* according to datasheet (at 600 Ohms) */
#define RX_QUALITY 0.1 /* FIXME: minium quality */
#define RX_QUALITY 0.1 /* FIXME: minimum quality */
#define BIT_ADJUST 0.5 /* must be 0.5 to completely sync each bit */
/* frequencies used */

@ -14,7 +14,7 @@ typedef struct datenklo {
/* settings */
uint8_t mc; /* modem chip mode */
int auto_rts; /* automatic RTS controling for half duplex */
int auto_rts; /* automatic RTS controlling for half duplex */
double max_baud; /* limit to what the mode supports */
double force_tx_baud, force_rx_baud; /* override IOCTL */
int tx_back, rx_back; /* set if back channel is used for path */

@ -33,7 +33,7 @@
#include "eurosignal.h"
#include "dsp.h"
/* anouncement timers */
/* announcement timers */
#define ANSWER_TIME 1.0 /* wait after answer */
#define OOO_TIME 3.8 /* announcement 1.7 s, pause 2.1 s */
#define UNASSIGNED_TIME1 2.2 /* announcement 2.2 s s */
@ -572,7 +572,7 @@ static void call_timeout(struct timer *timer)
}
/* if subcriber list is available, but ID is not found, we are unassigned */
if (id_list && !search_id(call->station_id)) {
PDEBUG(DEURO, DEBUG_INFO, "Subscriber unknwon, playing announcement.\n");
PDEBUG(DEURO, DEBUG_INFO, "Subscriber unknown, playing announcement.\n");
call->announcement_spl = es_kaudn_spl;
call->announcement_size = es_kaudn_size;
call->announcement_index = 0;
@ -768,7 +768,7 @@ static void _release(int callref, int __attribute__((unused)) cause)
call->callref = 0;
/* queued ID will keep in release state until trasmission has finished */
/* queued ID will keep in release state until transmission has finished */
if (call->state == EURO_CALL_ACKNOWLEDGE && call->page_count) {
call_new_state(call, EURO_CALL_RELEASED);
return;

@ -65,13 +65,13 @@ typedef struct eurosignal {
double tx_phaseshift65536; /* current tone's phase shift per sample */
double tx_phase; /* current phase of tone */
double tx_time; /* current elapsed time of tone */
char tx_digits[7]; /* current ID beeing transmitted */
char tx_digits[7]; /* current ID being transmitted */
int tx_digit_index; /* current digit beein transmitted */
fm_demod_t rx_demod; /* demodulator for frequency */
iir_filter_t rx_lp; /* low pass to filter the frequency result */
int rx_digit_count; /* count the tone until detected */
char rx_digit_last; /* last tone, so we detect any change */
int rx_digit_receiving; /* we recive digis */
int rx_digit_receiving; /* we receive digis */
char rx_digits[7]; /* current ID being received */
int rx_digit_index; /* current digit receiving */
int rx_timeout_count; /* count the timeout */

@ -68,8 +68,8 @@ void print_help(const char *arg0)
printf(" be the received pager ID. The called number will be '1' for the first\n");
printf(" ID given, '2' for scond, ...)\n");
printf(" -D --degraded\n");
printf(" Play the anouncement that the system is degraded due to failure of one\n");
printf(" or more transmitters. If the caller hangs up during or rigt after the\n");
printf(" Play the announcement that the system is degraded due to failure of one\n");
printf(" or more transmitters. If the caller hangs up during or right after the\n");
printf(" announcement, no paging is performed.\n");
printf(" -S --scan <from> <to>\n");
printf(" Scan through given IDs once (no repetition). This can be useful to find\n");

@ -21,7 +21,7 @@
*
* The release timer will release the call, if no release response from BS has
* been received. This may happen due to signaling link error. Since there
* is no document available about message timout conditions, I just use
* is no document available about message timeout conditions, I just use
* that timer when there is no response. I think that the base station does
* the same and releases the call, if no release response has been received.
*/
@ -133,7 +133,7 @@ static void config_send(uint8_t ident, uint8_t job, uint16_t offset, uint16_t le
uint32_t checksum = 0;
uint8_t rc = 1; /* Auftrag angenommen */
PDEBUG(DCNETZ, DEBUG_NOTICE, "MSC requests data base block. (offset=%d, lenght=%d)\n", offset, length);
PDEBUG(DCNETZ, DEBUG_NOTICE, "MSC requests data base block. (offset=%d, length=%d)\n", offset, length);
if (!conf.loaded) {
PDEBUG(DCNETZ, DEBUG_ERROR, "MSC requests data base, but no file name given. Please give file name!\n");
@ -288,7 +288,7 @@ static cnetz_db_t *find_db(uint8_t futln_nat, uint8_t futln_fuvst, uint16_t futl
{
cnetz_db_t *db;
/* search transaction for this subsriber */
/* search transaction for this subscriber */
db = cnetz_db_head;
while (db) {
if (db->futln_nat == futln_nat
@ -588,7 +588,7 @@ static transaction_t *create_transaction(uint8_t ident, uint8_t futln_nat, uint8
trans = search_transaction_number(futln_nat, futln_fuvst, futln_rest);
if (trans && mo) {
const char *rufnummer = transaction2rufnummer(trans);
PDEBUG(DTRANS, DEBUG_NOTICE, "Found alredy pending transaction for subscriber '%s', dropping that!\n", rufnummer);
PDEBUG(DTRANS, DEBUG_NOTICE, "Found already pending transaction for subscriber '%s', dropping that!\n", rufnummer);
if (trans->callref)
call_up_release(trans->callref, CAUSE_NORMAL);
trans->callref = 0;
@ -597,7 +597,7 @@ static transaction_t *create_transaction(uint8_t ident, uint8_t futln_nat, uint8
}
if (trans) {
const char *rufnummer = transaction2rufnummer(trans);
PDEBUG(DTRANS, DEBUG_NOTICE, "Found alredy pending transaction for subscriber '%s', we are busy!\n", rufnummer);
PDEBUG(DTRANS, DEBUG_NOTICE, "Found already pending transaction for subscriber '%s', we are busy!\n", rufnummer);
return NULL;
}
@ -963,7 +963,7 @@ outgoing:
trans->spk_nr = Q;
/* SPK not exist, release */
if (!trans->spk) {
PDEBUG(DCNETZ, DEBUG_ERROR, "SpK '%d' requested by BS not configured, please configure all SpK that base station has avaiable!\n", Q);
PDEBUG(DCNETZ, DEBUG_ERROR, "SpK '%d' requested by BS not configured, please configure all SpK that base station has available!\n", Q);
len = encode_stnqu(&opcode, &data, Q);
message_send(ident, opcode, data, len);
if (trans->callref)

@ -170,7 +170,7 @@ again:
goto again;
}
/* loop that gets audio from encoder and fowards it to sound card.
/* loop that gets audio from encoder and forwards it to sound card.
* alternatively a sound file is written.
*/
static void process_signal(void)

@ -50,7 +50,7 @@
*/
#define RX_MIN_FREQ 50.0 /* minimum frequency error to detect tone */
#define MAX_DISPLAY (MAX_DEVIATION / SPEECH_DEVIATION)/* as much as MAX_DEVIATION */
/* Note that FILTER_BW / SUSTAIN and QUAL_TIME sum up and should not exeed minimum tone length */
/* Note that FILTER_BW / SUSTAIN and QUAL_TIME sum up and should not exceed minimum tone length */
#define RX_FILTER_BW 100.0 /* amplitude filter (causes delay) */
#define RX_SUSTAIN 0.010 /* how long a tone must sustain until detected (causes delay) */
#define RX_QUAL_TIME 0.005 /* how long a quality measurement lasts after detecting a tone */
@ -164,7 +164,7 @@ int dsp_init_transceiver(imts_t *imts, double squelch_db, int ptt)
/* delay buffer */
if (ptt) {
PDEBUG_CHAN(DDSP, DEBUG_DEBUG, "Push to talk: Adding delay buffer to remove noise when singal gets lost.\n");
PDEBUG_CHAN(DDSP, DEBUG_DEBUG, "Push to talk: Adding delay buffer to remove noise when signal gets lost.\n");
imts->delay_max = (int)((double)imts->sender.samplerate * DELAY_TIME);
imts->delay_spl = calloc(imts->delay_max, sizeof(*imts->delay_spl));
if (!imts->delay_spl) {

@ -23,7 +23,7 @@
*
* There are call states defined by imts->state.
* imts_receive_tone() is called whenever a tone/silence/noise is detected.
* imts_lost_tone() is calles as soon as (only) a tone is gone.
* imts_lost_tone() is calls as soon as (only) a tone is gone.
* imts_timeout() is called when the timer has timed out.
* All these callbacks are used to process the call setup and disconnect.
* The imts_timeout() function will not only handle failures due to timeouts,
@ -532,7 +532,7 @@ void imts_signal_indication(imts_t *imts)
{
/* setup a call from mobile to base station */
if (imts->mode == MODE_MTS && imts->state == IMTS_IDLE) {
PDEBUG_CHAN(DIMTS, DEBUG_INFO, "Detectes RF signal in IDLE mode, calling the opterator at '%s'.\n", imts->operator);
PDEBUG_CHAN(DIMTS, DEBUG_INFO, "Detects RF signal in IDLE mode, calling the opterator at '%s'.\n", imts->operator);
imts->callref = call_up_setup(NULL, imts->operator, OSMO_CC_NETWORK_MTS_NONE, "");
imts_new_state(imts, IMTS_CONVERSATION);
imts_set_dsp_mode(imts, DSP_MODE_AUDIO, 0, 0.0, 0);

@ -69,9 +69,9 @@ void print_help(const char *arg0)
printf(" To compensate audio processing latency, give delay when to respond,\n");
printf(" after detection of Guard tone from mobile phone.\n");
printf(" Run software in loopback mode '-l 2' to measure round trip delay.\n");
printf(" Substract delay from 350 ms. If the phone has different Guard tone\n");
printf(" length, substract from that value.\n");
printf(" -D --detector-test <idle length> <seize lenght> <silence length>\n");
printf(" Subtract delay from 350 ms. If the phone has different Guard tone\n");
printf(" length, subtract from that value.\n");
printf(" -D --detector-test <idle length> <seize length> <silence length>\n");
printf(" Transmit detector test signal, to adjust decoder inside mobile phone.\n");
printf(" Give length of idle / seize and silence in seconds. Listen to it with\n");
printf(" a radio receiver. To exclude an element, set its length to '0'.\n");
@ -84,7 +84,7 @@ void print_help(const char *arg0)
printf(" Because there is no dial on the mobile phone, operator assistance is\n");
printf(" required to complete the call.\n");
printf(" By default, the operator '%s' is dialed.\n", operator);
printf(" -D --detector-test <600 Hz length> <1500 Hz lenght> <silence length>\n");
printf(" -D --detector-test <600 Hz length> <1500 Hz length> <silence length>\n");
printf(" Transmit detector test signal, to adjust decoder inside MTS phone.\n");
printf(" Give length of 600/1500 Hz and silence in seconds. Listen to it with\n");
printf(" a radio receiver. To exclude an element, set its length to '0'.\n");

@ -33,7 +33,7 @@
* OUT-VERIFY Outgoing call, digits are repeated
* CALL Active call
* CALL-DIALING User is dialing during call
* IN-PAGING Incomming call, user is paged
* IN-PAGING Incoming call, user is paged
* RELEASED Fixed network released call
*
* Timers:

@ -332,7 +332,7 @@ void display_measurements_update(dispmeasparam_t *param, double value, double va
param->value_count++;
break;
default:
fprintf(stderr, "Paramer '%s' has unknown type %d, please fix!\n", param->name, param->type);
fprintf(stderr, "Parameter '%s' has unknown type %d, please fix!\n", param->name, param->type);
abort();
}
}

@ -74,7 +74,7 @@ int init_emphasis(emphasis_t *state, int samplerate, double cut_off, double cut_
/* do not pre-emphasis above CUT_OFF_L
* Mobile network specifications want -18 dB per octave.
* With two interations we have 24 dB, - 6 dB (from emphasis). */
* With two iterations we have 24 dB, - 6 dB (from emphasis). */
iir_lowpass_init(&state->p.lp, cut_off_l, samplerate, 2);
/* calibrate amplification to be neutral at 1000 Hz */

@ -181,7 +181,7 @@ void fir_process(fir_filter_t *fir, sample_t *samples, int num)
/* convolve samples */
y = 0;
for (j = 0; j < fir->ntaps; j++) {
/* convolve sample from ring buffer, starting with oldes */
/* convolve sample from ring buffer, starting with oldest */
y += fir->buffer[fir->buffer_pos] * fir->taps[j];
if (++fir->buffer_pos == fir->ntaps)
fir->buffer_pos = 0;

@ -72,7 +72,7 @@ int fm_mod_init(fm_mod_t *mod, double samplerate, double offset, double amplitud
int i;
if (!has_init) {
fprintf(stderr, "libfm was not initialized, plese fix!\n");
fprintf(stderr, "libfm was not initialized, please fix!\n");
abort();
}
@ -264,7 +264,7 @@ again:
int fm_demod_init(fm_demod_t *demod, double samplerate, double offset, double bandwidth)
{
if (!has_init) {
fprintf(stderr, "libfm was not initialized, plese fix!\n");
fprintf(stderr, "libfm was not initialized, please fix!\n");
abort();
}

@ -102,7 +102,7 @@ int fsk_mod_init(fsk_mod_t *fsk, void *inst, int (*send_bit)(void *inst), int sa
fsk->cycles_per_bit65536[1] = waves * 65536.0;
}
/* if filter is enabled, add a band pass filter to smoot the spectrum of the tones
/* if filter is enabled, add a band pass filter to smooth the spectrum of the tones
* the bandwidth is twice the difference between f0 and f1
*/
if (filter) {

@ -16,7 +16,7 @@ typedef struct fsk_mod {
int tx_bit; /* current transmitting bit (-1 if not set) */
double tx_bitpos; /* current transmit position in bit */
int filter; /* set, if filters are used */
iir_filter_t lp[2]; /* filter to smoot transmission spectrum */
iir_filter_t lp[2]; /* filter to smooth transmission spectrum */
} fsk_mod_t;
typedef struct fsk_demod {

@ -532,7 +532,7 @@ dial_after_hangup:
fflush(stdout);
}
/* get keys from keyboad to control call via console
/* get keys from keyboard to control call via console
* returns 1 on exit (ctrl+c) */
void process_console(int c)
{
@ -588,7 +588,7 @@ void process_console(int c)
/* put samples into ring buffer */
for (i = 0; i < count; i++) {
console.tx_buffer[console.tx_buffer_pos] = samples[i];
/* if ring buffer wrapps, deliver data down to call process */
/* if ring buffer wraps, deliver data down to call process */
if (++console.tx_buffer_pos == 160) {
console.tx_buffer_pos = 0;
/* only if we have a call */