MotoNavi对接

一、设备端实现指令

支持GPS轨迹,需要使用有为GPS模块

1.1 获取设备功能集

说明

获取设备是否支持,carplay wifi投屏等,各平台实现参考wifi协议各平台中获取设备功能集指令和wifi协议概览中定义

功能集定义

亿智功能集指令

mstar功能集指令

海思(hisi)功能集指令

全志(allwinner)功能集指令

备注

如果设备不支持记录仪,请联系我们增加专用指令

1.2 获取硬件识别码

说明

硬件识别码主要用于区分机型、方案、品牌等,目前主要用于ota,各平台实现参考wifi协议各平台中获取硬件识别码

硬件识别码定义

亿智识别码指令

mstar识别码指令

海思(hisi)识别码指令

全志(allwinner)识别码指令

1.3 获取设备wifi信息

说明

获取设备当前wifi的名称、密码,用于后续自动连接

亿智wifi信息指令

mstar wifi信息指令

海思(hisi)wifi信息指令

全志(allwinner)wifi信息指令

1.4 切换到投屏模式

说明

从wifi热点模式,切换到投屏模式,用于不支持同时打开投屏与热点模式设备,设备自动切换到上一次的投屏模式

亿智切换投屏模式指令

mstar切换投屏模式指令

海思(hisi)切换投屏模式指令

全志(allwinner)切换投屏模式指令

1.5 设备ota流程

1)app设取设备功能集硬件识别码

2)app判断功能集 中 ota字段是否为1

3)app使用硬件识别码向服务器请求最新固件版本

备注

版本检测参考 硬件识别码定义

4)app通过服务器返回判断有更新版本,app切换网络下载固件到手机存储

5)app向设备发起升级请求(部分平台需要)

6)app通过指令上传固件到设备

亿智上传固件指令

mstar上传固件指令

海思(hisi)上传固件指令

全志(allwinner)上传固件指令

7)app通知设备上传完成,开始升级(部分平台需要)

1.6 设备从视频模式自动切回投屏模式(上一次使用的投屏模式)

设备端监测APP wifi模式连接状态,通过心跳指令来判断设备异常退出情况,设备端超时(10秒)未收到app心跳指令请求, 则自动切回上一次投屏模式

亿智心跳指令

mstar心跳指令

海思(hisi)心跳指令

全志(allwinner)心跳指令

1.7 轮胎信息传输

设备端监测APP wifi模式连接获取胎压数据并展示

mstar轮胎信息指令

二、模块功能

1. 事件数据,设备发送给APP

1)开启

发送命令:HBX_P2P_CONNECT

不用带参数

2)停止

发送命令:HBX_P2P_DISCONNECT

不用带参数

3)发送触屏事件

发送命令:HBX_P2P_TOUCH

参数:触摸屏json数据如下,需要转换成720p分辨率:

{
    "ACT": "touch",
    "action": 0,
    "pointerCount": 1,
    "x": 782.6667,
    "y": 370
}
2.视频数据,APP发送给设备

1 视频数据格式,h264;

2 sdk通过回调上报上来;

接口调用方式下面介绍HBX_APP_CB_VIDEO;

三 APP与设备链接流程

链接过程

1) APP第一次链接,app填写车辆信息;

2) 设备切到换到热点模式,app进入系统WLAN进行连接(防止搜索不到导致无法连接),连接设备WiFi成功后返回app

备注:

此为修改后逻辑,之前为自动连接失败后进系系统连接

3) WIFI连接成后后,APP探测设备WIFI协议类型,根据协议类型,读取功能集(读取p2p连接信息)、WIFI信息(用于自动连接记录仪)、识别码指令(用于ota及定制化UI扩展),

4) APP探测成功,检测设备是否激活,已激活直接绑定并返回首页,未激活则输入(扫码)激活码,激活并绑定,返回首页。

5) APP自动扫描当前绑定设备的P2P并自动连接;

6) APP根据设备支持的功能,跳转不同的首页

备注

wifi名称以moto_开头(优先展示)

四 SO支持库(设备端)

说明

设备集成投屏相关库,不同平台不一样,请联系我们提供

库函数
1)初始化函数

