我正在为osx
编写一个小应用程序来监听并通过串行连接将命令发送到Arduino
接口。使用AMSerialPort
确实很有用。
但现在我需要将一些数据转发到第二个Arduino
,所以我需要第二个串行连接。
这个框架可以实现吗?我几乎到处搜索如何打开第二个端口并通过代表了解情况。
答案 0 :(得分:0)
关于AMSerialPort,我无法回答这个问题。虽然我过去经常使用AMSerialPort,但已经有一段时间了,而且我从未试图打开两个端口。但是,我刚刚发布了自己的Objective-C串口库,它肯定支持同时打开多个端口。它被称为ORSSerialPort,你可以在这里得到它:https://github.com/armadsen/ORSSerialPort。
用ORSSerialPort打开两个串口没有诀窍。使用ORSSerialPortManager的availablePorts
属性获取系统上的所有可用端口。在serialPort:didReceiveData:
委托方法中,您可以检查哪个端口接收到数据。像这样:
NSArray *availablePorts = [[ORSSerialPortManager sharedSerialPortManager] availablePorts];
// The next two lines are simplified by assuming availablePorts has two ports
// and you don't care which is which. Real code will be more sophisticated
self.port1 = [availablePorts objectAtIndex:0];
self.port2 = [availablePorts objectAtIndex:1];
self.port1.delegate = self;
self.port2.delegate = self;
[self.port1 open];
[self.port2 open];
- (void)serialPort:(ORSSerialPort *)port didReceiveData:(NSData *)data
{
if (port == self.port1) {
// Data is from port1
} else if (port == self.port2) {
// Data is from port2
}
}