新增答辩汇报 PPT 与演示操作卡 答辩汇报/:12 页学术风答辩 PPT(STORY 叙事 + 逐页源文件 + 配图资产 + 成品 pptx) docs/演示操作卡.html + .pdf:A4 单页现场演示操作卡(开机自检 / 8 步动线 / 翻车应急 / 关键数字) 提交材料:收录 Word 更新域后的设计方案终稿(769KB,9 图完整) 修复 slidep 引擎:内嵌 @swc/core 1.16.12 的缓存校验在本机 ACL 下必然失败,降级替换为 1.12.14(原版备份 core.bak-1.16.12)
新增答辩汇报 PPT 与演示操作卡
校园建筑结构健康监测 · HarmonyOS 应用(双数据源:本地模拟演示引擎 + 南向实时采集,设置页一键切换)。
演示声明:模拟模式下的全部设备、读数、告警、统计数据均为明确标注的模拟演示数据,不构成真实建筑安全评估依据;实时模式下数据来自南向板卡经聚合服务转发的真实采集值。
D:\StructSafe
com.example.structsafe
entry/src/main/ets/entryability/EntryAbility.ets
pages/Index.ets
@kit.ArkData
dist/entry-default-unsigned.hap
/hist
conditionStatus
handlingStatus
measurements
entry/src/main/ets/ ├── entryability/EntryAbility.ets # 应用入口 + 数据源生命周期 ├── pages/ # Index + 10 个业务页面 ├── components/ # Icons / AppIcon / Widgets / Charts ├── hardware/ # 【预留硬件接口层】数据源与协议 │ ├── IDataSource.ets # 数据源接口 + 链路状态 │ ├── DataSourceFactory.ets # 运行时切源(配置持久化) │ ├── MockDataSource.ets # 模拟数据源(包装演示引擎) │ ├── HardwareDataSource.ets # 实时数据源(HTTP 轮询 /hist) │ ├── HardwareProtocol.ets # 固件 ASCII 报文解析 │ ├── TelemetryBuilder.ets # 判级与建筑聚合(两源共用) │ └── LiveBridge.ets # 5Hz 实时帧 → 1Hz 落库桥 ├── data/ │ ├── AppStore.ets # 单一状态源(AppStorage 广播刷新) │ ├── DemoRepository.ets # 业务逻辑(落库、规则、事件、审计) │ ├── DemoEngine.ets # 1s 采样节拍器(模拟模式) │ ├── LocalDatabase.ets # relationalStore 封装(建表/事务/聚合查询) │ ├── SeedData.ets # 可预测演示种子 │ └── NavBus.ets # 导航传参 ├── services/ # MetricCatalog / DateService / AggregationService ├── theme/Theme.ets # Design Tokens(颜色/尺寸/字号) └── models/Models.ets # 枚举与接口
# PowerShell(DevEco 自带工具链) $env:NODE_HOME = "D:\DveEco Studio\DevEco Studio\tools\node" $env:DEVECO_SDK_HOME = "D:\DveEco Studio\DevEco Studio\sdk" & "$env:NODE_HOME\node.exe" "D:\DveEco Studio\DevEco Studio\tools\hvigor\bin\hvigorw.js" ` --mode module -p product=default -p module=entry@default -p buildMode=debug assembleHap --no-daemon
产物:entry/build/default/outputs/default/entry-default-unsigned.hap
entry/build/default/outputs/default/entry-default-unsigned.hap
hdc install -r entry\build\default\outputs\default\entry-default-unsigned.hap hdc shell aa start -a EntryAbility -b com.example.structsafe
真机分发/上架需在 DevEco 中配置签名(当前 signingConfigs 留空,构建仅 WARN 跳过签名)。
signingConfigs
数据链路:板卡 A/B(WiFi → UDP 5000)→ PC 聚合服务 server.py → 手机/模拟器 App(HTTP 轮询 8080)
server.py
状态(2026-10-16):双板均已改装固件并烧录完成,脱离 USB 串口桥接、纯走 WiFi 运行,App 实时采集实测 速率 4.7 包/秒 · 解析失败 0 · 板A/板B 秒级刷新。
速率 4.7 包/秒 · 解析失败 0 · 板A/板B 秒级刷新
_hardware_ref/
南向硬件侧的完整交付快照,**详见 _hardware_ref/README.md**:
_hardware_ref/README.md
_hardware_ref/current/server.py
127.0.0.1:8080
_hardware_ref/current/index.html
_hardware_ref/current/sensor_sim_new.c
_hardware_ref/current/sensor_env_b.c
_hardware_ref/patched_oppo/ws63-liteos-app_{A,B}_OPPO.fwpkg
OPPO
Ssm060328@..
10.91.143.69
UDP_TARGET_IP
# 1. PC 启动聚合服务(UDP 5000 收板卡上报,HTTP 8080 供 App 拉取) D:\StructSafe\_tools\start_server.bat # 2. 确认双板数据在流入(每 2 秒一行,两列均应为 OK) D:\StructSafe\_tools\heartbeat.bat # 3. App 设置页 → 南向数据源 → 选「实时采集」→ 填服务地址 → 保存 # 实测可用:http://10.91.143.69:8080 (PC 局域网地址,电脑已钉静态) # 备选: http://10.0.2.2:8080 (模拟器 NAT 映射宿主回环) # → 点「测试连接」,应显示速率与累计帧
Windows 防火墙中「首次运行该程序」时自动生成的程序级阻止规则优先级高于放行规则,会静默丢弃板卡入站包(表现为「端口在听、规则也在、包就是不进来」)。修复工具:_tools/fw_fix_udp5000.bat(管理员,禁用 Name=Python 的入站 Block 规则,可回滚)。App 侧 HTTP 8080 入站是被同一条 TCP Block 拦截,一并解决。
_tools/fw_fix_udp5000.bat
Name=Python
_tools/
start_server.bat
heartbeat.bat
STALE
precheck.bat
ip_pin_on.bat
ip_pin_off.bat
dns_fix.bat
mock_boards.py
python _tools/mock_boards.py --rate 5 --scenario normal
--board A
serial_bridge.py
真机安装需在 DevEco 中配置签名(signingConfigs 当前为空,模拟器可直装未签名 HAP)。
ENV_REPORT.md
TEST_REPORT.md
提交材料/
.docx
.db
docs/接口/
docs/shots/
docs/logs/
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
筑安 StructSafe
校园建筑结构健康监测 · HarmonyOS 应用(双数据源:本地模拟演示引擎 + 南向实时采集,设置页一键切换)。
工程信息
D:\StructSafecom.example.structsafeentry/src/main/ets/entryability/EntryAbility.ets→pages/Index.ets@kit.ArkDatarelationalStore(本地 SQLite:devices / measurements / events / event_actions / demo_config)dist/entry-default-unsigned.hap(未签名,模拟器可直装)功能总览
/hist(5Hz 原始帧 → 1Hz 落库),指数退避容错(1s→2s→4s→15s)、单板掉线「数据陈旧」、回前台立即补拉conditionStatus(异常/恢复)与handlingStatus(待确认/处理中/已归档)解耦measurements为唯一跨重启来源,重启后立即恢复完整历史波形目录结构
构建与运行
DevEco Studio(推荐)
D:\StructSafe,等待 Sync 完成。命令行(hvigor)
产物:
entry/build/default/outputs/default/entry-default-unsigned.hap安装运行(模拟器,未签名 HAP)
实时模式部署(南向对接)
数据链路:板卡 A/B(WiFi → UDP 5000)→ PC 聚合服务
server.py→ 手机/模拟器 App(HTTP 轮询 8080)硬件资料(
_hardware_ref/)南向硬件侧的完整交付快照,**详见
_hardware_ref/README.md**:_hardware_ref/current/server.py127.0.0.1:8080)_hardware_ref/current/index.html_hardware_ref/current/sensor_sim_new.c_hardware_ref/current/sensor_env_b.c_hardware_ref/patched_oppo/ws63-liteos-app_{A,B}_OPPO.fwpkg前置条件(三项必须同时成立)
OPPO、密码Ssm060328@..(2.4GHz)10.91.143.69(已钉为静态)UDP_TARGET_IP指向它_hardware_ref/patched_oppo/ws63-liteos-app_{A,B}_OPPO.fwpkg启动步骤
防火墙(关键,否则板卡数据进不来)
Windows 防火墙中「首次运行该程序」时自动生成的程序级阻止规则优先级高于放行规则,会静默丢弃板卡入站包(表现为「端口在听、规则也在、包就是不进来」)。修复工具:
_tools/fw_fix_udp5000.bat(管理员,禁用Name=Python的入站 Block 规则,可回滚)。App 侧 HTTP 8080 入站是被同一条 TCP Block 拦截,一并解决。常用工具(
_tools/)start_server.batheartbeat.batSTALEprecheck.batip_pin_on.bat/ip_pin_off.bat10.91.143.69/ 一键还原自动获取dns_fix.batmock_boards.pypython _tools/mock_boards.py --rate 5 --scenario normal(场景:normal / warn / crit / smoke / escalate,单板--board A)serial_bridge.py快速体验路径
文档与证据
ENV_REPORT.md:环境实测(IDE/SDK/设备/构建)TEST_REPORT.md:T01–T18 逐项 PASS/FAIL + F1–F8 南向对接实测记录 + 缺陷修复记录提交材料/:校赛三项提交物(设计方案.docx、演示视频录制脚本、数据库文件.db)_hardware_ref/README.md:南向硬件体系说明(拓扑、硬件配置、固件参数、接口、运行步骤)docs/接口/:南北向协议规范、实施手册、P1–P5 各阶段验证报告、固件改装与烧录操作卡docs/shots/:模拟器运行截图(按用例编号命名,含 P1–P5 与 F6 验收序列)docs/logs/:各阶段 hvigor 构建日志