LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Group FPGA Controls With Dot Naming

I remember a very not well known feature of FPGA development that I used that I can't seem to get to work so I'm wondering if NI removed it.

 

Lets say you have alot of FPGA controls on the front panel of your FPGA.  Normally on the host side to read or write to these controls you get a single big list that pops up when you click on the Read/Write Control.  The order that the controls appear in the list is newly created controls appear on the buttom.  So you have to slowly scroll through all the other controls to pick the one you want.  There is plent of room for clicking the wrong one especially if names of controls are very similar.

 

To fix this in the past you could take multiple controls, and have them share the same start of the name then seperate it with a dot (period) and group them on the front panel.  Then on the host side these controls would be grouped into a sub item similar to a nested cluster. I attempted this today on 2011 SP1 and my names don't group together like they did.

 

Just to be clear what I am saying is if I had the following controls:

 

UUT 1.Signal 1 High Time

UUT 1.Signal 1 Low Time

UUT 1.Signal 2 High Time

UUT 1.Signal 2 Low Time

 

And then grouped them on the front panel, on the host side these controls would be in their own category named "UUT1" with the other items beneath it.  Did anyone else see this functionality in the past?  Did NI remove it?  Thanks.

0 Kudos
Message 1 of 11
(8,612 Views)

I have never heard of this but I know that for polymorphic menus a colon is the separator, not a decimal point.

 

Try a ":" instead of ".".

 

Shane

0 Kudos
Message 2 of 11
(8,574 Views)

@Intaris wrote:

I have never heard of this but I know that for polymorphic menus a colon is the separator, not a decimal point.

 

Try a ":" instead of ".".

 

Shane


Thanks for the suggestion, I had high hopes that my memory was wrong and it was ":" but sadly no that doesn't group the controls as I remember.  I was actually doing some FPGA work when I remembered this trick and wanted to share it because I knew it was not well known.  It was told to me long ago by someone who helped first develop FPGA support at NI for LabVIEW in the 7.0 era.

0 Kudos
Message 3 of 11
(8,568 Views)

Regardless, I would LOVE to see this implemented.

 

I also wish we could make menus out of case structures, event structures and so on......  But maybe LV isn't ready fo rsuch radical UI changes.....
 Smiley LOL

0 Kudos
Message 4 of 11
(8,564 Views)

@Intaris wrote:

I also wish we could make menus out of case structures, event structures and so on......


In the mean time you can use CaseSelect for case structures.

 

Full disclosure, I've never actually used it I just think it's a great idea.

0 Kudos
Message 5 of 11
(8,557 Views)

I agree it does the right thing but I feel things like this belong in any half-modern IDE.

0 Kudos
Message 6 of 11
(8,546 Views)

Success.

 

Okay so with the help from that old friend I mentioned I got it to work here are a few rules.

 

  • Place your controls/indicators with the dot notation ( like “ Status.ESTOP” and “Status.Ready”, etc)
  • Group ONLY the ones with the same prefix together ( all of the “Status.” MUST be in 1 group)
  • The FPGA Open must be configured to not be Dynamic Mode

 

My problem was I had dynamic mode on.  After grouping my controls, and using the dot notation my controls are grouped on the host side, and can even select all items within a group.  Attached is my example project with controls that are grouped and not grouped.  Notice that the order within a group is semi random, but that still better then having to find a single control within all the controls on the front panel.

 

Group Controls FPGA.png

 

Message 7 of 11
(8,502 Views)

Nice trick Hoovah, worth knowing. Hope they polish this functionality up for a future release.

0 Kudos
Message 8 of 11
(8,476 Views)

@Hooovahh wrote:

Success.

 

Okay so with the help from that old friend I mentioned I got it to work here are a few rules.

 

  • Place your controls/indicators with the dot notation ( like “ Status.ESTOP” and “Status.Ready”, etc)
  • Group ONLY the ones with the same prefix together ( all of the “Status.” MUST be in 1 group)
  • The FPGA Open must be configured to not be Dynamic Mode

 

My problem was I had dynamic mode on.  After grouping my controls, and using the dot notation my controls are grouped on the host side, and can even select all items within a group.  Attached is my example project with controls that are grouped and not grouped.  Notice that the order within a group is semi random, but that still better then having to find a single control within all the controls on the front panel.

 

Group Controls FPGA.png

 



Having just been reminded by a thread on the main LV board, tabbing order should be involved somewhere to make your semi-random not so semi-random.

 

I've had a brief look using a VI that I use this in:

 

 tab-order.png

 

From my small sample of four groups, I've got three theories:

 

1) The order within a group is controlled by the selection order when making the group.

Looking at my front panel, this seems likely, as the seemingly random order within, say, the Counter group, matches what I would have done.

 

2) The order of groups is controlled by control/indicator with the lowest tab order in the group.

For example, the first group that appears has tab item #1 in it. The next group that appears has tab item #2 in it. The next group #7, then #12. Items #0 and #5 are not grouped, and thus afterwards.

 

3) Groups are listed before un-grouped controls, which appear afterwards in tab order. The justification for this is that Controls.Stop Button onwards are grouped on the front panel, but as FIFO Timeout is not Controls.FIFO Timeout, it's not a valid group for dot naming, and thus treated as individual controls.


Edit - apologies for the thread resurrection 🙂

---
CLA
Message 9 of 11
(8,194 Views)

I figured it could be any of those three reasons for the order.  Also thought it could be the order in which the controls are first made, which I've seen used as block diagram indicies in the past.

 

No need to apologize for resurrection, as far as I can tell this is the only thread which discusses, or even acknowledges this feature exists.  I haven't done much FPGA development recently but I'd like this feature to be improved on and polished.  I almost put this on the idea exchange, but then again it is already a feature, just not a well known one.

Message 10 of 11
(8,181 Views)