crownstone / bluenet

Bluenet is the in-house firmware on Crownstone hardware. Functions: switching, dimming, energy monitoring, presence detection, indoor localization, switchcraft.
https://crownstone.rocks
91 stars 62 forks source link

Dynamic creation / deletion of services #58

Closed mrquincle closed 5 years ago

mrquincle commented 6 years ago

The setup procedure performs a reboot. This of course will make sure that a new configuration is loaded, however it is a cop out. It should be possible to load a new configuration on-the-fly.

It would be convenient if consecutive function calls can be initiated through an ordered set of events. In that case we can push this vector of events on some kind of stack and pop them of sequentially after each event has been executed. For example:

In setup mode we have the following sequence:

In normal mode we have the sequence:

We also have a onStart function where in setup mode:

And in normal mode:

Every tick in normal mode:

AlexDM0 commented 6 years ago

We have a restart after each change in settings. This greatly simplified the code and there is no impact for the user.


From: Anne van Rossum notifications@github.com Sent: Tuesday, September 11, 2018 2:09 PM To: crownstone/bluenet Cc: Subscribed Subject: [crownstone/bluenet] Dynamic creation / deletion from services (#58)

The setup procedure performs a reboot. This of course will make sure that a new configuration is loaded, however it is a cop out. It should be possible to load a new configuration on-the-fly.

It would be convenient if consecutive function calls can be initiated through an ordered set of events. In that case we can push this vector of events on some kind of stack and pop them of sequentially after each event has been executed. For example:

In setup mode we have the following sequence:

In normal mode we have the sequence:

We also have a onStart function where in setup mode:

And in normal mode:

Every tick in normal mode:

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/crownstone/bluenet/issues/58, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFHWTQe9jvKP-VDcx9JabxtnbCCFVgQKks5uZ6gRgaJpZM4WjLV0.

mrquincle commented 6 years ago

A "reset the app" or a "reset Bluetooth" does have a more immediate impact on the user. However, it is not the case that just resetting devices to apply changes does not have impact on the user.

Note, that a watchdog timer is still a good idea, but it's an ultimate measure. Reset is not a feature.

mrquincle commented 6 years ago

Let's make it a bit more nuanced:

mrquincle commented 5 years ago

The Softdevice does not even support deleting services or characteristics. This renders most of the arguments moot. To have the system in a proper state, a reset is warranted.