control array element changing order
I have observed several times where some of my paintings of controls have their items change order between debugging sessions.
It's unpredictable when it happens. But the symptoms amounted to my controls bad secondary control (for example, LED #2 gets turned on when the #0 SWITCH is pushed).
When I inspect control arrays, I can find that one or more items are now out of use. When I their difficulty in IUR again, then all is well again.
Any thoughts on how to lock them to the UIR?
ElectroLund,
One thing I noticed on your code, you call the GetCtrlArrayFromResourceID function at the top of each callback. Because the control panel should not change while the program is running, I might suggest you make all these function calls in the main function as soon as the program starts and just store it for use in the recalls. Which probably isn't helping the problem here, but it would make things a little more efficient.
Nothing is coming out for me right now as being a possible cause of the problem. I know you said you've been changing the code in an external IDE; to be clear, have edited the UIR file in any external editor?
One thing that was suggested by one of my colleagues was to create control arrays in source code, instead of using the GetCtrlArrayFromResourceID function. This would ensure that the controls are in the order that you want them to be, even if it would take a little more code to implement.
Tags: NI Software
Similar Questions
-
Change the value of the array element without using the keyboard
I have a control array on my front, say 1 d, 10 items.
In addition, the front panel should be used with a touch screen, so I have a Subvi keyboard that should be called when I choose one of the elements of the array. Therefore, no keyboard entry is allowed.
My question is, how can I determine which element that the user hit/clicked?... .and how to change this value?
-Mike
Gents nevermind, found a way to emphasise that if this is the best way, but I got it.
In my structure of the event, I have an event looking for the mouse event down in regards to the control array. This event triggers my screen touch keyboard Subvi to fire, and the closure of the Subvi I pass its value to the ArrElem.Value property to assign the table a hit/clicked item. Works.
-Mike
-
array element references confused me
Then... I'm playing with references to arrays, specifically references to items in a table.
It seems that I should be able to read the value of the table, but because of how I am tying TestStand and LabVIEW, I am trying to create a utility that automatically obtain data back between the LV and TS, where the types of data passed back are completely unknown and, possibly, paintings of beams that have tables nested clusters.
I try to walk the LV data structure and reference TestStand and get the right data. However, I can't seem to be able to use references to point to specific elements of a table - see example I expect the high and the low code works the same, but they do not.
Any suggestions on what I do wrong to get the top and bottom to work the same?
LV2011 attached code
Ravens fan wrote:
Property of the array element node gives you a reference to the element that makes up the table. So if you set the properties of a digital control maybe to change the color or display format.
Is not a way to get or set the value of a specific array element. To set a particular array element, you must use replace table subset. To get the value of a particular array element, you use table to index.
Indexvalues property node is used to determine which is the first item that appears. It changes the value of the indexer the upper left corner of the table.
One thing I noticed that I don't know if I knew before, it was this setting the property value on the reference of array element, node will have an impact on the first element of visible table. If you turn the highlight performance and play with array index, while it is running, you will see that the resulting table will be different.
Although it IS possible, you can not do after seeing what it takes.
We can get the value of an array element that is in a control or indicator provided it it the upper left display element.
This nugget exploits that factand see how it can be done. Note: I have not tested this code lately so I don't know if NEITHER broke this behavior since the writing of this nugget.
Ben
-
Reference to the array of Clusters with an array element
Hello
I have an array of clusters of CONTROL (qualifying as "upper-tier cluster table") with one of the items is an array of cluster cluster (see attached).
I intend to "reference" of this cluster of high level at different screws (as add item VI, insert item VI, delete the item VI etc.) and access (add/edit delete) the elements of this array.
In my code, how I cataloged the array element (cluster) on the cluster internal (as shown on the figure)?
I use LV RT on PXI.
Hello smercurio_fc,
Thank you for your example! Just a question: actually, with shift registers, is an example of creating a local copy of the full range? Even if the value of the lowest level cluster is changed, is the complete table is updated at the end (registry value to offset the full picture at the right end is updated using the reference node and property)? This VI will be slow when the size of the array becomes great?
Comment of nicely.
-
The callback functions control array?
My apologies for my basic question.
I'm experimenting with control arrays and so far able to collect data in controls of a string that is contained in the tables of controls. Works well. Of course, none of these controls need callback functions.
Now, I need a few momentary controls in a control array as well. So my question is, should I use a single callback for all button controls function in this unique table? And if so, how can I do to determine which element in the control array called the function? Reading the forums, it seems as if the use of the data parameter of the callback could happen to me.
I just wanted to ask before we get off the track. Thank you!
Yes, callbackData can be useful in such a situation, but if you can limit to switch to array index to distinguish what to do the recall of your button might be something on this line:
int CVICALLBACK BtnAttayCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { int handle, index; switch (event) { case EVENT_COMMIT: handle = GetCtrlArrayFromResourceID (panel, control); GetCtrlArrayIndex (handle, panel, control, &index); switch (index) { // Your code here } } return 0; }
(No CVI install here so I can't test it: check the code, but it should work reasonably)
-
How can you specify the default value for the undefined array elements
According to aid LV, the tables have two default values, the normal default value and the default value for the undefined array elements.
I assume that there must be a way to specify the default value for later, but I can't find it anywhere. Any ideas?
I know that you can drag the item out of the table container. Change the default value on this scalar element. Then drag the item in table tank.
-
How to put the names of programs in the control panel in the order of the alphabet
How to put the names of programs in the control panel in the order of the alphabet
Hi maguma,.
Please use the Microsoft Windows Forum.
When you go to Control Panel , click on "view by" at the top right of the screen and select 'large icons or small icons' , she will change in alphabetical order.
If you are referring to the programs and features in Control Panel, you can right-click in the empty space of the programs and features page > click on 'View' and click on 'Name' , IT ' l be alphabetical.
Kind regards
Aziz Nadeem - Microsoft Support -
Hi all.
As indicated in the title, I'm reading part of an array element.
What I'm doing is reading a LeCroy scope values using a 'write' 'read' I returned the values in a table, but the question is the scope returns a value of "1, 52.33E - 3".
I just want the element to be 52,33 so I can use it for other calculations.
For example, my table.
' 1, 34.334E - 3.
' 1, 53.343E - 3.
' 1, 143.232E-
And I want it to be
34.334
53.343
143.232
Thank you!
Use string functions (match pattern) to find the comma. Then convert the part after the comma to a number using the string appropriate to the Number function.
Are throwing you what looks like an exhibitor intentionally?
The last string seems to miss the exhibitor. This suggests you may have problems with your communications with the instrument.
Lynn
-
Get all the different values in a table - 'or array elements' does not work with I32
Hello
I just found out that "array elements or" does not work with a table 1 d of integer values. I didn't expect that.
I did a semi quick forum search and did not find a pointer to an effective solution. Can someone give me a hint?
Do not back my initial intention is to list all the values that appear in an array of integers.
I thought that if I converted the figures for powers of 2 and or I had solved the problem at hand - only to discover that the elements of array does not.
If someone could propose a different approach, I'd be happy too.
I should mention that the execution time is a factor here - I need a fast code, but any suggestions are welcome because they could help me get started.
Best regards Florian
Hi Florian.
try this:
"Function, it seems, the table of GOLD ' is polymorphic (as written in the context-sensitive help), but does not support arrays of I32. At least the error message means just that...
-
Is there a tutorial on how to use control arrays in LabWindows?
It is quite simple to create in IUR, but the coding is not what I was hoping.
I tried this
for (iLoop = 0; iLoop = iNumberofControls; iLoop ++)
SetCtrlVal (Panel, CRTLARRAY [iLoop], value);
Hello
I am aware of the manual, http://zone.ni.com/reference/en-XX/help/370051T-01/cvi/uiref/programming_with_control_arrays/and the userint\ledctrlarray.cws (very) brief example
-
Hello everyone,
Is it possible to control the elements (graphic palette in the profile of the line) via the property node?
Greetings zapfle
In general, you must balance only Min/max property, then you can "zoom and Pan" by program:
Andrey.
-
Control arrays disappear when closing the window .uir
Using LabWindows/CVI 2010, I created a program of simple test with a panel containing a couple of buttons push, three tumbleurs and three control LED. I can create arrays of controls containing the toggle switches and/or LEDs in the .uir editor and access in the program, but when I close the .uir editing window and reopen the .uir file, control arrays are gone from the .uir file and of course when I rebuild the program I can't access it. This happens if I leave LW/CVI entirely or if I just close the editor of .uir. If I explicitly the file .uir after creating tables, everything seems fine, but then when I close the .uir window I see an asterisk briefly appear in the tab of the file name, as if it is modify the file, and then re-register on the goal.
I can duplicate this just creating one or two control panels and by closing the window. Sets disappear, even though I explicitly save the .uir file after I created them. Is there something I can do to prevent this?
Thank you
Brian
Brian.
It seems that your UIR may have have been saved for an earlier at some point. If you open the UIR and look in the lower right corner, you say 'file UIR 2010'? "Otherwise, you need to click on File ' Save *.uir as and save the UIR under a 2010 UIR.
If you choose to save the IUR for an earlier version, CVI remembers this decision and always saves the IUR for than the previous version. You will have to explicitly choose to save them for the current version.
Let me know if this does not fix things for you-
NickB
National Instruments
-
I can't get into my control panel to change the security settings or anything like that. It says Windows\systems32\rundll32.exe not found. What should I do?
Hello
1. don't you make changes on the computer before this problem?
Check if the steps of troubleshooting the following article shows you help.
Cannot find the Rundll32.exe file when you open Control Panel
http://support.Microsoft.com/kb/812340 -
I bought Photoshop and elements of order #AD003212006UK. When I try to download I am informed that the software is not suitable for my system (new iMac, retina) Please help
You are 100% sure that you are clicking to download the Mac version and not the version of Windows?
Since this is an open forum, not Adobe support... you must contact Adobe personnel to help
Chat/phone: Mon - Fri 05:00-19:00 (US Pacific time) <===>===> NOTE DAYS AND TIME
Don't forget to stay signed with your Adobe ID before accessing the link belowCreative cloud support (all creative cloud customer service problems)
http://helpx.Adobe.com/x-productkb/global/service-CCM.html
-or by phone http://helpx.adobe.com/x-productkb/global/phone-support-orders.html -
A fundamental question/problem with the like undefined array element
Hello everyone,
Thanks for looking at my problem. I am very new script and javaScript, and I encountered a strange problem. I always try to solve all my problem myself, with documentation (it helps to learn) or as a last resort with the help of google. But in this case, I'm stuck. I'm sure its something very simple and elementary.
Here I have a code that simply loads a text file (txt), load the contents of the file in a "var glad." This summary text file a font family name, every name on a new line, as:
Albertus
Antenna
Antique
Arial
Arimo
Front
Barber1
Barber2
Barber3
Barber4
Birch
Blackoak... .etc
Now I hollow the variable content of loop, extract each letter and add it to the list '[i]' table. If the character is a line break the list [i] table adds another element (i = i + 1); That's how I separate each name in its own element of array.
The problem I encounter is, when I have hollow loop table fontList and $.writeln (fontList [i]) is the result in the console :
undefinedAlbertus
undefinedAntenna
undefinedAntique
undefinedArial... etc.
I don't get serious, where the undefined comes? As far as I tested each digit to be added to the array element, I see nothing extraordinary.
----------------------------
----------------------------
Here is my code:
#target illustrator
var doc = app.documents.add ();
Open the file
var myFile = new File ("c:/ScriptFiles/installedFonts-Families.txt");
openFile var = myFile.open ("r");
check if it is open
if(OpenFile == true) {}
{$.writeln ("the file has loaded")}
else {$.writeln ("the file does not load, check the name or the path") ;}}
load the contents of the file into a variable
var content = myFile.read ();
myFile.close ();
var ch;
var x = 0;
var fontList = [];
for (var i = 0; i < content.length; i ++) {}
ch = content.charAt (i);
If ((ch)! == (string.fromCharCode(0)) (10))) {}
fontList [x] += ch;
}
else {}
x ++;
}
}
for (i = 0; i < fontList.length; i ++) {}
$.writeln (fontList [i]);
}
doc. Close (SaveOptions.DONOTSAVECHANGES);
-----------------
-----------------
Thanks for any help or an explanation. If you have any tips on how to improve my practices or any suspicion, please do not hesitate to say. Thank you
Hi vladac54380629,
better, you try something like this:
#target illustrator //var doc = app.documents.add(); //open file var myFile = new File ("c:/ScriptFiles/installedFonts-Families.txt"); var openFile = myFile.open("r"); //check if open if(openFile == true){ $.writeln("The file has loaded")} else {$.writeln("The file did not load, check the name or the path");} //load the file content into a variable var fontList = []; var content = myFile.read(); fontList = content.split ("\n") myFile.close(); for ( i = 0; i < fontList.length; i++) { $.writeln(fontList[i]); } //doc.close (SaveOptions.DONOTSAVECHANGES);
Have fun
A note:
The real font names may be different from your own list for example:
Arial! = ArialMT
Birch! = BirchStd
Blackoak! = BlackoakStd
Concerning
Maybe you are looking for
-
Upgrade memory on Satellite M60
HelloI recently installed Vista Ultimate on my computer Satellite M60 laptop, it is activated and updated, but I think it is out of memory. I have two 512 memory banks and bought two chips of memory of 1 GB crucial to install instead of 512 banks.It
-
[graph] deleted plots are drawn to chart resizing
I'm working on CVI2012SP1 and I m having trouble with the chart control. As the stripchart control to much trouble for me, I went with the chart control to display a mobile chart. It works much more painless than with the stripchart, but now I have a
-
How to connect the HP Touchsmart 600 to a projector
I have this problem, I can not connect my touchsmart600 to Sony projector. I have the s-video cable, but when I connect to a projector, nothing happens. I bought HDMI VGA adapter, I connect to my computer with projector and nothing shows. Please, som
-
Sorting Fix audiobook? Sansa Fuze + Firmware 02.38.06
I was not able to see that books audio sorting has changed. If anyone has seen a change, Please tell me what has changed. It always seems that this audiobook section is designed for one type of book, I did not. I asked for an answer that someone
-
Resizing images using windows photo gallery live
I use library windows live and am resizing of TIFF images that are about 50 MB in size. I want to be able to choose the size of MB, but the Application it in reduced connection between 2 to 4 MB. Should we accept the size?