SwiftCrestronCIP
这是一个 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 应用。