はじめに

HASC Tool には「ダウンロード版」と「Sourceforge.jp版」があります。初心者はダウンロード版をご利用ください。 開発までやりたい人は「Sourceforge.jp版」をご利用ください。 また,作成したソフトウェアをコミットしていただける方は、河口(Twitter @nkawa)までお知らせください。

HASC Toolとは?

HASC Tool は、HASC (人間行動センシングコンソーシアム)が開発する行動情報処理のためのツールであり、以下の機能を備えています。
尚、この Toolは、Eclipse Pluginで開発しています。

  • データ関連
    • Hascloggerからのデータ受信機能
    • csvファイル形式のデータ読み込み
    • メタデータ,ラベルデータの読み込み
  • 信号処理関連
    • 直流波形,サイン波形などの簡単な波形の生成を行うフィルタの搭載
    • 入力波形に対して、平均,分散,フーリエ変換などの処理をするフィルタが存在
    • 目的に応じてフィルタを柔軟に組み合わせることが可能
    • 簡単なコーディングで新しいフィルタを作成可能
  • ラベル付与機能
    • 加速度波形に対してラベルを付与可能


データの収集から分析、利用、評価までを単一のツールで実現します。HASC Toolの最新版は こちらで入手できるので、是非ご利用ください。

開発環境のセットアップ

Eclipse RCPのインストール

HascToolはEclipse RCP で開発しているので、まずはEclipse RCP が必要となります。 eclipseダウンロードのページ から、Eclipse RCP/Plug-in Developersをダウンロードしてください。(下図参考)

ダウンロードしたファイルを解凍すればインストール完了です。


Eclipse RCP(3.6)にZest pluginをinstall

  1. Help > install new software..
  2. Work with:でHelios - http://download.eclipse.org/releases/heliosを選択し、"Group items by category"のチェックをはずす
  3. 検索ボックスに"zest"と入れ、見つかった3つのpluginを全てinstall( Next → Next → accept にcheckを入れて Finish)

Eclipse RCP(3.6)にSubversiveをinstall

  1. Help > Install New Software... をクリックしInstallダイアログを開く
  2. Work with:でHelios - http://download.eclipse.org/releases/heliosを選択し、 Collabration > Subversive SVN Team Provider (Incubaion)にチェックする
  3. Nextをクリックしインストールを完了する(Eclipseの再起動を勧められるが、まだ再起動しなくてもよい)
  4. Help > Install New Software... をクリックしInstallダイアログを開く
  5. Add...ボタンを押し、Add Siteダイアログを開き、Subversive SVN Connectors、 http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/とそれぞれ入力する
  6. Work with:でSubversive SVN Connectors - http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/を選択し、 Subversive SVN Connectors, SVNKit 1.3.2 Implementation (Optional)にチェックする
  7. Nextをクリックしインストールを完了する(Eclipseの再起動も行う)
  8. インストールの完了。リポジトリからHASCToolを取得する準備ができました。

リポジトリからHASCToolを取得

  1. Window > Open Persepective > Other...にSVN Repository Exploringパースペクティブが追加されているので開く
  2. SVN Repositoriesビューで右クリックし、New > Repository Location...をクリックする
  3. New Repository Locationダイアログで必要な情報を入力する
  4. URLにhttp://svn.sourceforge.jp/svnroot/hasc/を入力し、リポジトリを登録(Finishを押す)。
  5. 登録したリポジトリの /trunk/pc の下から HascToolを選択。
  6. 右クリックでチェックアウトを選択すると、HASCToolが取得できます。

リポジトリからHASCLoggerServerプラグインを取得

  1. HASC のリポジトリの /trunk/pc の下からHascLoggerServerPluginを選択。
  2. 右クリックでチェックアウトを選択すると、HascLoggerServerPluginが取得できます。

リポジトリからHASC サンプルデータの取得

  1. HASC のリポジトリの /trunk/pc の下からHascToolDataPrjを選択。
  2. 右クリックでチェックアウトを選択すると、HascToolDataPrjが取得できます。

HASC Toolのセットアップ

