LabWindows/CVI Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

Where does NI stand on this????

NI no longer supports 32 bit OS, but hasn't ported their own toolkit to x64. Since NI is NOT committed to developing (or even maintaining) CVI toolkits, how about open sourcing these so that users and the community can move these forward.

Dear NI,

Until lately I worked with CVI 2017. I've decided to move on and I have installed 2019. For years I use NIReport 

to create reports to the customers. To my astonishment, NIReport is no longer supported, meaning a work of years will be thrown away. I have tried other options provided by NI, such as creating a report in word/excel, but neither gave me  satisfactory results

I am developing applications in CVI for 15 years, and had NEVER a problem of backward compatibility. I know other companies  that do not care about their customers, but NI has been never the case.

I hope that NIReport will be back. 

thank you

 

At present the IniFile instrument permits to read an existing .INI file, modify it and re-save it preserving existing comments in the file, if any. It would be a great addition to permit to programmatically add comments to sections and/or items.

 

I have a rather complex application with several optional modules that can be added or tailored by setting appropriate items in a configuration file in .INI format. I have developed an application that helps me creating such configuration files with the proper elements added but if I want to add some comment for better documentation to the final user I need to manually add them after the file has been created with the risk of forgetting something: if I could add them while generating the configuration file I would avoid this risks.

OPC UA has become much more popular in the last few years.

I did some tests trying to integrate open62541 library in CVI 2015 and 2017.

 

I think that CVI should provide this library as an add-on.

Moreover NI engineers can put their effort tryingo to develop the library itself (rather than rewriting a library from scratch).

In the .NET Controller creator, it would be nice:

  • to be able to give a pre-defined list of the only classes it is useful to wrap,
  • or that CVI memorizes the already checked classes it is useful to wrap

in order to generate the wrapper quickly.

 

Because it is very boring to have to regularly check manually only 22 classes among plenty of not collapsed classes.

a screenshot of the CVI dotNET Controller wizard.png

 

Note: I check only desired classes to reduce the compilation time of the wrapper (which is very big with all its classes: 350 000 lines of code in the resulting C file!), as suggested by the CVI manual.

 

Thanks.

Hello,

I would like a zoom (Ctrl + mouse wheel) when creating .uir panel.

Regards.

Easy integration of MS .NET libraries is a highlighted feature LabWindows/CVI. However, programmatically interacting with the GAC from LabWindows/CVI is currently challenging and more worthwhile to do in other environments. A set of functions to programmatically interact with the GAC from LabWindows/CVI would create a more seamless experience for developers.  

Add in an API structure for DOM (Domain Object Models).  DOMs are usually read in from XML documents and saved out as XML documents.  This allows a nice file data format, and a set of APIs with a handle to hold onto data.

 

Example Code:

 

DOM_createNew("handleName");

DOM_loadXmlDocument("handleName", "path\to\document.xml");

DOM_saveXmlDocument("handleName", "path\to\document.xml");

struct DOM_Element  topElement = DOM_getTopElements("handleName");

struct DOM_Element  elemList[] = DOM_getElements("handleName", element_ptr);

struct DOM_Attribute* attribList = DOM_getAttributes("handleName",  element_ptr);

 

and so on... with setters and getters, add routines, and possibly the ability to force the DOM to adhear to a ".xls"

 

and then start moving the files away for old school .ini files in the saved text files.

Hello,

 

I have a very elaborate Front Panel, developed in LabVIEW 8.6, which I'd like to import into my LabWindows/CVI 2013 development environment.

 

The background is that the new company colleagues are very proficient in C and want to use LabWindows/CVI to re-program the current state of the software and maintain and update only using LabWindows/CVI in the future.

 

This would be very usefull, since it would save a lot of time and keep the naming of the elements in the front panel as-is. For the customers it would mean, having the same tool they are used to work with and receive much faster and better service when it comes to changes or additional functionality.

 

If there is already a way to do this I'd be happy to have a step by step guide.  

 

According to the feedback from the forum, this still doesn't exist. (http://forums.ni.com/t5/LabWindows-CVI/Can-I-convert-a-LabVIEW-Front-Panel-into-a-LabWindows-CVI-User/td-p/3044003)

 

 

Hi, All:

     As you know, Use "ExcelRpt_GetCellRangeAttribute" can get cellrange attribute.

     When pass parameter with "ER_CR_ATTR_ROW_HEIGHT" will get the number of characters.

     How can I get the real width like pass parameter with "ER_CR_ATTR_ROW_HEIGHT" will get the points.

If the thread that FileSelectPopup (and similar) is accessed is multithreaded, wacky things happen. The programmer can fix this by creating a new thread that is itself not multithreaded and pass information back to the current threrad. It would be helpful if the current functions were designed to default to create such a thread,  return the value(s), and garbage collect removing the programmer from the loop.

 

In the case of MultiFileSelectPopup, it is not clear to me what would be the best practice given the unknown number of results. I guess one could assume a limit for the number of results that may change as the Windows API does.

 

Other possible solutions can include an added parameter (variable switch) or with a whole new function. I could see the default case as an effective solution for legacy code that is partially refactored for multithreaded performance.

Hi,

 

