sdk-xyo-swift
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)
}
}
您可以在源代码中查看单个启发式解析器
人类启发式协议可在以下位置找到
架构
此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文件以了解详细信息。
致谢
由