Jump to content

Developing VI script through C code


Recommended Posts

Can I create a VI using just C code? I have a C code which has some complex function with inputs suppose x, y and outputs p and q. I want to know whether we can create a VI (with/without VI scripting) from whose control panel, we can control the inputs x,y and be able to see the outputs p and q without bothering about the function(which is included in the C code). I don't want to use importing .dll files(which many may suggest), instead create labview blocks/objects on the block diagram of the VI file.

Please throw some light on how to do if it's possible.

Thanks in advance.

Link to post
Share on other sites
  • 5 weeks later...
On 10-8-2016 at 11:20 AM, Sai Ram Krishna said:

I know it's cross posted but I haven't got any proper response, that's why trying here.

Basically, if you have working C code that compiles and operates fine and can be put in an isolated unit to work and be called, then the DLL path is going to be by far the most simple solution, unless your C code is pretty trivial and can be translated easily into LabVIEW code. And an automatic C to LabVIEW translation tool is probably never going to happen. C is simply to low level and its syntax way to terse that you have any change to translate that properly into another language without heavy user assistence, to interpret and understand what the C code is trying to do.

You mentioned that you don't want that answer, but it's simply the only answer I can give. If you don't believe me you are free to try to proof that it can be done by developing such a translation program. Good luck on that!

Edited by rolfk
  • Like 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Taylorh140
      Started some work on a simple C code generator for LabVIEW. 
      https://github.com/taylorh140/LabVIEWCGen
      I was working on some ideas to handle some more complex Items. Had some thought about using 
      https://github.com/rxi/vec 
      To handle strings and other arrays/vectors, I would like to pass these more complex data types by pointer. However I am looking for some ideas as to when to make a copy. I know LabVIEW has some internal item that manages this but I haven't found a way of accessing it quite yet. Let me know if you think this is worth some effort. Or if you have any ideas about the architecture that you think would be helpful.
      Also i imagine that this will still only ever support a small subset of LabVIEW, the languages are quite a bit different, and i prefer that the code be as clean as possible.
       
    • By jhoehner
      Hello All,
      First time LAVA poster here with my first question. Why do some LabVIEW programmers insist on wiring the error cluster to the bottom of their VI as opposed to the sides as shown in most NI documentation. Is there any benefit to it? Is it 100% a preference thing? Is there a way to make LabVIEW connect error wires like this automatically?
      I've only seen it in advanced LabVIEW code from experienced programmers and some parts of the Actor Framework.
      Your insight and experience is appreciated! 

    • By the_mitten
      Has anyone found any properties or methods associated with malleable VIs? Specifically, I was hoping to find a way to invoke the "Convert Instance VI to Standard VI" function after confirming that a selected VI was indeed malleable. LabVIEW reports the class type of a selected malleable VI on the block diagram as a standard Sub VI, and I didn't see any properties/methods under the VI class.
       
      I'm exploring what it would look like to make a utility to convert a malleable VI into a polymorphic VI for the purpose of backwards compatibility. I'd like to have a reference library that uses malleable VIs but create a version that is still accessible to someone using older versions of LabVIEW that don't officially support malleables. 
    • By the_mitten
      The introduction of parallel, read-only access for DVRs in LabVIEW 2017 adds a great deal of flexibility to using DVRs to monitor values in parallel executions of code. Fo\The downside of this, of course, is the necessity of using the In Place Element (IPE) throughout your code simply to read the value. Having IPEs throughout your code just to read a value both takes up block diagram real estate and also takes more clicks than desirable to insert.
      Similarly, though less frequently, there are times when you only need to update the value within a DVR without actually performing any logic inside of the IPE.  This situation is less frequent, at least for me, as I am usually using arrays or classes with DVRs such that I actually need to modify the existing data rather than simply replacing it.
      A more preferable solution to the above situations would be to have Read/Get and Write/Set VIs for the DVRs to simplify the process of working with them. This way, and IPE on the block diagram would only be needed when you were actually modifying the existing data within the DVR, rather than simply overwriting or returning the current value.
      Thanks to the power of malleable VIs and the type specialization structure that is now officially released in LabVIEW 2018, a better solution is now available. I’ve created two malleable VIs, Read  DVR Value (Parallel) and Write DVR Value that allow you to perform a write and a parallel read on any DVR data type.
       Now, you can use a single VI that you can insert via Quick Drop to read or to write DVR values.  
      Download the attached ZIP file to access the two malleable VIs and example code, and please let me know your thoughts in the comments!
       


      DVR Read and Write VIs 1.0.0.zip
    • By takanoha
      Hi 
      I have a simple program which has only 2 buttons for the user interface. When the user clicks OK I want the program to get into the event structure case called "OK Button". Once it is inside there is a loop which continuously waits for 1 second until "Stop Button" is called from the user. 
      But because once the user presses the "OK Button" the program gets into the event and therefore I can not call the "Stop Button". 
      Is there a way to call the "Stop Button" even if the program is inside the event ?
       
      Thanks

      event_out.vi
×
×
  • Create New...

Important Information

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