I occasionally miss some UIR editor features that are often present in similar tools. All the features I expose should interest only
the editing phase.
1) Ability to center a control within a panel, in respect to either vertical or horizontal size
2) Ability to "group" a certain number of controls, in order to align the "group" with other objects, without changing the controls' respective positions
3) Ability to lock a control's position, so that it will not inadvertently move when clicking on it, as it casually happens
4) Ability to "evenly" distribute controls in a way that conservers the position of the extremities, allowing for small differences in each spacing
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
I'm using the 3D Graph ActiveX in order to display contour lines for a given parameter.
I would like to overlay this contour map with a Google earth image as shwon below.
So it would be nice to consider adding the possibility to add a bitmap image to the 3D graph as it is possible to add a bitmap as background of a canvas control. The bitmap could also be used to replace the color of a surface plot.
I would like to see a way to lock a control's coordinates so that they are not accidently selected and moved once they have been placed on the GUI. It would be nice to lock the control to the GUI if I know that I am not moving the control again.
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.
Following the discussion with Luis here I want to suggest
Implement Swap Lines shortcut key (Alt+Up/Down).
Often, I need to swap two lines of code in my source file or maybe just move one or several lines up or down inside my code.
In order to do this, you normally have to do a cut and paste in order to move the lines.
Having a Swap Lines feature in the CVI source editor could significantly speed up this process, especially when you have to handle big chunks of code.
The Swap Lines mechanism could be triggered by the Alt+Up/Down.
This feature should also support multiple lines selections.
My 2000 dollar worth, run of the mill desktop PC has 4 teraflop of brute computation power hiding in 4 GPUs. None of which is accessible for my programs I develop in Labwindows.
With the release of the new OpenCL it is possible to generate a "platform independent" GPU computing library. That would place Labwindows on the same or better footing than Labview that already has some GPU computing support.
The advantages are obvious: huge gain in data processing speed, real-time application with streaming data, pattern-recognition (video) applications, image processing, data-parallel tasks in (technical) modeling arena.
I am playing with some optimization algorithms (genetic algorithms, evolutionary algorithms) that benefit and show amazing gains since they are ideal for data-parallel applications! Currently working on the specs for a new type of controller that would optimize several parameters to figure out the state of the tissue culture (expanding, producing, overgrowing, etc.) to maximize productivity and to calculate the optimal settings using evolutionary algorithms... Any complex process control could take advantage of this kind of applications -currently not available- because of computational limitations. Had a previous optimization task that would have taken 150,000 years to complete using a brute force algorithm on a "monofilament" CPU-based application. Converted it to a genetic algorithm and it gives me a good enough solution in 3-4 days on the same standard PC. Now, with GPU, that problem could be solved in fifteen minutes while expanding the evolutionary depth and finding better solutions using even more complex fitness functions.
Ask yourself what do you want: tinkering with the conveniences of the IDE that already does the job well enough; or open the door to new landscapes that could be conquered by using the simple elegance and effectiveness of LabWindows and the power of GPUs?
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?
Using SetTableCellRangeVals to update several thousands table cells is very effective.(better than using ATTR_CTRL_VAL)
I miss similar function for set atribute values in the same way. In example:i need to set text to be bold or set background color for each table cell separately.
Ithik that usability of SetTableCellRangeVals will be better if SetTableCellRangeAttributes will be avivaible because there will be the same program approach/logic for values and attributes,instead of mixing multiple cell vallue update and one by one cell attribute update.
I am glad that the event EVENT_MOUSE_WHEEL_SCROLL was added some time earlier to CVI. In principle, now it is possible to operate numeric controls, ring controls, etc. not only via keyboard and mouse, but also via the mouse wheel. This allows very smooth operations, great!
However, the integration level is inconsistent: While pressing the ARROW_UP key on a selected control will increase the value displayed in the control automatically, i.e. without the need of the programmer to react to a specific event, achieving the same result with the mouse wheel requires adding code to each callback. This is possible, but inconvenient as it adds a lot of overhead.
Right now, in every callback of a numeric or ring control that shall support the mouse wheel I have the following lines:
switch ( event )
if ( eventData1 == MOUSE_WHEEL_SCROLL_UP )
FakeKeystroke ( VAL_UP_ARROW_VKEY );
else if ( eventData1 == MOUSE_WHEEL_SCROLL_DOWN )
FakeKeystroke ( VAL_DOWN_ARROW_VKEY );
Hence I suggest
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.
Right now it is possible to have plots resembling histograms by choosing as plot style VAL_VERTICAL_BAR.
However, at present the width of these bars can only be adjusted by changing the line thickness in pixels (ATTR_PLOT_THICKNESS)
From a users point of view it would be more useful having the possibility to specify the width in units of the x axis.
Explanation: Say one is plotting an xy graph, with the data equally spaced and in incremetns of 1. If the x scale is 0-100 there would be 100 thin lines which may be appropriate in most cases. If the x scale is 0-5 there would be only five thin vertical lines. This appearance is very much different from what one would expect from an histogram. The suggestion is to set the width of the histogram bars to say +/- 0.4 x units, then there would be nice bars ranging from 0.6-1.4, 1.6-2.4, etc. in the case of an axis scale of 0-5, and the width of the bars would shrink accordingly if the axis scale is 0-100; in this case, there would be 100 rather thin lines resembling more or less the current appearance.
So in effect this suggestion is about an automatically adjusting line width (right now it is not possible to implement it manually because the line width is specified in pixels rather axis untis and is also limited to a maximum of 32 pixel.)
One step further could be to draw rectangles instead of lines with the possibility to independently choose line color and fill color.
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/...)
Ok, I guess everything is in the title
Open a source code where you fill an array
Put a breakpoint
Click on the name of the array
I would like to see the display in the bottom part of the IDE, not in a window
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...
When a user changes a numeric control radix, LabWindows/CVI generates an EVENT_RADIX_CHANGE event and sends the event to the control callback function.
eventData1 = The new format of the radix(VAL_DECIMAL_FORMAT, VAL_HEX_FORMAT, VAL_OCTAL_FORMAT, or VAL_BINARY_FORMAT). Provide an attribute to set the radix from source code.
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.