feat: add firmware and server metadata handling#42
Merged
Conversation
- Implemented firmware metadata initialization and notification in main application. - Added server metadata handling in WebSocket event processing. - Created new metadata structures and functions in metadata.cpp for managing firmware and server metadata. - Updated protobuf definitions to include firmware and server metadata messages. - Enhanced WebSocket message encoding to support new metadata types. - Introduced versioning for the stackchan server.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a new metadata exchange mechanism between firmware and server by adding support for firmware and server metadata messages to the WebSocket protocol. It also adds new device and servo type enumerations to improve device capability reporting. Additionally,
.env.templateis updated with commented-out wakeup word configuration options.Protocol and Metadata Enhancements:
Added new message kinds (
MESSAGE_KIND_FIRMWARE_METADATA,MESSAGE_KIND_SERVER_METADATA) and corresponding structs (stackchan_websocket_v1_FirmwareMetadata,stackchan_websocket_v1_ServerMetadata) to the WebSocket protocol for exchanging metadata between device and server. This includes fields for device type, display properties, wake word support, LED presence, servo type, audio duplex capability, and versioning. [1] [2] [3] [4] [5] [6] [7] [8] [9]Introduced new enums for
DeviceTypeandServoTypeto allow fine-grained reporting of hardware capabilities. [1] [2]Added new helper constants and initializers for the new enums and structs to facilitate usage and initialization. [1] [2] [3]
Firmware State Management:
firmware/include/metadata.hppto defineFirmwareMetadataStateandServerMetadataStatestructs, global state variables, and functions for initializing, resetting, and applying metadata, as well as for constructing metadata messages.Configuration Updates:
.env.templateto include commented-out options for wakeup word configuration, making it easier to enable or disable client/server wake word features.- Implemented firmware metadata initialization and notification in main application.