Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


JKSH last won the day on February 4

JKSH had the most liked content!

Community Reputation


1 Follower

About JKSH

  • Rank
    Extremely Active

Profile Information

  • Gender
    Not Telling
  • Location
    Perth, Western Australia

LabVIEW Information

  • Version
    LabVIEW 2017
  • Since

Contact Methods

Recent Profile Visitors

2,405 profile views
  1. Your screenshots reveal the main problem: MATLAB is using an Perl script with regex to parse your header and generate its "thunk" code. Unfortunately, this script can't understand your header because it does not understand all C. (Your header uses "complicated" C) It says, "Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.30)". "Deprecated" means the functionality is old, and no longer encouraged. "Fatal" means the functionality is completely broken. And we can see that it is very broken indeed, because generated this line which is not valid C code: EXPORT_EXTERN_C uint32_T(__cdecl__))OPEN_USB(voidThunk(void fcn(),const char *callstack,int stacksize) It sounds to me like the Perl script worked fine on the older MATLAB 2011, but is broken by an incompatible upgrade in MATLAB 2018. I'd say that the fastest way to reach your goal is to downgrade MATLAB. (You might be able to get away with downgrading the copy of Perl that MATLAB uses, but I'm not sure if this is possible) Side note: I also noticed that MATLAB is using GCC, not Visual Studio -- Look closely, and you'll see the compiler path: C:\TDM-GCC-64\bin\gcc. This means, even though you've told it to use Visual Studio, it's still using GCC.
  2. What is the first error? The exact message could provide valuable clues. Given that the compiler wasn't auto-detected and that the same files work unmodified on the manufacturer system, I suspect that your compiler hasn't been set up properly. Note: Visual Studio 2015 doesn't install the C/C++ compiler by default; you must explicitly select it during installation. Can you verify that you have a working C/C++ compiler on your PC?
  3. JKSH

    clfn scripting

    LLVM/Clang is truly a marvel! If you need to write wrapper VIs for DLLs, then I think a tool like this is the way to go. However, unless the C API has anything non-trivial like passing a large struct by-value or strings/arrays, you'll end up having to write your own wrapper DLL, right? (side note: I do wish LabVIEW would let us pass Booleans straight into a CLFN by-value...) This struct has the same size as a single int, so you can lie to the CLFN: Say that the parameter type is a plain I32. What are the possible types in the union? If they're quite simple and small, you could tell the CLFN to treat it as a fixed-size cluster of U8s (where the number of cluster elements equals the number of bytes of the union), then Type Cast the value to the right type. The type cast will treat your cluster as a byte array). These would require project-specific scripts that don't fit in a generic automatic tool though. The import wizard was useful for study purposes, to figure out how I should create my wrapper (using a simple sample DLL). That was about it.
  4. For released installers, GitHub provides a very sensible feature called Releases (https://help.github.com/articles/about-releases/). Each GitHub Release is linked against a tag in your repo, and you can have multiple files within each Release -- for example: One installer for your server PC, one installer for your client PCs, and one Linux RT disk image for your cRIO end node (created via the NI RAD Utility). Each file can be up to 2GB, but there is no hard limit on the total disk space occupied by all your Releases. You can also write release notes for each release which gives you a changelog for your whole project. BitBucket doesn't have something as comprehensive as GitHub Releases, but it does provide a Downloads feature where you can put your installers (https://bitbucket.org/blog/new-feature-downloads). It allows up to 2 GB per file.
  5. It used to work, then it stopped: https://forums.ni.com/t5/LabVIEW/Notice-Attach-VI-Snippets-to-post-rather-than-upload/td-p/3660471 Attachments (as opposed to inline images) should be fine, apparently.
  6. In the video, you used the "Abort" button to stop the code. Does the delay still occur if you shut down everything gracefully instead of aborting? Does the delay still occur if you use File > Save All to save your changes before running again? Does the delay still occur if you disable "Separate compiled code" for all your VIs and classes?
  7. I think it makes sense to have separate APIs for text strings and byte array "strings". However, both are still incomplete at the moment. The feature I miss most from LabVIEW Classic is "hex mode" on a string indicator for inspecting the contents of a byte array. I find the Silver palette quite decent Simply setting the background to white (as opposed to "LabVIEW Grey") also does wonders. A note on your last link: That "stark example of modernity" depicts an old widget technology, basically unchanged for over a decade -- it's still maintained today, but only in bugfix mode. Here's an actual example of modernity.
  8. Only for LabVIEW Communications type applications (on PXI). FPGA through RIO (and RIO in general) is not yet supported. Note that Python support is Windows-only. I was hoping to use the Python Node on my LinuxRT cRIO, but no dice. Related: http://www.ni.com/pdf/products/us/labview-roadmap.pdf > Is it using a VI at all? Yes, but the file format is different. > Does it support scripting Not yet (see Roadmap link) > and OO? Mostly. But we can't have type definitions inside classes. > Could I use llb/lvlib/lvlibp/...? llb: Gone in NXG (which is a good thing; these are terrible for source control) lvlib: Yes lvlibp: Not sure > Is the FP resizable?  No. My company finds WebVIs pretty useful. We've started using it for some real projects (but only for the web client -- we still use LabVIEW Classic for other parts of the project, including the web server)
  9. You could save the data to file and then use the System Exec VI to run your choice of Linux chart generation tools like gnuplot (a command-line application) or Matplotlib (a Python library).
  10. Just got "The page you requested may have moved, been deleted, or is inaccessible. Search below for other content, or contact NI for assistance." on all 3 Fall 2018 links
  11. No problem. We are happy to help, but we'd appreciate it if you try to follow our instructions. Good luck with learning LabVIEW.
  12. Open LabVIEW and click Help > Find Examples... then search for "XML". @crossrulz gave you this advice earlier.
  13. Why do you refuse to use the code that @Benoit already wrote for you? Like I said before, your XML file is corrupted. The XML palette won't work on it.
  14. Where did you get this XML document from? It is corrupted (There are many stray "-" characters, so XML parsers will give you an error) Also, take the time to follow @crossrulz's advice:
  • Create New...

Important Information

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