All Activity
- Today
-
Jumper Bones changed their profile photo
-
LogMAN started following LVCompare and LVMerge Crashes
-
Welcome to the active side of LAVA! You may be happy to learn that perpetual licenses are back: https://www.ni.com/en/shop/labview/select-edition.html Binary files are always problematic when merging. Even LVMerge does not get it right all the time, especially when the differences are too large, which gives you the first clues: Whenever possible, avoid merges - no merge means no merge conflicts Establish a process to avoid merges - perhaps finish implementing the functional part first, then hand it off to the UX designer. Establish an environment of clear communication among developers - telling a colleague to wait 5 minutes for your work to finish so that they can base their work on yours is a very effective way to avoid conflicts in the first place. Merge changes in small, iterative cycles - this reduces the chances of merge conflicts and insane objects If more than one developer needs to touch the same code at the same time, review your architecture. Split large VIs into smaller SubVIs, build reusable components, separate concerns, etc... In my team we seldomly need to merge (perhaps once or twice in the past 10 years). We split the project into functional groups with clear boundaries. The lead developer is responsible for ensuring that the boundaries are maintained. When a team member needs to make changes that affect others, we first merge everyone's branches, then do the change, then continue with normal work. At least for us this has proven very effective. I can't say much about LV2021 because I'm still working with LV2019 but in general the SP1 version is more stable and reliable. Maybe take a look at the bug fixes and known issues to help you make a decision: https://www.ni.com/en/support/documentation/release-notes/product.labview.html?version=2021-sp1 For your merge issues, however, it will most likely make no difference. Since LV2024Q1, however, NI has made considerable changes under the hood, including new tooling for diff and merge: Improvements to Comparing VIs Changes to Compare VIs and Other LabVIEW Files Generate VI Comparison Reports with the LabVIEW Command Line Interface Perhaps more useful is the new feature that allows you to open a project without changing the save version, which means you can edit and save VIs in earlier versions (as far back as 2017) without having to go through any extra steps. This also means you could try to merge using LV2025Q3 and keep the merged files saved for LV2021. The chances are slim that the errors can be resolved in newer versions but it might be worth a try. And you don't need a license for that. You can evaluate LabVIEW for a couple of days (I believe up to 30 days). *cough* Community Edition *cough* - pardon me
-
Yes it is fixed. Thanks a lot!
-
Yanqun Xue joined the community
- Yesterday
-
LabVIEW Wiki is unable to create thumbnails
Michael Aivaliotis replied to LogMAN's topic in Wiki Help
I think this is fixed now. Please check. -
anthonyROQUE joined the community
-
Nibowen1990 joined the community
- Last week
-
pettaa123 joined the community
-
bialku joined the community
-
tinomana joined the community
-
hiwa joined the community
-
garrettc joined the community
-
dylzup joined the community
-
stitch joined the community
-
lv_dev started following LVCompare and LVMerge Crashes
-
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.
-
Zxero88 started following LVCompare and LVMerge Crashes
-
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
- 1 reply
-
- 1
-
- Earlier
-
Sathish Kumar A started following Michael Aivaliotis
-
Michael Aivaliotis started following LabVIEW Wiki is unable to create thumbnails
-
LabVIEW Wiki is unable to create thumbnails
Michael Aivaliotis replied to LogMAN's topic in Wiki Help
Ok, thanks. I will look into it this week. -
hooovahh started following LabVIEW Wiki is unable to create thumbnails
-
I sent Michael a message.
-
How to extract a circular ring from a Image?
dadreamer replied to Wang xiang yang002's topic in LabVIEW Community Edition
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? -
hooovahh started following Get monitor number from mouse location
-
@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......
-
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.
-
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.
-
bessire started following Static VI References with Class, in Class not allowed?
-
Static VI References with Class, in Class not allowed?
bessire replied to hooovahh's topic in Object-Oriented Programming
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. -
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!
-
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.
-
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?
-
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
-
The variant in your image is a cluster, not a string.
-
-
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:
-
hello I'm sorry. i use crio to transmis my cluster (vi envoie) (transmission) and receive in my program (reception) transmission.zip reception.zip
-
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.
-
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
-
Creating Strictly Typed VI References Without A Saved VI
bessire replied to bessire's topic in LabVIEW General
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.