Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Taylorh140 last won the day on July 6

Taylorh140 had the most liked content!

Profile Information

  • Gender
  • Location
    Manhattan, KS

LabVIEW Information

  • Version
    LabVIEW 2016
  • Since

Recent Profile Visitors

1,752 profile views

Taylorh140's Achievements


Newbie (1/14)

  • Week One Done Rare
  • One Month Later Rare
  • One Year In Rare

Recent Badges



  1. I added what I have to https://github.com/taylorh140/Pgui. It's only right since I copied the enabling technology right from this forum. I don't know if ill have a huge amount of time to work on this but ill defiantly try and improve it when I can. There is still a lot of things that would be nice to develop for this.
  2. This is true. bad habit I guess. I used openGDS for this w/ EndevoGoop400, so far I like it. But it is still new to me so there are possibly design The enabling technology for this was from @Norm Kirchner so respect where it is due. Being able to translate images allows one to build a UI component and move it into place. Each drawn component can now pretend it is the only UI component on the picture control. I'll try to get a GitHub page published soonish.
  3. Two questions about this: 1. Does something like this already exist? 2. Is this something that could be useful? Every once in a while I need dynamic UI components that can be generated at runtime. One nice thing to use for this is a picture control; however it doesn't lend itself as well to keeping other pieces of function such as mouse click events and such. I put together a mini library of UI functions for this that has the ability to be extended. The UI can be generated dynamically at runtime and be any picture thing that you can draw. Using Standard layout techniques that you might find in other GUI libraries. The hierarchy generation can always be simplified by using some type of templating string. Example1.vi Front Panel on Pgui2.lvproj_My Computer _ 2021-07-02 14-03-54.mp4
  4. This may bet a better lead; It has a lot of similarity. https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitforsingleobject I have never seen this used. but it does seem to work. With similar performance.
  5. Something we can both be glad about. I think I might have a lead. https://stackoverflow.com/a/35389291 But ,I'm still not sure what's going on there, they clearly did a good job.
  6. In the example above I'm more interested in how NI implemented the waiting on the queue. It seems to have better performance than I would imagine possible. I probably made some bad assumptions on the example. Assumption 1: Two while loops run on different threads. Assumption 2: If threads yield to OS response of queue would be > 1ms on average. Assumption 3: If threads actively wait CPU usage would be high. Assumption 4: Neither of these methods make sense with the information collected.
  7. So lately I have been more interested in scheduling. Two methods I am aware of are below. This is in the context of Windows OS btw. Active Waiting (polling) Know for High CPU usage Accurate to less than 1ms Yielding OS wait (Thread telling OS give someone else my time slice) Very low CPU usage Takes OS integration (e.g. less portable) Much less time accurate jitter etc. expect best performance to be 1ms resolution So I have been curious about the timeout function of the deque element for a while. To me waiting on this seems to take little to no CPU usage. but has much better than 1ms resolution. 30us +- 10us in the example below. How can I replicate this kind of performance? Is there a secret method I am not aware of (reality says yes)?
  8. I tried to do a test to see if any of the windows fonts do anything. (forgive the long image). I'm starting to wonder if windows has this function in any form. perhaps there are some fonts that do work but the ones included with windows do not seem to do much:
  9. In The Draw Text at a Point VI under the user-specified font there are two settings that I do not understand. -Outline - seems like it should put a black outline or something around the text. as far as i can tell it doesn't do anything. -Shadow - seems like it should put a darker outline around part of the text. as far as i can tell it doesn't do anything. How do these work or lack there of?
  10. Wow, Thanks! It's good to be wrong. It does sound though I was right to be weary of calling DLL's meant to call LabVIEW functions, especially when LabVIEW versions change. But it sound like LabVIEW calls its own exposed functions (lvrt.dll i assume) when dealing with Queues. I wonder if building a dll for calling the queues and then debugging these would give me the prototype. (following the data to the builtin's) #unrecommended but a quick way to do devious things. (most likely learning that it is a bad idea and leaving it alone ha ha).
  11. I thought about this. I was initially turn off because code called from a dll supposedly runs in a different application space. I was concerned I would not be able to access queues by name through the divide. But I guess that plays well to me now knowing enough about the different run (domains) available to LabVIEW. I guess i wouldn't know where to look up the details for these. The Actor framework seems to use these. DLL calls can use these depending on the settings. -Is it just a head-free version of LabVIEW but sharing application memory? is this where the AZ and DS memory differences come in? more to learn here clearly. I got the PostLVUserEvent to work nicely.. I am working in Rust to see how the two play together, which is a new experience for me. It also gives some nice promises about how the safe code will work... but so far everything to do with this interface is currently unsafe :). This also means that most of the goodness of the language doesn't apply, but i can wrap up all the unsafe things in nice calls and get a good interface. Here is a sample of how the interface can look in rust. #[no_mangle] pub extern "C" fn AddONE(ptr:LvUHandle){ let h=LvArray1DW::<f64>::from(ptr); //Wrap pointer and get type as a 1D array of doubles. let g=h.to_array_mut(); // Access mutable slice for i in 0..g.len(){ g[i]=g[i]+1.0; // Add one to each element } } Note: I am using LabVIEW Handles for array in windows (but the pdf describing the interface says that windows array handles are not supported .. why?) Note Response: I guess the documentation says the Windows API does not support LabVIEW handles, like user32.dll not the LV interface to the custom DLL.
  12. Odd that Occurrences are documented but Queues are not? I had a feeling that it might be undocumented. LV User Events have nearly the same properties, so that is nice (however these seem more tedious). I might try playing with these functions if I can figure out the prototypes but if not there is just too much to guess. I'm not so familiar how the OS-native api's play with Labview. Other than using TCP/IP. Thanks @dadreamer!
  13. I was looking through the Labview.lib (its just an archive) functions and found: Line 1162: ./objects/labview_lib/win32U/i386/msvc71/release/QueuePreview.i386.obj _QueuePreview Line 1211: ./objects/labview_lib/win32U/i386/msvc71/release/QueueTimeoutRead.i386.obj _QueueTimeoutRead Line 1231: ./objects/labview_lib/win32U/i386/msvc71/release/QueueLossyEnqueue.i386.obj _QueueLossyEnqueue Line 1238: ./objects/labview_lib/win32U/i386/msvc71/release/QueueStatus.i386.obj _QueueStatus Line 1286: ./objects/labview_lib/win32U/i386/msvc71/release/QueueDequeue.i386.obj _QueueDequeue Line 1348: ./objects/labview_lib/win32U/i386/msvc71/release/QueueObtain.i386.obj _QueueObtain Line 1691: ./objects/labview_lib/win32U/i386/msvc71/release/QueueEnqueue.i386.obj _QueueEnqueue I assume that means i can interact with Labview Queues in application space, which would be a nice way to transfer information and call back. But I cant find any documentation on how to use these eg. documentation or prototypes. If someone can point me in the right direction that would be great!
  14. So this apparently is the same with MATLAB: https://www.mathworks.com/help/matlab/ref/plus.html In the section: Add Row and Column Vectors a = 1:2; b = (1:3)'; a + b This simple code will not compile in Mathscript its the same story with Add Vector to Matrix It's just a seemingly basic incompatibility and it seems it has something to do with how vectors are handled in basic operations. unless there is some super secret setting to make these compatible ill just have to find a workaround.
  15. No this is definitely cool. It’s cool to know that there is a way to keep the data in the same scope. Now all you need is a (c compiler/assembler) written in labview along with prebuild actions and the world would be your oyster.
  • Create New...

Important Information

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