From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Received packet check?

Hi, everyone

     We want to make sure there are no packets lost between  the transmitter and receiver, so we need to add the received packet check,  if the packet is correctly received, the receiver send an acknowledgemet , and the transmitter send the new packet , if the packet didn't pass the check, it send a NCK and the transmitter send the packet again.  We want to do this based on the Packet-based-link demo, can anyone give some advice obout the compexity, and how can I do it step by step. 

    Or is there any example closed to our idea? 

 

Thanks!

0 Kudos
Message 1 of 5
(6,681 Views)

Hi HustLiliAn,

 

In order to go between transmitting and receiving like you are trying to do, you need to use the "End of Data?" option for the niUSRP Write.  This will allow the USRP to send a bursts of data without getting a buffer overflow.  I posted a VI that shows how to architect this type of application here.  It is not finalized, but it should be a good starting point to allow your USRPs to ping each other.  This VI can be used with 2 USRPs with each using the same antenna for TX and RX, or it will work with 1 USPR doing a loopback between TX and RX.

 

Please post back as you have questions.

Sarah Yost
Senior Product Marketing Manager
0 Kudos
Message 2 of 5
(6,678 Views)

Hi , Sarah, when we use the niUSRP Write Tx Data VI and give the "end of data" parameter true state, we found the time cost for transmitting one packet is about 60ms, while 15ms for false state of the parameter. Is there any way can we decrease the time once we use the true state of "end of data" parameter? We want to send the packet quickly once we receive the ack.

0 Kudos
Message 3 of 5
(6,605 Views)

HustLiliAn,

 

By setting the end of data? boolean true, you are causing the LO to turn off inside the USRP.  When you send it more data, the USRP will need to turn it back on and wait for it to settle.  You could implement a queue where instead of turning off the LO, you send out continuous zeros to the USRP. The TMD transmit example might be of help if you choose to implement this.

Anthony F.
Staff Software Engineer
National Instruments
0 Kudos
Message 4 of 5
(6,601 Views)

I used the scheme just as you adviced , but the underflow problem exsit ,  how this underflow problem can be solved?

0 Kudos
Message 5 of 5
(6,331 Views)