SwiftCrestronCIP 1.0.3

SwiftCrestronCIP 1.0.3

Chris Wilson 维护。



SwiftCrestronCIP

License

这是一个 Swift 包,用于通过 Crestron over IP (CIP) 协议与 Crestron 控制处理器通信。

注意:本模块不是由 Crestron Electronics, Inc. 生产、认可、维护或支持的。'XPanel'、'Smart Graphics' 和 'SIMPL Windows' 都是 Crestron 的商标。作者与 Crestron 没有任何隶属关系。

此 Swift 模块灵感来源于 Katherine Lenae 的 Python CIP 客户端

这是一个基于 Swift 的套接字客户端,通过 Crestron-over-IP (CIP) 协议与 Crestron 控制处理器进行通信。需要熟悉 Crestron 的开发工具、流程和术语,才能配置控制处理器以使用本模块。

示例程序

《CIPSampleAppSwift应用程序》演示了此包的使用。有关构建和运行的说明,请参阅README文件。示例应用程序需要运行在Crestron控制系统上的对应Crestron示例程序

使用方法

要使用此包,首先将其导入到您的应用程序中

import SwiftCrestronCIP

连接

您需要初始化类,并定义您控制系统的连接参数

let cipConnection = CIPConnection(withControlSystemHost: "192.168.1.2",
                                  ipid: 0x01,
                                  debugLevel: .off,
                                  connectionStateChangeCallback: connectionStateCallback,
                                  registrationStateChangeCallback: registrationStateCallback)

请确保指定控制系统的正确主机名或IP地址,以及您希望用于连接的Xpanel设备的IPID。

debugLevel参数允许您设置要在控制台中设置的调试级别。.off禁用日志记录,.low打印主要事件和错误,.moderate记录所有事件,而.high包括从控制系统发送和接收的消息的完整内容。

订阅信号

您可以为当从控制处理器接收到加入消息时调用注册一个(或多个)回调闭包。请注意,即使做出更新请求并且所有信号都被刷新时,这些回调也会被调用。请相应地管理您自己的状态。我更喜欢使用ReSwift来集中管理状态(如Swift示例程序中所示)。

要订阅调用subscribe函数

cipConnection.subscribe(signalType: .digital, joinID: 1, callback: genericCIPCallback)

此调用订阅数字加入1,并在接收到加入时调用genericCIPCallback。回调必须与函数签名匹配

(_ signalType: SignalType, _ joinId: UInt16, _ value: Any) -> Void

加入的值作为Any类型发送,您需要根据signalType将强制转换为正确的值类型。一个.digital映射为Bool.analog映射为UInt16,而.serial映射为String

发送信号

数字连接

使用 setDigitalJoin() 发送数字连接。

cipConnection.setDigitalJoin(1, high: true, buttonStyle: false)

第一个参数是连接 ID。参数 high 决定信号电平(true 设置信号为高电平,false 设置为低电平)。可选的 buttonStyle 参数(默认为 false)用于标识信号是标准模式还是按钮样式。

有一些便利函数用于数字连接。

cipConnection.press(1)
cipConnection.release(1)
cipConnection.pulse(1)

这三个函数分别发送指定连接号码的按、释放和脉冲(简称为调用了 press() 后跟随 release())消息。

模拟连接

使用 setAnalog() 发送模拟连接。

cipConnection.setAnalog(1, value: foo)

第一个参数是连接 ID,第二个参数是 UInt16 值。

串行连接

要向串行连接发送字符串,请使用 sendSerial()

cipConnection.sendSerial(1, string: foo)

第一个参数是连接 ID,第二个参数是 String 值。

查找更多信息

这只是这个包使用方法的快速浏览。更多文档请见 SwiftCrestronCIP/SwiftCrestronCIP.swift,以及示例用法,请查阅 CIPSampleApp Swift 应用