# Project Overview This is a uni-app Vue3 smart home (智慧养老) application using uview-plus component library. - Use the new features of es6 - Use the uniapp framework for small program development - Added uview-plus component as UI component # Build & Run Commands Install dependencies with `npm install`. This repository does not define npm scripts; builds and previews are normally run through HBuilderX. Use HBuilderX for the active target platform: ```bash npm install ``` Typical local workflow: - Open the project in HBuilderX and run to WeChat Mini Program or Android emulator/device. - Use the built-in packaging flow for release builds. # Architecture ## Module Organization App entry files live at the repository root: `main.js`, `App.vue`, `pages.json`, and `manifest.json`. Feature pages are under `pages/` (`login`, `index`, `event`, `mine`, `device`). Shared business code is split across `api/`, `constants/`, `hooks/`, and `utils/`. Bluetooth logic is centralized in `utils/ble/`, with subfolders for `core/`, `modules/`, `parsers/`, `protocols/`, and `utils/`. Static assets go in `static/`; design and protocol notes live in `docs/`. ## BLE Module (`utils/ble/`) If you are unclear about the functions of the BLE Module, please refer to the `docs/unified-ble-flow.md` file. Unified Bluetooth Low Energy module for ED713/ED719 devices. Key files: - `core/bleCore.js` - Bluetooth core capabilities (connect/discover/read/write/notify/reconnect) - `core/controller.js` - Standard flow orchestration (scan→connect→discover→auth) - `core/packet.js` - A7 packet fragmentation - `modules/auth.js` - Authentication flow (read MSG + write KEY) - `modules/wifi.js` - WiFi configuration - `modules/radar.js` - Radar control (start/stop/params) - `protocols/profiles.js` - ED713/ED719 device profile differences The unified flow: `standardConnectFlow({ deviceId, key })` → `wifi.configureWifi(ssid, password)` → `radar.startRadarStream()` Profile differences: - ED713: radar signature `0x7C`, supports narrow mode - ED719: radar signature `0x67`, supports fall param 67 If modifications are made to the BLE Module, they shall be added to the `docs/unified-ble-flow.md` file!! ## Authentication (`utils/auth.js`) Route guard system with `setupAuthInterceptors()`. Currently `AUTH_ENABLED = false` for development. Routes are defined in `constants/routes.js`. ## Pages - `pages/login/index.vue` - Login page - `pages/index/index.vue` - Home (tab) - `pages/event/index.vue` - Events (tab) - `pages/mine/index.vue` - Profile (tab) - `pages/device/add.vue` - Add device - `pages/device/config.vue` - Device config with BLE search + WiFi panel ## Component Auto-import uview-plus components auto-imported via `pages.json` easycom config: `^u-(.*)` → `uview-plus/components/u-$1/u-$1.vue` ## Coding Style & Naming Conventions Follow the existing Vue SFC structure: `