Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by hooovahh

  1. Well I was having a hard time coming up with the words of what I actually needed. In my mind MoveBlock took a pointer to an array returned from a DLL and gets the actual array of data in LabVIEW. I wanted the opposite, which was to take an array of data from LabVIEW, and get a pointer for it. I agree the title is terrible, and MoveBlock can do both operations, with the only extra needed is allocating the memory with DSNewPtr, and releasing the memory with DSDisposePtr. That totally makes sense now. Thanks.
  2. That's what I thought, which is why I was confused by the datatype that the DSNewPtr returned for an Integer Sized Pointer as a U64.
  3. Aw man, you're telling me an undocumented feature that can make my program perform better, but also unstable, isn't the right approach. Fine I'll stick with the CLNs. But it is very tempting to use this node, and just lock down the VI and put up all kinds of warnings. About the 32/64 bit through. So on my 64 bit Windows, but 32 bit LabVIEW, the memory pointers are always 64 bit, and but it looks like it is always only using 32 bits for the address. This is using the "Integer Sized Pointer" for the nodes. This is apparently an I64. Shouldn't it be an I32, and only on 64 bit LabVIEW, be an I64? Also these should probably be unsigned right? But likely doesn't change the functionality?
  4. Thanks, I did figure it out. Using the linked example was very helpful. First I think the pointer wasn't being put at the right index, so data was being read at an address and then that was being sent. Then the example used I32 not U8 as the data of the array, and there were extra zeros between data points. Seems all good now.
  5. So I'm dealing with calling some DLLs for external communication. When you call the DLL one function returns a pointer to an array of data. Using the MoveBlock I can successfully get the array of data back into LabVIEW. But one issue I'm having is that I also need to go the opposite way. I have an array of data in LabVIEW and I need to send it to the DLL. I realize the normal way you would do this is by calling the DLL with the Array Data Pointer on the Call Library Node. The problem is the data I need to reference, is actually a reference in the reference. In LabVIEW I have an array of U8 like this: [0]=0xFF [1]=0xAB [2-5]=Pointer to Data [6, 7] = 0x1234 I'm already calling the DLL passing in the array of 8 bytes using the Array Data Pointer, but within that array needs to be 4 bytes, referencing another pointer for another array of data. Is there a way to create a pointer in LabVIEW to some array of data? Then I can put it in my array, and send that? Sorry my C and DLL calling experience isn't as good as my LabVIEW experience and even finding the words to search for are difficult since it returns all kinds of information about MoveBlock, and LabVIEW control references. Thanks. Edit: Okay looks like I might need DSNewPtr to make a pointer, that I can then pass into the DLL. It is partially working, it just isn't the data that I put into the pointer.
  6. Sorry I'm just trying to work out how I'm going to support helping the community, in the event that management decides to not go the subscription route.
  7. I messaged the site admin again. Also remember there is a Community Edition, and presumably there will be for 2022. So a subscription and payment aren't required for 2022, but an NI account in this case would be.
  8. I'd first ignore LabVIEW and just look at the theoretical limit using command line tools. I used Iperf in the past between two computers with one setup to be the server, and one the client. The fact that you see 100% makes me think there is a different bottleneck.
  9. This is very different for multiple reasons. But honestly these types of subscriptions don't bother me, because they often are for features you didn't pay for. This isn't someone paying for seat heaters, and then having them taken away and now you have to pay a monthly fee. In this case you had the option to pay for the seat heaters up front on a single cost (perpetual), or you now have the option of a monthly fee. Choice is good. I don't think the "Full Self Driving" of a Tesla is worth the $12k they are asking. Especially for a beta feature tied to the car, not the owners account. Which is why I think it is a nice option that they have subscription option that people can buy into for a month if they have a long trip planned. I still won't personally get it but I like that there is choice.
  10. Here's a thread on LAVA years ago with some VIs to get a list of what groups the user is in. In the past I've had a couple of groups for various features of the software. An admin would assign what user can do what features, and then in my software I'd just query the users access and enable things based on that. I also used DSC years ago and it was fine, but I'd prefer Windows security since group policy can dictate things like passwords expiring, and password rules.
  11. Dan I think you might be misunderstanding OP. NI allows you to recertify by attending and participating in NI event. If you get 50 points, you get to renew your CLA, or CLD without having to retake a test. Attending a user group is 5 points, presenting is 10. I still have time, but yeah I'm also going to be struggling to get enough points when needed. I'm either renewing by points, or not renewing at all. If there are any more online user groups taking place it would be nice to know about them so I can attend. I've been slacking for sure.
  12. SystemLink Enterprise discussion moved to here.
  13. Yeah I'm concerned about this too. I have about a year and a half so I'm not screwed yet, but I'm going to have to focus to make sure I get there. I plan on going to NI Week/Connect next year, and doing the beta this year. This on top of attending and presenting at user groups should be enough. Previous years I renewed by points without even trying.
  14. This is a neat feature, but I feel like it would have been more beneficial had it came out 10 years ago or so. We've struggled with multiple versions of LabVIEW and drivers on a single OS, so now many developers will use VMs or Docker to sandbox a project to only have one version of LabVIEW, and the right version of the tools it uses. I feel like we've all gravitated to this due to the issues that come up with trying to manager version interoperability. I do still have a few versions of LabVIEW installed on my main machine. But if I'm ever building a binary I make sure and do it in the right VM for the project, so an older project doesn't now suddenly rely on the newest version of some dependent tool.
  15. Congrats, and I hope you find your new work rewarding, and stimulating. Thanks for all your help to the NI community, and LabVIEW in general.
  16. Spurred by Tim's post elsewhere, I did a Google search and found this page talking about TestScale. Apparently Averna is familiar with it, so that would make me assume it is more than a preliminary PowerPoint.
  17. By standing farther away.
  18. I knew if I posted this image, there would people over analyzing it...because that's what I'd do. The downstairs is actually the kids play area, and a utility room with laundry, water heater, and furnace. There isn't much furniture like the other rooms because it is just a place for large amounts of coloring, painting, and toys. But it isn't done yet. I also have the reverse of this, which is the traditional breaker list, with words describing what it controls. The garage is a separate subpanel but I don't think I'll do the layout on it since it is so simple, and I can turn the whole thing off if I need to work on something. I don't plan on moving for a while, but I hope whoever gets this house after me appreciates this.
  19. I wanted to have a 2D drawing of my house's layout, so I could find have a clear picture of what outlets and lights were on what breakers. I ended up using PowerPoint because it had tons of shapes and was easy to use. I tried a couple of other 2D drawing things first but for a one off I figured it was easy enough. I showed it to a friend who was impressed that it was PowerPoint. Here it is, not quite finished. But this reminded me of a presentation I saw a couple years ago about how PowerPoint has lots of unused powerful features. It is an hour long, so maybe skip out on some in the middle. But experimenting with the morph features, 3D models, fractals, context aware designs, and using it for full screen programs are some of the topics. I especially love the library of 3D models.
  20. As a user I'm not entirely sure I need to know what control values I changed. Some other software does have a visual indicator of a control value changing from the default. But most of the time, like in the LabVIEW config dialog, I just change all the things I want to, and then click OK or Apply or whatever. But if you do really want to have some kind of visual indicator of a change, maybe you could have a higher level indicator. In my software I mentioned I have several Pages, each of which is a VI, with a listbox on the left displaying them all, and a subpanel on the right for whichever is selected. In my software if the user clicks Apply or Ok, it will figure out what pages have been changed, and then publish to a public event that a config change has taken place, and what pages were changed. This way the software can be told if something changed that the code module needed. If the power supply page was changed, odds are the power supply actor is going to need to reload the config, and the logging actor doesn't. If the debug page is changed, more actors are going to need to know about it and reread the new config. So along those lines I bet you could have a visual glyph in the listbox, that shows that there are unapplied changes in that page. It won't go down to the control level but might be handy as a reminder of the pages the user changed settings on. Oh and I haven't needed this but I wonder if you could have a "Load Default" either for each page, or a right click option on the listbox.
  21. Good advice. I just wanted to add that I was using the OpenG INI stuff for years because of how easy it was to save and load a panel to a section of an INI file. I'd have a set of pages as separate VIs that get loaded into a subpanel, and it was easy to just save and load the whole panel to a file. This started to have lots more functionality and these panels could run and have tables or trees that would eventually get saved as arrays of clusters in the INI file. I eventually found that the performance from these OpenG functions was quite poor when there are arrays of clusters of arrays of clusters since each I think line in the file was a separate call to the NI INI VIs. At the time I hacked in a way to write the data in a flattened, non-human readable format for these large data types. The MGI Read/Write Anything is much better performance-wise due to a rewrite of how it works. If I were to start over today I would consider JSON instead.
  22. I don't understand the connection. They were running it on a low power laptop. They were a student. They were (and continue to) be concerned with the climate. They were (and continue) to consider themselves poor. Not that it matters.
  23. Oh I have gotten malware from a shady torrent. Just never anything NI related, seems like it is a pretty niche category. I do remember once getting photoshop for a friend, and the cracking team added a splash screen on the software startup that was an advertisement for climate change. You had to sit through a 10 second page telling you about their efforts before the software would start.
  24. Now I don't think it is completely fair to take what someone said during a presentation, and quote them out of context. But I just love this from Darren's presentation: If NI had a replacement for Project Providers that was documented and stable and all that, then I won't suggest anyone make a Project Provider plugin. Until then I say there is a time and place for them, just knowing the edge cases, documentation, and support issues. I think Darren's presentation does a good job of cautioning others.
  25. I understand Rolf's concern, and others should listen. However of all the NI software I've gotten from non-NI sites, nothing has ever came with anything nefarious. They typically package the NI software untouched, along with the things that are shady separately. That shady stuff might be executables that perform activation, DLLs or EXEs that replace functionality after an install, or applications that generate offline activation codes. That being said I'd still not encourage anyone from getting NI software, from anywhere other than NI's site. Policies like this make that pretty difficult.
  • Create New...

Important Information

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