Bluetooth接続できるGPSロガーは大きくわけて、
2種類あります。
1つはSPP方式、もう一つはLNSプロファイル方式。
SPP方式はBluetooth接続を仮想COMポートとして扱う方式で、
自由度が高い分、ハンドリングは機器固有になってしまいます。
アプリで実装するときは、機器固有のロジックが必要。
もう一つは、LNSプロファイルという規格を使う方式。
規格に沿って通信さえすれば、アプリ側は同じ実装でよいです。
ハードとソフトを合わせれ売る場合はSPP方式、
LNSプロファイル方式は、ソフトはご自由にというパターン。
LNSプロファイル方式のGPSロガーには、
致命的な欠点があって、
LNSプロファイルでインタフェースできる時間単位が秒であること。
●実際の通信データ①
C5 00 1B 00 2A 7B B5 14 94 B4 C5 50 E5 07 08 1A 08 00 2C
●通信データ上のフラグ部
C5 00 Flags 16bit
00 C5 = 0000000011000101
0:Instantaneous Speed Present
2:Location Present
6:UTC Time Present
7:Position Status(1:Position Ok)
●通信データ上のデータ部
1B 00 Instantaneous Speed uint16(decimal -2) 001B=33(0.33km/h)
2A 7B B5 14 Location - Latitude sint32(decimal -7) 14B57B2A=347437866(34.7437866)
94 B4 C5 50 Location - Longitude sint32(decimal -7) 50C5B494=1355134100(135.5134100)
E5 07 YYYY uint16 07E5=2021
08 MM uint8 08
1A DD uint8 1A=26
08 HH uint8 08
00 MM uint8 00
2C SS uint8 44
UTC:2021/8/26 8:00:44(JPN:2021/8/26 17:00:44)
●実際の通信データ②
BA 00 00 00 00 46 5F 00 00 00 8D
●通信データ上のフラグ部
BA 00 Flags 16bit
00 BA = 0000000010111010
1:Total Distance Present
3:Elevation Present
4:Heading Present
5:Rolling Time Present
●通信データ上のデータ部
00 00 00 Total Distance uint24(decimal -1)
46 5F 00 Elevation uint24(decimal -2) 5F46=24390(243.9m)
00 00 Heading uint16(decimal -2)
8D Rolling Time uint8 (decimal 0) 8D=141
GL-770からは、GPSデータは1秒間に1回送られてくるわけではなく、
概ね1秒間に5回送られてきます。
GPSロガー位置情報中継アプリ(MLS)では、
スマホの内蔵GPSの位置情報を上書きするときに、
スマホ本体のクロック(ミリ秒)を使用しています。
GL-770から送られてくるGPSデータを受信する度に、
スマホの内蔵GPSの位置情報を上書きしているので、
アプリ側の処理遅延もありますが、
更新レート=GPSロガーの性能というわけです。
スマホの内蔵GPSの位置情報を上書きするタイミングを
GL-770から送られてくるGPSデータの受信と非同期にすれば、
更新レートを自由に操作できますが、、、
RaceChronoで更新レートを確認。
更新レートが4.2Hzになっているので、
GL-770のGPS情報に置き換わっていることがわかります。
LNSプロファイルのGPSロガーで確認できているのは、
GL-770(5Hz)とデジスパイスⅢ(10Hz)ですかね。
おそらく、
デジスパイスⅣ(20Hz)もLNSプロファイルだと思われます。
デジスパイスⅢ+MLSでRaceChronoを使用している方も
いらっしゃるようです。
詳しい内容は、
こちらです。
にほんブログ村
ブログ一覧 | 日記
Posted at
2022/03/11 16:27:55