summaryrefslogtreecommitdiff
path: root/test/dump_eeprom.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/dump_eeprom.c')
-rw-r--r--test/dump_eeprom.c74
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