Eclipse側の設定

  1. Projectで、HascToolを右クリック > Run As > Run configuration..
  2. Eclipse Applicationの場所に、新規configurationを追加
  3. Mainタブ
    • Name, Workspace Data Location を適当に設定する
    • Run a product: の場所で jp.hasc.hasctool.ui.product を選ぶ
  4. Argumentsタブ
    • Program arguments に、 -consoleLog -clean を追加。(直前に空白文字も必要)
      (-consoleLog:エラーログを親Eclipseのコンソールに表示。-clean:古いplug-inが残らないように)
  5. Plug-ins タブ
    • Launch with: selected below only を選択
    • Deselect All ボタンを押す
    • Workspaceにある、以下のpluginのチェックをつける
      • jp.hasc.hasctool.ui
      • jp.hasc.loggerserver
    • Add Required Plug-ins ボタンを押す

HASC Toolの説明

HascToolの起動

  1. HascToolを右クリック > Run As > Run configuration を選択
  2. 作成したEclipse Applicationを選択し、Runボタンで実行(2回目以降は、Run > Run Historyから起動可能)
  3. 開いたウインドがResourceパースペクティブなら Window > Open Perspective.. > HascTool パースペクティブに変更

RuntimeSampleView

RuntimeSampleViewの設定

  • Window > Show View > RuntimeSampleView を選択
  • RuntimeSampleViewの位置は、タブをドラッグすることで調整できます

RuntimeSampleViewのボタン説明

    各々のボタンを押すと波形が生成されます。

  • CSV file ---: inputデータがCSV形式ファイル
  • CSV UDP ---: inputデータが(HASC Loggerからのリアルタイム情報)
  • stop: 再生停止
  • output CSV file: 再生された信号をCSVファイルに保存(次回再生時から、毎回上書き)
  • queue capacity: 時間同期用のキューの最大サイズ(空欄なら無限大,小さいとデッドロックします)
  • sleep time scale: 信号の時刻(の指定倍)に合わせてsleepしながら再生する。値が小さいと速く再生。0や空欄ならsleepしない。

VectorViewとWaveView

RuntimeSampleViewの各ボタンを押した場合や、Project Explorerの中にあるhascxbdファイルを実行する際に自動生成されます。

  • Window > Show View > VectorView(WaveView)を選択すると生成されます。
  • VectorView:ある時刻でのベクトル要素を表示するビューです
  • WaveView:ある要素の時系列情報を表示するビューです

ProjectExplorer

Eclipse側にあるデータフォルダをImportしたり、実行ファイルのexportを行います。

エディタ

  • labelファイルやcsvファイルを開くと、波形ビュー付きテキストエディタで編集できます
  • 波形ビューの ?L ボタンは、選択した時間範囲をテキストエディタに挿入します
  • 波形ビューの ?t ボタンは、選択した時間範囲に含まれるデータをテキストエディタ上に表示します
  • 波形ビューの +t,-t,+v,-vボタンは、表示する範囲を変更します
  • csvファイルのコンテキストメニュー > New Label File で、新規labelファイルを作成できます

hascxbdファイル(ブロック図)

  • 複数のブロックを連結させた、ブロック図を作成することにより、様々なデータ処理を行う仕組みです
  • プロジェクトエクスプローラのhascxbdファイルのコンテキストメニューから、「ブロック図を実行」を選ぶと、ブロック図を実行できます
  • ツールバーの「BD停止」ボタンを押せば実行停止します
  • 具体的なブロックの種類と使い方については、現状ではまだドキュメントがないため、ソースファイル、ソースファイル付属の開発者ドキュメント(readme_developer.txt)、サンプルのhascxbdファイルなどを参考にして下さい

