HMISDK详解:连接层与数据管理

需积分: 0 0 下载量 147 浏览量 更新于2024-08-04 收藏 150KB DOCX 举报
"HMISDK使用说明1" HMISDK(Human Machine Interface SDK)是一个用于构建车载信息娱乐系统(IVI System)人机交互界面的软件开发工具包。它旨在简化开发者与SDL(SmartDeviceLink)之间的通信,实现移动设备与车载系统的无缝连接。SDK遵循三层结构设计,包括最底层连接层、AppData数据管理层和UI层,以高效地处理消息交互、数据管理和用户界面展示。 1. 最底层连接层: 这一层是HMISDK的基础,主要负责与SDL的七个通道进行消息的收发。`IMessageInterface` 是这一层的关键接口,提供了处理不同类型消息的方法: - `onRequest(Json::Value)`: 处理请求消息,Json::Value用于存储JSON格式的数据。 - `onNotification(Json::Value)`: 处理通知消息。 - `onResult(Json::Value)`: 处理结果消息。 - `onRawData(void*p, int iLength)`: 接收原始数据,通常用于处理非JSON格式的二进制数据。 - `onError(std::string error)`: 当发生错误时,调用此方法传递错误信息。 2. AppData数据管理层接口: 这一层负责解析接收到的JSON消息,存储数据,并控制UI的更新。`AppListInterface` 和 `AppDataInterface` 是这一层的主要接口: - `AppListInterface` 提供了获取当前在线应用的列表,以及通知连接层关于应用状态变化(如激活、离开、退出)的方法。 - `getNewAppJsonVector()` 返回新应用的JSON数据向量。 - `OnAppActivated(int appID)` 通知应用已被激活。 - `OnApplicationOut(int appID)` 通知应用已退出前台。 - `OnApplicationExit(int appID)` 通知应用已完全退出。 - `AppDataInterface` 为UI提供获取特定应用界面数据的接口。 - `getShowData()` 获取应用当前显示的数据。 - `getCommandList()` 获取主菜单命令列表。 - `getCommandList(int subMenuID)` 获取子菜单的命令列表。 - `getAlertJson()` 获取当前警报的JSON数据。 - `getSlider()` 获取滑块组件的JSON数据。 - `getScrollableMsgJson()` 获取可滚动消息的JSON数据。 - `getAudioPassTh` 可能是获取音频传递相关的信息,但部分信息缺失。 3. UI层: UI层由AppData层控制,根据接收到的数据来更新和展示不同的界面。开发者可以通过调用AppData层的接口,获取到相应的界面数据并进行渲染。 通过HMISDK,开发者可以方便地构建出与SDL兼容的车载应用,实现手机与车机之间的交互,如导航、音乐播放、电话控制等功能,同时确保数据的安全性和用户体验的流畅性。在实际开发中,开发者需要了解JSON格式的数据处理,熟悉UI设计和SDL协议,以便充分利用HMISDK提供的功能。