Jump to content

ShaunR

Members
  • Posts

    4,849
  • Joined

  • Days Won

    292

Posts posted by ShaunR

  1. 6 hours ago, mcduff said:

    TEK did not make a LabVIEW API. I used the DLL import wizard along with the RSA DLL.

    Interesting. I assumed you used the TEK one here.

    It looks very much like the whole API is a "work in progress" as many functions are not supported and...

    Quote

    - When Connect and Disconnect procedure is repeatedly run for extended time duration (> 2 hours), segmentation fault is observed.

    Do they distribute the DLL source code as part of an SDK?

  2. The caveat here though is that USB is not an easy interface even in LabVIEW. I've heard that many people decide to make a MAX configuration instead of USB driver because it's just so damned low level and does anyone remember the difficulties with webcams?

    I use libusb and a 3rd party wrapper for the RTL-SDR which is not only far easier but much faster. A wrapper and DLL driver is probably a must for asynchronous callbacks -  it's not for the faint-at-heart. The only time a USB device is easy is when it presents itself as a COM port which I very much doubt for streaming high speed IQ data.

    • Thanks 1
  3. The Disconnect can take a device ID (according to the matlab example). However. this little gem was in the python:

    note: the API can only currently access one at a time

    I would expect better from them (intern?). Their proprietary software supports multiple devices so its just what they are supplying with the RSA API.

    All their GPIB and Ethernet devices are SCPI compliant so I wouldn't be surprised if it was just SCPI over USB with Bulk transfers for IQ data streaming. But considering the state of the API, you never know. You'd need the programmers reference.

     

    • Thanks 1
  4. Hmmm. This seems just plain wrong (on so many levels).

    The Tektronicss RSA API has the following two functions

    DEVICE_SearchInt
    DEVICE_Connect

    Which would suggest it can quite happily support multiple devices.

    Interesting though. I didn't see a "Close" or "Disconnect" function in the examples (I don't have the actual driver to check).

  5. 25 minutes ago, Rolf Kalbermatter said:

    You can forget about that comment about endianess. MoveBlock is not endianess aware and operates directly on native memory. 

    Yes. But he will be populating the array data inside the DLL so if he mem copies u64's into the array it's likely little endian (on Intel). When we Moveblock out, the bytes may need manipulation to get them into big endian for the type cast. Ideally, the DLL should handle the endianess internally so that we don't have to manipulate in LabVIEW. If I'm wrong on this then that's a bonus.

    I think this can also be done directly by Moveblock using the Adapt to Type (for a CLFN) instead of the type cast but I think you'd need to guarantee the big endian and using a for loop to create the cluster array (speed?).

  6. You could do this.

    image.png.b384ef3d1814601b6c0556ab3a27f4a1.png

    It may be a lot easier handling a contiguous array in your DLL than a LabVIEW array of clusters (but that is possible too). Instead of creating 1000 pointer arrays of 256 (uint64s?) just pass a single 1D pointer of an array of 256,000 elements and pars it out as above.

    • Thanks 1
  7. 19 hours ago, LogMAN said:

    By the way, Darren Nattinger recently held a presentation at GDevConNA 2022 that might be interesting to you. He provides some insights into features of LabVIEW that aren't as stable as one would hope...

     

    That was the best presentation content I've seen from NI for many-a-year.

    Cheekily mentioned (almost under his breath) he'd found a way to use the Match Pattern to replace Regex. I too use Match Pattern instead of regex because it beats the hell out of it for performance but it's never as generic as the regex. I need to know more (with code).

    Never liked (or used) the Error Constant ( or AF for that matter).

    Never used PPL's either but I do use lvlibs with the VI's in an LLB - mainly for ease of distribution rather than load performance. 

    The single execution while loop to force clumping was an eye opener. :blink: I've never suffered from that but that's gone in my long term must-know memory.

    Xnodes were always too complicated for me so never used them. Interesting he didn't mention XControls. VIM's I liked until they formalised it and then they did not propagate the type downstream (so I couldn't make my "named events"). So don't make any of those anymore.

    I agree with his view of text vs VI's. But not for the same reasons. I'm a huge fan of polymorphic VI's with a menu, for example. However. I can read a diagram of VI's I am familiar with (and with good icons) in one glance but I'm not a speed reader. He just doesn't seem to like doing icons whereas I find it a cathartic distraction when stuck on a problem.

    My obstinate work flow and dumb preferences seem to insulate me from a lot of the issues that others find. :lol:

    • Like 2
  8. Yes. NILM cannot create the icence file. But TPLAT can (standard only).

    If you change the" licencing tool" to TPLAT instead of NILM for #3, then you have what everyone else had before they invented NILM and their subscription model without requiring Protection Plus (using the NI Licence Server under #3 Account).

  9. You don't need that. That is the API that you could create TPLAT with.

    This is the basic procedure

    1. Create a product definition (Using LFEdit or via the Softwarekey web page).
    2. Create a licence file for the product (Using LFEdit).
    3. Apply the licence to the lvlib (Using TPLAT in advanced mode. This will give you a Licenced  version of your code.)
    4. Point VIPM to the licence when you build the distribution (If you have the full VIPM, it can also apply it instead of using TPLAT above).

    This is the full licencing process (excluding the VIPM).

    You can also buy the licensing server from Softwarekey for installation on your own network, if you want everything in-house rather than using theirs (or NI's)

    • Like 1
  10. This is the process for adding licencing to addons. 

    You only need "Protection PLUS 5 SDK" if you want Advanced licencing features or your own SOLO server. The licence file (*.lf) created by TPLAT can only create a licence for "Standard" and you cannot change the SOLO server location (NI's SOLO server). In advanced mode you can choose a pre-created licence file (created with LFEdit from the Protection PLUS 5 SDK) which can have a different SOLO Server URL and more advanced features.

    What happens if you click on the "New to Solo Server" on the TPLAT dialogue? Is there no link to sign up? (I don't have TPLAT installed for 2022 at present).

    image.png.42ebb98979bc9367f68579f23553ceaf.png

    • Like 1
  11. 23 minutes ago, Neil Pate said:

    The point is more about the difference in behaviour with connecting the cluster and not having it connected (even though the data in would appear to be the same(. I would expect most LabVIEW developers to assume the code would function identically in both circumstances, as detailed in the OP. I cannot think of any other nodes that work like that. That is confusing and inconsistent behaviour and should not be present. 

    It cannot function identically since YOU CAN NOT HAVE SHORTCUTS ON POPUP MENU'S. You can argue that maybe it should morph to hide the connector but then you're just as likely to have people scratching their head when using menu's. With this behaviour you get an explicit error telling you " Run-time menu shortcuts are not supported for this type of menu.". 

    Remember. This is a run-time check, not a design time check. You get the same behaviour if you try to operate a function on an invalid type after coercion to a more specific type.

  12. 27 minutes ago, Neil Pate said:

    Rolf, what I meant was that the bevaiour as manifested is strange and unexpected, and not even something we could recreate in our own code.

    If you wire a keyboard shortcut cluster to a popup menu it gives you an error stating that it is the incorrect type. That's correct. You can only have keyboard shortcuts on main menu refnums. The alternative is to have separate primitives for main menu's and pop-up menu's-one with a shortcut terminal and one without.

    We can recreate the same behaviour with xnodes where we can detect if anything is connected and it's type with abilities.

  13. 1 hour ago, hooovahh said:

    There was a couple, but I never used any of them.  I think BLT is one that meets the needs, and I think Wirebird Labs had one, but that hasn't had any update in forever.

    Yes. I think it was the Studio Bods one I was thinking of. Looking at it now it seems to be geared towards executables and not sure if it will suffice for source code.

    • Like 1
  14. 4 hours ago, codcoder said:

    The thing is the application does have that feature. It is just that the option to command reboot on system level is so appealing as it works in those cases where the application is non responsive.

    As long as it's only the app that has stopped responding you could also use the NI Webserver RPC feature to call a separate vi that reboots the machine (if that is still a thing after NXG).

    I'm not sure it's possible to install on a PharLap target but with SSH you can easily reboot a remote machine.

     

  15. 2 hours ago, Youssef Menjour said:

    1 - Get started with NI 
    Advantage --> Your package will be on ni.com, NI helps you directly and they manage your licensing policy.

    Disadvantage: you have to pay a fee to NI (30%). I feel it exessive for long term, they are too greedy and i dont want to sell my package to expensive i will lose customers.

    Interesting. This is could be due to their new subscription method. It might be worth finding out whether that is the case as there will be other caveats like you need to maintain a subscription

    2 hours ago, Youssef Menjour said:

    2 - Do it yourself

    Advantage: you are free to do what you want. 
    Disadvantage --> more complicated to do, not well documented.

    Indeed.

    I vaguely remember a third party that was offering an alternative solution that was implicitly geared towards LabVIEW and used the TPLAT. But I can't remember who it was or how it worked.

    • Like 1
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.