Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by hooovahh

  1. I had a hard time downloading this, but it could be an IT issue on my side. The download would stall, and I'd pause, then resume to get it going again. After installing with default settings, I launched it and got an error "error unable to open resource files". I'll be performing a full uninstall and reinstall. It could be an issue on my end or an issue with the release. I probably should have tested this in a VM first... EDIT: Uninstall and Reinstall fixed it, not sure if that means there is an issue with upgrade or just me.
  2. Sorry if I wasn't clear. NI's ADCS has more or less been replaced by the ISO 15765 I posted online. It doesn't do hardware abstraction with classes (it should) but I was just in a hurry to post it online and thought most people would just be interested in the G state machine. Turns out most people are interested in a different things. The ECU toolkit is the one I've started to replace but may never be able to post online. This is the one that uses an A2L for XCP/CCP. If I had time to work on it I would probably update the ISO 15765 toolkit I posted online first to add hardware abstraction, and then make a post on how to flash an ECU using it. That is a lot less effort than re-writing the ECU toolkit. That documentation link isn't broken, it is just realllllly slow. I downloaded it and attached it here. XCP -Part 2- Protocol Layer Specification -1.0.pdf
  3. Vector isn't the only one, Intrepid has hardware for doing it, and ETAS does too. But as far as software capabilities go none of these hardware options provide drivers which are capable of doing this in LabVIEW. They may have LabVIEW drivers for reading and writing raw frames but no software layer on top of that other than NI's, or writing your own. I've avoided the .NET capability due to the high price tag of having that software and hardware on the system. Vector hardware is licensed for software so installing CANoe, and then calling it via .NET only works if you buy Vector hardware, then pay for it to have CANoe enabled.
  4. I've been in the process of re-writing the XCP/CCP drivers to work with other hardware. A while ago I re-wrote the ISO-15765 drivers (KWP2000, OBD, UDS) into pure G so that any CAN hardware can use it. This basically replaces the NI Automotive Diagnostic Toolkit from NI. The code was simple enough and all I needed to do was re-write the core state machine and the rest was more or less the same NI subVIs. XCP/CCP is more complicated as there isn't just a single core used by NI's toolkit to replace. I do have an internal toolkit for doing XCP, but parsing and processing the A2L file still leverages NI's DLLs and if I ever wanted to release it I would want to rewrite this file parsing stuff too. My toolkit does support a Raw mode which doesn't rely on an A2L (and doesn't need NI's parsing) but in this case doing things like reading a characteristic you'll need to provide the Address, Extension, Byte Order, Number of Elements to Read, and Number of Elements in an Item. Returned would be an array of bytes. Where when using the A2L you can call a function to list all the Characteristics by name, and then read the engineering unit based on the name, with all that other stuff pulled from the A2L. I was able to accomplish this just by sniffing the CAN bus while using NI's toolkit and seeing the commands performed to do things like Connect, Unlock, Get Processor Info, Get DAQ Resolution, get PGM Info, etc. NI's toolkit has an ECU simulator, and I have a couple actual ECUs to test with. Combined with sniffing I found some documentation here that helped understand the protocol more. At the moment I can't post what I have, way too coupled with NI, and not robust, and cleaned up. But I can point you in the direction of what I learned if you have any questions about the order of commands needed for an operation, or the type of things needed. If your scope is small enough I'd attempt to just use NI's toolkit on your ECU, sniff the bus, and figure out what the commands are to get what you need. But honestly for the money the NI toolkit is worth it. I'd argue the ADCS toolkit might not be worth it (since it is available on my website and open), but the ECU one is and if you can get away with using NI hardware I'd recommend using that toolkit.
  5. Not that I can think of. I mean maybe the image only technique would work but I haven't tried it and wouldn't be surprised if it didn't. Beyond that maybe something frames would work, where a VI creates a webpage, that is then inserted into another webpage. No idea if this would actually work or the issues related. It would probably be a lot of work but if you get anything working be sure and post your results here.
  6. The trial gets extended to 45 days if you login with your NI credentials which is free to sign up for. Also there are are VMs with snapshot features. Beyond that a home edition of LabVIEW is pretty cheap but I think that is still stuck on LabVIEW 2014. There were experiments in getting and viewing VIs as a series of PNGs, or flash which meant changing case structures to see other states. If the developer is aware of it, snippets are useful and can mean posting an image, with the VI embedded in it. You wouldn't want to do this on a whole project of course. But in general Shaun is right. Keep your code base in the oldest version of LabVIEW you want to support, and make decisions about upgrading as needed for newer hardware support, or feature sets.
  7. None. There is no guarantee that the Add function doesn't start acting like the subtract if there is a full moon out. It is just in NI's best interest to keep users of their software and hardware happy and that generally means consistent behavior, but bugs happen. I missed you Michael.
  8. No there is not. Only the Switch method is possible because of how VI Server works. Basically the latch only works if you can only change the button value from the UI. If you ever want to change the button value from anything else like loading the value from a file, or setting it programatically at runtime, then you need it to be switch. That being said the easy solution is to just create a local variable in the event case where the value change is being handled and write the boolean back to a False and you get basically the same functionality. The only way this technique doesn't work is if you are polling the control value, at which point you'd need to look for some boolean crossing and handle it differently.
  9. You will not be able to create a VIM that operates the same way my XNode does. This is because the technique I used was to use the Array to Cluster function, and setting the number of elements using scripting. However using the OpenG method you can do this another way. It is likely less efficient and takes longer but if you want a VIM that does it this should do the trick. Array Of Variants to Cluster.vim
  10. There is some kind of short timeout for posting. I can't remember the reasoning, and I don't have control over adjusting it but I too see it. Basically if you are on a LAVAG page for a couple minutes, and then try to post something it won't work and you'll have to do as you described, copying and refreshing. At least clicking submit doesn't clear out the text you wrote. That would really suck.
  11. In the LabVIEW community a phrase that has been used to describe undocumented, or incomplete features of LabVIEW has at times been called Rusty Nails. In searching LAVA it appear this is never explained and so this post is intended to give a brief history with as many details as I know having not been active when this all took place. The earliest reference to "Rusty Nails" found online (thanks to AQ) is by Greg McKaskle of NI in 1999. Someone was asking about all the undocumented INI settings that could be found, and how some weren't exposed to the Tools >> Options dialog. Greg's reply was this: Back in the LabVIEW 5.x and 6.x era there was a new emerging technology that was LabVIEW Scripting. NI had created scripting for their own purposes but the community saw it and wanted to be able to automate editing, or creating LabVIEW code. With the help from Jim Kring and others, the basic tools for enabling scripting in LabVIEW were available. The story of how this came about is worth a post of its own, but the summary is that NI shipped a VI that didn't have a password on the block diagram, which allowed for the creation of any object, given an ID. Using a for loop, you could easily create every object in LabVIEW, including objects which facilitate in creating and manipulating code. Discussing scripting often leads into discussing other INI keys which enable private functions like the well known SuperSecretPrivateSpecialStuff. It is possible this is one of the keys Greg was referring to. Other INI keys from 5.x can be found here. After these discoveries the NI forums started getting users asking about scripting, and private functions. Users were looking for help, and documentation but NI wasn't ready for this knowledge to be public and so they started deleting all posts related to private, and scripting functionality. Some of the motivation for the creation of LAVAG came about by a desire to have an independent place to discuss the LabVIEW topics that NI didn't want to have on the public forums, potentially adding to the number of support calls, and confusing new users with advanced topics that were undocumented or incomplete. After LAVA's creation a subforum section was labeled Rusty Nails, and intended to be a place to discuss Scripting, ExternalNodes, XNodes, Private methods, and general LabVIEW hackery. Over the years several private functions have been made public, and scripting has become an official feature shipping with LabVIEW. Because of this the Rusty Nails and XNodes subforums were combined into what is now the VI Scripting section. Even over on the official NI forums, discussions about private functionality and XNodes has been relaxed since those early days. Asking for private methods and getting unofficial help is something users, and sometimes NI employees will participate in, without the heavy censorship seen earlier. And topics of scripting are encouraged now that the feature has been official since LabVIEW 8.6. If you have anything you'd like me to add regarding scripting's history feel free to reply and I can add it. And if I got any of the details wrong let me know. Again I wasn't around when this all took place and I've just tried putting down the details I've heard from other developers.
  12. There are private events on the tree for Item Close? and Item Open? which is a filtering event and allows you to discard the open and close. You need the super special private special stuff INI to access these. Then I'd recommend turning that INI off after.
  13. Oh I like this. Have a single place where all packages, and versions of packages get installed (extracted), and then switch in the package and version "Installed" by setting up the symlinks. I could see arguments that these links should link to under vi.lib, or user.lib or wherever, or I could see arguments for them being in folders relative to the project. I think having to uninstall and reinstall packages (delete and recreate links) between projects isn't too big of a deal and would reduce the likelihood of cross linking issues where one developer opens it and if finds the reuse library in a different place than expected from another developer.
  14. You didn't specify the operating system on your PXI but I assume it is RT, it can be Windows as well at which point developing on the system should be pretty easy. If you're already familiar with RT on cRIO and cDAQ, then PXI should be no problem. You configure the devices in MAX just like any other remote device, and can setup virtual channels or other basic things there. Then in the project you add your target, write your VIs and run them there which get deployed. There really isn't any other considerations between a cRIO and PXI. If anything I'd say the cRIO can be more complicated due to the FPGA in the mix. Afterwards you create a build of your application and deploy it. EDIT: Oh and if you really want to test deploying to RT devices you can load up a virtual machine and deploy to it as if it were a PXI with no hardware.
  15. I think it would be hard to install DAQmx without MAX. It is likely in your start menu as "NI MAX" if it isn't then that is probably needed to setup DAQ Assistant. If it is missing, install MAX and you may need to reinstall DAQmx. When DAQmx installs it looks at what things you have on your system and installs DAQmx support for those things. If a thing is missing when DAQmx gets installed, it won't install support for it and you'll need to reinstall. For instance if you have LabVIEW 2017 installed, and you then install DAQmx it only installs support for LabVIEW 2017. If later you then install LabVIEW 2016 you won't have DAQmx support, until you run the installer again and it adds support for 2016. During the second install it should see that 2017 support is already there and do nothing.
  16. You probably already saw a discussion on Code Sharing, which has no conclusion yet. My opinion is if it is stable and good and you don't expect much changes, submit it to the Code Repository here (package preferred). If this is still in a state of flux and development, a site better equipped with change management like BitBucket or GitHub would probably be better. That being said this is a fine place to start discussions and suggestions, and can be moved to Code In Development at your request.
  17. Well G Package Manager appears to be more project oriented. So install OpenG Array 1.0.0 for this project, but then be able to install OpenG Array 2.0.0 for a different project, or not have OpenG Array available at all in another project. Lots of duplication but moving closer to sandboxing projects. Because of this I'm unsure how palettes would be effected by VIs installed for a project and not the IDE. But yes it does seem to be command line heavy, and not intended for installing VIPM or NIPM packages.
  18. Having NIPM install VIPM packages seemed like great starting point...but that likely isn't going to happen. NI really should have just bought JKI's IP, and turned it into NIPM, building off of what has worked well in current LabVIEW. Oh and another thing to muddy up the waters, there is already a 3rd package manager aimed at LabVIEW, G Package Manager. Haven't used it yet but it was presented on at the CLA Summit in a session I didn't get to see. I wouldn't be surprised if all of these use a zip or some compression as their file format. EDIT: NIPKG can be opened in 7-zip and is listed as a "Ar" Type, looking similar to a Debian package with gzipped tar balls.
  19. Continuation of package building with OpenG and DEAB tools moved to here.
  20. Have you reinstalled DAQmx since getting this error? If not you should. Also what version of LabVIEW, MAX, and DAQmx are you using?
  21. I do love and use the Pre and Post Build/Install/Uninstall VI features. I know it would be best to have some features be native, but having the ability to hijack the build process to make it do custom things really adds so much flexibility.
  22. Contributions to the community are always appreciated thank you. That being said you might want to look into the other alternatives that have seemingly similar feature sets to yours. I've been using LVMark for several years. It isn't HTML but a type of markdown format. Years ago there was another attempt called Formatter which does look like HTML.
  23. @David_L I get your point. If someone wants to migrate this all to the Wiki that's fine. I've been keeping the pruning to a minimum, so anyone updating a wiki can incorporate the suggestions from this thread.
  24. Despite being on LAVA all the time, my power is quite limited and I believe something like hosting a Wiki here would take more than administrator controls and would need site controls, meaning only Michael would be capable of this. I don't mind hijacking this thread, as I intend on periodically pruning it (as I've done a little so far) and after some time and discussions die down I'll delete the user posts. Obviously this would be counter productive to the discussion taking place and I did think about locking this thread from the start but this is fine. Keep it coming just know that your post maybe deleted after a conclusion has been made on a subject, or your content has been added to the main post.
  25. To be fair I'm not the only owner of this, any moderator or admin on LAVA can update this as well. But I get your point.
  • Create New...

Important Information

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