【发布时间】:2014-11-21 12:45:48
【问题描述】:
我有一个简单的 SerialController 类:
class SerialController : NSObject, ORSSerialPortDelegate {
var port : ORSSerialPort
init(path: String){
port=ORSSerialPort(path: path)
port.close()
}
func open(){
port.baudRate=9600
port.delegate=self
port.open()
}
func close(){
port.delegate=nil
port.close()
}
func SendString(data: String){
port.sendData(data.dataUsingEncoding(NSUTF8StringEncoding))
}
func serialPortWasOpened(serialPort: ORSSerialPort!) {
println("PORT IS OPEN....")
}
func serialPortWasClosed(serialPort: ORSSerialPort!) {
println("PORT IS CLOSE")
}
func serialPort(serialPort: ORSSerialPort!, didReceiveData data: NSData!) {
println(NSString(data: data, encoding: NSUTF8StringEncoding))
}
func serialPortWasRemovedFromSystem(serialPort: ORSSerialPort!) {
println("PORT REMOVED")
}
func serialPort(serialPort: ORSSerialPort!, didEncounterError error: NSError!) {
println("PORT ERR \(error)")
}
}
以及向 FT232 适配器发送数据的简单代码
func readLine()->String{
return NSString(data:NSFileHandle.fileHandleWithStandardInput().availableData, encoding: NSUTF8StringEncoding)
}
let myPort = SerialController(path: "/dev/cu.usbserial-CN920229")
myPort.open()
println("type your data to send...")
let k = readLine()
myPort.SendString(k)
myPort.close()
FT232 的 RX 和 TX 引脚连接在一起,我想接收数据的回波。 我可以连接到我的适配器,并且 SendString 方法可以正确地将数据发送到 FT232 但接收不起作用!。 在 cocoaDemo 中我测试了我的 FT232,我可以得到正确的响应。 我该怎么办?
【问题讨论】:
-
上面的代码真的可以编译吗?如果我在我的代码中使用完全相同的类串行控制器:我得到一个“未解包的可选类型'ORSSerialPort'的值;你的意思是在
port=ORSSerialPort(path: path)行上使用!还是??如果我使用!它会编译但然后在同一行上获得运行时异常?我正在使用最新的 Xcode 和 swift 2.x?
标签: macos swift xcode6 orsserialport