0

よし、これで頭がおかしくなった。

ビューコントローラーのプッシュとポップを利用するアプリがあります。私のviewControllerの1つには、Arduino Unoからの入力を読み取るための基本的なセットアップがあります(Redparkケーブルを利用)。

そのView Controllerをアプリから外すと、何が原因なのかわかりません。それがなくてもアプリは正常に動作するため、Redpark コーディングと関係があることはわかっています。

Redpark コーディングを他の viewControllers に挿入すると、アプリは停止しませんが、シリアル コードを読み取る必要があるというテキストは消えます。

では、クラッシュする原因は何ですか?またはデータを表示しません。

[rscMgr open]コマンドが関係していると思います。どんな入力も役に立ちます。


編集:私も尋ねさせてください。アプリのバックグラウンドでシリアル データを読み取るこのプロセスを実行する方法はありますか? それは問題を解決するかもしれません。

4

1 に答える 1

1

だから私は問題を解決したと信じています。

Alasdair Allen による本「iOS Sensor Apps with Arduino」では、すべての例がメインの viewController で作成されています。

私は例と追加のView Controllerをいじっていました。メインのviewControllerが常に実行されていることに気付きました。

この問題を解決するために私がしたことは、入力を保持するグローバル変数を作成し、それをプッシュされた viewController に出力することでした。

また、タイマーを使用して、プッシュされた viewController の値を更新しました。

そう...

  1. 入力を保持する変数を作成します。これは AppDelegate クラスで行いました (すべてのグローバル変数を AppDelegate に入れる傾向があります)。

    @synthesize rxBuffed = _rxBuffed;
    
  2. 変数を使用して、メイン viewController で Redpark Serial 入力を実行しrxBuffedます (任意の名前を付けることができます)。

    for (int i = 0; i < numBytes; i++) {
    delegate.rxBuffed = [NSString stringWithFormat:@"%@%c", delegate.rxBuffed, ((char *)rxBuffer)[i]];
    }
    
  3. RXデータが必要なviewControllerでタイマーを作成します。1/10秒ごとに更新しています。

    myTimer =[NSTimer scheduledTimerWithTimeInterval:.1
    target:self selector:@selector(updateValues)
    userInfo:nil repeats:YES];
    
  4. その変数を updateValues にインポートします。

    -(void)updateValues{
    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    yourVariable = delegate.rxBuffed;
    }
    
于 2012-07-05T14:19:25.150 に答える