Present & Future - open discussion of ArtBus

Hey all,

I am opening this discussion in order to have a place where we can post, debate, and document ideas; especially reagrding the future evolution of AB.

Hopefully it can become (at best) an open conversation about everything from large concepts to small technical details or (at worst) at least place where can catalog these ideas.

I look forward to your contributions!

rd - June '08

Comments

all right then...

So ok no one has quite taken a shine to this discussion idea (as in: no one has added to the conversation). However I am going to continue to use it as a way to at least get some ideas documented, and so am adding a new 'thread' to the conversation, namely: addresses.

As I currently understand it (Ed please correct me if I am wrong here) every ArtBus board can have an *individual* address A through M, and a *group* address Z - N.

If this is correct then theoretically it would pe possible to have thirteen boards individually addressed A, each of which could be in groups N - Z, and in turn thirteen boards addressed B, in groups N - Z, and so forth.... for  13 addresses by 13 groups (13^2) or maximum network of 169 boards. [which, for an average I/O per-board of eight. would make for 1352 'connections'!].

However...

An obvious question then seems: What if there could be 26 boards (A-Z) in 26 groups (A-Z)? Mathematically this would mean 676 possible addresses (for 5408 possible I/O), but of course the bigger issue would be the addressing scheme.

Presently a bug addressed A is assumed to also be of group Z (by default; unless the user has changed it). So in this sense the command !Ag; assumes bug A to be part of group Z; at least in the sense that there is no explicit identifier for the group in the command. Or put another way: !Ag; will command bug A of group Z... but also bug A of group Y (if there were one).

The solution then is radical: to capitalize* on addresses and groups the command set would have to be defined to explicitly identify both, for example: !AZg; and !AYg;

And Ed I can hear your objections already! Because in some ways we've crossed this bridge before... in your striving to keep bus traffic to a bare minimum you have constatnly strove to eliminate, not add, characters. In fact we came across this early on when the original spec was that the address needed only to be sent once, and then each subsequent command was assumed to be associated with that address. (which BTW if I never said it before: I always though was beautifully elegant). However we soon saw that it was nessacary to always explicitly address each board. And so I guess in one sense what I'm suggesting is that we may also need to explitily address groups. [BTW if you read between the line you can tell that I'm still debating all this with my self ;) ]

Furthermore this brings up another issue: the way group Z is often presently used is as a 'global' command to all bugs. As in !Zz; will reset all the bugs on a network (because all bugs are group Z by default). However imagine a network of 5 bugs, of which four are group Z and one is group Y. Then the command !Zz; would reset four of the bugs, but of course not the one in group Y. And this in fact is the exact purpose of groups... but also points up that using Z as 'global' isn't truly correct as Z is not 'global' it's 'groupal'... and what in fact is missing is a truly global command. That said (as you might expect) what I'd suggest is that there be a global command and my suggestion would be 'splat' as in !*z; [oh I can hear Ed groaning now].

And this notion can then be further expanded... because if we move to a scheme of explicitly addressing bugs by address and group [hmmm this terminoloy's getting a bit confusing... by 'id' and 'group'?] as in, again, !AYz; then it would allow some great flexibiltiy, for example: !A*z; would reset all bugs A in all groups. And !*Zz; would reset all the bugs in only group Z (much like Z works now). And of course finally !**z; would reset all the boards on the network. Plus any  bug could still be commanded indiviually as in !DYh;

OK at this point I should probably get down off my soapbox, as this has gotten to long already and I think I've made my point.

And that said please take it as a point of departure for further conversation.

Robb

* P.S. That pun was fully intended