【发布时间】:2011-05-27 14:39:43
【问题描述】:
我目前正在终端中运行以下命令以通过 USB 串行发送命令。
/Users/drummerboyx/Library/Scripts/arduino-serial -b 9600 -p /dev/tty.usbserial-A800ev0Z -s 1
有没有办法在 Objective-C 中做到这一点?
【问题讨论】:
标签: objective-c cocoa macos arduino
我目前正在终端中运行以下命令以通过 USB 串行发送命令。
/Users/drummerboyx/Library/Scripts/arduino-serial -b 9600 -p /dev/tty.usbserial-A800ev0Z -s 1
有没有办法在 Objective-C 中做到这一点?
【问题讨论】:
标签: objective-c cocoa macos arduino
ORSSerialPort 是一种更新的、更易于使用的替代 AMSerialPort。
使用 ORSSerialPort 打开一个端口并发送数据可以这么简单:
ORSSerialPort *serialPort = [ORSSerialPort serialPortWithPath:@"/dev/cu.KeySerial1"];
serialPort.baudRate = [NSNumber numberWithInteger:4800];
[serialPort open];
[serialPort sendData:someData]; // someData is an NSData object
[serialPort close];
【讨论】:
serialPortWithPath:,你说serialPortWithWithPath:,你在方法名里加了一个额外的with。
发现了一些 google-fu:
我对此几乎一无所知,但"IOKit" 这个名字听起来也很有前途......
【讨论】:
如果您只想从代码中运行该命令,可以使用system 函数:
#include <stdio.h>
#include <stdlib.h>
system("/Users/drummerboyx/Library/Scripts/arduino-serial -b 9600 -p /dev/tty.usbserial-A800ev0Z -s 1");
您需要将 Objective-C 源代码文件扩展名设置为 .mm,这会告诉 Xcode 将其编译为 Objective-C++。
【讨论】:
如果您想坚持使用 Cocoa,请查看 NSTask。
【讨论】: