LabVIEW Idea Exchange

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

Currently I'm busy with GOOP and I came across the following problem. 

 

I have a validator class. The purpose of this class is to validate data. The validator class as a number of childrens...

 

Validate IP address

Validate string length

Validate inRange number

Validate Alpha

 

The main, validator, class has a function called "valid?" This function has 3 inputs and 3 outputs

 

Inputs:

- Object

- The data that must be validated

- Error

 

Output:

- Object

- Valid?

- Error

 

The children classes must inherit this function and overwrite it. Now the problem is is that each of the above validators have a different datatype which must be validated....

 

Validate IP address has a string as input

Validate string length has a string as input

Validate inRange number has a number as input

Validate Alpha has a string as input

 

Now you might see the problem. To get the children to inherit the function from the main, validator, class the connector pane must be the same as of the datatypes... This means that I have to choose in my main function to use a string or a number as input... This is something that I don't want... I want to be able to select a datatype called "yet unknown datatype" in my main "valid?" function in the main, validator, class. So that I can use any datatype input in my children that is suitable for that implementation. 

 

 

My idea is thus to create a new kind of datatype which sort of represents "any kind of datatype known to labview" which can be used in functions of a main class that are inherited by its children, which are all using a different input datatype.

 

ps. Now you could maybe suggest why not use a variant datatype? Yes this is possible but the problem is;

- I would have to cast the data back

- It isn't very neat programming, the variant solution is in my opinion more a kind of hack to make the code work.

 

pss. Yes but if you would do this... then...

- Yes there are proberbly a few more work arounds thinkable, such as creating two "Valid" VI's one inherited (Valid?), one unique of the child (_Valid?), but these are in my opinion still workarounds and do not really provide the functionality that is needed. Which is pretty common in OOP languages.

 

psss. if anyone knows a better title for this described idea let me know it! 

I would like to be able to right click on any Queue or Notifier (that has been previously setup, i.e. wired) and find all of the Queue or Notifier functions associated with it. Extend the idea to specifically find where these functions are setup and terminated.

 

In the pictured example, I have been able to easily troubleshoot a problem where someone has released a Notifier in two separate locations...

 

22266i6DB10B9728172C12

 

 

 

When a folder under source control is added to the VI analyzer the subfolder for version control is inserted too. Lets get around this by allowing patterns for folders (or files too) which should be ignored. So adding ".svn" would solve the problem of files of subversion being checked.

I see three possibilities to save the patterns:

- for each top level folder

- in the configuration file

- globally (not preferred, other users do not get the setting)

 

