diff options
Diffstat (limited to 'test/dump_eeprom.c')
-rw-r--r-- | test/dump_eeprom.c | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/test/dump_eeprom.c b/test/dump_eeprom.c new file mode 100644 index 0000000..b32e74e --- /dev/null +++ b/test/dump_eeprom.c @@ -0,0 +1,74 @@ +#include <stdio.h> +#include <stdlib.h> +#include <stdint.h> + +//rtlsdr +#include <rtl-sdr.h> +#include <hw/sdr.h> +#include <hw/hw.h> +#include <hw/hw_eeprom.h> + +int print_dump( uint8_t *data, uint16_t size ) +{ + int i; + const int line_sz = 32; + for (i=0; i<size;i++) + { + printf("%02x ", data[i]); + if (i % 32 == 31) + { + printf("\n"); + } + } + for (i=0; i<size;i++) + { + if ( isprint(data[i]) ) + { + printf("%c", data[i]); + } else + { + printf("."); + } + if (i % 32 == 31) + { + printf("\n"); + } + } + return 0; +} + +int main( ) +{ + int i; + uint32_t dev_num; + rtlsdr_dev_t *dev=NULL; + int ret; + + const int buf_size = 256; + uint8_t buf[buf_size]; + + memset(buf, 0, buf_size ); + + dev_num = rtlsdr_get_device_count(); + printf("Found %d device(s)\n", dev_num ); + + printf("List device names:\n"); + for (i=0; i<dev_num; i++) + { + hw_open( &dev, i ); + + ret = dump_eeprom( dev, buf, buf_size ); + if (ret != 0) + { + printf("Couldnt dump eeprom\n"); + } else + { + printf("Dumped device %d\n",i); + } + print_dump( buf, buf_size ); + + hw_close( dev ); + } + + return 0; +}
\ No newline at end of file |