1

我正在编写一个小应用程序,用于osx通过串行连接向Arduino接口监听和发送命令。这很好用AMSerialPort

但是现在我需要将一些数据转发到第二个Arduino,所以我需要第二个串行连接。

这个框架有可能吗?我几乎到处搜索如何打开第二个端口并通过代表获得通知。

4

1 回答 1

0

关于 AMSerialPort,我无法真正回答这个问题。虽然我过去经常使用 AMSerialPort,但已经有一段时间了,我从未尝试过打开两个端口。然而,我刚刚发布了我自己的 Objective-C 串口库,它绝对支持同时打开多个端口。它被称为 ORSSerialPort,你可以在这里获得它:https ://github.com/armadsen/ORSSerialPort 。

用 ORSerialPort 打开两个串口没有什么技巧。使用 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
    }
}
于 2012-07-05T19:52:46.097 回答