【发布时间】:2020-12-16 18:30:45
【问题描述】:
我一直在尝试编写一个 Xcode 接口来与我的 Arduino Mega 通信。但整个事情并没有像预期的那样工作。我用 ORSSerialPort 完成了整个工作。
在 Xcode 项目中,我为 swift 文件 ViewController.swift 编写了这个:
import Cocoa
import ORSSerial
class ViewController: NSViewController, ORSSerialPortDelegate {
var serialPort = ORSSerialPort(path: "/dev/cu.usbmodem142101")
func SendString(data: String){
let stringData = Data(data.utf8)
serialPort?.send(stringData)
}
func openPort(){
serialPort?.baudRate=9600
serialPort?.delegate=self
serialPort?.parity = .none
serialPort?.numberOfStopBits = 1
serialPort?.open()
print("serialport is open")
}
func closePort(){
serialPort?.delegate=nil
serialPort?.close()
print("serialport is close")
}
override func viewDidLoad() {
super.viewDidLoad()
}
override var representedObject: Any? {
didSet {
}
}
@IBAction func onButton(_ sender: Any) {
openPort()
}
@IBAction func OffButton(_ sender: Any) {
closePort()
}
@IBAction func SendButton(_ sender: Any) {
SendString(data: "stringdata blablabla")
}
func serialPortWasOpened(_ serialPort: ORSSerialPort) {
print("serialPort to \(serialPort) is run")
}
func serialPortWasRemovedFromSystem(_ serialPort: ORSSerialPort) {
self.serialPort = nil
}
}
我在 Arduino mega 上加载了这段代码:
String angel;
void setup() {
Serial.begin(9600);
}
void loop() {
angel = Serial.readString();
Serial.println(angel);
delay(350);
}
不幸的是它不起作用,我不知道为什么。
【问题讨论】:
-
Max,你能添加更多关于什么不起作用的细节吗?您是否看到记录的消息表明串行端口已打开(即“运行到 /dev/cu.usbmodem142101 的串行端口”)?
标签: swift xcode macos arduino orsserialport