-
Posts
35 -
Joined
-
Days Won
8
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Dataflow_G
-
Seeing a Malleable VI (.vim) implementation
Dataflow_G replied to GregSands's topic in LabVIEW General
I posted an idea on the idea exchange on viewing a vim's instance VI, but it looks like that ability was added to LabVIEW at some point (by AQ?). The labview.ini token allowOpenFPOfInstanceVIs changes the behavior of the Convert Instance VI to Standard VI option to instead open the instance VI. I'd been using the convert to standard / ctrl+z method but it's very easy to forget the ctrl+z bit. This token is much more useful. -
Please can anyone help me optimising this code
Dataflow_G replied to Neil Pate's topic in LabVIEW General
Is working with the image data as a contiguous 1D array, rather than a 2D array an option? I wrote a small image library for LabVIEW (G-Image), and found working with 1D arrays of image data consistently faster than 2D arrays. Attached is a quick version which performs the per item + row methods using a 1D array, and both are quicker than their 2D counterparts. Raster 1D 2015.zip -
Here's a couple more promotional videos recently unearthed. NIWeek 99 Highlights: NIWeek 2000 promotional video, with invitation by Dr. T:
-
Running zmq package on Linux Ubuntu20 (c library build)
Dataflow_G replied to Łukasz's topic in Linux
Thanks for confirming its working 👍 -
Running zmq package on Linux Ubuntu20 (c library build)
Dataflow_G replied to Łukasz's topic in Linux
The problem looks to be zmq_labview.c is calling functions in the zeromq library which are specified as draft functions, and are disabled in stable release versions. These functions are listed in the compilation output as implicitly declared, and when configuring the CLFN in LabVIEW, it throws a warning it can't find them. This is likely the cause of error 13. If you check zmq.h, it has the following comment: /******************************************************************************/ /* These functions are DRAFT and disabled in stable releases, and subject to */ /* change at ANY time until declared stable. */ /******************************************************************************/ #ifdef ZMQ_BUILD_DRAFT_API ... /* DRAFT Socket methods. */ ZMQ_EXPORT int zmq_join (void *s, const char *group); ZMQ_EXPORT int zmq_leave (void *s, const char *group); ... #endif If -D ZMQ_BUILD_DRAFT_API is added to the compile flags, the implicit declaration warnings are no longer present. But you still have the problem that the stable release of zeromq doesn't have these functions available. So you'll either need to find and install a draft release (these don't appear to be pre-built for Ubuntu), compile it yourself with draft APIs enabled (possibly using -DENABLE_DRAFTS=ON), or replace the functions from the draft spec in zmq_labview.c. -
There's a couple of videos on NI's youtube covering new hardware and software products. They're both heavy on marketing and light on details, but put things like TestScale into context. Hardware: https://www.youtube.com/watch?v=-8VGCjzJjWk Software: https://www.youtube.com/watch?v=hH8VFB9jtzM Edit: That ShireyStudios youtube account also uploaded some new NI Connect videos in the past couple of days. Did they manage video recording of the event? Kinda surprised the vids aren't on NI's main account.
-
Malleable Buffer (seeing what VIMs can do)
Dataflow_G replied to drjdpowell's topic in Code In-Development
I can't speak for the buffer library, but I've observed this behavior many times with malleable VIs in my own code. One thing (bug?) I've noticed (and reported on the dark side) is that nested type specialization structures within a vim can lead to broken wires. This is generally as a result of an assert vim inside a type specialization structure inside a vim. The callers wires are either visibly broken but otherwise runnable, or just broken even though the input types are supported. The LabVIEW 2021 SP1 bug fixes mention a fix (bug ID: 1596011) for vims and erroneously broken wires, but I've not tried it out yet. I really hope that's the end of the broken wire quirks with malleable VIs, as they're a really great feature. -
Yeah, LabVIEW's Linux audio support hasn't been touched in years. It's built on OSS, which was superseded by ALSA on Arch Linux in 2002. None of the Linux distros LabVIEW Community Edition supports ship with OSS support, but I believe it can be added via an ALSA-OSS translation layer. Also worth noting LabVIEW for Linux can only write 16-bit WAV files, and not IEEE float WAVs (which can be written in LabVIEW for Windows). If you want to play/capture/record audio under Linux, I'm working on an open source, cross-platform audio library for LabVIEW called G-Audio. It's been tested under Arch Linux and CentOS, and supports playback and capture on ALSA and PulseAudio backends, supports writing PCM / IEEE WAVs, and can read WAV, MP3, FLAC, and Ogg Vorbis files.
-
Something I obviously don't understand about a Picture Control
Dataflow_G replied to Neil Pate's topic in User Interface
Sounds like a cool project, especially with a real 6502 thrown in. I remember seeing an open source Apple II emulator written in LabVIEW: https://sourceforge.net/projects/labviewapple2/ Not sure how well it runs, but might be interesting to compare notes. -
Something I obviously don't understand about a Picture Control
Dataflow_G replied to Neil Pate's topic in User Interface
The diagonals need to be in the form: [0,1] [1,0] or [1,0] [0,1] The 'M' only has a single pixel, or three pixels in a 2x2 grid area, so the anti-aliasing isn't applied. Not sure why it has been implemented this way. -
Something I obviously don't understand about a Picture Control
Dataflow_G replied to Neil Pate's topic in User Interface
It looks like the picture control is trying to be smart, and anti-aliases diagonal pixels of the exact same color. If the colors differ by a single bit, the anti-aliasing doesn't occur: The picture control also does some kind of pixel hinting - try resize the picture control when the zoom factor is high. You can see it snaps the pixels to some hidden grid in an effort to align it to the picture control bounds. I don't see any properties for disabling the anti-aliasing or the hinting. Perhaps a 2D array of color boxes could be used? With the classic controls there's no gaps between elements: -
Graphical programming for the Nintendo Switch - Game Builder Garage
Dataflow_G replied to Dataflow_G's topic in LAVA Lounge
-
To add to the list of potential red flags: Windows Registry Access VIs VI Scripting calls (deleting or subtly modifying existing project code) Large VI file sizes / large constants (malicious VIs stored as byte arrays, so avoiding VI Analyzer's checks) Bugs known to crash LabVIEW Shortened links in VI help Non-standard block diagram colors (hiding a subVI on an identically colored BD) Obfuscated code (strings masquerading as boolean arrays, numbers with hidden precision, etc): Very small subVI icons (think a VI disguised as an error wire, as seen on reddit😞 In reality flagging a package based on any of the previously mentioned criteria will be almost exclusively false positives. Perhaps providing a list of function types a library uses would better help the developer assess the library, similar to the app permissions shown when downloading an app on iOS / Android. So a library may use Network, Scripting, and File System. As LogMAN said, it's ultimately up to the developer to take responsibility for the code they use. obfuscated_LV2014.vi
-
What do you think of the new NI logo and marketing push?
Dataflow_G replied to Michael Aivaliotis's topic in LAVA Lounge
Here's some more rebrand info I found by one of the design companies behind NI's rebrand, including a mock-up of a green PXI with an interesting font choice (I'm pretty sure that's a Q). -
What do you think of the new NI logo and marketing push?
Dataflow_G replied to Michael Aivaliotis's topic in LAVA Lounge
I don't mind the new green on the landing page of ni.com, but elsewhere on the site the new theme is a bit too much. I wanted to fix the near invisible links that @LogMAN ran into, but got a bit carried away: If anyone is interested in using the blue style, you can download it from here. Be warned it's not perfect, there's still lots of green bits on mouse over etc, but I find overall it makes the site much more readable. If blue isn't your thing, the primary color can be changed by setting the root --forrest-green color to something else. -
What do you think of the new NI logo and marketing push?
Dataflow_G replied to Michael Aivaliotis's topic in LAVA Lounge
There is Stylus which is a malware / analytic free fork of Stylish. BTW, did your avatar succumb to the rebrand too? -
What do you think of the new NI logo and marketing push?
Dataflow_G replied to Michael Aivaliotis's topic in LAVA Lounge
The logo is pretty uninspired and looks lifted from this company. It's going to take some time to get used to the green theme too - in my mind NI = blue + white. I wonder if NXG will get a green coat of paint. I'll reserve judgement on the content until I've seen the webinar, but it's heavy with cringe worthy marketing speak. Also, a moment of silence for Nigel the NI eagle. Soar Ambitiously™, N 🦅 -
NXG, I am trying to love you but you are making it so difficult
Dataflow_G replied to Neil Pate's topic in LabVIEW General
The very first comment in that thread is interesting. It's no coincidence NXG looks like LEGO Mindstorms NXT. There was an R&D project in 2009 called LabVIEW Notebook Pioneer. You can see it here - video 1, video 2 and a screen cap: It looks like a very early NXG concept (single window, panes, docked palettes, data stored with project, etc). What's interesting is Christina's comment in the linked blog post. It would seem NXG's roots were partly influenced by NXT. Not saying it's good or bad, just interesting that it was picked up on. -
Hmm, it seems the difference in resolution of primary vs secondary displays is being added to the maximized window on the secondary. In this case it's a difference of 640x320 ( or 2560-1920 x 1440-1080). If those numbers are then subtracted from the window bounds when the title bar isn't visible, they're within 1px. Looks to work for your resolutions and results too @nikp. Might be a better solution than toggling the title bar.
-
I'm seeing the same issue as @nikp, where the window bounds for a maximized window on the second display are way off. It looks to be related to whether the title bar is visible or not. There are two displays in a side-by-side configuration, the primary is 1920x1080 and the secondary is 2560x1440. Running under Windows 10 with display scaling off. I tried the examples posted in the thread @LogMAN linked to with very different results. @hooovahh's version worked for both displays, while @Aristos Queue's version only had correct results on the primary display. After trying to work out why they were so different, I noticed the title bar visibility was different between the two examples. The snippet below demonstrates the different results. When the front panel is on the primary display, the bounds only differ by one pixel when title bar visibility is toggled. When the front panel is on the secondary display, difference between the Right and Bottom values is huge. Calling GetWindowRect() and GetClientRect() from user32.dll on the front panel window has the same results when toggling the title bar visible, so it looks to be a Windows level issue rather than LabVIEW. In any case toggling the title bar visible works well enough. Not sure if it will help your application @nikp.
-
NXG, I am trying to love you but you are making it so difficult
Dataflow_G replied to Neil Pate's topic in LabVIEW General
Thanks. It was mostly to satisfy myself I wasn't missing some game changing feature or workflow in NXG that was hidden behind its slow and drab exterior. Like you, I haven't seen any examples of large projects running under NXG so wanted to document at least a small project. There was one NXG product owner who saw it and took the time to respond, and noted the event structure feedback was useful. I think it had some support for clusters of clusters (see Neil's example), but definitely not for classes and references. Here's a few more issues that I ran into: There's no auto-save VI recovery feature. Save often. Seriously. Accidentally mousing over the wrong thing can crash NXG. If I've gone to the trouble of finding and downloading offline help files, NXG should be able to locally search them (really, they should be included). The wire direction when wiring is wrong after the first anchor point. LabVIEW 20xx selects either vertical or horizontal based on the initial mouse move direction after starting a wire, and for each click when anchoring a wire. NXG respects the initial direction, but anchor clicks do not. I'm constantly tapping the spacebar to change wire direction. This really slows wiring down. Holding the spacebar and click+dragging allows scrolling around the block diagram (panning). If I've just clicked a structure (selected an event), pressing spacebar does nothing. I have to give 'focus' back to the diagram by clicking it first. The different library, tag, SLI (and probably other) views have no consistency in their look and function. Granted they each do different things, but it doesn't feel coherent. No case structure auto complete for enums. Can't type first few letters of enum in case and have it auto complete. Frustrating for very long enum values. There's no way to set the Z-order of front panel controls (I think there used to be in previous NXG versions?) I have to move controls to unplaced items and place them again to get the correct order. No icon view for cluster constants. More often than not, converted VIs don't have the structures, nodes, wires, etc placed on the block diagram's 5px (?) grid. This means any wiring changes can never be aligned properly without moving entire structures, tunnels, nodes, etc. Single wire segment can't be moved in large steps with shift + arrow keys. This is incredibly annoying. Let me disable animations. Palette flyouts/drop downs, pane show/hide, anything. Visual accessibility doesn't seem to be high on the list of NXG design goals, but at least let animations be disabled for performance reasons. -
NXG, I am trying to love you but you are making it so difficult
Dataflow_G replied to Neil Pate's topic in LabVIEW General
Thanks for putting down all your thoughts and providing examples, Neil. I agree with every point you've made. Have you used the Shared Library Interface editor yet? That's some next level UI inconsistency. I wrote a couple of blog posts on my experience converting a small (< 100 VIs, < 10 classes) LabVIEW project to NXG (see Let's Convert A LabVIEW Project to LabVIEW NXG! Part 1 and Part 2). During the process I made a lengthy list of issues and came to the same conclusions many people have voiced in this thread. Of the issues uncovered during the conversion, some were due to missing features or bugs, some a lack of understanding on my part, but a surprising number were due to interesting design choices. The TL;DR of the blog is there is nothing in NXG for me to want to continue using it, let alone switch to it from LabVIEW. Which is sad because I was really hoping to find something to look forward to. Here's hoping for a LabVIEW NXG: Despecialized Edition! -
Out of interest, what are the MD5/SHA1 hashes of the problematic lvanlys.dll? I have a LV2019 SP1 64-bit install (via NIPM, not the offline iso), and analysis functions are working. The copy of lvanyls.dll I have match the file size and modification date in your screenshot. Its hashes are: MD5: 8b57b1ab47c00387b370d3d0fac0a246 SHA1: 7d45297d3e1d10f1de5960c116c58b7dc186fd2e
-
Some more LabVIEW from the past, this time from The Minnesota Apple Computer Users Group newsletter, mini'app'les (December 1989). "Hubba, hubba, hubba!" Mini'App'LesNewsletter1989-12.pdf