8

私の友人が先日この質問を持ち出しました。彼は最近、心拍数を追跡し、1日の心拍数統計をコンピューターにアップロードできるガーミン心拍数モニターデバイスを購入しました。

唯一の問題は、garmin USBデバイス用のLinuxドライバーがないことです。彼は、モデル番号やユーザーの詳細などのデータの一部を解釈し、基本的に一連のデータを表すと想定されるバイナリデータテーブルがあることを確認しました。彼の心拍数と記録が取られた時間の記録。

構造について何も知らないときにデータをリバースエンジニアリングするとき、どこから始めればよいでしょうか。

4

8 に答える 8

4

私は同じ問題を抱えていて、Garminデバイス用のツールのクロスプラットフォームバージョンを完成させることを目的としたこのプロジェクトを最初にGoogle Codeで見つけました... http ://code.google.com/p/garmintools/を参照してください。そのプロジェクトのフロントページには、必要なプロトコルへのリンクがあります。Garminは、これを公開するのに十分な配慮をしていました。

そして、Garmin I / O仕様への直接リンクは次のとおりです:http://www.garmin.com/support/pdf/IOSDK.zip

于 2008-09-22T16:22:14.220 に答える
1

私は16進エディタでデータを調べ始めます。できれば、最も一般的なエンコーディング(ASCII、Unicodeなど)を知っている優れたエディタで、保存されていることがわかっているデータからデータを理解しようとします。

于 2008-09-22T16:21:48.947 に答える
1

別の投稿者が言及したように、リバース エンジニアリングは、実際にはではなく合法的に行われる可能性があります。

そうは言っても、このプロジェクトとそのコードをチェックすることで、手元にある根本的な質問に関連するすべてを見つけることができるかもしれません...そして、ランナーの心拍数/ GPSコンボデータも処理します.

http://www.gpsbabel.org/

于 2008-09-22T16:24:20.937 に答える
0

出身国でのリバースエンジニアリングの合法性を確認することから始めることをお勧めします。ほとんどの国では、リバースエンジニアリングデバイスとコードに関して何が許可され、何が許可されないかについて非常に厳しい法律があります。

于 2008-09-22T16:19:46.767 に答える
0

まず、データの 16 進ダンプを作成します。おそらく、いくつかの 2 の累乗サイズのチャンクでブロックされていると考えてください。繰り返しパターンを探し始めます。彼らが送信している可能性のあるデータの種類について考えてみてください。各心拍を個別に記録するか、センサーが一定の間隔で送信するものを記録します。個々のビートの場合は、(最後のビートからの) 時間差、継続時間、および何らかの種類の最大または平均強度があります。固定間隔の場合は、おそらく読み取り値の単純なベクトルになります。おそらく、開始タイムスタンプとサンプリング レートを含む、ある種のプリアンブルがあるでしょう。タイムスタンプを自分でデコードしてみるか、単純にフィードしてctime()、標準の絶対時間形式を使用しているかどうかを確認してください。

多くの安価な A/D コンバーターは 12 ビットの出力しか生成しないため、読み取り値が 16 ビットより大きくなることはほとんどないことに注意してください (上位 4 ビットはフラグに使用される可能性があります)。デバイスをリセットして「空白」にし、コンテンツをダンプして保存してから、一連の読み取り値を取得し、結果を記録し (デバイスが通常報告するものは何でも)、コンテンツを再度ダンプして、記録された結果を関連付けることをお勧めします。 「空の」ダンプの後に表示されたデータと一緒に。

于 2010-03-05T19:39:38.700 に答える
0

デバイスから送信されているデータを確認することから始めて、そのようなデータをどのように表現し、パックするかを検討します。

心拍は規則的なものであり、心臓自体に関連する測定値であることを示唆しているため、最初に多くのサンプルをキャプチャし、何らかのパターンが現れるかどうかを確認します。また、単調に増加するビット フィールドを探します。これは、ある種のタイム スタンプを示唆するからです。

何がどこにあるのかという仮説を立てたら、それをテストするプログラムを作成し、結果をグラフにして、意味があるかどうかを確認します。そうであるが、完全ではない場合は、詳細な調査により、あちこちにいくつかのスケーリング係数が必要であることが明らかになります。また、プログラムが示しているように見える前に、まずデータを処理する必要がある可能性も十分にあります。つまり、データ ポイントを統合する必要があるかもしれません。私がゴミを手に入れたら、それは製図板に戻ります:-)

また、製造元の Web サイトを確認するか、製造元のstringsバイナリで実行することもできます。生物医学工学の分野で働いている人を見つけることも私のリストに載っています。また、これらのプロトコルを探して、表示しているデータに適用できるプロトコルがあるかどうかを確認します。

于 2008-09-22T16:28:24.703 に答える
0

これがあなたが探しているものかどうかはわかりませんが、Garmin はあなたのブラウザーで動作する API を作成しました。Windowsブラウザだけでなく、OSXもサポートされているようです...このリバースエンジニアリングの代わりに使用できるかどうかを確認するために、Google Chromiumから試してみます...

http://developer.garmin.com/web-device/garmin-communicator-plugin/

API 機能

コンピュータに接続されたデバイスの自動検出 製品名やソフトウェア バージョンなどのデバイス製品情報へのアクセス サポートされているレクリエーション、フィットネス、ナビゲーション デバイスからトラック、ルート、ウェイポイントを読み取る サポートされているレクリエーション、フィットネス、ナビゲーション デバイスにトラック、ルート、ウェイポイントを書き込む フィットネスを読み取るサポートされているフィットネス デバイスからのデータ アドレスをジオコードし、ウェイポイントまたはお気に入りとしてデバイスに保存します Garmin XML ファイル (GPX および TCX) とバイナリ ファイルを読み書きします。ほとんどの Garmin デバイス (USB、USB 大容量ストレージ、ほとんどのシリアル デバイス) のサポート Microsoft Windows での Internet Explorer、Firefox、および Chrome のサポート。Mac OS X での Safari、Firefox、および Chrome のサポート。

于 2013-09-17T21:28:54.450 に答える
-1

コンピューターのスピーカーのようなものを使ってハートビートを合成できますか?(そのようなデバイスが実際にどのように機能するかはわかりません)。さまざまな入力に基づいてバイナリ結果がどのように変化するかを確認します。

デバイスを分解して中身を確認することもおそらく役立つでしょう。

于 2008-09-22T16:21:14.207 に答える