RedPark Serial Cable for iOS を使用していくつかの作業を行っています。これは、iOSデバイスとマイクロコントローラなどの別のデバイス間のシリアル通信を可能にするケーブルです。
シリアル ラインで利用可能なバイトを読み取る RedPark SDK に付属のメソッドがあります。このメソッドは、ケーブルが情報を受信するたびに呼び出されます。
(void)readDataBytes(UInt32 bytes) {
NSString *s = [[NSString alloc] initWith...bytes];
NSString *editedString = [self extractSubStringMethod:s];
[myArray addObject:editedString];
}
マイクロコントローラは次の形式で情報を送信しています
<msg>xxxxxxxxxxxxx</msg>
メッセージから x を抽出できるようにしたい (これは NSString として取り込まれます)。現時点では、NSRange を使用して、位置 4 (最初の x) の後と最後の "< /msg>" の前のすべてを抽出していますが、それが機能するとは確信していません。
最後に、これと一緒に実行されている NSThread があり、メッセージが NSMutableArray に追加されています。だから私が欲しいのは、ケーブルからメッセージを受信したときにNSThreadがメッセージ情報を操作/表示することです。私は次のようなものを持っています
//Thread method,
while([myArray count] > 0) //Don't believe this is neccesary but its in anyway
{
for(int i = 0; i < [myArray count]; i++){
NSString *string = [myArray objectAt(i)];
[self displayString:string];
[myArray removeObjectAt(i);
}
}
上記の周りでクラッシュしていると思います... [self displayString:string] は、ラベルの値を設定するだけです。
-(void)displayString(NSString *string) {
label.text = [string charAt(1)];
}
上記のコードは、Mac を自宅に置いて仕事をしているため、記憶からの抜粋です。任意の提案/ヘルプをいただければ幸いです