私が以前使用していた
Advanced ANT+はもうなくなってしまったので以下のページを参考に行いました。
心拍を表示するところまではうまくいったのですが、うまくいかず停滞中です。
参考にさせていただいたページ
私の前提知識:node.jsに関して全くの無知。
ode.js(ノードジェイエス)は、JavaScriptというプログラミング言語を使って、サーバーサイド(裏方)で動くアプリケーションを作るための環境。もっと簡単に言うと、普通はウェブページを作るのに使うJavaScriptを、パソコンやサーバーの中で動かして色々な処理を行えるようにするツール
ということだけ理解。もっと勉強します。
インストール
npm install ant-plus
※node.jsではなくコマンドプロンプトで実施する。
C:\ant_plus を作成し、
cd C:\ant_plus でフォルダに移動
npm install ant-plus でインストールした
以下の内容のant_plus.jsを作成して実行、
var Ant = require('ant-plus');
console.log('ant-plus module loaded successfully');
ant-plus module loaded successfullyとなっており読み込みに成功。
次は以下を作成 jsが分からんのでchatGPTに一行づつ何してるのかコメントしてもらった。
'use strict'; // 厳格モードを有効にしてエラーチェックを厳密にする
const Ant = require('ant-plus'); // ant-plusライブラリを読み込み
const stick = new Ant.GarminStick2(); // Garmin ANT+ USBスティック2のインスタンスを作成
const sensor = new Ant.HeartRateSensor(stick); // 心拍センサーのインスタンスを作成
let deviceID = null; // デバイスIDを格納する変数
// コマンドライン引数でデバイスIDが指定されているか確認
if (process.argv.length >= 3) {
deviceID = process.argv[2]; // 指定されていればデバイスIDを設定
}
// 心拍データが受信されたときの処理
sensor.on('hbData', function (data) {
if (deviceID === null) {
// デバイスIDが未設定の場合、受信したデバイスIDと心拍数を表示
deviceID = data.DeviceID; // 受信したデバイスIDを取得して設定
console.log(`デバイスIDを取得しました: ${deviceID}`);
console.log(`心拍数: ${data.ComputedHeartRate}`);
} else if (deviceID == data.DeviceID) {
// デバイスIDが設定済みの場合、そのデバイスからの心拍数のみを表示
console.log(`心拍数: ${data.ComputedHeartRate}`);
}
});
// USBスティックが接続されたときの処理
stick.on('startup', function () {
console.log('ANT+ USBスティックが起動しました');
sensor.attach(0, 0); // ANT+チャンネルに心拍センサーをアタッチ(接続)
});
// USBスティックが見つからない場合のエラーハンドリング
if (!stick.open()) {
console.log('ANT+ USBスティックが見つかりません!');
}
※実行するとconsole.logは日本語文字化けしました
ドングル(USB)をPCに刺し、心拍計を電源on。
PS C:\ant_plus> node one-sticks00.js
を実行
心拍来ました。
心拍データをJsonで出すことは出来た。
https://tips.hecomi.com/entry/2014/04/21/001606
しかし、上記の記事を参考にしてみたが、
UniGLFの中のTinyManagedTaskScheduler.cs、 UnityThread.cs 更にSearcherDatabaseとコンフリクトする部分があるみたいでうまくいかなかった。他のやり方調べよう