おはようございます、
iPad に接続するシリアル デバイスからバイト ストリームを取得しています。接続すると、提供された SDK は、転送されたバイトを使用してデリゲート メソッドを呼び出します。
SDK を介してシリアル デバイスによって転送される読み取り値は、次の形式です。
!X1:000.0;
シリアル デバイスに接続されると、委任されたメソッドはすぐにデータの受信を開始します。これはさまざまな完了状態にある可能性があります。
:000.00;
私がしなければならないことは、データを操作できるように、シリアル デバイスから返された読み取り値を分割する具体的な方法を確立することです。
試したオプションのいくつかは次のとおりです。
受信した文字列を一定期間連結し、NSString を ";" で分割するだけです。キャラクター。ただし、これは少し非効率的であり、データを動的に操作することはできません
-(void)receivingDelegateMethod:(NSString *)aString {
if(counter < 60){
[self.PropertyString stringByAppendingString:aString];
}else{
NSArray *readings = [self.PropertyString componentsSeparatedByString: @";"];
}
}
「!」を探して開始点を決定します。文字を取得し、結果の部分文字列を NSString プロパティに追加します。委任されたメソッドへの以前のすべての呼び出しは、このプロパティに追加され、最初の 10 文字が削除されます。
NSScanners や RegEx などのオプションがあることは知っていますが、さまざまな方法で時間を無駄にする前に、コミュニティの意見を聞きたいと思いました。
ありがとう