Objective-C串口编程 - Mac OS X

10

我目前正在终端中运行以下命令来通过USB串口发送命令。

/Users/drummerboyx/Library/Scripts/arduino-serial -b 9600 -p /dev/tty.usbserial-A800ev0Z -s 1

在Objective-C中有没有一种方法可以做到这一点?

4个回答

21

ORSSerialPort 是一个比 AMSerialPort 更为新颖和易于使用的 Objective-C 串口库。

使用 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];

3
谢谢你的建议,这个库看起来更加简洁! - Jason Whitehorn
1
你在 serialPortWithPath: 中打错了字,你写成了 serialPortWithWithPath:,在方法名中多加了一个 with。 - Matthew S.
注意:如果您想支持基于PowerPC的Mac,那么(不幸的是)您不能使用ORSSerialPort。 - user1985657

8

1

如果你只想从你的代码中运行该命令,你可以使用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++。


1

如果你想坚持使用Cocoa - 可以看看NSTask


但是是否有一种方法可以在不运行系统命令的情况下完成这个任务? - objectiveccoder001

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接