iPhoneのほとんどのセンサーのデータをログに記録して電子メールで送信できる「SensorLogger」というiPhone用のアプリを見つけましたが、UDPパケットを使用してネットワーク経由でブロードキャストすることもできます。コードは次のとおりです(Java )私はそのデータを受信するために使用します:
import java.io.*;
import java.net.*;
public class Main {
public static void main(String[] args) throws UnknownHostException, SocketException, IOException {
DatagramSocket socket = new DatagramSocket(5555, InetAddress.getByName("0.0.0.0"));
byte[] buf = new byte[64];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
while (true) {
socket.receive(packet);
String data = new String(packet.getData());
System.out.println(java.util.Arrays.toString(data.split(",")));
}
}
}
それは完璧に動作します、これは実行中のiPhone上のアプリでの出力です:
[1343331999601, 4, 0.0013, -0.0049, -0.00237]
[1343331999636, 4, -0.0024, 0.0049, -0.00477]
[1343331999670, 4, -0.0073, 0.0073, -0.00377]
[1343331999704, 4, -0.0036, 0.0024, -0.00247]
最初の数字は一種のタイムスタンプですが、これらの数字が何を意味するのかわかりません。iPhoneの日付/時刻と一致しません... 2番目の数字は使用されているセンサーを意味し、1はGPS位置です。 2はコンパス、3は加速度計、4はジャイロスコープです。最終的な数値は、センサーからの値です(2番目の数値で定義されます)。今、私はこれらすべての値をよりユーザーフレンドリーな方法で表示する小さなGUIアプリを作りたかったのです...しかし、これは私がJavaで何かをプログラムするのは初めてであり、それを行う方法がわかりません...できます誰かがサンプルコードを送ってください。そうすれば、私はそれを行う方法を理解し、すべての値に対してそれを繰り返すことができます。
みなさん、ありがとうございました。