-
Posts
1,179 -
Joined
-
Last visited
-
Days Won
109
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Neil Pate
-
Recently I have tried to package up some code as a .NET Assembly. I managed to pack some pretty complicated LV2019 code (including some LabVIEW classes and dynamically called code) into an assembly and was able to call it just fine from a simple C# console application. However, this does not work when I moved over to LV2020. To make things simple to try and get to the root of it I created the simplest possible example I can think of. One copy is in LV2019 and it works fine, the other is LV2020 and it does not work. The assembly builds fine in LV2020, and indeed is callable from LabVIEW code. The test is just a simple Increment VI. This works fine when the assembly is built using LV2019, the num variable is correctly 2 after running this line of code. However in LV2020 I get the following exceptions after running that line System.TypeInitializationException HResult=0x80131534 Message=The type initializer for 'MyAssemblyNamespace.LvClient' threw an exception. Source=Increment2020 StackTrace: at MyAssemblyNamespace.MyTestClass.Increment(Double input) at Increment.Program.Main(String[] args) in C:\dev\Scratch\DLL Build Test (2020)\Source\C#\Increment\Increment\Program.cs:line 10 Inner Exception 1: FileNotFoundException: Missing Dependency in: Inner Exception 2: VIAssemblyException: Missing Dependency in: I have tried playing around with including the LabVIEW Interop assembly in the C# application (C:\Program Files (x86)\National Instruments\Shared\LabVIEW Run-Time\2019\NationalInstruments.LabVIEW.Interop.dll) and changing this to 2020 for the LV2020 version, it does not seem to make any difference. The LV2019 version runs without this assembly included in the project. Is this something to do with the GAC? This is now getting into the details of .NET that I am not really very familiar with. Does anyone have any tips for things I can look into? I have attached a zip of everything for anyone curious. Build Test.zip
-
One of my old customers is having an issue with the TSM-1017 losing its ability to be calibrated. The system runs on a cRIO and the screen is attached with a USB cable as well as the DVI cable. On Linux RT there is an application you can run that brings up a four point calibration, but apparently this application does not run anymore. This did all work once upon a time, but the system has been out of my hands for a very long time. NI support gave some very manual linux-ey commands to reinstall drivers or something, but I do not think this worked. Has anyone come across a situation like this before?
-
https://meh.com/forum/topics/building-the-plane-on-the-way-up tl;dr the ground based decoder for some of the comms on Voyager was built *after* the craft was launched, and it still to this day reliably receives data. Wow!
-
Exactly why we need NI to buy in to the idea, otherwise it will never get off the ground.
-
Excellent idea, I have added my kudo! I don't think this will get much traction from NI but it would be really nice to see this as something semi-official. Once you know what you are doing it is not super complicated to get RT linux running on a desktop.
-
I have created some code that allows me to translate the GUI language on the fly at runtime. Is anyone else interested in this? At the moment it is a bit coupled into my actual application but I think I can extract the relevant bits. It supports pretty much any latin codepage language and once upon a time did also support Chinese (but I have not tested that in quite some time). Obvious disclaimer here: I just want to share what I made, but use at your own risk, and I am definitely not a UTF8/16 whatever expert so there might be some stuff that is just plain wrong.
-
Git detatched head. All of a sudden this makes sense!
Neil Pate replied to Neil Pate's topic in Source Code Control
I am not *that* paranoid, but certainly I like to push my work at the end of each day. I am not actually anti-git, it is just taking me a while to get used to its best practices and nuances. -
Git detatched head. All of a sudden this makes sense!
Neil Pate replied to Neil Pate's topic in Source Code Control
I guess what I mean is I find it strange that people would even have local branches that are not pushed to the server. Maybe I am just paranoid about my house burning down, my computer getting stolen of my hard drive dying. For me one of big benefits of cloud based VCS is that I almost always have an up-to-date geographically distributed copy of my code. -
Git detatched head. All of a sudden this makes sense!
Neil Pate replied to Neil Pate's topic in Source Code Control
The thing I still find a bit strange is how it is possible for the remote and local branches to be totally different (even different names). I totally get that the local branch can be out of sync if you have not done a push/pull to the server, the thing that seems weird to me is that the local can have a totally different structure. This is just something I need to get used to. -
This morning I finally realised why I semi-regularly get into a detached head state (I think I know why...). In git there are several different options for checking out a commit (checkout commit, checkout branch etc) and I never really paid much attention to the subtleties of these. As far as I thought they all did the same thing, that is revert the local code to the state of that commit. It turns out that my understanding was flawed, and every time you check out a single commit (rather than the actual branch) the current state will not point to any particular branch and you will be in the detached head state. I find this a bit weird, as I presumed if you checkout a commit in say the middle of a branch somewhere you would still be on that particular branch. Checking out a branch will always checkout the latest commit of that branch. This article explains it nicely. I have not been too scared of detached head for a while now as I know it can be easily fixed just by making a new branch, but it is nice to know why this actually happening. Happy gitting! (next step in my git mastery is to understand the subtleties of local and remote branches).
-
I think LabVIEW is going to be around in some form for at least another ten years, primarily due to how entrenched it currently is in the niche it fills. However, if I was starting my career again in 2021 I would definitely not choose LabVIEW as my primary language of specialization. I think the poor decisions NI have made over the last ten years will lead to its irrelevance/obsolescence, which I am genuinely saddened by. It pains me to think where current gen LabVIEW could be if the money and time funneled into NXG had been put to overhauling current gen.
-
I didn't say perfect...
-
-
It really makes sense to me to have the MoveBlock be the fastest when replacing a row (or subset of a row). I wonder if the difference is also more exteme as the size of the replacement changes? In other words replacing a section 1M elements long is probably much slower when doing it element by element compared to a single MoveBlock call.
-
I actually have a scenario where your MoveBlock method might be faster. Using the primitives you cannot replace a portion of a row (which is actually what I want to do). This should be a lightning fast operation but I have to either do it item by item or index out the row first, replace a portion of it and then replace the 2D array. My code might be sped up a bit with an In Place structure, I have not yet tried this.
-
Yes I did. Actually my first benchmark was just to make the change manually in the VI and re-run it. The results are the same. Sorry my picture was not good, if you look closely I introduce some forced data flow from the first structure to the second so that they do not run in parallel as I did not want to bias the results in any way.
-
Graphical programming for the Nintendo Switch - Game Builder Garage
Neil Pate replied to Dataflow_G's topic in LAVA Lounge
That looks cool! My eldest is the right age but has literally zero interest in this kind of thing, my younger one is much more into this but right now is a bit too young.