答えて

4

私はあなたがRS-232/USBアダプタを使用していると仮定しています。私がそれをやっていたら、どのデバイスが表示されているか把握し、open( "/ dev/ttyS0"など)機能を使って開くだけです。次に、ファイル記述子とアクセス関数をオブジェクトにまとめます。ここで

は、ページには、POSIX環境でシリアルポートと一緒に遊んでいる: http://www.easysw.com/~mike/serial/serial.html

+0

をどこでだろうこの機能のマニュアルを見つける?申し訳ありません、私はちょうどこの言語で始めることです。 – eastydude5

+0

また、ボー、tx/rxブロッキングなどを設定するにはどうすればよいですか? – eastydude5

+0

私がリンクしているページには、その情報といくつかのコード例があります。 open()システムコールで端末を起動し、 "man 2 open"と入力します。 –

0

私は灸から、いわゆる「シリアルデバイスサーバ」を使用し、それが魅力のように働きました。 USBシリアル変換器上

利点:

  • デバイスは、アプリケーション側のどこにでも、ネットワーク内
  • 統合することができ、それは一般に

デバイスサーバーだけ十分に立証ネットワークプログラミングでありますLANまたはWiFiなどのネットワークを使用してシリアルデバイスに接続することができます。

ソフトウェア側、それはのような非常に簡単ネットワーク/ソケットプログラミング、次のようになります。

GCDAsyncSocketを使用)

準備データ

static u_int8_t cmd1[] = { 0x1a, 0x73, 0x10 }; //defined by the serial device's protocol 
static u_int8_t cmd2[] = { 0x1b, 0x51, 0x01 }; 

self.data = [NSMutableData dataWithBytes:&cmd1 length:sizeof(cmd1)]; 
[self.data appendData:[string dataUsingEncoding:NSUTF8StringEncoding]]; 
[self.data appendBytes:&cmd2 length:sizeof(cmd2)]; 

送信データ

-(IBAction)buttonAction:(id)sender 
{ 
    NSError *error = nil; 
    [self.socket connectToHost:@"192.168.1.9" onPort:1234 withTimeout:-1 error:&error]; 
    if (error) { 
     NSLog(@"error: %@", error); 
    } 
} 


-(void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port 
{ 
    [self.socket writeData:self.data withTimeout:-1 tag:23]; 
} 
関連する問題