NI Home
Cart Cart | Help
Hello Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI
You are here: 
NI Home > NI Developer Zone > NI Discussion Forums


Reply
Member
ejubenville
Posts: 8
0 Kudos

Can niusrp.dll provide access to other messages in RX stream?

I've been using niusrp.dll to control an Ettus N210, and that's been fine for the RX streaming that I've needed.  However, I now want to experiment with some features that don't appear to be supported by the niUSRP DLL.  Specifically, I've learned of an FPGA image that can send asynchronous timestamp messages upon a GPIO pin state change. Is there any way to use the niUSRP DLL to get those messages?

 

I've begun looking at what it would take to use the UHD driver DLL instead of the niUSRP DLL, but I'm discouraged by the complexity of the UHD driver and all of the dependencies and build requirements necessary to use the UHD driver, especially in my environment of MSVC under Windows.  In addition, the UHD driver appears to lack high-level documentation equivalent to the easy-to-understand APIs described in the niUSRP.h include file.

 

Are there any plans to add support in niUSRP.dll for alternate message types in the RX stream?

 

Thanks.

 

 

Member
psisterhen
Posts: 79
0 Kudos

Re: Can niusrp.dll provide access to other messages in RX stream?

In the interest of stable behavior, the NI-USRP driver does not support custom builds of the FPGA.

 

If you provide more details about what you're trying to accomplish, we may be able to suggest alternative solutions that keep you using the NI-USRP API.

Member
ejubenville
Posts: 8
0 Kudos

Re: Can niusrp.dll provide access to other messages in RX stream?

My application requires me to precisely align external asynchronous real-time events that affect the RF signal to algorithms applied the receiver IQ data.  The choice of algorithm depends on system state that can be inferred by GPIO signal transitions.  Therefore, when I learned that I could use a custom FPGA build to insert time-tagged messages based on GPIO pin changes, I realized that could solve my problem because the timetags from the GPIO messages can be correlated with the timetags of the receiver metadata.

 

It is my understanding (I could be wrong) that the Ettus N210 UDP transmissions follow the VITA-49 specification, aka VITA Radio Transport (VRT).  That specification has support for intermixing various kinds of logical streams into the one physical stream.  One logical stream sends the receiver IQ data, but other streams can be present.  Those other logical streams is where I believe the GPIO timetagged messages would manifest (again... I could be wrong). 

 

Without knowing the internal architecture of the niUSRP driver, I can only guess that it may have a packet processor that captures the receiver IQ stream packets, and discards all other packets.  If this guess is correct, the niUSRP API could provide a hook whereby an application such as mine could get be handed the discarded packets.  I could write my own code to process the packets of interest to my application.  An approach like this isn't specifically related to custom FPGA builds, but rather related to the VITA specification in general.  In that light, I believe that such a modification to niUSRP could be a feature of general interest to all USRP users, not just me.

 

Are there any plans to extend the niUSRP API in any way, or to release the driver source code under an open license?

 

Thanks,

Ed Jubenville

Member
sshearman
Posts: 74
0 Kudos

Re: Can niusrp.dll provide access to other messages in RX stream?

Hi Ed,

 

There aren't any plans to expose the source code for the niUSRP.dll or it's api. Some of the functionality that you describe is actually handled by the UHD driver (the buffering / arbitration of packets). Much of the niUSRP driver consists of LabVIEW interface specific code, for instance allowcate memory safely for LabVIEW, to populate the IVI control / indicator and maintain a state between calls, and more. As mentioned above it's also tied to a specific version of the USRP FPGA image and firmware that ship with the driver. My recommendation would be to re-examine the UHD driver--it's possible to put a more simple wrapper around it that may suit your needs.

 

I hope that this helps,

 

--Sam

Sam Shearman
Senior Product Manager | Communications & Signal Processing Software | National Instruments
By using this web site, you accept the Terms of Use for this web site. Please read these Terms of Use carefully before using any part of this site. Please go here for information on ni.com's copyright infringement policy.
My Profile | Privacy | Legal | Contact NI © 2011 National Instruments Corporation. All rights reserved.    |    E-Mail this Page E-Mail this Page