シリアル接続を介してインターフェイスosx
にコマンドをリッスンして送信するための小さなアプリケーションを作成しています。Arduino
を使用するとうまくいきAMSerialPort
ます。
しかし今、いくつかのデータを 2 番目の に転送するArduino
必要があるため、2 番目のシリアル接続が必要です。
このフレームワークでこれは可能ですか?2番目のポートを開き、デリゲートを通じて通知を受ける方法をほぼすべて検索しました。
シリアル接続を介してインターフェイスosx
にコマンドをリッスンして送信するための小さなアプリケーションを作成しています。Arduino
を使用するとうまくいきAMSerialPort
ます。
しかし今、いくつかのデータを 2 番目の に転送するArduino
必要があるため、2 番目のシリアル接続が必要です。
このフレームワークでこれは可能ですか?2番目のポートを開き、デリゲートを通じて通知を受ける方法をほぼすべて検索しました。
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
}
}