[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r5924 - in gnuradio/branches/developers/gnychis/inband
From: |
gnychis |
Subject: |
[Commit-gnuradio] r5924 - in gnuradio/branches/developers/gnychis/inband/usrp/host: apps lib/inband |
Date: |
Fri, 6 Jul 2007 11:10:08 -0600 (MDT) |
Author: gnychis
Date: 2007-07-06 11:10:07 -0600 (Fri, 06 Jul 2007)
New Revision: 5924
Modified:
gnuradio/branches/developers/gnychis/inband/usrp/host/apps/test_usrp_inband_rx.cc
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/qa_inband_usrp_server.cc
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_inband_usb_packet.h
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_tx_stub.cc
Log:
Changing the two first OP commands back to their proper opcodes after testing.
MAJOR bug fix in all packets that caused improper offsets in the C/S packets.
Was incrementing the payload logically in bytes, when in fact it was being
incremented by words (4 bytes) since I had casted to u32 before the pointer
arithetic.
I2C write now tested and confirmed working.
Modified:
gnuradio/branches/developers/gnychis/inband/usrp/host/apps/test_usrp_inband_rx.cc
===================================================================
---
gnuradio/branches/developers/gnychis/inband/usrp/host/apps/test_usrp_inband_rx.cc
2007-07-06 04:18:32 UTC (rev 5923)
+++
gnuradio/branches/developers/gnychis/inband/usrp/host/apps/test_usrp_inband_rx.cc
2007-07-06 17:10:07 UTC (rev 5924)
@@ -130,7 +130,7 @@
// Specify the RBF to use
pmt_dict_set(usrp_dict,
pmt_intern("rbf"),
- pmt_intern("usrp_inband_usb.rbf"));
+ pmt_intern("leo3.rbf"));
// Set TX and RX interpolations
pmt_dict_set(usrp_dict,
Modified:
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/qa_inband_usrp_server.cc
===================================================================
---
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/qa_inband_usrp_server.cc
2007-07-06 04:18:32 UTC (rev 5923)
+++
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/qa_inband_usrp_server.cc
2007-07-06 17:10:07 UTC (rev 5924)
@@ -1210,6 +1210,19 @@
d_tx->send(s_cmd_to_control_channel,
pmt_list2(pmt_list2(s_response_from_control_channel, PMT_T),
subpackets));
+
+ pmt_t i2c_data = pmt_make_u8vector(8, 0xff);
+
+ subpackets = pmt_list2(
+ pmt_list2(s_op_delay, pmt_list1(pmt_from_long(0x7))),
+ pmt_list2(s_op_i2c_write,
+ pmt_list2(pmt_from_long(8), i2c_data))
+ );
+
+ d_tx->send(s_cmd_to_control_channel,
+ pmt_list2(pmt_list2(s_response_from_control_channel, PMT_T),
+ subpackets));
+
}
void
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-07-06 04:18:32 UTC (rev 5923)
+++
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_inband_usb_packet.h
2007-07-06 17:10:07 UTC (rev 5924)
@@ -43,8 +43,8 @@
public:
enum opcodes {
- OP_PING_FIXED = 0x0d,
- OP_PING_FIXED_REPLY = 0x0e,
+ OP_PING_FIXED = 0x00,
+ OP_PING_FIXED_REPLY = 0x01,
OP_WRITE_REG = 0x02,
OP_WRITE_REG_MASKED = 0x03,
OP_READ_REG = 0x04,
@@ -218,7 +218,7 @@
);
- uint32_t *payload = (uint32_t *) d_payload + p_len;
+ uint32_t *payload = (uint32_t *) (d_payload + p_len);
*payload = host_to_usrp_u32(ping);
// Update payload length
@@ -247,7 +247,7 @@
);
- uint32_t *payload = (uint32_t *) d_payload + p_len;
+ uint32_t *payload = (uint32_t *) (d_payload + p_len);
*payload = host_to_usrp_u32(ping);
// Update payload length
@@ -277,12 +277,12 @@
| ((reg_num & CS_REGNUM_MASK) << CS_REGNUM_SHIFT)
);
- uint32_t *payload = (uint32_t *) d_payload + p_len;
+ uint32_t *payload = (uint32_t *) (d_payload + p_len);
*payload = host_to_usrp_u32(word0);
// The second word is solely the register value to be written
// FIXME: should this be unsigned?
- payload += 4;
+ payload += 1;
*payload = host_to_usrp_u32((uint32_t) val);
// Rebuild the header to update the payload length
@@ -312,15 +312,15 @@
| ((reg_num & CS_REGNUM_MASK) << CS_REGNUM_SHIFT)
);
- uint32_t *payload = (uint32_t *) d_payload + p_len;
+ uint32_t *payload = (uint32_t *) (d_payload + p_len);
*payload = host_to_usrp_u32(word0);
// Skip over the first word and write the register value
- payload += 4;
+ payload += 1;
*payload = host_to_usrp_u32((uint32_t) val);
// Skip over the register value and write the mask
- payload += 4;
+ payload += 1;
*payload = host_to_usrp_u32((uint32_t) mask);
// Rebuild the header to update the payload length
@@ -349,7 +349,7 @@
);
- uint32_t *payload = (uint32_t *) d_payload + p_len;
+ uint32_t *payload = (uint32_t *) (d_payload + p_len);
*payload = host_to_usrp_u32(read_reg);
// Update payload length
@@ -378,11 +378,11 @@
);
- uint32_t *payload = (uint32_t *) d_payload + p_len;
+ uint32_t *payload = (uint32_t *) (d_payload + p_len);
*payload = host_to_usrp_u32(word0);
// Hop to the next word and write the reg value
- payload += 4;
+ payload += 1;
*payload = host_to_usrp_u32((uint32_t) reg_val);
// Update payload length
@@ -410,7 +410,7 @@
);
- uint32_t *payload = (uint32_t *) d_payload + p_len;
+ uint32_t *payload = (uint32_t *) (d_payload + p_len);
*payload = host_to_usrp_u32(delay);
// Update payload length
@@ -441,12 +441,12 @@
| ((i2c_addr & CS_I2CADDR_MASK) << CS_I2CADDR_SHIFT)
);
- uint32_t *payload = (uint32_t *) d_payload + p_len;
+ uint32_t *payload = (uint32_t *) (d_payload + p_len);
*payload = host_to_usrp_u32(word0);
// Jump over the first word and write the data
// FIXME: Should the data be changed to usrp byte order?
- payload += 4;
+ payload += 1;
memcpy(payload, i2c_data, data_len);
// Update payload length
@@ -476,11 +476,11 @@
| ((i2c_addr & CS_I2CADDR_MASK) << CS_I2CADDR_SHIFT)
);
- uint32_t *payload = (uint32_t *) d_payload + p_len;
+ uint32_t *payload = (uint32_t *) (d_payload + p_len);
*payload = host_to_usrp_u32(word0);
// Jump a word and write the number of bytes to read
- payload += 4;
+ payload += 1;
uint32_t word1 =
(n_bytes & CS_I2CREADBYTES_MASK) << CS_I2CREADBYTES_SHIFT;
*payload = host_to_usrp_u32(word1);
@@ -514,11 +514,11 @@
| ((i2c_addr & CS_I2CADDR_MASK) << CS_I2CADDR_SHIFT)
);
- uint32_t *payload = (uint32_t *) d_payload + p_len;
+ uint32_t *payload = (uint32_t *) (d_payload + p_len);
*payload = host_to_usrp_u32(word0);
// Jump a word and write the actual data
- payload += 4;
+ payload += 1;
memcpy(payload, i2c_data, i2c_data_len);
// Update payload length
@@ -541,7 +541,7 @@
// reporting on the transmit side of packets.
pmt_t read_subpacket(int payload_offset) {
- uint32_t subpkt = usrp_to_host_u32(*((uint32_t *)d_payload +
payload_offset));
+ uint32_t subpkt = usrp_to_host_u32(*((uint32_t *)(d_payload +
payload_offset)));
uint32_t opcode = (subpkt >> CS_OPCODE_SHIFT) & CS_OPCODE_MASK;
uint32_t len = (subpkt >> CS_LEN_SHIFT) & CS_LEN_MASK;
@@ -560,7 +560,7 @@
pmt_t reg_num = pmt_from_long((subpkt >> CS_REGNUM_SHIFT) &
CS_REGNUM_MASK);
// To get the register value we just read the next 32 bits
- uint32_t val = usrp_to_host_u32(*((uint32_t *)d_payload +
payload_offset + 4));
+ uint32_t val = usrp_to_host_u32(*((uint32_t *)(d_payload +
payload_offset + 4)));
pmt_t reg_val = pmt_from_long(val);
return pmt_list4(s_op_read_reg_reply, rid, reg_num, reg_val);
@@ -597,7 +597,7 @@
pmt_t reg_num = pmt_from_long((subpkt >> CS_REGNUM_SHIFT) &
CS_REGNUM_MASK);
// To get the register value we just read the next 32 bits
- uint32_t val = usrp_to_host_u32(*((uint32_t *)d_payload +
payload_offset + 4));
+ uint32_t val = usrp_to_host_u32(*((uint32_t *)(d_payload +
payload_offset + 4)));
pmt_t reg_val = pmt_from_long(val);
return pmt_list3(s_op_write_reg, reg_num, reg_val);
@@ -608,11 +608,11 @@
pmt_t reg_num = pmt_from_long((subpkt >> CS_REGNUM_SHIFT) &
CS_REGNUM_MASK);
// To get the register value we just read the next 32 bits
- uint32_t val = usrp_to_host_u32(*((uint32_t *)d_payload +
payload_offset + 4));
+ uint32_t val = usrp_to_host_u32(*((uint32_t *)(d_payload +
payload_offset + 4)));
pmt_t reg_val = pmt_from_long(val);
// The mask is the next 32 bits
- uint32_t mask = usrp_to_host_u32(*((uint32_t *)d_payload +
payload_offset + 8));
+ uint32_t mask = usrp_to_host_u32(*((uint32_t *)(d_payload +
payload_offset + 8)));
pmt_t reg_mask = pmt_from_long(mask);
return pmt_list4(s_op_write_reg_masked, reg_num, reg_val, reg_mask);
@@ -648,7 +648,7 @@
pmt_t i2c_addr = pmt_from_long((subpkt >> CS_I2CADDR_SHIFT) &
CS_I2CADDR_MASK);
// The number of bytes is in the next word
- uint32_t bytes = usrp_to_host_u32(*((uint32_t *)d_payload +
payload_offset + 4));
+ uint32_t bytes = usrp_to_host_u32(*((uint32_t *)(d_payload +
payload_offset + 4)));
pmt_t i2c_bytes = pmt_from_long(bytes);
return pmt_list4(s_op_i2c_read, rid, i2c_addr, i2c_bytes);
@@ -676,7 +676,7 @@
// Takes an offset to the beginning of a subpacket and extracts the
// length of the subpacket
int cs_len(int payload_offset) {
- uint32_t subpkt = usrp_to_host_u32(*((uint32_t *)d_payload +
payload_offset));
+ uint32_t subpkt = usrp_to_host_u32(*((uint32_t *)(d_payload +
payload_offset)));
return (subpkt >> CS_LEN_SHIFT) & CS_LEN_MASK;
}
Modified:
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_tx_stub.cc
===================================================================
---
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_tx_stub.cc
2007-07-06 04:18:32 UTC (rev 5923)
+++
gnuradio/branches/developers/gnychis/inband/usrp/host/lib/inband/usrp_tx_stub.cc
2007-07-06 17:10:07 UTC (rev 5924)
@@ -243,13 +243,14 @@
//---------------- I2C WRITE ------------------//
if(pmt_eq(op_symbol, s_op_i2c_write)) {
- pmt_t rid = pmt_nth(1, sub_packet);
+ pmt_t i2c_addr = pmt_nth(1, sub_packet);
pmt_t i2c_data = pmt_nth(2, sub_packet);
if(verbose)
std::cout << "[USRP_TX_STUB] Received i2c write command "
<< "("
- << "RID: " << rid
+ << "Addr: " << i2c_addr << ", "
+ << "Data: " << i2c_data
<< ")\n";
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r5924 - in gnuradio/branches/developers/gnychis/inband/usrp/host: apps lib/inband,
gnychis <=