Jump to content

hooovahh

Moderators
  • Posts

    3,392
  • Joined

  • Last visited

  • Days Won

    284

Everything posted by hooovahh

  1. I know that each CAR and bug fix probably has a huge amount of information about it. Things like under what conditions it is reproducible, and what work arounds are available. But I can't help but think that NI could have been a little more descriptive with their one sentence summary of this bug fix. Also I thought it was odd that a patch was released for a version of LabVIEW which is not the latest, and by that I mean 2012 which was released a few weeks ago.
  2. Wow very tool tool, not sure how I didn't see this sooner. One thing I wanted to bring to your attention that you may already be aware of. I found that some more complex data types cause the XControl to crash in a strange way causing me to have to kill LabVIEW. If the data type is an Array of Clusters, and in that cluster is an element that is an array, I will get the following error: This error mentions to Right Click to fix the issue. But at this point if you right click the control, this VI becomes un-responsive and cannot be closed. If you don't right click the control you can still control the VI and stop and close like normal. This was seen in 2011 SP1. Attached is the example VI I used which causes the error saved in 2011. Is it possible to accommodate these more complicated data types? Or possibly just detect these data types, and not attempt to read them into the XControl so that this dialog and lock up issue aren't seen? Thanks. Array Probe Test.vi
  3. I'm sure NI would love to hear your feed back. That being said I mostly agree. I knew it was bad when I noticed one of the members of the audience remoted into his machine at work with his iphone and was doing LabVIEW work from his phone. I did like how they mentioned some of their new hardware platforms, but I already knew about the. What I didn't know about is LabVIEW's new 2012 features which I was happy to see them demonstrate.
  4. My solution to these issues would not be ideal at all, but it would go something like this. You log in to the PC (Windows login) this can either be domain controlled or local. Then run the LabVIEW software, or have it in the startup. On start of the application LabVIEW gets the user that is logged in. By looking at the "cmd /c set" results you can determine if the PC is on the domain or not. If it is then use the Windows command line "Net" to get the groups the user is a member of. If the PC is not on the domain, use "Net" again to get the groups that the user is a member of on the domain. Using this information the software can enable or disable parts of the UI to restrict the user. If the user wants to log in as someone else, I would use the command line function "Shutdown /l" to log them off where they will then be presented with the Windows login. This way LabVIEW never has the password, and the user never types it in while the PC is logged in (also deterring software keyloggers). If the user wants to perform user management and add users, or modify privileges, you can call a Windows program. Local users and groups can be edited through Lusrmgr.msc. None of this would rely on .Net, or ActiveX just Windows command line programs which have been standard for several versions, but sure Microsoft could for some reason change them. Non-Windows...yes you are screwed.
  5. In the past I would avoid all situations that would cause me to handle passwords in my code. My code does not handle ISO rules for password protection, and it would be quite some time to develop those features. Then it would be even more time to have meetings certifying my code. Having reviews, and audits to verify the protection it performs and that it works properly every time. Then the verification procedure to have records of its functionality. Instead I would rely on Windows user management, or rather domain controlled management. If that wasn't an option I would use TestStand user management. If the project wasn't using TestStand I would push for DSC which adds user management. The point I'm trying to make is that personally I would not use my own code to perform security other than for a deterant, and not unauthorized access that would compromise any thing important. My opinion is that it is more cost effective, and safer to rely on 3rd party software that is off the shelf, and has already gone through any certifications required. Of course that being said I understand the constraints people are in and why these might not be viable options.
  6. Couple things. First there's no reason to re-init and close the serial port every time the loop runs. Init the serial port before the while loop, then close it when the loop has finished executing (you pressed the stop button). The reason you are getting zero data, is because you are updating the waveform chart, outside the case structure. This means even when there is no data on the serial port it will add data to the chart. Move the chart to inside the True case, where you are reading, then the chart won't be updated if there is no data to read.
  7. Thank you I didn't know this VI existed I've always been using the OpenG Boolean Trigger VI, which seems to have a better name, and icon, for the function it performs, but I would rather use a NI VI than an OpenG VI if their functions are the same.
  8. I remember there was some kind of odd-ness with a few tree controls as well where two tree controls looked the same where you could select items by checking boxes in one, but the other was an indicator with boxes that couldn't be checked. Also don't let your self be impressed with the graphical view shown in demos. With more than 10 requirements that view is worthless. I remember a few projects with several hundred, and one with over a thousand requirements where that view was just a blur of lines.
  9. What version of DAQmx is installed? Likely not it, but I didn't see it mentioned any where. It sounds like it is seen by MAX to some extent so I'm guessing the version installed is fine.
  10. That's nothing. I can't seem to find it right now but I have pictures of me unpacking my carry on luggage for a business trip that was 2 weeks. I had one bag with clothes, and one laptop bag with all my electronics. When I got home I took a series of pictures as I unpacked because I had a very large pile of clothes, which appeared to be 3-4 times larger than the suite case that contained them. As you can imagine the bag with the clothes in it was very dense and heavy.
  11. Yeah I couldn't help but notice you are running XP. I'm sure you know this already but I like to remind myself, XP came out almost 11 years ago. Service packs have changed XP since that original release, but I can't imagine using very much 11 year old software today that was designed for consumers. Good luck with your future upgrades.
  12. Here is my 2011 in Windows 7 x64. I'm having a difficult time seeing any difference between the two. I haven't used any thing earlier than 2009 in so long (it feels like more than a few years) so I can't say when the change happened. That only had 9 Kudos and it got implemented? I guess there's hope for any feature request.
  13. You dislike the concatenate string function so much that I use it just out of spite. But seriously I have a bad habit of over using the concatenate function and find that using format into string is almost always better.
  14. The OpenG tool look interesting. Was there a reason it wasn't built into a package? Possibly into the Application Control? Or Builder package? I think there are places that the OpenG method, and my method could both be improved. Over the weekend I was thinking about all the stupid things I did in mine that could be much simpler, and support for array of controls could be made simpler too so you just need to make a scalar of the data type then specify the size. Not sure if I'll ever have time to improve my method but I wanted to get it out there for others to look at and possibly improve on.
  15. So in a recent discussion here the was talks about scripting polymorphic VIs. At the time I was surprised to hear that no one had made scripting code to generate polymorphic VIs. This feeling passed when I realized several people have attempted to generate polymorphic VIs through scripting. There are some on NI's site here, as well as some older ones on Lava as well. Still I didn't realize this until I had taken my own go at it. So here is a really beta version of my attempt to generate VIs that are 99% the same as another VI, with the small exception that the controls on the front panel have been replaced with a different control. Attached is my quick and dirty approach. Open "Main Create Wizard.vi" and run the VI, it will prompt you for a VI to use as a template. I have included an OpenG version of the Filter 1D array under the Example Files, I also renamed it so it shouldn't conflict with already installed OpenG code. Then choose the controls that you would like to replace in the new interface by clicking the boolean corresponding to the control connected to the connector pane of the VI you selected. Then choose the control types to replace the selected controls with. These control types are just controls on disk and by adding any control to the folder "Control Types" you will be adding them as an option in this window. At the moment it is quite limited. You can only replace controls that are on the connector pane, and they all must be replaced with the same control. So you can't do anything fancy like replace one control with a path, and another with a 1D array of a path. I think that wouldn't be too difficult to add but I didn't want to spend too much time on it. The code should then generate a VI for each control type you selected in the same folder as the template VI you selected at the start. This code relies on some OpenG packages, I'm not sure all of them but File, and Array for sure. Let me know if you have any questions, and feel free to modify and post your updates. Create Polymorphic VIs hooovahh.zip
  16. I'm actually quite surprised no one has made a scripting VI (or no one has shared it) that can do this. I agree it should be build into the IDE (which is why I gave a Kudo) but this doesn't seem that hard. If I get some time I may give it a try.
  17. I'll be at the Walled Lake location. It's hard to tell from the site but is this basically the NI Week presentation on 2012 with a little Q&A?
  18. I just had to try the link to see what comes up. Turns out this thread is the number one result for whatever my hear desires on this site, go figure. And just to stay on topic I will not be attending NI week this year. My boss mentioned it, but I said no. I just started this new job and didn't think it was good timing to leave so soon after starting. But we agreed next year I will be going. I've never been to NI week but am excited for the chance to go, even if it won't be for another year.
  19. I realize some of my posts are a little long winded so I don't blame you for not picking up on what I was trying to say. In my first post I said this: Which was my way of saying that the search should be throughout the string. If I knew it was at the beginning I would use your technique with the string subset. Also I may be missing something, but why does concatenating a "^" symbol cause the Match Pattern method to work faster?
  20. I'm starting to get inconsistent results, but from what I've seen it looks to be one of the better solutions but not the best. The best I've seen would either be Method 3, or Method 3, modified as wouter suggests. In my tests this did not perform as well as the others. It would usually be 4th or 5th place in any array size. Not terrible but not the method I would prefer.
  21. I'm not quite sure why but your VIs on my system took 34 seconds to search through, using 10,000 items in the array, and it took over 900MB of private memory. To compare my original post took a minimum of 169ms and 1.4GB of private memory for all 6 methods. At the start of all of this I said the only real criteria was time for execution so the memory usage is a little unfair to add as a requirement, I simply wanted to give a comparison.
  22. An alternative to the toolkit could be a command line call to FTP the files. I think the toolkit version is the clearest solution, but if all you want to do is this one function you may be able to do it another way. All though it is just $500. Windows has a built in FTP command line program (just FTP at a command prompt). I've never used it but I assume it has the ability to login to a server and send a file over.
  23. To help with the clarity I've made a VI that shows the error. It will make a new VI, drop down an event structure, add a frame to it, and then optionally attempt to remove that frame, then open the block diagram to see the result. If you choose to remove the frame after making it, there will be the error we are talking about.
  24. Thanks Crelf, you saying that made me realize this may be better answered at NI's forums so I posted there as well.
  25. Wow thanks alot Wouter. I'm not sure why I didn't think of pre-allocation. I think this would make a nice little reuse nuggest for the community or OpenG some day. I also did notice that with a smaller sample this method 2 with pre-allocation doesn't always win but it may be the best solution overall.
×
×
  • Create New...

Important Information

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