本页内容 开启型号能力APP 中的校准流程接入车端采样与存储执行解锁并同步锁状态连接与后台运行故障排查
HARDWARE SDK / FreeRTOS

感应解锁

接入 BLE 采样、校准存储与真实解锁执行器。

感应解锁使用 BLE 辅助核心实例,根据车端 RSSI(接收信号强度)触发。需要认证 BLE 连接、校准存储和真实解锁执行器。

开启型号能力

在后台型号开启 vehicle.proximity.unlock(bit 11,MOTO_PROXIMITY_UNLOCK),收到签名 CONFIG 后生效。用户还需完成校准。手动锁车 MOTO_LOCK(bit 3)单独授权,两者控制同一把锁。使用同一包的 ABI 8 头文件和静态库。

APP 中的校准流程

车辆首页的“无感解锁”入口打开雷达引导,每次打开都重新校准:

  1. 站在距车辆约两米处,点击开始。
  2. 保持位置,雷达显示采样进度和相对信号强度。
  3. 车端保存成功后显示完成,并开启感应解锁。

只采集约两米边界的一组稳定信号,不另采两米外的数据。雷达不显示精确米数。取消、断开或失败时保留上一次成功记录;首次校准未完成时不会开启。APP 保留安装标识,重连后恢复对应的车端记录。

现有 BLE RSSI 只能估算接近程度,人体遮挡、手机、天线和停车环境都会影响触发位置,不能保证精确的两米边界。

接入车端采样与存储

感应解锁使用核心头文件 moto/sdk.h、moto/proximity.h,配置在认证 BLE 辅助实例的 moto_config.proximity 中。这不是 moto_terminal_config 字段;不要把核心 API 的句柄换成 moto_terminal *。

接口 接入要求
proximity.load 按认证 owner 与 APP 安装标识读取;无记录时输出全零 profile 并返回 MOTO_OK
proximity.save 原子持久化 moto_proximity_profile,成功落盘才返回 MOTO_OK;失败返回错误
moto_proximity_sample(sdk, connection_id, rssi_dbm) 约每 500 ms 提交该 BLE 连接的新鲜 RSSI,连接编号与 moto_connect 一致
moto_proximity_reset(sdk) 手动锁车成功或安全联锁变化后调用,使下一次解锁必须重新离开再靠近

这些核心调用在 SDK 所属线程串行执行,不能从回调中重入。存储回调参数只在回调期间有效;不要保留借用指针或记录 owner 凭据。安装 UUID 用于区分记录,不是认证凭据。重连后先完成 owner 认证与签名 CONFIG,再查询该安装标识的记录。

必须由车端接收器测 RSSI,不能直接使用手机测得的阈值。不可用读数传 127 重置判定,不重复提交失效的缓存样本。校准需要稳定采样,窗口填满后持续 3 秒。可接受的校准范围为 −90 至 −30 dBm,近阈值取校准结果,远阈值低 8 dB。

低于远阈值持续 3 秒后进入待触发状态;达到近阈值持续 1.5 秒后触发一次。启用、重连、校准、无效采样或样本间隔超过 2 秒后,都需要重新离开再靠近。不会自动锁车,也不会在车辆旁反复解锁或自动重试失败动作。

执行解锁并同步锁状态

SDK 在 BLE 辅助实例产生本地 MOTO_EVENT_VEHICLE_COMMAND:message=56、target=0、value=0。手机不能发送这个触发命令。

车辆驱动接到事件后检查截止时间、车速及控制器允许条件,再操作真实执行器。排队时保留事件的 session / request 和宿主记录的 BLE 连接编号,执行前核对连接仍有效;核心事件没有独立的连接代次字段。使用原事件的 session 和 request,在产生事件的同一个 SDK 实例调用 moto_complete_command 回报结果。不要把 BLE 动作转交 Wi-Fi 实例完成;Wi-Fi 断线也不应取消仍有效的 BLE 动作。

本地请求超时为 3 秒,无法确认时记为 MOTO_UNKNOWN。发出 CAN 帧不等于解锁成功。控制器确认后上报实际锁状态(field 3),首页锁图标据此更新,手动解锁与感应解锁共用同一状态。车况接线见车况上报。

连接与后台运行

RSSI 采样和触发由车端执行,只在已认证 BLE 链路有效时工作。断连后须重新连接并认证,重新离开再靠近。不能保证用户强退 APP 后自动恢复连接。

故障排查

  • 没有入口:核对型号能力、签名 CONFIG、BLE 认证与 PROFILE key 33。
  • 校准失败:检查当前连接的新鲜 RSSI、有效范围和存储回调。
  • 校准后不解锁:先离开再靠近,检查车辆联锁、事件来源和执行结果。
  • 锁图标未更新:检查控制器确认后的 field 3 上报。

校准请求由 APP 和 SDK 处理;BSP 无需拼装报文。完整字段见包内 docs/PROXIMITY_UNLOCK.md。