void HbxP2PInit(void),开机调用一次;

2)释放函数

void HbxP2PRelease(void),关机调用一次;

3)设备发送数据接口函数

int HbxP2PCmd(HBX_P2PCMD_TYPE cmd_type,unsigned char *buf,int len);

参数: cmd_type,命令类型;

         Buf:        内容;

         Len:        buf的长度;

命令具体类型:

1 HBX_P2P_CONNECT

设备p2p链接成功后发送消息给sdk:

参数: 不带参数

返回值:无

2 HBX_P2P_DISCONNECT

设备退出p2p或者退出投屏发送消息给sdk:

参数: 不带参数

返回值:无

3 HBX_P2P_TOUCH

设备端发送触摸屏事件,发送这个命令给so库;

参数类型:json格式,如下例:

char *touch = " {

    "ACT" : "touch",    --- 触摸事件

    "action" : 1,      --- 按下,移动,弹起

    "pointerCount" : 1,   --- 单点

    "x" : 131,       --- x 坐标,与视频分辨率转换过的

    "y" : 292        --- y 坐标,与视频分辨率转换过的

}"

HbxP2PCmd(HBX_P2P_TOUCH, touch,strlen(touch));

Action:

0: ACTION_DOWN 表示触摸屏上的一个新触摸点被按下,或是轨迹球按下并移动的动作开始

1: ACTION_UP 表示一个触摸点被释放,或是轨迹球弹起的动作结束

2: ACTION_MOVE 表示一个或多个触摸点正在移动,或是轨迹球正在移动

3: ACTION_CANCEL 表示一个正在进行的触摸动作被系统取消,通常是因为另一个窗口需要接收输入焦点

返回值: 无

4 HBX_P2P_NATIVE

设备端界面被切走,目前不需要处理;

5 HBX_P2P_KEYFRAME

设备端请求获取最接近时间的关键帧

参数: 不带参数

返回值:无

So通过回调函数会主动上报当前关键帧;

6 HBX_P2P_RATIO

设备端设置分辨率

参数: 分辨率信息,宽与高,已经帧率

格式如下: ”ratio:1280,720,15”

用例如下:

HbxP2PCmd(HBX_P2P_RATIO,"ratio:1280,720,15",0);

返回值:无

默认分辨率720P,20帧率

4)设备回调函数的注册

回调函数:库接收到app那边的数据与命令,将这些信息返回给设备端;

int HbxP2PSetCallBack(HBXCMDCB eventCB,HBXCMDCB dataCB);

参数:eventCB ,回调处理事件,出去音视频数据之外的数据;

dataCB,回调音视频数据;

注意:

这个dataCB回调函数不能处理太长延时函数,只适合传输数据,不能再这个函数里面去做软解码视频数据操作,最好只实现数据拷贝到缓存里面,然后再另一个线程用这个缓存实现刷屏等功能;

1 HBX_APP_CB_VIDEO

so库上报视频帧,一次一个完整的数据包,目前支持H264格式;

2 HBX_APP_CB_AUDIO

so上报音频帧,一次一个完整的pcm数据包;目前支持采样率16000,单通道,16位音频数据;

3 HBX_APP_CB_KEYFRAME

so上报关键视频帧,一个完整的h264数据包;

4 HBX_APP_CB_CONNECT:

so上报与APP链接成功,设备端收到这个消息可以开启显示界面

上报数据格式:

参数格式:

{
    "ACK": "start",
    "x": "1280",
    "y": "720",
    "f": "20",
    "time": "1720694787"
}

x,y,f,为分辨率

5 HBX_APP_CB_DISCONNECT

so上报与APP停止发送视频数据,设备端收到这个消息可以退出显示界面,

不带参数

6 HBX_APP_CB_NATIVE

so上报APP已经被切换到后台,目前不需要处理这个消息

7 HBX_APP_CB_AP

so 上报 APP 请求,需要将设备切换到 wifi 的 ap 模式

附录一

p2p链接成功后需要同步双方的dns,根据dns来设置p2p的dns,将手机与设备放在同一个网段中才能正常链接;

Copyright © 智阳软件 2023修订时间: 2025-04-03 14:24:53

results matching ""

    No results matching ""