手机界面用 Flutter;后端用 Python。当前控制对象是数学仿体,实体固件尚未接入。
打开界面:取得会话 → 读取状态 按开始:检查可启动 → 发给模拟控制器 → 显示新状态 按停止:请求卸载 → 目标力归零 → 回缩 → 等待人工复位 导入压力:核对单位和标定 → 检查每一帧 → 求合力/压力中心 → 显示热图 连接丢失:禁止启动;后端看门狗停止仿真
if(data.get('unit')!='kPa'): raise ValueError(...)
如果文件不是已标定的kPa压力,就报错。if表示“如果”。
f = p * area / 1000
该单元的力 = 压力 × 有效面积 ÷ 单位换算系数。
for y,row in enumerate(grid):
逐行读取压力矩阵;for表示“逐个处理”。
await request('/api/start', {'mode': mode})
向后端发送所选手法,等待返回;不是在屏幕上假装启动。
timer?.cancel(); client.close();
界面销毁时停止定时器并关闭连接,避免后台遗留请求。在“程序”目录执行:
python -c "from src.pressure import analyze_pressure; d=dict(calibration_id='demo',source='synthetic',unit='kPa',cell_area_mm2=25,pitch_mm=5,range_kpa=100,frames=[dict(t=0,values=[[10]])]); print(analyze_pressure(d)['max_force_n'])"
输出0.25N。把[[10]]改成[[20]],结果变成0.5N。这只是合成数据,不会发送设备指令。