aseba icon indicating copy to clipboard operation
aseba copied to clipboard

Events, Constants, Groups and Persistence

Open cor3ntin opened this issue 5 years ago • 1 comments

We may need to add some preliminary support for groups in 1.7 to support a few use cases

Persistence

On device de-connection, all data associated with that device are thrown away. But this includes User-defined events and constants, which we want to persist.

But, these data should not really be attached to a device, but rather to the group this device belong too. In absence of a group, a device is its own group. Data should still be attached to a group rather than the device directly.

Groups should persist when a device is disconnected even if the number of devices reach 0 - at least for a while, we may want to garbage collect them at some points. One solution would be for applications to attach themselves to groups. the group would then be destroyed when both the app and the devices are disconnected.

AESL

AESL is specifically targeted at a group and should probably be treated as such by the TDM. AESL would be sent to a group rather than a device

Events

Events should have a unique id and be transmitted like that. Each node still gets to send/receive events and event tables itself.

Constants

Should really be called shared variable, Each node still receives/modified the shared variables individually.

Groups

A group has a name, an id, attached events, and shared variables By interacting with a group, one can

  • Create shared variables
  • Create events
  • Compile AESL - on each of the nodes
  • Attach / Remove node

Permissions

The owner of the group can restrict whether events/variables can be added/removed by individual nodes

cor3ntin avatar Oct 31 '18 10:10 cor3ntin