commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r6684 - gnuradio/branches/developers/gnychis/inband/us


From: gnychis
Subject: [Commit-gnuradio] r6684 - gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband
Date: Tue, 23 Oct 2007 23:06:19 -0600 (MDT)

Author: gnychis
Date: 2007-10-23 23:06:18 -0600 (Tue, 23 Oct 2007)
New Revision: 6684

Modified:
   
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_inband_usb_packet.cc
   
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_inband_usb_packet.h
Log:
Adding a method to increment the header length of the USB packets.  If the
increment would exceed the maximum payload size, the header is not updated and
-1 is returned to signify the error.  Else, the new payload length is returned.

Refactored the CS methods to use this method.


Modified: 
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_inband_usb_packet.cc
===================================================================
--- 
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_inband_usb_packet.cc
  2007-10-23 03:20:05 UTC (rev 6683)
+++ 
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_inband_usb_packet.cc
  2007-10-24 05:06:18 UTC (rev 6684)
@@ -77,13 +77,8 @@
   *payload = host_to_usrp_u32(ping);
 
   // Update payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + CS_PING_LEN;
+  incr_header_len(CS_FIXED_LEN + CS_PING_LEN);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 
@@ -110,13 +105,8 @@
   *payload = host_to_usrp_u32(ping);
 
   // Update payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + CS_PING_LEN;
+  incr_header_len(CS_FIXED_LEN + CS_PING_LEN);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 
@@ -148,13 +138,8 @@
   *payload = host_to_usrp_u32((uint32_t) val);
   
   // Rebuild the header to update the payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + CS_WRITEREG_LEN;
+  incr_header_len(CS_FIXED_LEN + CS_WRITEREG_LEN);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 
@@ -189,13 +174,8 @@
   *payload = host_to_usrp_u32((uint32_t) mask);
   
   // Rebuild the header to update the payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + CS_WRITEREGMASKED_LEN;
+  incr_header_len(CS_FIXED_LEN + CS_WRITEREGMASKED_LEN);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 
@@ -221,13 +201,8 @@
   *payload = host_to_usrp_u32(read_reg);
 
   // Update payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + CS_READREG_LEN;
+  incr_header_len(CS_FIXED_LEN + CS_READREG_LEN);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 
@@ -257,13 +232,8 @@
   *payload = host_to_usrp_u32((uint32_t) reg_val); 
 
   // Update payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + CS_READREGREPLY_LEN;
+  incr_header_len(CS_FIXED_LEN + CS_READREGREPLY_LEN);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 
@@ -288,13 +258,8 @@
   *payload = host_to_usrp_u32(delay);
 
   // Update payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + CS_DELAY_LEN;
+  incr_header_len(CS_FIXED_LEN + CS_DELAY_LEN);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 
@@ -327,13 +292,8 @@
    memcpy(payload, i2c_data, data_len);
 
   // Update payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + i2c_len;
+  incr_header_len(CS_FIXED_LEN + i2c_len);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 
@@ -366,13 +326,8 @@
   *payload = host_to_usrp_u32(word1);
 
   // Update payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + CS_I2CREAD_LEN;
+  incr_header_len(CS_FIXED_LEN + CS_I2CREAD_LEN);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 
@@ -405,13 +360,8 @@
   memcpy(payload, i2c_data, i2c_data_len);
 
   // Update payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + i2c_len;
+  incr_header_len(CS_FIXED_LEN + i2c_len);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 
@@ -453,13 +403,8 @@
   memcpy(payload, spi_data, spi_data_len);
 
   // Update payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + spi_len;
+  incr_header_len(CS_FIXED_LEN + spi_len);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 
@@ -507,13 +452,8 @@
   *payload = host_to_usrp_u32(word);
 
   // Update payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + CS_SPIREAD_LEN;
+  incr_header_len(CS_FIXED_LEN + CS_SPIREAD_LEN);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-  
   return true;
 }
 
@@ -545,13 +485,8 @@
   memcpy(payload, spi_data, spi_data_len);
 
   // Update payload length
-  int h_flags = flags();
-  int h_chan = chan();
-  int h_tag = tag();
-  int h_payload_len = payload_len() + CS_FIXED_LEN + spi_len;
+  incr_header_len(CS_FIXED_LEN + spi_len);
 
-  set_header(h_flags, h_chan, h_tag, h_payload_len);
-
   return true;
 }
 

Modified: 
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_inband_usb_packet.h
===================================================================
--- 
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_inband_usb_packet.h
   2007-10-23 03:20:05 UTC (rev 6683)
+++ 
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_inband_usb_packet.h
   2007-10-24 05:06:18 UTC (rev 6684)
@@ -150,6 +150,20 @@
                        | ((payload_len & PAYLOAD_LEN_MASK) << 
PAYLOAD_LEN_SHIFT));
     d_word0 = host_to_usrp_u32(word0);
   }
+
+  int incr_header_len(int val) {
+    int h_flags = flags();
+    int h_chan = chan();
+    int h_tag = tag();
+    int h_payload_len = payload_len() + val;
+
+    if(h_payload_len > MAX_PAYLOAD)
+      return -1;
+
+    set_header(h_flags, h_chan, h_tag, h_payload_len);
+
+    return h_payload_len;
+  }
   
   uint32_t timestamp() const {
     return usrp_to_host_u32(d_timestamp);





reply via email to

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