3.3 KiB
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:
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 fragmentationmodules/auth.js- Authentication flow (read MSG + write KEY)modules/wifi.js- WiFi configurationmodules/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 pagepages/index/index.vue- Home (tab)pages/event/index.vue- Events (tab)pages/mine/index.vue- Profile (tab)pages/device/add.vue- Add devicepages/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: <template>, <script>, <style>. JavaScript and Vue blocks use 2-space indentation; keep generated JSON files (pages.json, manifest.json) consistent with the existing HBuilderX formatting. Use camelCase for variables and functions, UPPER_SNAKE_CASE for constants, and keep page paths aligned with route names such as pages/device/config.vue. Prefer small reusable utilities in utils/ or hooks/ over duplicating BLE or navigation logic.