Jump to content

All Activity

This stream auto-updates

  1. Today
  2. Hello 4 years later. Is Sam Sharp's presentation using Test Complete still the preferred solution? I tried out the Ranorex demo today and pretty quickly rain into the issue that it seems to be just recording clicks on pixels rather than any concept of buttons and numerical entities.
  3. Hello ladies and gentlemen! Prepare yourselves for a massive wall of text. Thank you in advance. First time poster, long time lurker. Over the last decade I have found answers to a myriad of Labview related questions I've had on these forums, and I'm hoping some of you can help me out with my current conundrum. I've a solo developer for a large labview based automation project. I have worked with other labview developers in the past, but we've always kept what we were working on very compartmentalized because nobody ever wanted to deal with LVMerge. At the time they all said Labview effectively had zero way to merge VIs. Since those old days (9 years ago) we've come a long way. Unfortunately like many engineers I am horrible about UI/UX design - I'm trying to fix basic functionality, I don't care that you can't find the button (at least I don't care right then). But because of how solid the software is getting we're finally in a good position to start dedicating time and effort into improving our UI flow and design. So in the run up to this, and knowing I had basically zero experience with LVMerge/Compare except that the previous developers considered it "impossible", I did a few tests. My goal was to continue some development in the block diagram of the main top level VI in my own git branch, while another developer worked on UX changes on a second git branch. Then when he was ready we'd merge everything back together. All of his changes were focused on the Front Panel - he never opened the block diagram once. He was moving things, resizing things, changing captions and boolean texts, but never labels, and then adding various decorations as he wanted for clarity and organization. My initial test merges worked flawlessly. I was surprised how easy my small merges worked. From there he tinkered away when he could over 4ish weeks on the UI and I kept my usual pace on the main top level working on various bugs. I tried to limit what I was doing in the top level - most of the block diagram changes I made were cosmetic. It needed some TLC. Anyway fast forward and now we're ready to merge everything back together and ... I can't. I cannot get it to work. I've tried so much stuff. At first the errors were almost always during the LVCompare phase, usually about an insane block diagram object on the "base" vi. I'm familiar with heap peak so after a crash I'd comb the error log as well as I could (wish that thing had some documentation) and then try to find the offending object and fix it. More often then not I wouldn't see an issue with the object at all, and lots of the advice online is "just delete and remake the object" but I hate that solution because it means I fundamentally don't understand the actual problem, and when I'm merging three different versions of a big VI that gets tough to do. I've been experimenting with the tools, and eventually turned off auto resolve. Okay cool that would get me through the compare stage and actually open LVMerge where I could select which versions of things I wanted. From here it became a game of cat and mouse where I go through changes one by one till I get a crash, investigate, fix, change something related to said crash, and then run it again. This has been time (and sanity) consuming. It never worked, and eventually I got stuck on a merge change that I couldn't even identify what it was changing between the three, but I know that no matter which I select it crashes. I've kept trying various things since then. Resizing the tab control positions to be exactly the same Deleting a few FP objects on the base and FP update versions that I had removed when making BP changes on my version Adding a few objects I created for the same reason Added all 3 versions of the VI to the main most up to date project, opening and running them all to make sure there are no serious insane objects that are breaking them. They all run. This is by no means an exhaustive list of everything I've tried, but its what comes to mind right now as the major tries. Currently the state I'm in is that when I run it with all 3 versions with all the changes from above made to them, I can't get through the Compare stage because it crashes with a insane object error about "undo.cpp" which makes zero sense to me. What is it undoing? I tried limiting the number of Undos in LV settings, that didnt help, I tried increasing the limit greatly, that also didn't work (maybe didn't increase enough? Trying that now). I'm really deep in the weeds on this one now, and I would love some fresh perspectives. What's probably going to happen is that I'm going to write it all off as a lesson, and we'll just have the UI dev make his changes again on my current most up to date version - but I would really love to figure out the compare and merge process, and best practices for using it. The documentation for these is abysmal. There's basically nothing. I could probably pay for NI's annual subscription and maybe get some direct help from them but I had it out pretty big with some NI sales guys a few years ago when they transitioned away from perpetual licenses to the subscription model, and I don't want to pay them on principle; but I will if needed. Ultimately even if we do the changes again, I'd still like some best practices on where we went wrong and how to avoid this in the future. We're growing fast, and I could see having another full time labview developer working with me in the future and would love to come away from this with as many answers as possible on how to work in a team on labview binary files. If you've made it this far all I can say is thank you. Now please send help. PS: some info I should of added we use Labview 2021. I don't think we're on SP1, I don't remember why not, and I am willing to try updating. also willing to pay the sub and just upgrade to 2025, but not without good reason like someone tells me all about how they solved so many issues with Compare/Merge in the last 4 years and its going to be so much better I'm attaching my most recent error log from the crash I had last night. Its a doozy, reporting a TON of objects on both the FP and BP as insane. lvlog2025-08-11-15-32-09.txt
  4. Last week
  5. Earlier
  6. Ok, thanks. I will look into it this week.
  7. I sent Michael a message.
  8. IMAQ Unwrap VI Example is at \LabVIEW 20xx\examples\Vision\Image Management\Unwrap Barcode.vi. For U16 images also see this: IMAQ Unwrap Example - not working properly with U16 image type?
  9. How to use the image manipulation VIs? I want to extract a circular ring from a image file which include the known postion and radius infomations. Thanks!
  10. @crossrulz@hooovahh Thank you very much for the assistance- the VIs Hooovahh put together will be perfect for what I am trying to do. Hooovahh- It looks like the center on mouse took a fair amount of fussing to get working so I appreciate you posting the code as it will save a lot of time. I can tell you this much- NI should be paying you guys for figuring this stuff out which should be basic functionality for UI interaction......
  11. I posted a demo set of VIs here which can pop up a window, centered on whatever monitor the mouse is on. There's also settings to have the window center on the mouse wherever it is, but saying on the same monitor. And yes this uses the All Screens, Working Area properties.
  12. There is an Application property called Display->All Monitors. It will give you the pixel ranges of the monitors in your system. What I've done is to use the calling VI's position to figure out which monitor it was on and then place the new VI window as needed. You could use a win32 dll call to get the mouse position as well if that better meets your requirements.
  13. I think I ran into this issue in a very similar situation without using classes. I'm actually rewriting code that I initially made using some class hierarchies into using C style interfaces. I'm passing a cluster containing a strict, non static VI reference as an argument to a call by reference node calling the contained VI reference. No help information appears for any wires containing the cluster probably because it is a recursive type. This is in LV2025.
  14. Good morning I am trying to find a mechanism to determine which monitor a mouse is on (to determine which monitor to display a pop up). I can probably get calling VIs monitor but that is not exactly what I need..... Any help is appreciated!
  15. Unlikely. You clearly have a lot more decoding layers than you have shown so far (is that a DrJPowell messenger vi rather than a network stream vi?). The probability is that your variant isn't what you think it is or your middle layers are modifying the variant (casting to strings and including a length, for example). Using the send in your example, write the example for receiver that I showed previously and test it can be received and decoded.
  16. Yes of course, i convert in my crio, cluster => xml string => send by stream in my pc supervisor , i use structure. I use only pc supervisor, no problem, but i use crio, problem arrive.... It's possible to system linux modify the structure?
  17. There appears to be an issue with thumbnail creation on the Wiki. Here is an example: Open Quickly - LabVIEW Wiki According to the information here and here, either ImageMagick is not installed or incorrectly configured. Perhaps a recent update broke it? @Michael Aivaliotis I believe you are the only one who can fix this
  18. The variant in your image is a cluster, not a string.
  19. hello, Cluster is open before (in message machine) i just take variant .
  20. When you send the message you encapsulate the message as a cluster of string and variant. You don't seem to unwrap the variant from the name/variant cluster in the receiver. What I expect to see is something like this in the receiver:
  21. hello I'm sorry. i use crio to transmis my cluster (vi envoie) (transmission) and receive in my program (reception) transmission.zip reception.zip
  22. You didn't give the text, just an image of the text. You didn't give us the VI you were proposing. We've no idea what the cluster is that you have wired that must match the XML. Your XML has many, many problems. e.g. <string> <name>adresse</name> <val>fabio....</val> </string> That is not a string, it is cluster of "name" and "val". It cannot be converted into a LabVIEW string type if that is what you have wired to the the primitive. Generate the XML from your cluster that you have used with the unflatten then compare with what you have in your XML text.
  23. Hello everybody, I have got a problem with xml string, in fact à vould like transmis this xml trame : And i would use I have got problem -1108... I don't a fault in my code... Thank you
  24. I'm not sure that would be all that interesting (for you). Most of what I think is far more eloquently communicated by Alan Kay in his musings. e.g. "Computer Science isn't real science!"
  25. I did see that "Save:To Buffer" method. I also haven't seen a method for loading the output of that. All of the VI server methods I've seen so far have required a file path. I have only briefly looked at the ones visible on an invoke node with a lot of extra ini tokens, so there are probably some deprecated or hidden ones to go through still. I looked through all of the Call Library Function Nodes in code shipping with LabVIEW 2025 and a few extra modules, but nothing seemed promising. The Application Builder code has some interesting calls but I think they only work with a built application, which I haven't tried. There are some other methods in various DLLs that do seem promising such as "NormalVILoadProc", "NormalVIInitProc", and "NormalVIDisposeProc", I just don't know how to call them yet. I'll take a look at all of the property and invoke nodes next, but I doubt there's anything exposed there that doesn't involve passing in a file path.
  26. Literally never. Which is why I value your input into the community so much. (No sarcasm intended). Would love to sit down and have a few beers/coffee sometime and muse about the state of many things LabVIEW-ish and other stuff.
  27. When have you known me to have a weak opinion? If you have to have a consortium to manage it and spawn an entire industry in order to use some code then it has just become a means to justify an ends. Wizards and scripting are symptoms of excessive boiler-plate generation, lack of reusability and, even worse, trying to hide it. I'm not against frameworks, per say, and In that respect I would argue that DrJPowells solution is the best of the bunch although it uses the OpenG tools heavily so it is not usable to me. By the way. I don't have a personal framework as such. Services are communicated to and from with messages and all messages are strings. You don't need lots of framework for that-just a couple of VI's in a polymorphic. The Services themselves can be anything you like, as long as it works - choose your poison! They come up with this kind of "solution" every few years and then run with it until it the next thing. First it was State Machines, then QMH, then it was Actor Framework. Oh and what about that silver bullet of Systems Software that I can never remember the name of? It's all "One Ring" software. In current years it seems to be this special QMH with knobs on (and committees, working groups and special events that everyone can go to to pat each other on the back). The sales pitch is usually that "this" framework will mean interns churn out the code of 20 year experienced CLAD's. It never does, of course. It always ends up as bug ridden 10,000 VI monstrosities that take 10hrs to compile. They've been trying to replicate experienced programmers' outcomes with processes for over 50 years. It has been such a failure (the philosophy rather than any individual framework) they had to convince everyone that continuous updates were the answer. To paraphrase the words of a wittier person than I, "If the milk turns out to be sour, I ain't the kinda pussy to drink it."
  28. Phew that is a pretty strong opinion! Although I personally am not a fan of the overall style of DQMH none of my problems are with the scripting/wizards or placeholder text. I think any framework that tries to do "a lot" will be complicated... your own personal framework (which you likely find trivial to use) is likely to be a bit weird to others. DQMH is extremely popular for a reason... To paraphrase the words of a wiser person than I, "please don't yuck someone elses yum"
  1. Load more activity
×
×
  • Create New...

Important Information

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