Jump to content
News about the LabVIEW Wiki! Read more... ×


  • Content Count

  • Joined

  • Last visited

  • Days Won


PJM_labview last won the day on July 25 2018

PJM_labview had the most liked content!

Community Reputation


1 Follower

About PJM_labview

  • Rank
    The 500 club
  • Birthday 02/06/1970

Profile Information

  • Gender

LabVIEW Information

  • Version
    LabVIEW 2009
  • Since

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. PJM_labview

    Allocating Host (PC) Memory to do a DMA Transfer

    Thank RolfK. I was actually hoping that you would chime in on that topic We were suspecting something around the lines of what you described (Virtual memory address not appropriate for the DMA transfer). We will move forward and find out how to lock the memory. Thanks again.
  2. Hi We have an application where we need to have a custom PCIe board transfer data to the PC using DMA. We are able to get this to work using NI-VISA Driver Wizard for PXI/PCI board. The recommended approach is to have VISA allocate memory on the host (PC) and have the PCIe board write to it (as seen below). While this approach works well, the memory allocated by VISA for this task is quite limited (~ around 1-2MB) and we would like to expand this to tens of MB. Note: The documentation (and help available on the web) regarding these advanced VISA function (for instance "VISA Move out 32" and "VISA Move In 32") is parse. If someone has some deep knowledge regarding theses, please feel free to share how we could allocate more memory. Since we are not able to allocate more memory using the VISA function at this time, we investigate doing the same operation using the LabVIEW Memory Manager Functions which allow us to allocate much larger memory block. Below is the resulting code. Unfortunately while we can validate that reading and writing to memory using this work well outside the context of DMA transfer, doing a DMA transfer do NOT work (although the board think it did and the computer is not crashing). We are wondering why this is not working and would welcome any feedback. Note: the DMA transfer implemented on the board requires contiguous memory for it to be successful. I believe that the LabVIEW Memory Manager Functions do allocate continuous memory, but correct me if I am wrong. To troubleshoot this, I did allocate memory using the LabVIEW memory manager function and try to read it back using VISA and I got a "wrong offset" error (Note: This test may not be significant) Another data point; while the documentation for DSNewPtr do not talk about DMA transfer, the one for DSNewAlignedHandle does. Experiment using LV memory manager Handles has not got us anywhere either. We would welcome any feedback regarding either approach and about the LabVIEW Memory Manager Functions capabilities in that use case. Thanks in advance. PJM Note: We are using LabVIEW 2014 if that matter at all.
  3. PJM_labview

    How to make a probe update itself

    I have had to face the same issue in the past and I did not found a solution. It just occurred to me though, could you subpanel the background monitoring async VI into your probe and see if the subpaneled VI UI update (even though the probe is not)? I am not sure that this will work, but might be worth a quick try.
  4. PJM_labview

    Efficient (Semi) Large Array Data Set Manipulation

    Just closing the loop on this topic. Below is the screenshot of the fastest solution to date that does include the buffer allocation (array creation) as part of the code that is being bench marked. Thanks for everyone help. PJM
  5. PJM_labview

    Efficient (Semi) Large Array Data Set Manipulation

    I down-convert it to 2013 and 2011. Since that post yesterday, I got a slightly faster version that operate on each line (like you suggested) [see image below]. Also typecasting is not faster than split and interleave. This is an interesting suggestion. I will have to give this more thoughts. Thanks
  6. Hi Everyone. I am trying to figure out the most efficient way to manipulate somewhat large array of data (up to about 120 Megabyte) that I am currently getting from a FPGA. This data represent an image and it need to be manipulated before it can be displayed to the user. The data need to be unpacked from a U64 to I16 and some of it need to be chopped (essentially chop off 10% on each side of the image so if an image is 800 x 480 it becomes 640 x 480). I have tried several approaches and the image below show the one that is the quickest but there might be further optimization that could be done. I am looking forward to see what other can come up with. Note 01: I am including a link to the benchmark VI that has a quite large image in it so this VI is about 40MB. Note 02: This is cross-posted on NI Forum. Thanks
  7. PJM_labview

    .net interop assemblies oddities

    1st oddity: The documentation specify the following: "Clusters and enumerations defined as type definitions or strict type definitions—LabVIEW uses the label of the type definition or strict type definition as the name of the .NET structure" In reality I find that to be incorrect. Instead it used the typedef instance name. Am I missing something? Note: I know I can rename it, but there are very good reason while I would love to have it worked as described in the documentation 2nd oddity: When a typdef is part of a class it does not show as such when call from a .net app. For instance if I have the following in my LabVIEW project: A class is called shape A method in the class is called getBound A cluster typedef in the class is called Bound An interop build spec where the assembly namespace is LVInterop Then when I call the resulting dll from c# I see: LVInterop.shape.getBound (yeah, getBound method is part of the shape class [as expected])but I also see: LVInterop.Bound for the Bound typedef (?? how come the bound type is not part of the class ?? [i would expect LVInterop.shape.Bound])Any feedback on these two oddities will be very welcome.
  8. PJM_labview

    Cool little LV 2013 sp1 bug

    Not at all, thanks for doing that!
  9. PJM_labview

    Cool little LV 2013 sp1 bug

    Nope. LAVA is as far as I went.
  10. PJM_labview

    Cool little LV 2013 sp1 bug

    Did not mean to record the background music with that, but enjoy! http://screencast.com/t/gfKwlvMcCsHI
  11. PJM_labview

    LVOOP .ctl Icon

    Ya, I use the built-in parser to do that too. I am not entirely sure by what you mean about putting the icon from the "monster" class into an empty class but my goal is not to have our developer do extra work in order to be using an internal tool that, among other thing, get library thumbnails.
  12. PJM_labview

    LVOOP .ctl Icon

    Thanks Darin this will be useful. I think that the data need to be un-escaped too because I see a bunch of text like & and so on. On a side note, I did an histogram of the data but I did miss the 64 bit pattern..
  13. PJM_labview

    LVOOP .ctl Icon

    Reviving that thread... I am wondering if anybody got more information about the escape (or encoding) mechanism. Nothing obvious (such as base64 for instance) comes to mind looking at it. I would love to be able to get (read) the class icon without loading the class in memory.
  14. Like you we have been experiencing this slowdown for years as we routinely have project using classes with 5k or more VIs. In respect to "fabric" comment about refactoring/restructuring your code, this may help but it is a sad reality when you have to dump a perfectly valid architecture for a another one simply because the LabVIEW IDE make it unusable. With 9K VIs I shudder thinking how long it will take applying a typedef changes given that in our framework this sometime can take a couple of minutes. Regarding solutions: The single most bang for the buck that we have found is to NOT use the project. This help a lot. Just open the lvclass you need to work on in memory. Even if you where to open all your classes one by one, as long as you are not using a project the IDE will be significantly faster (compared to have the same classes in a project). By the way, I got fabric's Idea to 103 now.
  15. PJM_labview

    Multiple Glyphs Columns

    Here is the MCL control again (since the previous links in the Thread are broken). Thanks special MCL.vi

Important Information

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