AMVKit 0.5.3

AMVKit 0.5.3

Thomas 维护。



AMVKit 0.5.3

  • Thomas Jetzinger

License CocoaPods

AMVKit

此仓库是做什么的?

此仓库包含 AMVKit 的 Xcode 10 项目。
该套件具有 下载存储使用 设备证书的功能。
对于访问证书,同一功能还包括 删除 功能。

此外,该套件通过 轻松 的蓝牙广播和连接访问证书实现。
最后,它还提供了两种用于车辆门操作的简单方法 - 锁定解锁

安装

CocoaPods

请确保您正在运行最新版本的 CocoaPods,方法是在终端中运行:

gem install cocoapods

# (or if the above fails)
sudo gem install cocoapods

通过运行以下命令更新您本地的 spec 仓库:

pod repo update

注意: 此步骤是可选的,如果您最近更新了 spec 仓库。

将以下行添加到您的 Podfile 中:

pod 'AMVKit'

运行 pod install 并设置完成!

使用方法

主要方法

在应用源文件中导入 AMVKit 后,通过它的 单例 可以访问所有功能。

static var AMVKit.shared

要开始使用 AMVKit,必须对其进行 初始化
accessSdkOptions 包含访问 amv-access-api 后端的 URL、凭据以及可选的身份。当从本地数据库加载 设备证书 或未存在时从服务器下载时,调用 handler-block。
这也将初始化 High Mobility 的框架,或在任何步骤失败时返回错误。

func initialise(accessSdkOptions newAccessSdkOptions, handler done: @escaping (Result<DeviceCertificate>) -> Void) throws

在初始化工具包后,可以从本地数据库加载 访问证书,或从服务器下载新的证书(在成功下载时覆盖本地数据库)。
下载新证书也将其注册到 High Mobility 的框架中。

func getAccessCertificates() -> [AmvAccessCertificate]?
func refreshAccessCertificates(_ done: @escaping (Result<[AmvAccessCertificate]>) -> Void) throws

要连接到车辆,必须选择 访问证书 并将其传递给方法。
这开始向车辆广播 蓝牙,其中包含广告数据中的车辆序列号。
找到合适的车辆后,将建立连接,进行认证并查询初始状态。
每当设备收到来自车辆的新数据或在断开连接时,都会调用方法的 handler-block。

func connect(to accessCertificate: AmvAccessCertificate, handler: @escaping (Result<VehicleUpdate>) -> Void) throws

附加方法

删除 访问证书 首先尝试从 服务器 删除它。
如果成功,它将从 本地数据库 删除,并将删除的证书用于参考调用 done-block。

func deleteAccessCertificate(_ accessCertificate: AmvAccessCertificate, done: @escaping (Result<AmvAccessCertificate>) -> Void) throws

从已连接的车辆断开连接。
此外,这 停止 蓝牙广播(如果正在激活)——可以在建立车辆连接之前使用。

func disconnect()

通过删除所有保存的 访问证书设备证书密钥 来重置 本地数据库

func resetDatabase()

命令

在向车辆发送命令之前,您必须等待任何先前的查询完成。

请求当前车辆状态。

func sendCommand(.requestVehicleState) throws

锁上门

func sendCommand(.lockDoors) throws

解锁门

func sendCommand(.unlockDoors) throws

其他

所有 异步 方法都以 枚举 值返回结果。

enum Result<T> {
    case error(Error)
    case success(T)
}

测试

实现了 AMVKit 的测试

  • 访问证书 下载 和解析
  • 设备证书 下载 和解析
  • 密钥对 生成

要运行它们,请打开 Xcode 项目,将 AMVKit 作为 目标方案 选择,并选择 测试

许可协议

该项目遵循 Apache 许可协议。有关详细信息,请参阅 LICENSE