Re: mesh: org.bluez.mesh.Element.MessageReceived method does not provide destination address

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Michal,

On Wed, 2019-09-18 at 10:52 +0200, Michał Lowas-Rzechonek wrote:
> Hi Brian,
> 
> > Imagine a dot-matrix, where each pixel is a mesh node.
> > 
> > Each of these pixels implements two models:
> >     on element 0, a GenericOnOffServer controlling the light output
> >     on element 1, a Blinkenlights Server model
> > 
> > Blinkenlights Server extends GenericOnOff Server and GenericOnOff
> > Client, and on top of that contains a translation table mapping
> > group
> > address to either 'ON' or 'OFF'.
> > 
> > Now, when Blinkenlights Server receives a GenericOnOff Set message,
> > it
> > looks up the destination address at the translation table, and
> > sends a
> > *different* GenericOnOff Set to *its own* element 0, with target
> > value
> > determined by the translation entry.
> > 
> > This allows users to configure each node in such a way, that
> > sending a
> > *single* message to a group address causes all pixels to switch to
> > a
> > preconfigured pattern *at the same time*.
> 
> Per conversation with Piotr, I'd like to revisit the discussion and
> provide more details about our use case for models knowing the
> destination address.
> 
> Please see a diagram at http://ujeb.se/BmTIW.
> 
> The main reason we map scenes using destination addresses is that
> such a
> setup consumes much less unicast addresses.
> 
> Assuming that:
>  S - number of switches
>  B - number of buttons (elements) on a switch
>  N - nunber of lamps
> 
> With a 'regular' case, number of consumed unicast addresses is
>     S*B + N*(B+1)
> 
> With the destination mapping, it becomes
>     S*B + N*2
> 
> Since we typically use 4 button switches (B=4), without translation
> we
> consume unicast address space at a *much* faster rate.
> 
> reagrds

Okay, this is a good argument for exposing the subscription address in
MessageReceived().
It's better to separate the method into two, e.g. MessageReceived() and
MessageReceivedVirtual().

Then it makes sense to add model subscription array as a dictionary
entry in the UpdateModelConfiguration() as well as for the node
configuration returned when calling Attach() method.
Probably will have to have separate keys: "Groups" and "Virtuals".

Regards,
Inga

Attachment: smime.p7s
Description: S/MIME cryptographic signature


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux