-
Posts
3,401 -
Joined
-
Last visited
-
Days Won
285
hooovahh last won the day on December 6
hooovahh had the most liked content!
About hooovahh
Profile Information
-
Gender
Male
-
Location
Detroit MI
Contact Methods
- Personal Website
- Company Website
-
Twitter Name
Hooovahh
- LinkedIn Profile
LabVIEW Information
-
Version
LabVIEW 2020
-
Since
2004
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
hooovahh's Achievements
-
I'd need to see some code. For NI-CAN I usually start with the example provided by NI. Get that working first.
-
Oh I'm sorry I did a quick google search and of course the first search result shows a picture of an XNet device but when you click on it it shows the correct one. Well in that case you need to use the NI-CAN drivers which also appear on the Measurement IO palette. Note that you can't do the Signal API in NI-CAN with that hardware and can only use Frame API. But that's okay my conversion library returns frames. Part 3 of the CAN blog also goes over NI-CAN hardware. And again there are examples in the Help >> Find Examples. NI-CAN hardware is old and not getting updates. It also is only 32 bit binaries so it only works in LabVIEW 32 bit, but can run on 64 bit OSs.
-
With the XNet drivers installed there will be a new palette under the Measurement I/O for XNet functions. Also in the Help >> Find Examples there are several thing showing how to read and write frames on the hardware. Additionally I have two CAN blogs that might help out with Part 3 talking about XNet code for doing basic frame functions, and Part 6 which talks about the different XNet session types. But also if you are just dealing with CAN signals, and not frames you don't need my conversion library to work with XNet hardware. You can create the signal sessions and do the writing as single point session types which the hardware will then retransmit at the rate defined in the database. My conversion library is primarily used for situations when you don't have a Signal API and just have the raw frames.
-
Glad you got it working. In the future you can get the packages from a computer that is online and copy them to the other. These are usually found in the folder here: C:\ProgramData\JKI\VIPM\cache Finding all dependencies from that can be a pain. Oh and VIPM has a Package Configuration feature that lets you pick a set of packages, then save it as a configuration, and even store the package files in a single file. This VIPC file can be copied over to the offline PC and installed through VIPM without the internet. This used to be a premium feature but I think it is include with the community edition now.
-
hooovahh started following Write multiple images into TDMS file , read/write CAN Data USB-8473 , OpenG LabVIEW Zip 5.0.0-1 - stuck at the readme and 1 other
-
Yes this is the purpose of the Frame Signal conversion library. Development and discussion has primarily been taking place over on the dark side here. A more polished (but older) version can be found on my CAN blog here.
-
OpenG LabVIEW Zip 5.0.0-1 - stuck at the readme
hooovahh replied to PA-Paul's topic in OpenG General Discussions
I wasn't suggesting you were whiners. If I ask for support from NI I don't think that makes me a whiner. I was suggesting the changes you are proposing are useful for everyone, and that if you have useful changes, all VIPM users can benefit from them by having JKI use what you've developed. Because you are a developer. I also asked that question because I wanted to know incite into why VIPM does what it does so I can be a better developer. -
OpenG LabVIEW Zip 5.0.0-1 - stuck at the readme
hooovahh replied to PA-Paul's topic in OpenG General Discussions
Has anyone talked to JKI about this? I'm sure they make VIPM do this during the build for a reason and they would probably be interested in the changes you are doing. Like what? Are you referring to the earlier discussion, where you may have "32" in the DLL name when it is a 64-bit binary? I handle that by only performing the rename if there exists the correctly named DLL for the other bitness, on disk. Otherwise it leaves it. User32.dll wouldn't be renamed for multiple reasons. But even if we installed "MyAgeIs32.DLL" it wouldn't rename it unless there exists a "MyAgeIs64.DLL" and we are in 64 bit LabVIEW. Not perfect but I'd prefer that over editing the VIPM build environment. -
OpenG LabVIEW Zip 5.0.0-1 - stuck at the readme
hooovahh replied to PA-Paul's topic in OpenG General Discussions
Yes the *.* stuff would take care of a lot of this. But it seems VIPM does weird things to path during the build. That's why I did the post install renaming work. VIPM has the linking to a full path to the DLL, so renaming that linked path on install seemed like an easy way to make it work the way I wanted. A post install fixing the paths work as well, and in fact Jim posted a VI that can fix the paths on post install. My issue with this is it is time consuming for the post install to open a reference to every VI, find all call library nodes on the VI, and then update the path on them, and then save the VI. Especially if you are installing a ton of VIs. Renaming the DLL is much fasters. -
OpenG LabVIEW Zip 5.0.0-1 - stuck at the readme
hooovahh replied to PA-Paul's topic in OpenG General Discussions
I'm also in Windows only land, and renaming the DLLs in a Post Install has worked well enough so far. If we in a 64 bit LabVIEW for instance the post install looks for if there are DLLs named [X].dll but there exists an [X]64.dll. If so it will delete the [X].dll and rename [X]64.dll to [X].dll. This renaming bit also works in reverse looking for [X]32.dll if we are on a 32 bit version of LabVIEW. Development then is done in one bitness statically picking the correct DLL. I have no clue how difficult or complicated this gets supporting Linux. -
We bought a new perpetual license of LabVIEW for our VIA a few months ago. It worked just like the old one. I was able to add it to the VLA software, then create disconnected licenses for my users, or machines. The discount offered was frankly way more than we were expecting. It wasn't in the budget this year, but my manager was able to push it through. When this year is up, we will look into if it makes financial sense to purchase another year or not. I think we skipped 3 years of software buying, so upper management was happy to have saved those years in software cost, and am grateful we didn't take NI up on their offer to get a locked in price for 3 years on the subscription model. Oh and as for Windows 11, it doesn't have to be all bad. We have a set of software that gets installed on a base Windows 11 that uses OpenShell to bring the start menu back, ExplorerPatcher, and a couple WinAero Tweaker settings to do things like have the normal context menu, bring paint back, set remote desktop, and various other things people are used to. None of my users so far have realized it isn't Windows 10. These tweaks shouldn't be necessary, but at least there is options to make it better.
-
People will decorate their office with retro software boxes, and game boxes. So yes various LabVIEW manuals, books, and old software gets you a bit of nerd cred. I have a box of Windows 3.1 on my shelf next to my copy of LabVIEW for everyone, LabVIEW 7.0, and my bound thesis.
-
Write multiple images into TDMS file
hooovahh replied to Thang Nguyen's topic in Database and File IO
Writing strings to TDMS that are a byte stream can be tricky. I have a Read/Write Cluster to TDMS and it flattens it to a string. But as you noticed there needs to be special consideration for null. Well it also turns out that on different platforms there are other characters that need special attention too. You can absolutely do extra work on your images. But I fear that you won't get the performance you want. TDMS is crazy fast and all, but it sounds like a bonkers amount of data real fast, and I don't know if it will be able to keep up, especially if there is special code needed to convert a string ready to be written to TDMS so the null (and any other characters you want) get written correctly. Writing an array of bytes also sounds crazy for this application. The number of samples on the channels might approach NI's limitations for the data type, and then keeping track of where the offsets are for files would need to be a separate channel. I've done stuff like this for logging raw CAN frames to TDMS files but that seems like way less data. Honestly you might be better served writing to binary files, then having the TDMS file just keep an index of the file names or locations for replay. Not sure how I'd go about solving this. -
Thank you for your continued reports. If it continues to be a problem Michael will twist various knobs behind the scenes.
-
Because of a thread over on the darkside, I got the motivation to improve this code, and include the Google Material icons in it. I posted the package over on VIPM.IO. This uses the native 2D picture control for displaying icons like I wanted. It still requires Windows due to how icons are resized, but maybe that could be worked around if there is interest. https://www.vipm.io/package/hooovahh_boolean_vector_controls/ Install the package and its dependencies and you'll have a Tools >> Hooovahh >> Boolean Control Creation... Once ran it will start trying to display all the icons the toolkit installed. In the background it will be converting the vector images to 56x56 PNGs to be able to display them in the window. I tried being smart and having it prioritize icons that you scrolled to, but I honestly don't know how well it works. It basically takes about a minute after first launching it to have all of its icons displayed properly. You can use the tool during that minute but not all the icons will be available yet. From that point on you can scroll around and resize the window and it should work as expected, just a little bit slow at times. There is a single constant on the block diagram where you can change the icon side. At one point I had icon size be a control on the front panel but since it took about a minute to process all the images for every change I just left it. Some of the icons have multiple versions. If you left click on an icon and a window pops up you can pick from what version of that icon you'd like to use. Then create a control using that icon. You can theoretically put your own EMF files in the folder with the rest but at the moment it doesn't scan for new files since it is relatively slow to find all icons on every launch. What I'm saying is compromises had to be made. Maybe I could have a separate program that gets ran in the Post Install VI that starts processing the icons right away in parallel. That way the tool might be done processing icons by the time the user launches it for the first time. I did use the Post Install and Post Uninstall to do extra work since there are so many individual files. Normally you'd have VIPM handle the files but it took a long time. So the package just installs a Zip, and the Post Install will unzip them. This also means Post Uninstall needs to delete the extracted files. Not ideal but the install time was much longer otherwise.
-
One other odd side effect is I've seen several reports that are clearly bots, that think it is a reply system. The report will be a normal spam message but reporting some content. So at least those ones only I need to deal with and you won't see. Sorry again about all this. I have talked to the site admin again emphasizing the severity, and frequency.