1

シリアル接続を介してインターフェイスosxにコマンドをリッスンして送信するための小さなアプリケーションを作成しています。Arduinoを使用するとうまくいきAMSerialPortます。

しかし今、いくつかのデータを 2 番目の に転送するArduino必要があるため、2 番目のシリアル接続が必要です。

このフレームワークでこれは可能ですか?2番目のポートを開き、デリゲートを通じて通知を受ける方法をほぼすべて検索しました。

4

1 に答える 1

0

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
    }
}
于 2012-07-05T19:52:46.097 に答える