[Top][All Lists]
[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r6684 - gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband,
gnychis <=