diff options
| author | Your Name <you@example.com> | 2026-05-18 22:55:37 +0530 |
|---|---|---|
| committer | Your Name <you@example.com> | 2026-05-18 22:55:37 +0530 |
| commit | 46e7dabaf80333ca045061ff480377a4186e5deb (patch) | |
| tree | 06bd62bed43e15c432cc27faf20993a50d7c3cee /TOUCH_WIFI_SETUP_PLAN.md | |
| parent | eb2ae72d91a4b2ec0333a2e6d18eeeeee6b60464 (diff) | |
feat: integrate touchscreen WiFi setup into display UI
- Add DISPLAY_WIFI_SETUP state with full rendering pipeline
- Touch init on display_init(), touch polling in display task
- WiFi scan triggered on setup entry, sorted AP list
- On-screen keyboard for password entry
- Connect result via WiFi event notifications
- Setup button on READY and ERROR screens
- Auto-enter WiFi setup on first boot with no credentials
- Save new WiFi credentials to SPIFFS config.json
Diffstat (limited to 'TOUCH_WIFI_SETUP_PLAN.md')
| -rw-r--r-- | TOUCH_WIFI_SETUP_PLAN.md | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/TOUCH_WIFI_SETUP_PLAN.md b/TOUCH_WIFI_SETUP_PLAN.md index afbc0b3..f441138 100644 --- a/TOUCH_WIFI_SETUP_PLAN.md +++ b/TOUCH_WIFI_SETUP_PLAN.md | |||
| @@ -67,26 +67,26 @@ Add `DISPLAY_WIFI_SETUP` to `display_state_t`. | |||
| 67 | ## Implementation Checklist | 67 | ## Implementation Checklist |
| 68 | 68 | ||
| 69 | ### Phase 1: Touch Driver | 69 | ### Phase 1: Touch Driver |
| 70 | - [ ] Create `main/touch.h` with API | 70 | - [x] Create `main/touch.h` with API |
| 71 | - [ ] Create `main/touch.c` with ESP-IDF I2C v5 implementation | 71 | - [x] Create `main/touch.c` with ESP-IDF I2C v5 implementation |
| 72 | - [ ] Create `tests/unit/test_touch.c` with coordinate parsing tests | 72 | - [x] Create `tests/unit/test_touch.c` with coordinate parsing tests |
| 73 | - [ ] Run `make test-unit`, verify all pass | 73 | - [x] Run `make test-unit`, verify all pass |
| 74 | 74 | ||
| 75 | ### Phase 2: On-Screen Keyboard | 75 | ### Phase 2: On-Screen Keyboard |
| 76 | - [ ] Create `main/keyboard.h` with API | 76 | - [x] Create `main/keyboard.h` with API |
| 77 | - [ ] Create `main/keyboard.c` with QWERTY layout + hit detection | 77 | - [x] Create `main/keyboard.c` with QWERTY layout + hit detection |
| 78 | - [ ] Create `tests/unit/test_keyboard.c` with layout + key lookup tests | 78 | - [x] Create `tests/unit/test_keyboard.c` with layout + key lookup tests |
| 79 | - [ ] Run `make test-unit`, verify all pass | 79 | - [x] Run `make test-unit`, verify all pass |
| 80 | 80 | ||
| 81 | ### Phase 3: WiFi Setup Flow | 81 | ### Phase 3: WiFi Setup Flow |
| 82 | - [ ] Create `main/wifi_setup.h` with API | 82 | - [x] Create `main/wifi_setup.h` with API |
| 83 | - [ ] Create `main/wifi_setup.c` with scan/list/connect state machine | 83 | - [x] Create `main/wifi_setup.c` with scan/list/connect state machine |
| 84 | - [ ] Add `tollgate_config_add_wifi()` to config.c + config.h | 84 | - [x] Add `tollgate_config_add_wifi()` to config.c + config.h |
| 85 | - [ ] Create `tests/unit/test_wifi_setup.c` with state machine tests | 85 | - [x] Create `tests/unit/test_wifi_setup.c` with state machine tests |
| 86 | - [ ] Run `make test-unit`, verify all pass | 86 | - [x] Run `make test-unit`, verify all pass |
| 87 | 87 | ||
| 88 | ### Phase 4: Integration | 88 | ### Phase 4: Integration |
| 89 | - [ ] Add `DISPLAY_WIFI_SETUP` to display.h | 89 | - [x] Add `DISPLAY_WIFI_SETUP` to display.h |
| 90 | - [ ] Update display.c with WiFi setup rendering + touch input | 90 | - [x] Update display.c with WiFi setup rendering + touch input |
| 91 | - [ ] Update `main/CMakeLists.txt` with new source files | 91 | - [x] Update `main/CMakeLists.txt` with new source files |
| 92 | - [ ] Build, flash to Board C, verify full flow | 92 | - [ ] Build, flash to Board C, verify full flow |