私のバックグラウンドはphpなので、charはバイト、ビットはバイナリ値などの低レベルのものの世界に入るには、コツをつかむのに少し時間がかかります。
私がここでやろうとしていることは、ArdunioボードからopenFrameWorksにいくつかの値を送信します(どちらもc ++です)。
送信するデータを要求されたときに、このスクリプトが現在実行していること(および、追加する可能性のある1つのセンサーで適切に機能すること)は次のとおりです。
int value_01 = analogRead(0); // which outputs between 0-1024
unsigned char val1;
unsigned char val2;
//some Complicated bitshift operation
val1 = value_01 &0xFF;
val2 = (value_01 >> 8) &0xFF;
//send both bytes
Serial.print(val1, BYTE);
Serial.print(val2, BYTE);
どうやらこれは、データをやり取りするための最も信頼できる方法です。シリアルポート経由で送信されるようになったので、バイトはchar文字列に追加され、次の方法で変換されます。
int num = ( (unsigned char)bytesReadString[1] << 8 | (unsigned char)bytesReadString[0] );
要約すると、4つのセンサーに相当するデータ(これらのシリアルプリントのうち8つになると思いますか?)を取得し、すべての最後にint num_01--num_04...を設定しようとしています。
これは(ほとんどの場合と同様に)これらの概念の経験がある人にとっては非常に簡単かもしれないと思います。