On my development machine, I have access to various library functions in the NI-Vision library. Some of these functions apparenly require the NI-Vision Acquistion license, and some of these require the NI-Vision Runtime license, and some of these require no license. They are all mixed together and I can find no documentation anywhere that tells me which license(s) I need to put on the deployed computers given what library functions I call in my application. The only reliably way I have found to determine this is to deploy a test application to a PC that is not licensed and see if the function call fails with an ERR_UNREGISTERED. It seems that there should be a better way. Thanks.
Lets' assume a small structure or small array that one would like to have a look at during debugging. Selecting 'View Variable Value' (or Shift+F7) in the IDE puts the cursor on the corresponding line in the variable editor. If there are several variables, the variable of interest typically is in the last line of the variable editor. Now if one is interested in any element of the structure, it is always necessary to scroll down, which is quite inconvenient.
Hence I suggest to place the selected variable at the top of the variable view, allowing to see its first elements without scrolling.
One thing, I'm comming accross with very often is, that the drawing updates of Table controls are very slowly, Sometimes, they bring the system to hanging, whithout increasing the processor load, and User Interface events (e.g. Commit events) are not recognized quick enough (up to 30 s delay, depends also on other events, e.g. Timer, HW events etc.).
On most of my projects, I was changing the Table controls to Tree controls, which are much more quicker in drawing updates. But sometimes, I need the Table features (e.g. Ring cells, picture cells etc.), so I'm not able to change the Table into a Tree.
According my expierience, Table controls should be updated every 2 s and Tree controls are able to be updated every 200 ms or faster without waiting for User Interface Events.
You should make Table controls nearly as quick as Tree controls...
It would be great to add the possibility to include documentation for (especially global) variables and data structures to the HTML documentation. Currently only functions could be documented. And it would make no sense to duplicate information about data structures used as parameters in each function which is using it.
It would further make sense to structure the HTML documentation at least by the module (.C file) it is defined in, together with the variables and data structures. Such you would get a tree like HTML doc with the modules as 'chapters', then sections for data structures, variables and functions. At the moment I get one big HTML index with documentation from all functions within the project sorted by name (I have not been able to find out how to get another structure in the 'functional index').
In best case there should be a chance to group 'public' data structures, variables and functions independent of 'private' ones to clearly identify the ones which are the intended interface functions and which are module internal helping functions. One way to automatically distinguish between this types might be using all functions documented in .H files as public and documentation from within .C files as private.
I have a minor but well-hung suggestion: In case that one is changing the workspace to a different project while the Resource Tracking window is open, this Resource Tracking Window should be closed.
As discussed in some detail here the Resource Tracking Window should only show up if there is a memory leak - so after a new project is loaded CVI can't know if there is a memory leak, and hence it should not cause confusion by staying open ;-)
I apologize if this has already been addressed but this was determined as a issue years ago and forced us to implement a workaround.
We use PloXY for large data sets (up to 16 MB has become pretty standard lately). To address lag years ago, we pared the data to be viewed to 4000 data points in background code and send that to PlotXY. However, when the user zooms - which is always, you must then go back to the original data to find the new best 4K data points prior to plotting the new data. The code usually works well but there are instances where it can shutdown unexpectedly - not often enough to fight through friutfully though.
As for an truly automated perhaps a more logical course of action is to retrieve the panel size and use that for the data sizing. Regardless, it would be nice to use the CVI built in function and then subsequent zooming etc could be possible via standard functions.
I would like an option for "Next Breakpoint" and "Previous Breakpoint" in the menus somewhere, similar to the existing "Next Tag" and "Previous Tag" items. The reason why I ask is so I can then bind these new menu items to shortcut keys so I can bounce between where I have breakpoints set more easily. It might also be convienent if there were also toolbar buttons that could be added for next/previous breakpoint. Thanks.
We hear all the time that should write code that is reuseable. It is difficult to plan so far ahead, so I listen to the preachers but seldom follow them.
However, it is clearely easier to use snippets, code fragments, that I put together for something, even tested them and I remember that I have done that once, but finding it again is too much hassle, it is just 3 lines, 5 lines of code. It owuld be nice to be able to manage such snippets, copy them, tag them,or even share them; I recon, there are snippet libraries out there;,out of sight, out of reach; but it would be really nice when the need arises, - you know that nagging dejavue feeling- than I could find them, bag them an use them... With time, even nice and practical libraries could grow out of them snippets... :-)
CVI provides useful scanning / formatting functions, e.g. Fmt, which in part complement the ANSI functions. This means that some features can achieved using one library, but not (or not conveniently) using the other. Hence I would be happy to see some additional modifiers allowing the Fmt functions to provide some additional capabilities that are available in printf etc
In particular I suggest introducing
- + modifier to always denote the sign '+' or '-' of a number
- e/E to display the exponent 'e' as a small/large character
When using tab controls on a panel, every time you change the active tab in the UIR editor the file is marked as modified even if no real modification has been made on panels/controls. This is particularly annoying when you are simply looking at a UIR file but you don't want its date/time to be modified (e.g. in case the project has already been deployed to the customer and you want to keep the local copy of the UIR with the original date/time).
If your file is marked as read-only (same scenario as before: the application has already been deployed and you want to prevent modifications to it) you cannot even change the active tab page, neither in edit mode nor in operate mode (F4 - operate visible panel)!
It would be better in my opinion that a simple tab page switch does not forces the UIR to be saved.
When developing a process mimic, it is very helpful to have lines and arrows linking the controls, to make it easier to visualise the process flow. A simple example would be to have a line or an arrow from the control that sets a motor's voltage to the control that shows the measured motor speed. Obviously any real-world example would be much more complicated than this.
If there is already a way of doing this, then my request is to make it much more clear in the help system. My searches yielded nothing beyond making a bitmap in another tool, putting controls on top and controlling the Z-plane to get what I want.
Following the discussion with Luis here I want to suggest
This issue has been explained in this thread.
As explained in some documents on the NI web site
the Network Variable Library can be used to develop an OPC Server (and a Client too).
While developing an OPC Client, the function CNVGetDataQuality( ) can be used to read the data quality, but there isn't a way to set this parameters while developing an OPC Server.
For this reason a way to set the data quality status and substatus should be added to the Network Variable Library functions that generate OPC data.
I suggest these new prototypes:
Currently the axis names on graphs are limited to 30 characters. I find this to be rather limiting when trying to put in lengthy descriptions of the data plotted. Could this limit be increased in future versions of CVI?
This topic has been discussed insome threads:
Unfortunately CVI doesn't support this feature, but LabVIEW probably does.
I think that CVI should implement this feature too, because grouping scalar variables into folders and subfolders is an approach commonly used by OPC Servers, and the Network Variables are a simple way to create an OPC Server with a CVI application.
I use the "user interface localizer" in a big project and need to generate appropriate LWL-files (localized UIR's) for many dll's and exe's. Currently I have to use a batchjob to generate them, interfacing the "user interface localizer" window by window messaging... Why not add some command parameters to this tool, so it will be easier to use for bacth jobs,like "localui.exe -uirfile -lwdfile -(overwrite/merge/...)
In close analogy to the functions N_Dist (,)... for calculating the one-sided probability for a standard normal distribution I'd like to suggest test routines
B_Test () for binomial distributions and P_Test () for Poisson distributions.
Background: In many experiments, signals are not measured as a continuous curernt/voltage but are counted as individual events (photons, particles...) For 'rare' events the corresponding distribution function is binomial (few repetitions/sweeps) or Poisson (many repetitions).
In such cases using a Gaussian distribution is not always justified.
I'd like to suggest the possibility to query attributes of a control during debugging, i.e. after the program stops at a breakpoint I would like to have the possibility to obtain the scaling behavior (manual, autoscale) of a graph and the assignment (left/right axis) of a plot...
Currently, this option is in the Options menu, but I think that it makes more sense under build (next to target settings). I understand the reasoning for this may be that the build options are an environment setting rather than a project-specific one, but I always look under build for this option. It also doesn't really fit with all of the other items in the build menu, which are all environment related.
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.
Note: the LabWindows/CVI Idea Exchange is not the appropriate forum to submit technical support questions.
The LabWindows/CVI R&D team is committed to reviewing every idea submitted via the LabWindows/CVI Idea Exchange. However, we cannot guarantee the implementation of any LabWindows/CVI Idea Exchange submission.