PlummersSoftwareLLC / NightDriverStrip

NightDriver client for ESP32
https://plummerssoftwarellc.github.io/NightDriverStrip/
GNU General Public License v3.0
1.29k stars 210 forks source link

Move Improv announcement from setup to loop #599

Closed rbergen closed 5 months ago

rbergen commented 5 months ago

Description

This fixes #596, which documents a case where the sending of the Improv state packet to indicate we're up blocks setup, and hence the starting of the blinking of LEDs. It does this by moving the one-time sending of the packet from ImprovSerial::setup() to ImprovSerial::loop().

Contributing requirements

robertlipe commented 5 months ago

How does that block? The usart doesn't know there is a listener, does it?

Do we need to think about leaving improv for Espressif's own OTA?

On Thu, Jan 25, 2024, 2:55 AM Rutger van Bergen @.***> wrote:

Description

This fixes #596 https://github.com/PlummersSoftwareLLC/NightDriverStrip/issues/596, which documents a case where the sending of the Improv state packet to indicate we're up blocks setup, and hence the starting of the blinking of LEDs. It does this by moving the one-time sending of the packet from ImprovSerial::setup() to ImprovSerial::loop(). Contributing requirements


You can view, comment on, or merge this pull request online at:

https://github.com/PlummersSoftwareLLC/NightDriverStrip/pull/599 Commit Summary

File Changes

(1 file https://github.com/PlummersSoftwareLLC/NightDriverStrip/pull/599/files)

Patch Links:

- https://github.com/PlummersSoftwareLLC/NightDriverStrip/pull/599.patch

— Reply to this email directly, view it on GitHub https://github.com/PlummersSoftwareLLC/NightDriverStrip/pull/599, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCSD34F3P6RI5LNO3532HDYQIMXJAVCNFSM6AAAAABCKEHABGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGA4TSOBYGI2DKNQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

rbergen commented 5 months ago

How does that block? The usart doesn't know there is a listener, does it?

I wouldn't expect it to, but who am I to make any definitive statements about it? In a USB context, at some point something does have to keep track of what's been sent and what hasn't. The extent to what that considers confirmation of reception I wouldn't dare to guess for all possible scenarios.

Do we need to think about leaving improv for Espressif's own OTA?

As far as I understand it, Espressif OTA concerns the delivery of updates over WiFi or Bluetooth. Improv (over serial) facilitates the functioning of the Web Installer, which I think really is a thing in itself. For one, it can be used to set up the WiFi that OTA could use.

rbergen commented 5 months ago

Merging after "regular operation" with the change has been confirmed on both Mesmerizer and M5StickC Plus/Spectrum.