Subversion Repositories svnkaklik

Compare Revisions

Ignore whitespace Rev 558 → Rev 560

/programy/C/ix86/echo/SW/sonar/src/sonar.c
22,7 → 22,6
static unsigned int rate = 98000; /* stream rate */
static unsigned int buffer_time = 500000; /* ring buffer length in us */
static unsigned int period_time = 100000; /* period time in us */
static int verbose = 0; /* verbose flag */
static int resample = 1; /* enable alsa-lib resampling */
static int period_event = 0; /* produce poll event after each period */
 
190,8 → 189,8
{
unsigned int maxval = (1 << (snd_pcm_format_width(format) - 1)) - 1;
 
static const float f0 = 1000;
static const float fmax = 7000;
static const float f0 = 1000; //starting frequency
static const float fmax = 7000; //ending frequency
static const float Tw = 0.002;
static float k;
 
238,9 → 237,6
static void async_playback_callback(snd_async_handler_t *ahandler)
{
snd_pcm_t *handle = snd_async_handler_get_pcm(ahandler);
/* struct async_private_data *data = snd_async_handler_get_callback_private(ahandler);
signed short *samples = data->samples;
snd_pcm_channel_area_t *areas = data->areas;*/
snd_pcm_sframes_t avail;
int err;
264,9 → 260,6
static void async_capture_callback(snd_async_handler_t *ahandler)
{
snd_pcm_t *handle = snd_async_handler_get_pcm(ahandler);
/* struct async_private_data *data = snd_async_handler_get_callback_private(ahandler);
signed short *samples = data->samples;
snd_pcm_channel_area_t *areas = data->areas;*/
snd_pcm_sframes_t avail;
int err;
346,18 → 339,25
exit(EXIT_FAILURE);
}
 
/// generate ping pattern
// generate ping pattern
 
chirp_size=linear_windowed_chirp(chirp,1000000, CHIRP_OFFSET);
 
/// register playback callback
// register playback callback
err = snd_async_add_pcm_handler(&phandler, playback_handle, async_playback_callback, &data); // fill by dummy &data
if (err < 0) {
printf("Unable to register async handler\n");
exit(EXIT_FAILURE);
}
for (period = 0; period < 2; period++) {
 
if ((err = snd_pcm_prepare (playback_handle)) < 0) {
fprintf (stderr, "cannot prepare audio interface for use (%s)\n",
snd_strerror (err));
exit (1);
}
 
/* for (period = 0; period < 2; period++) {
 
err = snd_pcm_writei(playback_handle, (chirp+period*period_size), period_size);
if (err < 0) {
printf("Initial write error: %s\n", snd_strerror(err));
367,7 → 367,7
printf("Initial write error: written %i expected %li\n", err, period_size);
exit(EXIT_FAILURE);
}
}
}*/
 
// register capture callback
err = snd_async_add_pcm_handler(&chandler, capture_handle, async_capture_callback, &data); // fill by dummy &data
437,7 → 437,7
}
}
 
out=fopen("./output.txt","w");
out=fopen("/tmp/sonar.txt","w");
j=0;
for(i=0;i<=100000;i++){
fprintf(out,"%6d %6d %6d %6d %9ld %9ld\n",i,chirp[i],L_signal[i],R_signal[i],correlationl[i], correlationr[i]);