LabWindows/CVI Idea Exchange

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

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.  

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...

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.

Add a function to the utilities library that can copy an entire folder along with all its files and sub folders.

Similar to what the command line xcopy can do.

Hi,

 

Due to more and more applications using ipv6 as the network communication address, e.g. in the internet of things application,  and in many SCADA field , there also need the asynchronous connect by socket, so hope  CVI developers can provide these support.

 

 

David

No thanks NI, I still need to have a LabVIEW developer to program a FPGA, I really need to handle this in CVI or the native Impact language of Xilinx. Can we develop a method that does not using LabVIEW? Chip

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.

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.

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?

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?

Hello,

 

Does anyone know if there are any plans for CVI and LabvVew Real-Time to support the Realtek NIC's? Supporting the Realtek NIC's would greatly expand the choices of boards that would be compatible with Real-Time modules.

 

Regards,

 

Tom Doyle

 

Regarding NI Spy and its sequel NI I/O Trace,

 

Can we have a configuration option to set the length of exported strings?

 

Example: Current output of NI I/O Trace as shipped with NI VISA 5.1.2:

 

(.txt export)

149. viWrite (USB0::0x1234::0x1234::12... (0x073F41D0), "STATUS:QUESTIONABLE:E...", 26, 26)
(I've omitted thread/proc ID and timing information)

00000000: 53 54 41 54 55 53 3A 51 55 45 53 54 49 4F 4E 41 STATUS:QUESTIONA
00000010: 42 4C 45 3A 45 56 45 4E 54 3F BLE:EVENT?

 

(.csv export)

"viWrite (USB0::0x1234::0x1234::12... (0x073F41D0), ""STATUS:QUESTIONABLE:E..."", 26, 26)",Prozess-ID: 0x00001734 Thread-ID: 0x00001468,Startzeitpunkt: 16:59:33.749 Aufrufdauer 00:00:00.000,Status: 0 (VI_SUCCESS),

 

It would be extremely useful - especially for CSV export - to have a configuration option to let me configure how many characters to print before the string is truncated, so that I get this...

desired output in .csv or .txt file (untruncated string):

 

"viWrite (USB0::0x1234::0x1234::12345678::INSTR, ""STATUS:QUESTIONABLE:EVENT?"", 26, 26),process ID: 0x00001734 thread ID: 0x00001468,start time 16:59:33.749 duration of call 00:00:00.000,Status: 0 (VI_SUCCESS),"

 

Thanks for considering this.

I utilize arrays of function pointers (recipe in a state machine) in a couple of projects.  I have the same general definitions for each of the functions (return type, parameter, a few calls inside that are used in each function, commenting, etc...) inside the array.  I have written an application that can scan all of my header files in the project folder, create a list of unique functions, I can then drag functions into the array or type names for new functions.  Currently when I accept my input all I can really do is copy the new generated code to the clip board.

 

What I would like to do is:

1) have it insert any new function declarations into a specific header file (which may be open in the ide with pending changes that haven't been saved)

2) Insert the array of function pointers into the current cursor location inside the current source file in the ide

3) Insert any new function definitions in appropriate files.

 

In my current app I am afraid to open and change files, not know if there are any pending changes in CVI not saved yet.  Would hate to loose all that hard effort if I forget to press CTRL+S.

 

I think it would be wonder full if when typing a statement like "if " the ide would automagically replace it with "if () {} else {}" with the cursor inside the ()...if the else isn't populated it drops.  Same thing for a for loop.  This is only because I hate typing, but I hate using a mouse more, perhaps soon we can have "thought to code".  Also, you have to know that I am the type of person that if they need to a task a second time, a program is written. 

 

So, to ease my fears I would like to be able to run a tool that when it is ready to write to a file I can manipulate the code directly through a CVI api or something.  If this already exists please point me in the right direction.  I looked at the function panels, there is an insert button for those, but what I want is more complicated than a single function.

Upon receiving the 2010 update I was excited to find the optical flow algorithms that had been added to the Vision Module. For a number of reasons I use the CVI toolchain, and was bitterly disappointed to find that there is no easy way to access them.

It would be convienent at times if the ListFindItem() function could seach a ListType by descending order (or in other words, starting at the end of the list and working towards the beginning).  This would be convienent when there are potentially multiple items in the list that match the search function, and I want to find the last instance.  This could work similar to the existing "Order" parameter that exists in ListApplyToEachEx().  Thanks.