I know from previous discussions that CVI formatting and scanning functions are no longer going to be updated, but I thought I would suggest this anyway.  It would be nice if there was a format modifier to specify engineering notation for the formatting functions .  Note that the standard C library functions also lack this functionality, and since I don't think it would be a good idea to change the behaviour of the standard library functions, here's an opportunity to improve the CVI versions Smiley Wink.

 

Thanks.

Hi Everyone!

 

In these days, I have been debugging a complex application(almost 12,000 lines of code) and it was very hard to do a map showing the relationshing at least of some critical functions.

 

For this reason, I consider that a very helpful debugging tool could be to add in LabWindows/CVI, a window like the VI Hierarchy in LabVIEW; that shows the relationship beetween the functions inside all the module in a CVI project. This windows will show which functions calls a particular function.

 

Here, there is a very simple example:

Untitled.png

 

Regards!

We have a nice password control for user management. Alas, we are on our own when it comes to secure networking or saving/retrieving the data, passwords etc.

It would be nice to have some sort of cryptography.fp included. The simplest I found was the blowshish algorithm: it is fast and as far as I know, sound too. A crypto-module could be built around it. Moreover, it is available for Labview already...

My CVI application started to generate linker errors immediately after I upgraded from CVI 2012 to CVI 2013. A number of other people have reported exactly the same problem, with the linker unable to resolve symbols found in IMAQdx or nivision.

 

This means that the final release of the new version of CVI cannot have been tested when using the image acquisition or image processing add-ons.

 

I suggest that, in future, new versions of all tools are subjected to automatic regression tests against the examples distributed by National Instruments before release. Because it obviously doesn't happen now.

I noticed in LabView that there is a HTTP Client Palette library written with the underlying libcurl open source library. The one particular VI is the HTTP Post Multipart VI that I am interested in. Why can't Lab Windows CVI have a similar HTTP Client Library in future versions of Lab Windows CVI for HTTP Clients?

Include a function to programmatically re-start the NI Variable Engine if it is found to be stopped.

Although the NV libraries include a function to detect whether the NI Varible Engine service is running, there is no function included in the library to facilitate re-starting the NI Variable Engine service. 

For those The method that I am aware of to restart this service is to use the ANSI C system() function with an embedded command line:

 

 

Index = 0;                                           

CNVVariableEngineIsRunning(&running);

while((!running) && (index++ < 5))

{

System(“net start \"NI Variable Engine\"");

                Delay(0.1);

                CNVVariableEngineIsRunning(&running);

}

if(!running) return -1;

 

Learning this required some time spent on the web, looking through old posts on how to solve the same problem in LabView.  Rather than spending that time, it would have been more productive to just pull it out of the library.

I discovered through trial and error that the CNVCreateBufferedWriter function, while it does provide buffering when necessary to preserve data until it can be written within a process, it does not provide for arbitration between writes originating from multiple processes.  Stated another way:  As far as I am aware, a single Network Variable process is not designed be written to by more than one application.

   

The documentation was not clear on this point.  It states “You can buffer data to be written to the network variable by calling CNVPutDataInBuffer. The system automatically writes the buffered data to the network variable.”  This suggested to me that arbitration of some kind existed to handle asynchronous writes by multiple applications.  I confess, my interpretation may have been driven by wishful thinking to support my application needs.

 

Nevertheless, my suggestion is that future versions of this library include a capability to arbitrate asynchronous writes from multiple applications to a single network variable.  i.e., that two, or three, or more applications can successfully connect to and write to the same network variable.

At present CVI is missing a serious report printing facility that permits to create flexible, professional and good looking reports.

A quick search in CVI forum shows that periodically somebody posts questions about reporting but available instruments at the moment are not satisfactory in my experience.

 

As far as I can tell, a good reporting instrument:

 

  1. Should integrate easily with CVI
  2. Should be fully documented, with some example for the more typical types of reports (text + table, text + graph, text + image...)
  3. Should not rely on external programs (some customers have rigid constraints on the software installed on equipment machines; additionally, asking them to have full Word or Excel or Diadem installed only for reporting is just not serious)
  4. Should not rely on ActiveX controls to be licensed separately (same as above)
  5. Should permit to include text and graphics (images, graphs...) and define headers, footers, page numbering and other common features normally present in reports
  6. Should output data directly to the printer or in PDF format
  7. Should have a preview facility both for development and for the user (something that NIReports hasn't and will never have)

I believe there is a Fuzzy Logic package for LabView. I suggest that a Fuzzy Logic package also be provided for LabWindows/CVI.

 

I am working on a motor control project and I do have my own Fuzzy Logic code that I developed in C a few years ago for a Z-World board and recently ported it to a MicroChip dsPIC processor, also in C. I can port my own code to LabWindows but I believe it would be better to use code developed by NI folks as the NI code would probably more stable, reliable, flexible etc.

 

I won't attempt to expound on the advantages of Fuzzy Logic (FL) over PID except to say I have found FL to be very useful and easy to get working as it doesn't require extensive and exhaustive (and exhausting) system testing in order to come up with a working control system. Just a set of rules and a FL compiler to produce a "control surface" that is used with system feedback values to compute output values to produce a working control system.

 

So how about providing Fuzzy Logic code for LabWindows/CVI?