AMSerialPortに関してこの質問に本当に答えることはできません。過去にAMSerialPortを多く使用しましたが、それはしばらくしていましたが、2つのポートを開こうとしたことはありませんでした。しかし、私は自分のObjective-Cシリアルポートライブラリをリリースしました。これは、同時に複数のポートを開くことをサポートしています。これはORSSerialPortと呼ばれ、https://github.com/armadsen/ORSSerialPortで取得できます。
ORSSerialPortを使用して2つのシリアルポートを開く方法はありません。 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
}
}