Update dump1090.c
This commit is contained in:
parent
c80582274b
commit
6f14ecf7dd
63
dump1090.c
63
dump1090.c
|
@ -29,7 +29,6 @@
|
||||||
//
|
//
|
||||||
#include "coaa.h"
|
#include "coaa.h"
|
||||||
#include "dump1090.h"
|
#include "dump1090.h"
|
||||||
#include "convienience.h"
|
|
||||||
//
|
//
|
||||||
// ============================= Utility functions ==========================
|
// ============================= Utility functions ==========================
|
||||||
//
|
//
|
||||||
|
@ -504,6 +503,68 @@ void backgroundTasks(void) {
|
||||||
//
|
//
|
||||||
//=========================================================================
|
//=========================================================================
|
||||||
//
|
//
|
||||||
|
int verbose_device_search(char *s)
|
||||||
|
{
|
||||||
|
int i, device_count, device, offset;
|
||||||
|
char *s2;
|
||||||
|
char vendor[256], product[256], serial[256];
|
||||||
|
device_count = rtlsdr_get_device_count();
|
||||||
|
if (!device_count) {
|
||||||
|
fprintf(stderr, "No supported devices found.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
fprintf(stderr, "Found %d device(s):\n", device_count);
|
||||||
|
for (i = 0; i < device_count; i++) {
|
||||||
|
rtlsdr_get_device_usb_strings(i, vendor, product, serial);
|
||||||
|
fprintf(stderr, " %d: %s, %s, SN: %s\n", i, vendor, product, serial);
|
||||||
|
}
|
||||||
|
fprintf(stderr, "\n");
|
||||||
|
/* does string look like raw id number */
|
||||||
|
device = (int)strtol(s, &s2, 0);
|
||||||
|
if (s2[0] == '\0' && device >= 0 && device < device_count) {
|
||||||
|
fprintf(stderr, "Using device %d: %s\n",
|
||||||
|
device, rtlsdr_get_device_name((uint32_t)device));
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
/* does string exact match a serial */
|
||||||
|
for (i = 0; i < device_count; i++) {
|
||||||
|
rtlsdr_get_device_usb_strings(i, vendor, product, serial);
|
||||||
|
if (strcmp(s, serial) != 0) {
|
||||||
|
continue;}
|
||||||
|
device = i;
|
||||||
|
fprintf(stderr, "Using device %d: %s\n",
|
||||||
|
device, rtlsdr_get_device_name((uint32_t)device));
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
/* does string prefix match a serial */
|
||||||
|
for (i = 0; i < device_count; i++) {
|
||||||
|
rtlsdr_get_device_usb_strings(i, vendor, product, serial);
|
||||||
|
if (strncmp(s, serial, strlen(s)) != 0) {
|
||||||
|
continue;}
|
||||||
|
device = i;
|
||||||
|
fprintf(stderr, "Using device %d: %s\n",
|
||||||
|
device, rtlsdr_get_device_name((uint32_t)device));
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
/* does string suffix match a serial */
|
||||||
|
for (i = 0; i < device_count; i++) {
|
||||||
|
rtlsdr_get_device_usb_strings(i, vendor, product, serial);
|
||||||
|
offset = strlen(serial) - strlen(s);
|
||||||
|
if (offset < 0) {
|
||||||
|
continue;}
|
||||||
|
if (strncmp(s, serial+offset, strlen(s)) != 0) {
|
||||||
|
continue;}
|
||||||
|
device = i;
|
||||||
|
fprintf(stderr, "Using device %d: %s\n",
|
||||||
|
device, rtlsdr_get_device_name((uint32_t)device));
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
fprintf(stderr, "No matching devices found.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
//
|
||||||
|
//=========================================================================
|
||||||
|
//
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
int j;
|
int j;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue