- Added AudioEngine integration to BluetoothManager for audio handling.
- Implemented auto-reconnect functionality with enabling/disabling options.
- Introduced methods for managing audio state and HFP events.
- Updated BluetoothManager's internal state management for better audio handling.
refactor: Update A252ConfigStore to improve pin validation logic
- Renamed critical_pins to required_pins for clarity.
- Added optional legacy line-enable pin validation.
- Improved error handling for pin conflicts and invalid ranges.
fix: Adjust default volume and slic_line configuration in A252ConfigStore
- Set default slic_line to -1 to indicate retirement.
- Increased default audio volume from 80 to 90.
feat: Implement audio amplifier control in main application
- Added commands to enable/disable audio amplifier via GPIO.
- Integrated audio amplifier control into the setup process.
fix: Improve ESP-NOW and WiFi coexistence policies
- Enforced modem sleep for better coexistence between WiFi and Bluetooth.
- Added checks to ensure proper WiFi mode before enforcing coexistence.
feat: Enhance TelephonyService with DTMF and pulse dialing support
- Added DTMF capture and processing capabilities.
- Implemented rotary pulse dialing logic with state management.
- Introduced callbacks for dialing and answering actions.
feat: Add real-time event publishing to WebServerManager
- Enabled real-time status updates via SSE.
- Improved status caching and thread safety with critical sections.
fix: General code cleanup and optimizations across modules
- Refactored various methods for better readability and maintainability.
- Improved error handling and logging for better debugging.
- Implement TelephoneSFPManager to manage telephony service interactions.
- Create TelephonyService class to handle telephony states and actions.
- Develop WebServerManager for handling HTTP requests and managing contacts.
- Add HTML, CSS, and JavaScript files for the web UI to interact with the telephony system.
- Introduce WifiManager for managing WiFi connections.
- Implement unit tests for telephony features and state transitions.
- Ensure proper input validation and error handling in web server routes.
- Added BLE command handling in BluetoothManager, allowing execution of commands via BLE.
- Implemented fallback AP functionality in WifiManager to maintain connectivity when WiFi is unavailable.
- Improved command parsing to handle quoted arguments correctly in main application logic.
- Updated WebServerManager to quote arguments for WiFi commands to ensure proper handling of special characters.
- Added comprehensive status reporting for WiFi and Bluetooth states, including AP status and connection details.
- Created detailed manual report for Bluetooth terminal operations, documenting test scenarios and results.
- Added WifiStatusSnapshot struct to track connection status, SSID, IP, and RSSI.
- Introduced methods in WifiManager for connecting, reconnecting, and JSON serialization of status and scan results.
- Implemented WifiCredentialsStorage for saving and loading WiFi credentials.
refactor: Consolidate DTMF tests into main test file
- Moved DTMF tests from test_dtmf.cpp to test_main.cpp for better organization.
- Removed redundant setup and loop functions from test_dtmf.cpp.
docs: Create comprehensive documentation structure
- Added README.md for project documentation, detailing agent roles, architecture plans, QA procedures, and reports.
- Established a changelog for tracking major changes.
feat: Implement A252ConfigStore for configuration management
- Created A252ConfigStore class for managing pin, audio, and MQTT configurations.
- Added validation methods for configuration integrity.
feat: Introduce CommandDispatcher for command handling
- Developed CommandDispatcher class to register and dispatch commands with response handling.
- Added normalization and help text generation for commands.
feat: Implement Es8388Driver for audio codec control
- Created Es8388Driver class for managing ES8388 audio codec operations including volume, mute, and routing.
chore: Organize test files and remove obsolete tests
- Moved audio codec tests to a dedicated test file.
- Cleaned up unused test files and consolidated test cases.
style: Improve code formatting and comments across the project
- Enhanced code readability with consistent formatting and added comments for clarity.
- Implement TelephoneSFPManager to manage telephony service interactions.
- Create TelephonyService class to handle telephony states and actions.
- Develop WebServerManager for handling HTTP requests and managing contacts.
- Add HTML, CSS, and JavaScript files for the web UI to interact with the telephony system.
- Introduce WifiManager for managing WiFi connections.
- Implement unit tests for telephony features and state transitions.
- Ensure proper input validation and error handling in web server routes.
- Implement TelephoneSFPManager to manage telephony service interactions.
- Create TelephonyService class to handle telephony states and actions.
- Develop WebServerManager for handling HTTP requests and managing contacts.
- Add HTML, CSS, and JavaScript files for the web UI to interact with the telephony system.
- Introduce WifiManager for managing WiFi connections.
- Implement unit tests for telephony features and state transitions.
- Ensure proper input validation and error handling in web server routes.