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]); |