Skip to content

v1.13.17 - WiFi and Command Handler Pattern Refinement (2025-12-11)

What Changed?

This release enhances command handler documentation and naming consistency across the codebase, specifically for WiFi handlers. All Phase 6 Payload Pointer Pattern implementations are now properly documented with comprehensive JSDoc descriptions matching the gnss.cpp architectural style. GET_WIFI_STATUS command is renamed to GET_WIFI for naming consistency with other singleton query commands like GET_GNSS.


What's New

Main Feature: Phase 6 Pattern Architectural Refinement

What it does: All command handler files now follow a unified documentation and implementation pattern consistent with the gnss.cpp architecture. This includes comprehensive file headers with detailed command descriptions, detailed JSDoc comments for each handler function, and consistent 3-layer implementation structure (VALIDATION → BUSINESS LOGIC → LAYER 1 OUTPUT).

How to use it: No changes to command syntax or behavior. All commands work exactly as before. This is purely an internal refactoring of documentation and naming conventions to improve code maintainability and consistency across the codebase.

Pattern Features:

  • File Headers: Enhanced descriptions explaining command purpose and operational context
  • Handler Documentation: Comprehensive JSDoc with implementation details
  • Consistent Naming: GET_WIFI (singular) for singleton query patterns like GET_GNSS
  • Implementation Details: Non-blocking operations, state machine behavior documented
  • Phase 6 Pattern: Static JsonDocument payload pointers with clear validation/logic/output sections

Installation

Quick Start

# Get the release
git checkout vX.Y.Z

# Build
task build

# Upload
task upload

# Check it works
task monitor

What's Different from the Last Version?

✅ Added

  • Comprehensive file header documentation for wifi.cpp with detailed command descriptions
  • Enhanced JSDoc for all three WiFi handlers (SET_WIFI_SSID, SET_WIFI_ENABLE, GET_WIFI)
  • Implementation detail documentation: non-blocking operations, state machine behavior, IP address context
  • Documentation alignment with gnss.cpp architectural pattern

🔧 Changed

  • GET_WIFI_STATUS command renamed to GET_WIFI for consistency with singleton query pattern (GET_GNSS)
  • Handler function renamed: handle_get_wifi_status() → handle_get_wifi()
  • Enhanced parameter documentation in JSDoc comments with type and value context
  • Return value descriptions now include behavior context (e.g., "0.0.0.0 if disconnected")

🐛 Fixed

  • None (documentation and naming refinement release)

Is It Safe to Upgrade?

Backward Compatible: Yes

  • GET_WIFI command aliases remain unchanged: "W" and "WIFI_STATUS" still work
  • No changes to command payload structure or behavior
  • All WiFi operations (connection, enable/disable, status) work identically
  • No breaking changes to any other commands
  • Pure documentation and naming refinement with zero functional impact

Tests Passed

  • ✅ Builds without errors (RAM: 8.8%, Flash: 26.6%)
  • ✅ All pre-commit hooks pass (formatting, whitespace, YAML/JSON validation)
  • ✅ WiFi handlers compile with Phase 6 Payload Pointer Pattern
  • ✅ GET_WIFI command with aliases ("W", "WIFI_STATUS") dispatches correctly
  • ✅ No size increase or regression in memory usage

Release Details

  • Date: 2025-12-11
  • Version: v1.13.17
  • Files Changed: 3
  • src/command/wifi.cpp (enhanced documentation, handler rename)
  • src/command_manager.cpp (handler declaration and dispatch table updates)
  • docs/releases/v1.13.17.md (release notes)

Next Steps

  • Phase 6 Completion: Continue applying enhanced documentation pattern to remaining command handlers (help.cpp, test_led.cpp, etc.)
  • CommandParser Class (v1.14.0): Implement unified command argument parsing framework to consolidate validation logic across all handlers
  • Architectural Consistency: Ensure all handler files follow gnss.cpp/wifi.cpp documentation and implementation patterns
  • Code Review: Verify Phase 6 pattern consistency across entire command handler suite before v1.14.0 release