hascxdbファイルのフォーマット

  • <model.BeanBlock>要素は、ブロックを表します
    • <name>要素は、ブロックを参照するための名前です
    • <class>要素で指定したクラスのインスタンスを生成し、プロパティに値をセットします
      jp.hasc.hasctool.runtime.RuntimeBeanを実装した、JavaBeans準拠のクラスである必要があります
    • <properties>要素以下にプロパティの値を書きます
    • <entry>要素は、1番目の子要素(<string>)がプロパティ名、2番目の子要素(値によりタグが変わる)がセットする値です
  • <model.Connection>要素は、<output>要素で指定された出力ポートと、<input>要素で指定された入力ポートを接続します
    • blockName属性はブロックの名前(<name>要素で指定したもの)
    • portName属性はポートのプロパティ名
    • <properties>要素以下にプロパティの値を書きます
    • <entry>要素は、1番目の子要素(<string>)がプロパティ名、2番目の子要素(値によりタグが変わる)がセットする値です
  • ファイルのパス
    • "$(projectRoot)/"で始まる場合は、プロジェクトルートからのパス
    • "/"で始まる場合は、ワークスペースからの絶対パス
    • そうでない場合は、hascxbdファイルがあるディレクトリからの相対パス
    • hascxbdファイル内に以下のキーワードを含む場合は、ユーザに入力ファイル(複数可)を選択させ、それぞれのファイルに対してブロック図が順次実行されます
      • $(inputFile.path): 入力ファイルのパス
      • $(inputFile.parentPath): 入力ファイルがあるディレクトリのパス
      • $(inputFile.name): 入力ファイル名(ディレクトリのパスは含まず)
      • $(inputFile.nameWithoutExt): 入力ファイル名から拡張子を除いた名前
      • $(currentDateTime): 現在の時刻。形式は"日付-時刻-ms"
  • 詳細は、HascToolTestPrjに含まれているサンプルをご覧下さい

Hasc Toolのソースコード

  • jp.hasc.hasctool.ui.views.RuntimeSampleView
    runtimeモジュールの利用のサンプルが色々あります
  • jp.hasc.hasctool.core.runtime.filter.SampleFilter1
    AbstractFilterを使った、簡単な1入力1出力フィルタの実装のサンプル
  • jp.hasc.hasctool.core.runtime.filter.label.SampleLabelingFilter
    入力値がしきい値より大きい期間に、ラベルをつけるフィルタ

HASC Toolの使用法

HascLoggerServer

  • iPhoneのHascLoggerから、ログファイルを受信するサーバです
  • ログを保存したいディレクトリをProjectExplorerで選択し、ツールバーの(H)ボタンを押すと起動します
  • bindするポート番号を指定します(Macの場合は、1025番以降にする必要)
  • iPhoneの環境設定>HascLoggerで、upload URLを、http://PCのIPアドレス:ポート番号/に設定します
  • iPhoneのHascLoggerからログをUploadすると、PCのHascTool上に表示されます
  • もう一度ツールバーの(H)ボタンを押すとサーバが停止します

ブロック図エディタ

  • hascxbdファイルを開くと、ブロック図エディタが開きます。
  • GraphViewタブを選ぶと、ブロック図がグラフで表示されます。
    • +B ボタンを押すと、ブロックを新規作成できます。新規作成するブロックのクラス名を入力して下さい。
    • Ctrl(control)キーを押しながら、出力側ブロック(送信元)と入力側ブロック(受信先)を順に選び、+Cボタンを押すと、コネクションを新規作成できます。プロパティビューで、inputPort / outputPort の名前を適宜指定して下さい。
    • Del ボタンを押すと、選択したブロック(それに接続されたコネクションを含む)またはコネクションを削除します。
    • ブロックを選択すると、プロパティビューで、ブロックのプロパティ(プリミティブ型または文字列型のもののみ)を設定できます。
    • ブロック図を変更した場合は、Ctrl+Sでファイルを保存してから、実行して下さい。
    • Undo/Redoをしたい場合は、テキストエディタ(HascXBDタブ)に切り替えて行って下さい
  • 時刻の単位は、microsecondsです。(1,000,000で1秒)
  • ブロックの出力ポートには、通常、複数のコネクションを接続することができます。
  • ブロックの入力ポートには、通常、単一のコネクションしか接続できません。複数入力のブロック(VectorConcatinatorなど)の場合は、入力ポートの数をinputPortCountプロパティで設定し、各コネクションを、それぞれ inputPort[0],inputPort[1],… という名前の、別々のポートへと接続して下さい。

