discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] patch: adjustable transfer size for test_usrp_standar


From: Larry Doolittle
Subject: [Discuss-gnuradio] patch: adjustable transfer size for test_usrp_standard_rx
Date: Fri, 9 Sep 2005 09:32:58 -0700
User-agent: Mutt/1.5.10i

"It works for me"

--- /home/ldoolitt/cvs/usrp/host/apps/test_usrp_standard_rx.cc  2005-09-08 
08:34:57.000000000 -0700
+++ test_usrp_standard_rx.cc    2005-09-09 09:23:35.000000000 -0700
@@ -38,7 +38,7 @@
 
 char *prog_name;
 
-static bool test_input  (usrp_standard_rx *urx, bool forever_p, FILE *fp);
+static bool test_input  (usrp_standard_rx *urx, int max_bytes, FILE *fp);
 
 static void
 set_progname (char *path)
@@ -55,6 +55,7 @@
 {
   fprintf (stderr, "usage: %s [-f] [-v] [-l] [-c] [-D <decim>] [-F freq] [-o 
output_file]\n", prog_name);
   fprintf (stderr, "  [-f] loop forever\n");
+  fprintf (stderr, "  [-M] how many Megabytes to transfer (default 128)\n");
   fprintf (stderr, "  [-v] verbose\n");
   fprintf (stderr, "  [-l] digital loopback in FPGA\n");
   fprintf (stderr, "  [-c] counting in FPGA\n");
@@ -72,9 +73,9 @@
 main (int argc, char **argv)
 {
   bool         verbose_p = false;
-  bool forever_p = false;
   bool loopback_p = false;
   bool  counting_p = false;
+  int   max_bytes = 128 * (1L << 20);
   int  ch;
   char *output_filename = 0;
   int  which_board = 0;
@@ -83,10 +84,10 @@
 
   set_progname (argv[0]);
 
-  while ((ch = getopt (argc, argv, "fvlco:D:F:")) != EOF){
+  while ((ch = getopt (argc, argv, "fvlco:D:F:M:")) != EOF){
     switch (ch){
     case 'f':
-      forever_p = true;
+      max_bytes = 0;
       break;
 
     case 'v':
@@ -113,6 +114,11 @@
       center_freq = strtod (optarg, 0);
       break;
 
+    case 'M':
+      max_bytes = strtol (optarg, 0, 0) * (1L << 20);
+      if (max_bytes < 0) max_bytes = 0;
+      break;
+
     default:
       usage ();
     }
@@ -143,7 +149,7 @@
     
   urx->start();                // start data xfers
 
-  test_input (urx, forever_p, fp);
+  test_input (urx, max_bytes, fp);
 
   if (fp)
     fclose (fp);
@@ -155,15 +161,13 @@
 
 
 static bool
-test_input  (usrp_standard_rx *urx, bool forever_p, FILE *fp)
+test_input  (usrp_standard_rx *urx, int max_bytes, FILE *fp)
 {
   int             fd = -1;
   static const int BUFSIZE = urx->block_size();
   static const int N = BUFSIZE/sizeof (short);
   short           buf[N];
   int             nbytes = 0;
-  // int                  max_bytes = 512 * (1L << 20);
-  int             max_bytes = 128 * (1L << 20);
 
   double          start_wall_time = get_elapsed_time ();
   double          start_cpu_time  = get_cpu_usage ();
@@ -174,9 +178,9 @@
   bool overrun;
   int noverruns = 0;
 
-  for (nbytes = 0; forever_p || nbytes < max_bytes; nbytes += BUFSIZE){
+  for (nbytes = 0; max_bytes == 0 || nbytes < max_bytes; nbytes += BUFSIZE){
 
-    int        ret = urx->read (buf, sizeof (buf), &overrun);
+    unsigned int       ret = urx->read (buf, sizeof (buf), &overrun);
     if (ret != sizeof (buf)){
       fprintf (stderr, "test_input: error, ret = %d\n", ret);
     }

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]