sdk-xyo-swift 1.0.17

sdk-xyo-swift 1.0.17

Kevin Weilerdescription=Github Actions Token维护。



 
依赖
sdk-core-swift~> 3.1.3
XyBleSdk~> 3.1.6
 

logo

sdk-xyo-swift

Carthage compatible Codacy Badge BCH compliance Maintainability

XYO基金会提供此源代码,以促进对 XYO 协议及其可能用途的理解。我们继续维护该软件以供开发者教育使用。此源代码的使用不适用于生产。

目录

描述

一个用于与 XYO 网络交互的 SDK。包括 BLE,TCP/IP,边界 witnessed 和桥接。

从这里开始

在您的 Podfile 中包含库

target 'YourAppName' do
  pod 'sdk-xyo-swift', '1.0.17'

尝试一些代码进行测试。以下为特定用法。

只需一行代码即可启动您的节点

let builder = XyoNodeBuilder().setBoundWitnessDelegate(self)

为了进行更复杂的测试,请创建一个监听器回调。

您还可以配置到您特定的角色。

用法

在创建节点构建器后,您将使用

let node = try builder.build()

一旦有了构建,您就可以访问属性来帮助您塑造节点以及您想要的内容。

客户端

// select the network - examples
let bleNetwork = node.networks["ble"] as? XyoBleNetwork
let tcpipNetwork = node.networks["tcpip"] as? XyoTcpipNetwork

// a flag to tell the client to automatically scan
bleNetwork?.client.scan = true

// a flag to tell the server to listen
bleNetwork?.server.listen = true

您可以为tcp/ip客户端设置桥接。

// set local bridges for the tcpip client
tcpipNetwork?.client.knownBridges = ["public address of bridge", "public address of other bridge"]

您可以设置绑定的见证代表

class SomeViewController: UIViewController, BoundWitnessDelegate {
  func boundWitness(started withDeviceId: String) {
    print("Started BW with (withDeviceId)")
  }

  func boundWitness(completed withDeviceId: String, withBoundWitness: XyoBoundWitness?) {
    print("Completed BW with (withDeviceId)")
  }

}

您还可以在任何传递绑定的见证的节点上设置字符串负载数据

    class SomeViewController: UIViewController, BoundWitnessDelegate {
        ...
        if var bleClient = (xyoNode?.networks["ble"] as? XyoBleNetwork)?.client {
          bleClient.pollingInterval = 10
          bleClient.stringHeuristic = "Hi I'm Client"
        }
        
        if var bleServer = (xyoNode?.networks["ble"] as? XyoBleNetwork)?.server {
          bleServer.stringHeuristic = "Yo I'm Server"
        }
    }

以下扩展可用于从绑定的见证中获取数据。参与者索引0是服务器,参与者1是客户端。

负载解析

根据上述示例传递字符串,您可以使用以下方式解决客户端/服务器的字符串

    if let resolveStr = withBoundWitness?.resolveString(forParty: 0) {
      dataStr += "Server: " + resolveStr
    }
    if let resolveStr1 = withBoundWitness?.resolveString(forParty: 1) {
      dataStr += " Client: " + resolveStr1
    }

或您可以为指定的绑定见证获取所有启发式方法

 extension XyoBoundWitness {
    func allHeuristics() : [String:String] {
      return XyoHumanHeuristics.getAllHeuristics(self)
    }
 }

您可以在源代码中查看单个启发式解析器

GPS

信号强度(RSSI)

时间

人类启发式协议可在以下位置找到

人类启发式

架构

此sdk是在客户端/服务器架构上构建的,以确保在开发期间易于理解。(客户端承担“中央”角色,服务器承担“外围”角色)。这使得我们能够以简单的方式定义角色。

SDK-XYO-swift 树

  • XyoSDK
    • 可变列表 <XyoNode>

      • XyoNode(storage, networks)

        • 监听器
          • 绑定的见证目标
      • XyoClient, XyoServer

        • Ble

          • 上下文
          • 中继节点
          • 程序目录
          • 自动桥接
          • 接受桥接
          • 自动绑定见证
          • 扫描
        • TcpIp

          • 中继节点
          • 程序目录
          • 自动桥接
          • 接受桥接
          • 自动绑定见证

示例应用

请参阅iOS示例以获取绑定见证和桥接的示例实现。

安装

请使用示例应用来测试功能。

  • 启动Xcode
  • 点击打开现有的 Swift Studio Project
  • 在文件资源管理器中导航到<path to the sdk-xyo-swift>/Example/
  • 打开项目工作区 open XyoSdkExample.xcworkspace

此示例应用程序包括客户端桥接和与 BLE 服务器监听器绑定的见证。

维护者

  • Kevin Weiler

许可

查看LICENSE文件以了解详细信息。

致谢

🔥❄️XYO制作