Jump to content

Phillip Brooks

Members
  • Posts

    899
  • Joined

  • Last visited

  • Days Won

    50

Posts posted by Phillip Brooks

  1. Don't use this functionality, but the NI Doc reference has a note:
     

    Quote

     

    Note  If you link from VIs to HTML files or compiled help files and you use the VIs to build a stand-alone application, you must include the files as source files when you build the application.


     

    Maybe the exe is expecting to find the help file in the support directory?

  2. 5 hours ago, ensegre said:

    But one thing: anyone still knows what is this Control Parts dialog, and whether it is stiil available in more modern LV? Not even to think about programmatic access to this data...

     

     

    You have to be in the control editor. Drop a control on a VI FP, select the FP control and use Edit -> Customize Control... from the pull-down.

    Now, in the control editor, select the control and select Window -> Show Parts Window

     

     

    • Like 1
  3. It depends on the structure of your data. The biggest hit reported by most users is when reading an array of clusters.

    http://forums.ni.com/t5/LabVIEW/Saving-Clusters-to-a-Config-File-Using-Variants/td-p/1586500

    There is a VI collection called Read/Write Anything from Moore Good Ideas that might help.

    http://www.mooregoodideas.com/readwrite-anything-vis/

    WIth such a large data file, you may want to consider switching to a different format, like XML or maybe even a database.

    • Like 1
  4. I found the root cause of the problem.

     

    I had an LLB file that contained a VI with an invalid character in the file name. LabVIEW would compile the VIs, but at the end of the compilation process, the files are copied into a folder named for your .exe.

     

    The invalid Windows file name could not be created, but the error message never contained the name of the file. I sent the LLB to NI and declared that I think this is a bug.

     

    I found it by converting all of my LLBs to folders using the LLB Manager. When I got to the problem LLB, the conversion reported an error on the badly named file. I copied the LLB, deleted the offending file, converted the copied LLB to a folder without error. I manually saved the offending VI as a file into the folder without an error. Then I could compile.

     

    I've had bad experiences in the past when I use "Save As" into an LLB to create a new VI. The "Save As" dialog is not a standard dialog and can act wierd when you use the control keys to move about within the name box. I might have somehow inserted a TAB or control character that LabVIEW was willing to accept as a VI name inside an LLB. LabVIEW just didn't know how to fix the name when saving it outside the LLB. 

     

    I spent over a week screwing around with creating new projects, mass compiling and re-installing LabVIEW because of this.

     

    I know that many people will say "don't use LLBs", but this is the first time I have been bit by them in such a bad way.

    • Like 2
  5. So,

     

    Seven years later, I have a project in LV2014 that has been fine for months and it suddenly starts giving me a 'dirty-dot' on open and the same cryptic message "An attribute of the project was changed." when closing:

     

    I also can't create an executable:

     

    post-949-0-51138900-1459959843.jpg

     

    But the code runs fine from the development environment. I created a new project file and it has the same problem.

     

     

    Error when building:

     

    post-949-0-25935800-1459959915.jpg

     

    post-949-0-32302700-1459959939.jpg

     

    Anyone know how to fix this?

  6. http://themacview.blogspot.com/2014_08_01_archive.html

     

     

    LabVIEW 2014, First 64-bit Version for Mac POSIX Paths
    Screenshot+2014-08-04+11.18.47.png
    This was long overdue. Paths in 32-bit are formatted in HFS Classic format. 64-bit uses the more common POSIX paths. It's mostly showing slash (/) instead of colon (:) between path elements (although there is more to it than that). 
     
    There is also a little bit of magic that happens in 64-bit when a path in a string is converted to a path type that allows either format, and then converts it into POSIX style. You can try this by copying the path from the 32-bit path indicator and paste it into the 64-bit indicator. Once focus leaves the indicator, the path will be converted to POSIX format (it's pretty fun to watch).
     
    Screenshot+2014-08-04+11.29.03.png
    This magic also happens when using the String to Path primitive. You can have a string of either format and it will convert it to a POSIX path. This makes it easier to transition between 32-bit and 64-bit as you are testing your VIs in 64-bit.
    Screenshot+2014-08-04+11.34.43.png
    Some other VIs that assist in dealing with paths between 32-bit and 64-bit are Path to Command Line String.vi and Command Line String To Path.vi inProgramming -> String -> Path/Array/String Conversion palette. These VIs are helpful in building a path that can be used in System Exec.vi or system shared libraries in a cross-platform manner. They have actually existed in LabVIEW since before 2009, but are added to the palettes now to assist in transitioning between 32-bit and 64-bit on Mac.
     
    Screenshot+2014-08-04+11.39.52.png
    Another path related VI that is helpful for Mac users is Executable Path To Command Line String.vi. This VI helps in getting the path to the executable in an app.
    Screenshot+2014-08-04+11.41.19.png
    This is particularly helpful writing cross platform code that will launch LabVIEW built apps, LabVIEW itself, or other GUI applications. Windows and Linux just take the path to the EXE. On Mac, the .app is really just a folder. This VI will give you a path to the executable you can call from System Exec.vi, in a cross-platform way. This VI did not make the cut for the palettes, but you can find it in vi.lib/AdvancedString.
  7. I was traveling last week, so I didn't get to spend much time on this.

     

    While searching salesforce.com I discovered that you can override the POST method with an arbitrary method name by appending to the URL.

     

    https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_update_fields.htm

     

    Append "?_HttpMethod=PATCH" and Bob's your uncle!

  8. I'm trying to use the LabVIEWHTTPClient.lvlib functions to communicate with Salesforce.com

     

    I can authenticate, but my Salesforce IT guy tells me that Salesforce uses a concept called "upsert". It's update and insert combined; but I need to use the PATCH Method instead of a PUT or POST method.

     

    I can't seem to find any reference to the PATCH method.

     

    I believe the LabVIEW library uses curl under the hood.

     

    Anyone have any ideas?

     

     

    HEADER:

    HTTP/1.1 405 Method Not Allowed
    Date: Fri, 16 Oct 2015 19:20:35 GMT
    Sforce-Limit-Info: api-usage=36839/7918000
    Allow: GET,HEAD,PATCH,DELETE
    Content-Type: application/json;charset=UTF-8
    Transfer-Encoding: chunked
     

    BODY:

    [{"errorCode":"METHOD_NOT_ALLOWED","message":"HTTP Method 'POST' not allowed. Allowed are GET,HEAD,PATCH,DELETE"}]

     

  9. When searching for a USB-RS232 adapter, look for those that use an FTDI chipset. If it has a Prolific chipset, it is probably more like epic ( fail that is :) )

     

    I recall reading that the Prolific chip is often counterfeitted in China and ends up in the cheaper devices.

     

    http://stackoverflow.com/questions/32087482/how-to-diagnose-visa-rs-232-communication-failure-in-labview/32134821#32134821

     

     I've purchased the 6' Sabrent CB-FTDI from Amazon (~$15 US) many times and never had a problem with it.

    • Like 1
  10. I posted an idea on the NI forums about a year ago that is long overdue; the ability to define a regex for VISA message termination.

     

    http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Add-regex-based-termination-string-option-to-NI-VISA/idi-p/2859152

     

    I had the idea after tinkering with a .NET library called SSH.NET. One of the methods of a stream is Expect.

     

    http://forums.ni.com/t5/LabVIEW/Plink-PuTTY-works-30-of-the-time-using-System-Exec-vi/m-p/3006795#M860452

    • Like 1
  11. Even at 2400 baud, you should be able to easily send 10 characters in 10ms.

     

    Your requirement indicates 4 characters if we include the conditional decimal point. Add in a terminator and maybe a U16 as a message index and you should still be fine.

     

    The question is, what does the other end accept? Is it another LabVIEW app, a SCPI instrument or something like an Arduino with limited resources?

     

    LabVIEW to LabVIEW could use SI notation (%_3p) which would always be exactly 4 characters for the data.

     

    SCPI devices normally include support for scientific notation (%_3e) which would always be 7 characters in length.

     

    If you have a custom system, you will need to understand the parsing routine or capabilities in order to make the best choice.

     

    If you are writing the remote device code, simply multiply your value by 100 in LabVIEW and send the value as 00000 to 99999 and divide by 100 on the remote side.

     

×
×
  • Create New...

Important Information

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