Jump to content

Suggestions for user interface for this situation


Recommended Posts

I'm going to have up to 100 registers (just consider a register as a simple numeric control for this example but they could be boolean clusters) that need to be sent to a JTAG controller. The user may want to program any number of these registers at once. I'm trying to figure out the best way to interact with the user in this situation and program only those registers that need to be programmed. I think sensing which register(s) changed is not an option because the user might want to send a register as is.

So far all I can think of is the obvious:

1) Put a Boolean next to each register that the user sets and then pushes one Send button.

or

2) Put a Send button beside each register.

Has anybody has a situation like this before? If so, how did you handle it? I'm afraid I'm stuck in a rut and am missing a clever trick.

Now that I just typed that in I may have something along the lines of sensing which register changed. Clicking on the control could make it change colors. The color would change if a value was changed or if the user just clicked on it. Moving away and clicking again would revert it to it's original color (deselect). Only those controls with changed colors would be sent with a single Send button. I guess I can see a few problems with this, but it might work.

George

Link to comment

Hi George:

Is there a great cost in not sending all the registers, even those the user hasn't changed, whenever the user wants to send even a single change?

I know that this is a dumb & wasteful approach, but I almost always use it in similar situations. Unless you're talking to a sattelite out by Jupiter, the bandwidth you are wasting is pretty cheap. The cost of confusion in keeping track of what has changed and what hasn't, and insuring that all the changes, and none of the non-changes, make it out to the remote device can be a little pricey at the programming stage, and really pricey at the debug stage. Just my HO.

Louis

Link to comment

QUOTE(Louis Manfredi @ Mar 30 2007, 03:22 PM)

Hi George:

Is there a great cost in not sending all the registers, even those the user hasn't changed, whenever the user wants to send even a single change?

Louis

I don't know for sure yet, but I think the delay will be too long. I don't have the hardware yet and I've never used this Corelis JTAG interface before. I wanted to have a backup plan.

George

Link to comment

How about a table with columns labeled Register# and Value. As soon as the user enters a new Register#, your VI automatically updates the Value column to that register's current value. If the user tries to enter an already-listed register number, you beep or flash, and move the cursor into the column where that register's value is listed.

This idea makes good sense if the number of registers the user wants to change tends to be very small compared to the number of registers. Otherwise I like your idea better.

Link to comment

QUOTE(torekp @ Apr 2 2007, 02:13 PM)

How about a table with columns labeled Register# and Value. As soon as the user enters a new Register#, your VI automatically updates the Value column to that register's current value. If the user tries to enter an already-listed register number, you beep or flash, and move the cursor into the column where that register's value is listed.

That might work if all the controls were the same type, but remember I said that some could be be Boolean clusters (some are actually Enums too).

George

Link to comment

QUOTE(Louis Manfredi @ Mar 30 2007, 03:22 PM)

I don't think this is dumb at all, it is adhering to the KISS principle using Occam's Razor.

One of the guys who posts to Info-LabVIEW has a signoff block quoting someone else to the effect of: "Elegance in design is achieved, not when there are no more features to add, but when there are no more features to take away". I really like that.

QUOTE(george seifert @ Apr 2 2007, 08:15 AM)

I don't know for sure yet, but I think the delay will be too long. I don't have the hardware yet and I've never used this Corelis JTAG interface before. I wanted to have a backup plan.

Having a backup plan is always a good idea, but if your JTAG hardware can handle "X" number of registers, then it should be able to handle sending all of them at once. If it cannot, I'd be pretty surprised and I'd look (if possible) for another JTAG vendor.

Lastly, you can probably code up the "send everything every time" version in a very very short time, (before the HW gets there) since it is so simple. Then, if you have spare time and an itch that won't go away, you can work on a "backup" method. If it turns out that you finish both and both work, remember KISS & Occum.

post-932-1159825841.gif

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.