git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9493 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale committed 2008-09-09 17:04:42 +00:00
1 parent bc5cf34915
commit ea964d8fe6
79 files changed
+2804 -1642

No files matched your search

+34 -36
View File
@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id: v29_tests.c,v 1.102 2008/08/29 09:28:13 steveu Exp $
* $Id: v29_tests.c,v 1.106 2008/09/07 12:45:17 steveu Exp $
*/
/*! \page v29_tests_page V.29 modem tests
@@ -134,33 +134,29 @@ static int v29_rx_status(void *user_data, int status)
v29_rx_state_t *rx;
int i;
int len;
#if defined(SPANDSP_USE_FIXED_POINT)
complexi16_t *coeffs;
#else
complexf_t *coeffs;
#endif
printf("V.29 rx status is %d\n", status);
printf("V.29 rx status is %s (%d)\n", signal_status_to_str(status), status);
rx = (v29_rx_state_t *) user_data;
switch (status)
{
case PUTBIT_TRAINING_FAILED:
printf("Training failed\n");
break;
case PUTBIT_TRAINING_IN_PROGRESS:
printf("Training in progress\n");
break;
case PUTBIT_TRAINING_SUCCEEDED:
case SIG_STATUS_TRAINING_SUCCEEDED:
printf("Training succeeded\n");
#if defined(SPANDSP_USE_FIXED_POINT)
len = v29_rx_equalizer_state(rx, &coeffs);
printf("Equalizer:\n");
for (i = 0; i < len; i++)
printf("%3d (%15.5f, %15.5f)\n", i, coeffs[i].re/4096.0f, coeffs[i].im/4096.0f);
#else
len = v29_rx_equalizer_state(rx, &coeffs);
printf("Equalizer:\n");
for (i = 0; i < len; i++)
printf("%3d (%15.5f, %15.5f) -> %15.5f\n", i, coeffs[i].re, coeffs[i].im, powerf(&coeffs[i]));
break;
case PUTBIT_CARRIER_UP:
printf("Carrier up\n");
break;
case PUTBIT_CARRIER_DOWN:
printf("Carrier down\n");
break;
default:
printf("Eh! - %d\n", status);
#endif
break;
}
return 0;
@@ -187,18 +183,7 @@ static void v29putbit(void *user_data, int bit)
static int v29_tx_status(void *user_data, int status)
{
switch (status)
{
case MODEM_TX_STATUS_DATA_EXHAUSTED:
printf("V.29 tx data exhausted\n");
break;
case MODEM_TX_STATUS_SHUTDOWN_COMPLETE:
printf("V.29 tx shutdown complete\n");
break;
default:
printf("V.29 tx status is %d\n", status);
break;
}
printf("V.29 tx status is %s (%d)\n", signal_status_to_str(status), status);
return 0;
}
/*- End of function --------------------------------------------------------*/
@@ -213,7 +198,11 @@ static void qam_report(void *user_data, const complexf_t *constel, const complex
{
int i;
int len;
#if defined(SPANDSP_USE_FIXED_POINT)
complexi16_t *coeffs;
#else
complexf_t *coeffs;
#endif
float fpower;
v29_rx_state_t *rx;
static float smooth_power = 0.0f;
@@ -249,6 +238,16 @@ static void qam_report(void *user_data, const complexf_t *constel, const complex
symbol_no++;
if (--update_interval <= 0)
{
#if defined(SPANDSP_USE_FIXED_POINT)
len = v29_rx_equalizer_state(rx, &coeffs);
printf("Equalizer A:\n");
for (i = 0; i < len; i++)
printf("%3d (%15.5f, %15.5f)\n", i, coeffs[i].re/4096.0f, coeffs[i].im/4096.0f);
#if defined(ENABLE_GUI)
if (use_gui)
qam_monitor_update_int_equalizer(qam_monitor, coeffs, len);
#endif
#else
len = v29_rx_equalizer_state(rx, &coeffs);
printf("Equalizer A:\n");
for (i = 0; i < len; i++)
@@ -256,6 +255,7 @@ static void qam_report(void *user_data, const complexf_t *constel, const complex
#if defined(ENABLE_GUI)
if (use_gui)
qam_monitor_update_equalizer(qam_monitor, coeffs, len);
#endif
#endif
update_interval = 100;
}
@@ -451,8 +451,8 @@ int main(int argc, char *argv[])
/* Note that we might get a few bad bits as the carrier shuts down. */
bert_result(&bert, &bert_results);
fprintf(stderr, "Final result %ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, bert_results.total_bits, bert_results.bad_bits, bert_results.resyncs);
fprintf(stderr, "Last report %ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, latest_results.total_bits, latest_results.bad_bits, latest_results.resyncs);
fprintf(stderr, "Final result %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, bert_results.total_bits, bert_results.bad_bits, bert_results.resyncs);
fprintf(stderr, "Last report %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, latest_results.total_bits, latest_results.bad_bits, latest_results.resyncs);
/* See if bit errors are appearing yet. Also check we are getting enough bits out of the receiver. The last regular report
should be error free, though the final report will generally contain bits errors as the carrier was dying. The total
number of bits out of the receiver should be at least the number we sent. Also, since BERT sync should have occurred
@@ -500,15 +500,13 @@ int main(int argc, char *argv[])
line_model_monitor_line_spectrum_update(amp, samples);
#endif
v29_rx(&rx, amp, samples);
if (decode_test_file == NULL && block%500 == 0)
printf("Noise level is %d\n", noise_level);
}
if (!decode_test_file)
{
bert_result(&bert, &bert_results);
fprintf(stderr, "At completion:\n");
fprintf(stderr, "Final result %ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, bert_results.total_bits, bert_results.bad_bits, bert_results.resyncs);
fprintf(stderr, "Last report %ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, latest_results.total_bits, latest_results.bad_bits, latest_results.resyncs);
fprintf(stderr, "Final result %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, bert_results.total_bits, bert_results.bad_bits, bert_results.resyncs);
fprintf(stderr, "Last report %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, latest_results.total_bits, latest_results.bad_bits, latest_results.resyncs);
one_way_line_model_release(line_model);
if (signal_level > -43)