Jump to content

Neil Pate

Members
  • Posts

    1,155
  • Joined

  • Last visited

  • Days Won

    102

Everything posted by Neil Pate

  1. Well, given that this is some kind of (bad) timing logic, and 59 is suspiciously like the number of seconds in a minute, I would suspect this is some kind of check to see if the elapsed time is > 1 minute. I strongly suspect this code is overcomplicated and there are signficantly simpler ways of doing things. These four sections of parallel code below look like they constantly evaluate if the elapsed time is greater than 45, 30, 15 and 59 seconds. The shift register on the boolean essentially latches (i.e. remembers) the previous value, and I think the XOR is used to reset the latch. I am not sure what is in the other cases of the Case Structures. Strangely the top one is active on a False, whereas the others are on True.
  2. Ah right. Thanks for the clarification.
  3. I don't think this is LabVIEW. We wish LabVIEW allowed you to put things like checkboxes and dropdowns in a table.
  4. Just what I wanted, thanks for the inspiration.2022-10-13 20-30-18.mkv
  5. Super surprised at this result. Run the VI and change the colour using the colour picker widget, while the widget is open the top loop which uses a property node works fine (Color Box 2 updates in real-time)! The bottom loop does not show this same behaviour, the value is only updated to Color Box 4 when you exit the widget. Colourbox.vi
  6. Wait, does the underlying colour box update while the widget is open?
  7. Yeah but I want to grab the colour while the widget is open.
  8. Thanks. It was just a thought. How would I use Refnum to Pointer on the colour picker widget though? Is it even possible to get a reference to that little popup window?
  9. @dadreamerthis sounds like the perfect use case for some low level OS API trickery, like reading the value directly from memory. If only there was someone who was good at stuff like this 😉
  10. I think the answer is no, but I ask anyway. Does anyone know if it is possible to access an event or some other thing that returns the colour that is currently being "selected" by the mouse cursor when this colour picker widget is open? I mean getting a new value when the user moves their mouse around while the widget is open and has focus? I suspect this is all deep in C++ land but would love to be wrong here.
  11. Frame rate is now at 100 FPS, time to stop optimising 🙂 2022-10-08 21-49-45.mkv
  12. Plot twist... it turns out that the MoveBlock technique is quicker when replacing long-ish rows, but for smaller chunks of pixles the naive replace an element at a time is actually faster. I just used the worst case scenario in the benchmark, but have realised this is not actually sensible when rendering things made of smaller triangles (and hence smaller line segments). This is what I am rendering, it has close to 20k vertices.
  13. Nope. The use case in this situation is just to learn 🙂
  14. Unfortunately I cannot actually do this optimisation as normally the length of the line, and pixel colour will differ every single call. Well, actually the colour will stay the same for some number of calls, but the line length will normally change. In my benchmark VI I just used a worst case scenario of a line filling the whole row. Your MoveBlock2 method still seems faster, thanks! I will see how it affects the performance of my actual application.
  15. Thanks everyone, I really appreciate the help. I will take a look over the weekend at the suggestions.
  16. Windows for now, but the point of the exercise is to implement as much as possible from source.
  17. Ah, that explains the crash when opening in 2015. Thanks!
  18. Hi everyone, I am trying to wring as much performance as possible out of a single VI I have created. It is part of a rendering application and will be called many-many times per second. In essence it just draws a horizontal line in a 2D array of pixels. I have four techniques implemented (3 work, 1 crashes LabVIEW). Is anyone up for the challenge of trying to get it any faster? I have attached version in 2015 and 2022. I developed in 2022 and back-saved, but for some reason just opening the code in my 2015 LV instance crashes (but it opens fine in 2021). Raster 2022Q3.zip Raster 2015.zip
  19. Not quite sure what you mean by this.
  20. Sorry to hear about your troubles, this does happen. One thing worth checking (as this has bit me many times) is dead/broken/old code in Diagram Disable Structures. Symptoms are like you noticed, running in the IDE is fine, but often the builder will just not cope. Often the dead code in a DDS is old and contains invalid enums or old versions of classes etc. Really funky things seem to happen.
  21. It seems there was no Discord server for LabVIEW. Well, that has all changed. DM if you are interested in joining. It is open to anyone interested, but I don't want to post the link as I have no idea how to deal with spam/bots!
  22. Sure, but I still don't see the point as you could just keep the variant in the feedback node (and this VI is accessible by all processes) . What does adding it to a single element queue do?
  23. I guess there is much more code and it makes sense when looking at the bigger picture, but with this snippet I don't really get this. Why bother with making a single element queue the reference of which your store in the feedback node. Why not just store the variant itself? (using the feedback node?)
  24. What you have made looks great, and I absolutely commend your effort. But, I think the area of the shaded part of the Venn diagram that consists of people willing to pay for LabVIEW and want to get into Deep Learning using a new and paid for toolkit is a number approaching machine epsilon. NI has abandoned Academic institutions and is introducing a new licensing model that is predatory and harmful to the long term viability of LabVIEW. It breaks my heart...
×
×
  • Create New...

Important Information

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