(There is a discussion about VI Analyzer and SVN under http://forums.ni.com/ni/board/message?board.id=170&view=by_date_ascending&message.id=290839#M290839)

 

Greetings,

shb

 

In their current form, Auto-Indexing tunnels only operate on a single dimension of an array.  For example.  If you input a 2D array, through an auto indexing tunnel into a for loop, and display the resulting 1D array in an indicator inside the for loop as below, you will always get the last row.

 

I'd like to see a feature where you can right-click on the tunnel or something, and set it to auto-index by column, instead of by row, and get the last column instead.20773i86B483107F51CD3820775i651136B201680B64

 

It could be as simple as an option in the context menu for the auto-indexing tunnel to say "Index by rows" or "Index by columns"  It gets more complex with 3D 4D and moreD arrays, but you could do something like a submenu flyout that says "Index By Dimension" > "1", "2", "3" etc

 

Option on the build array function to pad concatenated arrays of different sizes with NaN instead of 0.

Currently, the only representation for array indices is I32.  Given that indices can only be positive, and that modern systems are 64-bit, it would seem sensible to make this U64.

Add support to the Vision Development Module for multi-image TIFF files.  Currently the files can be opened but only the first image can be read.

It is a little know feature that "interpolate 1D array" also accepts arrays of xy points. (Here's an example from this post)

 

 

However, these days I mostly do xy graphs using complex data (RE=x, IM=y), and it would be useful if "interpolate array" would also accept complex arrays the same way, interpolating IM based on RE, in this case.

 

Here's similar code (fragment) using complex, but now it's not possible to interpolate the xy data directly because complex is currently not a valid input.

 

 

Suggestion:


Similar to xy graphs, interpolate array should accept complex arrays and it would act the same as when an array of xy points is wired to it instead.

 

Hi,

 

I need a vi which will convert PNG file to GIF file. i could find a vi which is not in palette, do this. But the output GIF file is in uncompressed format. So the size of the file is very large. And also it is not working when i build the application as EXE.

 

It will be really helpful for me if this feature is included in the next release of LV.

 

Thanks,

Vairamuthu.

-----------------------------------------------------------------------------------------------

I'd like to see native Ternary Logic support (aka three-valued or trivalent logic, or 3VL). True and False could still be represented by 1 and 0 respectively, and the third option could be represented by -1.

 

Not much else to say about this really... I think it's pretty self-explanatory.

Analagous to replacing wire connections with a Shift Register on a While Loop, it would be nice to replace the connector where a wire enters an In Place structure with one of the appropriate accessor functions (Unbundle/Index etc).  In the same way, it should prompt for the location on the other side of the structure, either to replace a wire connection, or to create a new element.

Via the Historical Data Viewer it is possible to export the citadel data to text (compare screenshot). In many cases it is necessary to export only the real datapoints without interpolation (like the read trace VI supports) to avoid an incorrect representation of the recorded data.

I need a format into string that is capable to format numeric with thousands separators.

Like this  (Visual Aides - Numeric Separators) idea but also for the conversion and scan functions.

 

Looking at the syntax

 

%[$][-][+][#][^][0][Width][.Precision || _SignificantDigits][{Unit}][<Embedded information>]Conversion Code

 

 

the  <Embedded information>  currently used only for time formats would be ideal to extend to a more general form. 

 

Something like <+ nnn nnn.ddd ddd> would be nice 🙂 ( the d is already occupied ... # or whatever .... maybe similar to the excel format syntax or maybe there is a (better) standard??? )

 

Currently I use the attached vi to add the separators, however it would be nice to have it in a general form 

 

 

 

I think it would be cool to be able to define custom units in the build unit string function.  For example (%, dB, or Dan's).  The ability to include custom units would remove the burden to include every unit in this dialog.  Adding custom units would also help people who have large complex calculations.

 

Unit Dialog.png

When replacing a normal Add (of a Timestamp and a value) with the compound arithmetic, the Timestamp input gets broken, this should not be the case.

 

I think everyone under the sun must have written there own degrees to radians function or vice versa.  Its not hard to do but perhaps it should be available natively as part of the maths palette.

There are many array functions that don't need to depend on the dimensionality of the array - for example most of those in the "Probability & Statistics" menu (Mean, Median, Std Deviation etc) and some in the Signal Operation (like Scale, Normalize).  But if I want to use one on a 3D array, I must first make a copy by reshaping to a 1D array, which can be very memory-expensive.  I'd like a node on the "In Place Element Structure" which accepts an array of any dimension, and makes the data available as a 1D array of that type.

 

I've suggested a similar idea before here, but perhaps I made it too complicated to receive any comments!  I keep running into this problem, so lets try again.  Smiley Happy

 

Please implement a way to generate reports in ODF (native format of OpenOffice) as it is a file format everybody can read (.doc is not because you must buy Microsoft software).

 

 

If you do that, programmers will automatically be able to generate PDF because OpenOffice has a dos command to convert any ODF document to PDF.

LabVIEW  has a somewhat hidden feature built into the variant attributes functionality that easily allows the implementation of high performance associative arrays. As discussed elsewhere, it is implemented as a red-black tree.

 

I wonder if this functionality could be exposed with a more intuitive set of tools that does not require dummy variants and somewhat obscure VIs hidden deeply in the variant palette (who would ever look there!).

 

Also, the key is currently restricted to strings (Of course we can flatten anything to strings to make a "name" for a more generalized use of all this).

 

I imagine a set of associative array tools:

 

 

  • Create associative array (key datatype, element datatype)
  • insert key/element pair (replace if key exists)
  • lookup key (index key) to get element
  • read all keys
  • delete key/element
  • delete all keys/elements
  • dump associative array to disk
  • restore associative array from disk
  • destroy associative array
  • ... (I probably forgot a few more)
 
 
I am currently writing such a tool set as a high performance cache to avoid duplicate expensive calculations during fitting (Key: flattened input parameters, element: calculated array).
 
However, I cannot easily write it in a truly generalized way, just as a version targeted for my specific datatype. I've done some casual testing and the variant attribute implementation is crazy fast for lookup and insertion. Somebody at NI really did a fantastic job and it would be great to get more exposure for it.
 
Example performance: (Key size: 1200bytes, element size 4096: bytes, 10000 elements) 
insert: ~60 microseconds
random lookup: ~12 microseconds
(compare with a random lookup using linear search (search array): 10ms average. 1000x slower!)
 
Thanks!