Search the Community
Showing results for tags 'cluster'.
-
How to change content type of N-element cluster
Gan Uesli Starling posted a topic in LabVIEW General
My Problem: I start with an array of N strings. Using the function "Array to Cluster" I get a cluster of 1-element arrays (each containing one string) when what I want is a cluster of N strings. My Question: How can I do any one of the following: A. Produce a cluster of strings from an array of strings? B. Break an array of arbitrary length into N strings? C. Build a cluster, adding strings one at a time (like pushing onto an array)? Why do I need this? Am saving widget values to a file at end of probram. Then on a cold restart, the user can elect to re-populate those same widgets with the end conditions of the last test. I had been doing it for up to four sets of each kind of widget using case statements. With four of each kind of widget I got by since each was only 16 cases. But now I must increase some of those four to eight (256 cases). And now they are asking for 12 (number of cases = Way Too Many) and can even see them one day asking for 16 or more (number of cases = OMFG!). Best solution woud be something like UNBUNDLE but for an array instead of a cluster. -
dll How to deal with clusters containing clusters?
Fred chen posted a topic in Calling External Code
Hi When I call the DLL, there is a structure: struct Signal { uint32 nStartBit; uint32 nLen; double nFactor; double nOffset; double nMin; double nMax; double nValue; uint64 nRawValue; bool is_signed; char unit[11]; char strName[66]; char strComment[201]; }; There is another Message structure to the above Signal: struct Message { uint32 nSignalCount; uint32 nID; uint8 nExtend; uint32 nSize; Signal vSignals[513]; char strName[66]; char strComment[201]; } The point is Signal vSignals[513]; I've tried to solve it like this,but the program will crash. How to create struct Message ,any good suggestions? Thanks a lot. message.vi -
After working on the set cluster element by name xnode, it made me realize i could use the same concept to convert a variant array to a cluster. The technique is actually pretty simple, the xnode generates a case structure for each element in a cluster in cluster order, wherein a bundle by name is used to set the value and an unbundle by name is used to get the type, a variant to data is used to convert the data. This has some benefits over some methods, you are not limited to 255 elements, although that is not usually the case some of us are paranoid that clusterosaurus giganticous will be larger than expected. It also has a draw back that is that when converting from a variant array all the elements must have unique, non-blank names, and this is usually the case. I think this technique (though very brute-force) might be useful for some other things let me know what you guys think. VariantArrayToCluster.zip
-
This Xnode allows setting a cluster element by label string without using references. I pulled a great deal of inspiration from Hooovahhs Variant Array to cluster xnode, which i suppose this could be used for, another benefit is its not limited to 255 elements. Its mostly experimental because I haven't used it much. SetClusterElement.zip SetClusterElementLV2013.zip
-
Hi All I'm playing around with visualising clusters as a tree structure. I've got some nice code working that I thought I would share. It's part of an abstract data viewer that I'm working on. Code is based on Open_G Variant and Open_G Config File tools ClusterViewer.zip
-
Hi. Im working on this prosjekt where I have a TCP communication between two computers (Server & Klient). I have managed to get communication between those two. (Sending and reciving one cluster.) But I want to send and recive more than one. I looked at det Topic "Passing Cluster and Datatype Through TCP" on how to use the OpenG, but I have a problem with "the Variant to Data". What am I doing wrong? Or is there another way to send more data? The Klient side: The Server side:
-
Is there any way to automatically wire an index array block to a bundle by name block? Auto-wire (pressing space) just adds one wire. Note that my cluster contains data of different types so converting the cluster to an array doesn't work. If there is a quick-drop shortcut for this I would be very impressed.
-
Edit: found this in context help: Arrays and strings in hierarchical data types such as clusters always include size information. http://forums.ni.com/t5/LabVIEW/Write-to-Binary-File-Cluster-Size/td-p/3199224 I have a cluster of data I am writing to a file (all different types of numerics, and some U8 arrays). I write the cluster to the binary file with prepend array size set to false. It seems, however, that there is some additional data included (probably so LabVIEW can unflatten back to a cluster). I have proven this by unbundling every element and type casting each one, then getting string lengths for the individual elements and summing them all. The result is the correct number of bytes. But, if I flatten the cluster to string and get that length, it's 48 bytes larger and matches the file size. Am I correct in assuming that LabVIEW is adding some additional metadata for unflattening the binary file back to a cluster, and is there any way to get LabVIEW to not do this?
-
Hi, I'm facing this issue with LabVIEW 2014. I have made a program with LV 2012 that passes some clusters to another application, made with LabVIEW 2012 also. All clusters are passed as strings between the two programs, using "Flatten to String" and "Unflatten From String" VIs. Well, everything works smooth when both applications are compiled with the same release of LabVIEW. I have rebuilt the application that send data with LabVIEW 2014 and the receiver generates an error because cluster version is not recognized Is there a way to preserve cluster version (i.e. maintain LabVIEW 2012 version, in my case) so that I do not need to rebuild all applications with LabVIEW 2014?
-
I recently posted this example code to ni.com - https://decibel.ni.com/content/docs/DOC-40315 Essentially I tried to create a completely universal (or close thereto) Cluster to Struct and Back Again set of functions. These consider packing/padding, data alignment, endian-ness, etc. I included some examples that have arrays and strings in the cluster as well as data pointers. I see this topic being fairly active here on LAVA and to a slightly lesser degree at NI.com Anyway, I don't know if the code will help anyone but I would be helped by any feedback or suggestions if anyone does try it! Cheers, -Jolt
-
Hello Every Body i have a Question i used a component relay in labview and i'm going to switch between clusters but shown this Erorr wire please help me!
-
I've run into an interesting problem using the Open G variant library. When trying to extract a list of cluster element names from a cluster in an empty array of clusters in a cluster itself, I get the following error from the Open G "Get Cluster Element Names VI": An example VI showing the problem is attached. At first I thought the problem was due to the fact the array is empty, but asking for cluster names of an empty array of clusters that is not in a larger cluster completes without error. Any thoughts on the cause or solution to this problem? empty array of clusters problem.vi
-
Hi All, I have an application where I store the data in a cluster. Suppose this is my ver. 1 of the application and the cluster consists of 3 I32. and I ship this application to the customer. Now for the ver 2 I want to store a string to the cluster so I updated my cluster to 3 I32 and 1 String. But this ver 2 should also be able to read ver 1. just like MS Word 2007 is able to read .doc files In my design, I am stroing the version number and data(as variant) in a cluster and convert that cluster to variant and do a 'variant to flattened string' before saving it to a file. I am attaching my desing protoype here so you get a better idea of what I am talking about and suggest me if you think it can be done in a better way. Thanks, Ritesh ClusterVersionControl_Design.vi
-
When using a fixed-size array inside a cluster, I am unable to use the cluster with functions that demand a fixed-size data type. This even though the cluster is actually a fixed size. The alternative is to add an individual element for each entry in the array, but that quickly gets unwieldy and results in messy, overcomplicated code. I've run into this issue several times and haven't found an elegant alternative to manually wiring up every single entry. Hoping y'all have some good ideas in lieu of NI fixing the issue. Thanks
- 5 replies
-
- fixed size array
- cluster
-
(and 1 more)
Tagged with:
-
Hi there! I've played around with a piece of my Programm where I have to create an array of clusters where a cluster has two emenents: a NAME and a VALUE for the specific name. I Would like to use something like the firt Screenshot as an Input (Bundle the Variables to a cluster). Then, inside the SubVI I would like to generate said Array of Clusters based on the Label of the Controls that I use as Inputs to the cluster. As a Result I would like to get something like this: The thing is that I can't seem to get the Data out of the Variant - On the Frontpanel, the indicator for the variant shows all the information I need... How do I get the Information out of there? Any Ideas?
-
I'm making a Tic Tac Toe game using a cluster of 9 picture rings to represent X, O, or a blank spot. If I were to be doing a one player game vs the computer, is there a way I could make the computer make a move? I've tried a few things, and none of them worked. If you want to see the VI, which isn't finished nor cleaned up yet, I have it attached. Thanks Tic Tac Toe Game.zip
-
What am I doing wrong? I'm using the JKI "Write INI Cluster__ogtk.vi" and "Read INI Cluster__ogkt.vi" and I can't read back what I wrote. First I "Set" and then "Get". When the "Get" state pushes to the "Variant to Data" I get an error 91 (variant doesn't match type input). Is my cluster too complex? Noticing that the type variant being written doesn't match the variant data being read. It's missing section names. Can I do any complexity cluster or must it be formatted in a specific manner? I saved the hierarchy in this zip so you can see the very JKI libs I'm using. JKI Cluster to INI issue.zip One responder in the JKI forum indicated no problem. Another surmised that the IMAQdx reference was causing the error. Thanks in advance, JF
-
We found this bug when updating from 2010 to 2012 last week. Certain types of clusters will not update over datasocket or network-published shared variable. You will only get their default data. Here are the conditions that will cause the problem: The cluster contains an array of clusters The array of clusters is not the last item in the cluster The array of clusters is empty All three conditions must be fulfilled in order for the bug to appear. An AE was able to reproduce it and it has CAR #385089.
-
- datasocket
- shared variable
-
(and 3 more)
Tagged with:
-
Kello everyone! I have some instruments which i controll over VISA. the software has two parts: one GUI running on a computer and the program running on the PXI to which the instruments are connected. I would like the user to be able to choose the GPIB address of each instrument on the GUI, so i created a cluster of GPIB controls. My problem is that while the same cluster on the software of the PXI gives the posible addresses from the instruments connected to it, on the GUI it does not. One easy solution is the user to write the number of each instrument and manipulate the string but i hope there is a more "nice" way. Also if i create a shared variable it cannot be network, only single proccess, which might play a role. I am using Labview 2011 and windows 7 Thank you in advance.
-
Hi, i have question about array of clusters. I want to do some list of commands where i use table of arrays. In array are 2 tables one string and one image controller. I found code that find me active (clicked cell in this array but is there any way how to highlight this cell? I tried to changed background color of this cluster but this change color for whole table. Can you help me. My program is attached. editor.vi ClickedArrElement.vi