高德

作者: 幻幻90 | 来源:发表于2022-08-09 11:33 被阅读0次

.EHP (Electronic Horizon Provider):即电子地平线提供者,为ADAS应用提供超视距前方路形和数据信息

说明:客户端通过服务管理ServiceMgr获取到EHPService后进行进行相关业务接口的调用。

--------------------------------------------------------------------------------

/**

* 初始化ehp服务

*/

public boolean initEhpService() {

if (mEHPService == null) {

mEHPService = (EHPService) ServiceMgr.getServiceMgrInstance().getBLService(SingleServiceID.EHPSingleServiceID);

}

EHPInitParam ehpInitParam = new EHPInitParam();

ehpInitParam.configPath = AutoConstant.PATH + "EhpConfig.dat"; // 设置 EhpConfig.json 文件路径

return mEHPService.init(ehpInitParam);

}

/**

* 协议观察者实现类

*/

public class EHPOutputObserver implements IEHPOutputObserver {

/**

* buffer 为输出json协议串内容

*/

    @Override

    public void output(String type, byte[] buffer) {

        final String msg = new String(buffer);

        // 将type和buffer内容回调给客户端

    }

}

/**

* 协议观察者添加

*/

public boolean addEhpOutputObserver(IEHPOutputObserver observer) {

if (observer != null && isEhpInited()) {

return mEHPService.addOutputObserver(observer);

}

return false;

}

/**

* 设置是否允许监听到SetNaviPath自动向EHP通知

*/

public boolean setAutoUpdateRoute(boolean autoNotify) {

if (isEhpInited()) {

return mEHPService.setAutoUpdateRoute(autoNotify);

}

return false;

}

/**

* 转发 EhpOutput或者EHR 数据给 EHP

* 该接口只透传数据,不解析Json数据,目前用来传递 UsageMode和CarMode 以及 EHR反馈的激活信号

* @param jsonMsg json字符串,如: "{\"UsageMode\": 1, \"CarMode\":0}"

* @return 是否透传成功

*/

public boolean inputExternalMsg(String jsonMsg) {

if (isEhpInited()) {

mEHPService.inputMsg(jsonMsg);

return true;

}

return false;

}

/**

* 反初始化ehp服务

*/

public boolean uninitEhpService() {

if (isEhpInited()) {

mEHPService.clearOutputObserver();

mEHPService.unInit();

return true;

}

return false;

}

------------------------------------------------------------------------------------------

EHP服务初始化后建议调用setAutoUpdateRoute(false)进行控制;在引导服务设置路线GuideService.setNaviPath(naviPath, mainIndex)发起导航之前,根据主路径pathID变化,再调用EHPService.setAutoUpdateRoute接口

1: 如果导航主路径pathID没有变化,就设置EHPService.setAutoUpdateRoute(false)

2: 如果导航主路径pathID有变化,就设置EHPService.setAutoUpdateRoute(true)

特别备注:setAutoUpdateRoute接口,在setNaviPath()之前同个线程调用

离线数据

下载后a1.zip数据包解压后,m2_adas.ans 、m2_lane.ans即为EHP离线数据,是和其他基础导航地图数据一起打包,通过地图数据服务MapDataService下载控制,并通知EHPService服务更新数据,完成下载过程。

--------------------------------------------------------------------------------------------

EHP初始化依赖EhpConfig.dat,放在assets/blRes目录下,需要拷贝到文件系统目录。并通过EHPInitParam.configPath进行指定,要求路径包含EhpConfig.dat的完整路径。

定位参数

LocModeType locModeType =newLocModeType(); locModeType.funcs |=LocFuncSwitch.LocFuncEHPEnable;PosService.init();

-----------------------------------------------------------

假如是对接前期,没实车情况下,需要验证EHP的功能,可以打开enableSimulatedNavi

网络状态

EHPService.updateNetworkStatus(networkStatus);

---------------------------------------------------------------------------------------------

从610开始不再需要,500和550需要主动调用。

HMI在OnDeletePath和OnSelectMainPathStatus回调中转线程调用了SetNaviPath,才保证了EHP的正常功能。

OnDeletePath时调用示例:

NaviPath.setType(RouteType.RouteTypeOnDeletePath); setNaviPath(NaviPath, index);

OnSelectMainPathStatus时调用示例:

NaviPath.setType(RouteType.RouteTypeOnSelectMainPath); setNaviPath(NaviPath, index);

EHP输出协议数据

定义的6个消息:

Av2Position(位置消息,描述车辆当前位置和构建路网之间的关系);

Av2Stub(根路径消息,描述一个分叉路口的一条分支路与父path的夹角等信息,表示的是一条新的Path的起点);

Av2Segment(路段消息,描述所构建路网上必选属性信息,如道路等级(RoadClass)、道路构成(Form Way)、限速、道路设施等);

Av2ProfileShort(短属性消息,描述10bit的道路其他属性,如坡度,曲率等);

Av2ProfileLong(长属性消息,描述32bit的道路其他属性,如经纬度坐标、交通标志、车道等);

Av2Metadata(元数据消息,描述路网全局性属性,例如限速单位、驾驶规则、城市编码等);

相关文章

网友评论

      本文标题:高德

      本文链接:https://www.haomeiwen.com/subject/kytawrtx.html