LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Different Screen Resolutions - What is the best method?

Solved!
Go to solution

If the refs are the only issue then I invite you to review the images in my GUI controller gallery found here.

 

Building on the sub-panel idea you could incorporate docking at let the user arrange as required. See my Docking gallery here for ideas to support that approach.

 

Quick comments on those links:

 

Clicking will let you see a larger version of each image. Once you do so you will find a link to the original thread where I posted those images.

 

I hope this posts helps more than it hurts!

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 11 of 23
(2,078 Views)
Ben

Currently, I am using a large Cluster with references of my main vi. If I break my main VI into 3 smaller vis, can I populate one single cluster of references, with references from all these 3 vis? I know that it is possible, but what is the best way to do that?

Should I have a vi that get the "all objects" references of all 3 vis and populate the cluster of references? If so, I will need a large bundle with the same numver of inputs of the quantity of objects of all 3 vis together. What is the best way to get that?

Thanks.

Dan07.
0 Kudos
Message 12 of 23
(2,056 Views)

@dan07 wrote:
Ben

Currently, I am using a large Cluster with references of my main vi. If I break my main VI into 3 smaller vis, can I populate one single cluster of references, with references from all these 3 vis? I know that it is possible, but what is the best way to do that?

Should I have a vi that get the "all objects" references of all 3 vis and populate the cluster of references? If so, I will need a large bundle with the same numver of inputs of the quantity of objects of all 3 vis together. What is the best way to get that?

Thanks.

Dan07.

Provided you are using the refs to just update the GUI or get input values (i.e. you are not using the GUI for data sharing) then a large cluster (type def) is aceptable.

 

NOTE: I do NOT encourage using controls and indicators for data storage. They are user I/O devices only. Store your dat elsewhere.

 

RE:All Objects?

 

I prefer to define the cluster myself and push the refs into the cluster when the app starts. Yes it takes some time to assemble the cluster (coding-wise) but it lets me use a cluster that has the appropriate ref types so that when I use them in sub-VIs the ref is of the same type as the control/indicator rather than a genericl ref that I have to cast to the proper type in the sbu-VI.

 

Accesing the refs are easy using a GUI controller which is an Action Engine that has all of the refs in a Shift register.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 13 of 23
(2,049 Views)
Ben

I am using a cluster with several arrays and clusters, etc. to storage my data. I would prefer to switch to an Action Engine for data storage, but I have too many subvis with copies of the data cluster (strict type def) and would be a pain to update and change all of them. I have the same problem with the references clusters, they are copied into many subvis.

To replace my data cluster into my subvis with a action engine, I would have to add an input into all my subvis and get data from the vi that is the action engine. Is there a easy way to replace the reference cluster and the data cluster with two actions engines and update them in all subvis?

Thanks

Dan07
0 Kudos
Message 14 of 23
(2,040 Views)

No easy way that I know of ( I would have used it last week on that OTHER code I was helping fix).

 

i am not advocating you rewrite it.  I was just trying to include the discalimer that I see no trouble with using a cluster of refs to be able to peek/poke the GUI but don't use them for data storage.

 

Take care,

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 15 of 23
(2,037 Views)
I will not use my "reference cluster" to storage data, but can I use my "data cluster" for that? My data cluster has arrays and clusters and it is a strict type def.

Thanks.

Dan07
0 Kudos
Message 16 of 23
(2,030 Views)

@dan07 wrote:
I will not use my "reference cluster" to storage data, but can I use my "data cluster" for that? My data cluster has arrays and clusters and it is a strict type def.

Thanks.

Dan07

I really am getting the feeling I may be confusing you and I do NOT want to do that (What is the greek meganointo - may it not be so).

 

If you data cluster lives in a Shift Register (like in an Action Engine) or a Feedback-node or a DVR (data value reference) AND you keep in mind inplaceness rules (serach if you do not know that term) AND you have given thought and effort to ensure there no potential race conditions then YES!

 

If you data cluster lives on the front panel of a VI and you are using property nodes to peek/and poke the data then I do not encourage that at all because;

 

1) Requires the UI thread to get at it.

 

2) Race conditions

 

3) Poor performance

 

Like I said, I am trying to help you and not hurt you!

 

Ben 

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 17 of 23
(2,026 Views)
Ben

Thanks for all your attention.

My data cluster lives in a control file (not a .vi file) and this control is a strict type def.

I have no raceconditions because data is write and read to/from the data cluster by subvis controlled by a state machine.

Thanks.

Dan07
0 Kudos
Message 18 of 23
(2,016 Views)

Ben

 

I am facing problems to populate my reference cluster using references from 3 different VIs.

 

To make things right, I will create a new topic for this question.

 

Thanks.

 

Dan07.

0 Kudos
Message 19 of 23
(1,992 Views)

One option that so far has not been considered is to use the tail to wag the dog. What I do is design my UI, and use a call to the WIN API to force the screen to the resolution that I have authored my UI to fit. Needless to say, to use this method, you write to the lowest reasonable common denominator. After all, if you are writing the software, then you should be allowed to select the screen resolution that it runs on!

The only issue I have found that is not addressed in this way is different aspect ratios. The laptop I write on is a 16 x 9, and some of my customers use the older "square" fit screens. I always make sure I know what the user's display aspect ration is going to be (when possible).

 

Some food for thought,

 

Have a nice day,

 

Dave

0 Kudos
Message 20 of 23
(1,972 Views)