-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Any interest in a Mid-Level API to UHD? #9
Comments
Thanks for the comment. |
I have recently continued working on this. I am now at a point where I consider the project mostly complete. The only missing part that I am aware of are some functions regarding subdev specifications. Otherwise, all the Clang generated low level functions should now have an easier to use equivalent. Should we try to integrate this code into your package? Otherwise, I’ll probably try to get it accepted into the Julia registry as its own package (that still depends on UHDBindings for the Low Level API though). It might also be worth it to use this code as the backend for your High Level API. |
Hello @mgw93 However, it could be quite useful from a centralization // visibility point of view to propose this project within the JuliaTelecom organization, what do you think? I can invite you to the organization so that you can propose the repository within the complete ecosystem. |
Yes, that does seem reasonable. Going forward with offering my own code as a separate package, there are a few things I still want to clean up that probably result in breaking changes to the API. As far as I know, I’m currently the only user, so it shouldn’t be an issue, but should be done before advertising the package to a wider audience. On a somewhat more distant time scale, it would seem reasonable to include the low level bindings generated by Clang into my project, I however have no experience at all how these are generated. Once that is done, it might make sense to build your high-level API on the functions that my code provides. I would also appreciate any feedback on the code and its overall design. Since this is my first larger project in Julia, I might be unaware of some conventions or best practices that are expected of a project in the Julia ecosystem. |
Hello Ok, let's do it this way. I've invited you to the organization. Regarding the points you mentioned:
I think UHD.jl does not comply with Julia naming conventions. UHDAPI.jl is probably more appropriate, although I was told at the time that UHD is not well-known outside the SDR community and therefore might not be very clear. But I think it should be okay!
That definitely makes sense.
Yeah, feel free to ping me when your repo is up. Not sure that I have all the best practices myself, but two heads are better than one! In the meantime, I close this issue but feel free to re-open it (or another one) if you need |
I noticed this project when I wanted to interface with a USRP.
However, I found that the high-level has some restrictions (e.g. I didn’t see a way to add time_specs to receive operations),
and at the same time found the low level API a hassle to use with all the raw pointers.
I therefore started writing what I’d call a Mid-Level API, where all the functionality from the C-API is available but without having to deal with pointers.
The current work can be found here.
It’s not fully finished yet (some parts regarding sensors and subdev specs are still missing) and I didn’t get around to writing any documentation. But it should already be useable. And most of it is just wrappers around the Clang generated stuff, so it shouldn’t be too hard to use for someone familiar with the C or C++ API.
Is there any interest in integrating this code into this package?
The text was updated successfully, but these errors were encountered: