MacからORSserialでArduinoにバイトを送りたいです。ORSSerialPort ターミナルのデモ コードを使用すると、フレームワーク、ハードウェア、および Arduino コードが機能します。それはArduino tx / rxと出力LEDを完全に点灯させるバイトを接続して送信します。ただし、ORSSerial と SwiftUI を使用して同じことを行うと、LED がまったく点灯しません。クラスのインスタンス化を別の場所に配置し、セットアップ/オープン コードを init 以外の関数に配置して、ボタン コールバックを使用することさえ試みました。これまでのところ、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)
}
}