我想从 Mac 向带有 ORSserial 的 Arduino 发送一个字节。当我使用 ORSSerialPort 终端演示代码时,框架、硬件和 Arduino 代码工作。它连接并发送一个字节,完美地点亮 Arduino tx/rx 和输出 LED。但是,当我使用 ORSSerial 和 SwiftUI 做同样的事情时,它根本不会点亮任何 LED。我尝试将类实例化放在不同的位置,并将设置/打开代码放在初始化之外的函数中,甚至使用按钮回调。到目前为止仍然不能在 SwiftUI 中工作。我是 swift 和 swiftui 的新手,所以我的代码中可能存在可怕的错误,但就是这样。欢迎所有建议/批评,谢谢。
import SwiftUI
import ORSSerial
class myPort: NSObject, ORSSerialPortDelegate {
var serialPort = ORSSerialPort(path: "/dev/cu.usbmodem14101")
let myData = "2".data(using: .utf8)
override init(){
super.init()
print("starting:")
if (serialPort != nil){
serialPort?.baudRate = 9600
serialPort?.numberOfDataBits = 8
serialPort?.numberOfStopBits = 1
serialPort?.parity = .none
serialPort?.usesRTSCTSFlowControl = false
serialPort?.open()
if ((serialPort?.isOpen) != nil){
serialPort?.send(myData!) // someData is an NSData object
print("sending: \(String(describing: myData))")
} else {print("Error: opening port")}
} else {print("Error: getting port")}
}
func serialPortWasRemovedFromSystem(_ serialPort: ORSSerialPort) {
print("Error: port removed")
}
deinit {
serialPort?.close()
print("Port closed")
}
}
struct ContentView: View {
var sendArduino = myPort()
var body: some View {
VStack{
Text("Done yet?")
}
.frame(width: 400, height: 400)
}
}