サンプルデータのimport

  • File>New>Project で新規作成
  • 生成されたProjectを右クリック>import>FileSystemを選択>Next>From directoryを設定(ダウンロードのページから取得したHASC_Sampleフォルダを選択)>すべてを選択>Finish
  • hascxbdファイルを実行する場合
    • hascxbdファイルのコンテキストメニューから、Execute BlockDiagram を選んで実行
    • HascDataを開く>対象とするフォルダの選択
    • リソース(**.csv, **.label, **.meta)を選択
    • ツールバーのStopBDボタンを押せば実行停止
    • *Launch with: selected below only Deselect All ボタンを押し、次にAdd Required Plug-ins ボタンを押す

実行ファイル(バイナリパッケージ)のexport

  • Eclipse 3.6 (Helios) RCP MacOSX 64bits版を用意
  • Delta packをinstall
    • http://download.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/index.php#DeltaPack
    • http://aniefer.blogspot.com/2009/06/using-deltapack-in-eclipse-35.html
  • Eclipse RCP の eclipse.ini(Eclipse.appディレクトリの中にある) に -Dfile.encoding=UTF8 を書く(忘れるとコンパイルエラーが出る)
  • exportする前に、出力先のディレクトリの中身を消しておく(前のファイルが残ってるとエラーが出る場合が)
  • Product Configurationファイル(dist/hasctool.eclipse.3.6.product)を開き
    • Dependenciesタブのplug-inリストを設定(HascToolの起動設定と同様です)
    • OverviewタブのEclipse product export wizardリンクを実行
      • root directory名は hasctool に(忘れずに)
      • Export for multiple platforms をチェックする
      • platformsは、win32/x86, cocoa/x86 をチェック
  • ターミナルで出力先のディレクトリへ移動し、(path to HascTool)/dist/after_export.sh を実行

フィルタの作成方法

Eclipse側で、"HascTool/src/jp/hasc/hasctool/core/runtime/filter"フォルダに新たにフィルタを書き足すことで、新しいフィルタを生成できます。

  • filter:下記に該当しないフィルタ(例:実数→複素数 変換フィルタ)
  • filter.file:ファイル関係のフィルタ
  • filter.frequency:フーリエ変換関係のフィルタ(例:逆フーリエ変換,ローパスフィルタ)
  • filter.interpolator:波形を描画するための補助的な役割を担うフィルタ(例:線形補間)
  • filter.label:ラベル関係のフィルタ
  • filter.tick:時刻をコントロールするフィルタ
  • filter.window:窓関数フィルタ

ボタン(RuntimeSampleView)の作成方法

Eclipse側ソースコード内の"HascTool/src/jp/hasc/hasctool/ui/views/RuntimeSamplesView.java"にボタンを書き足してください。(他のボタンを参考にして下さい。)

フィルタの組み合わせを決定

  • Project Explorer 内でフォルダを選択
  • フォルダを右クリック>new>File>***.hascxbd(ファイル名を決める)
  • "HascToolTestPrj/samples"にファイルが既に作成されたhascxbdファイルがあるのでそちらを参考にして下さい。

バージョンの確認

  • メニューから、About HascToolを選び、Installation Details >Plug-insタブを開きます
  • 「Privider:hasc.jp, Plug-in Name:HascTool」の行のVersionカラムが、HascToolのバージョン番号です

既知の不具合と対処方法

  • LabelEditorの波形ビューで、ラベルの両端がそれぞれ左右の表示範囲外にある場合、ラベルの背景色が塗られません
  • 外部でファイルを編集した場合は、ProjectExplorerをRefreshしたほうが良いかもしれません(自動で行う設定になっていますが)
  • たまに、Refreshing workspace になったままになります
    • StopBDボタンを押してタスクを止めれば、直るかもしれません
  • エラーが出てHascToolが起動しない場合は、HascToolの起動設定(メニュー Run > Run-configuration..)を見直してみて下さい
    • エラーメッセージ例:!MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
    • Plug-insタブのplug-inリストを再設定
      • Deselect All ボタンを押し、jp.hasc.*のプラグインをチェックし、Add Required Plug-ins ボタンを押す
    • ArgumentsタブのProgram argumentsに -consoleLog -clean を追加してあることを確認
    • それでも直らない場合>Mainタブで、Workspace Data を Clear する設定にし、起動時にWorkspaceを消せば、直るかもしれません
    • 現状では、ブロックのクラスを追加したい場合、HascToolプラグインの中に直接追加する必要があります。(別プラグインにはできません)
ページのトップへ戻る