Orphe~ Orphe

ORPHE CORE Module Javascript class

Constructor

new Orphe(idopt)

初期化関数

Parameters:
NameTypeAttributesDefaultDescription
idnumber<optional>
0

id コアの番号(0 or 1)を指定します。

Properties
NameTypeDescription
ORPHE_INFORMATIONstring

"01a9d6b5-ff6e-444a-b266-0be75e85c064" SERVICE_UUID

ORPHE_DEVICE_INFORMATIONstring

"24354f22-1c46-430e-a4ab-a1eeabbcdfc0" CHARACTERISTIC_UUID

ORPHE_OTHER_SERVICEstring

"db1b7aca-cda5-4453-a49b-33a53d3f0833" SERVICE_UUID

ORPHE_SENSOR_VALUESstring

"f3f9c7ce-46ee-4205-89ac-abe64e626c0f" CHARACTERISTIC_UUID

ORPHE_STEP_ANALYSISstring

"4eb776dc-cf99-4af7-b2d3-ad0f791a79dd" CHARACTERISTIC_UUID

Members

acc

加速度センサの値を保存する連想配列です。

Properties
NameTypeDescription
accObject

加速度センサの値

Properties
NameTypeDescription
xnumber

X軸方向の加速度センサの値

ynumber

Y軸方向の加速度センサの値

znumber

Z軸方向の加速度センサの値

converted_acc

加速度レンジに合わせて変換した加速度センサの値を保存する連想配列です。

Properties
NameTypeDescription
converted_accObject

加速度センサの値

Properties
NameTypeDescription
xnumber

X軸方向の加速度センサの値

ynumber

Y軸方向の加速度センサの値

znumber

Z軸方向の加速度センサの値

converted_gyro

ジャイロレンジに合わせて変換したジャイロセンサの値を保存する連想配列です。

Properties
NameTypeDescription
converted_gyroObject

ジャイロセンサの値

Properties
NameTypeDescription
xnumber

X軸方向のジャイロセンサの値

ynumber

Y軸方向のジャイロセンサの値

znumber

Z軸方向のジャイロセンサの値

delta

加速度値から2回積分で基準フレーム間の移動距離を求めた変数です

Properties
NameTypeDescription
deltaObject

距離

Properties
NameTypeDescription
xnumber

X軸方向の距離

ynumber

Y軸方向の距離

znumber

Z軸方向の距離

device_information

デバイスインフォメーションを取得して保存しておく連想配列です。begin()を呼び出すとデバイスから値を取得して初期化されます。

Properties
NameTypeDescription
device_informationObject

デバイス情報

Properties
NameTypeDescription
batterynumber

バッテリー残量(少ない:0、普通:1、多い:2)

lrnumber

コアモジュール取り付け位置(左右情報) bit0 : 左右 bit1 : 0(足底) / 1(足背) 足底 : 左、右:0=(0000 0000b), 1=(0000 0001b)、 足背 : 左、右:2(=0000 0010b), 3(=0000 0011b)

rec_modenumber

記録モード。記録してない, 記録中, 一時停止中:0, 1, 2

rec_auto_runnumber

自動RUN記録 Off, On:0, 1

led_brightnessnumber

LEDの明るさ(0-255)

rangeObject

加速度とジャイロセンサの感度設定

Properties
NameTypeDescription
accnumber

加速度レンジ( 2, 4, 8, 16(g):0, 1, 2, 3)

gyronumber

ジャイロレンジ(250, 500, 1000, 2000(°/s):0, 1, 2, 3)

euler

オイラー角を保存する連想配列です。this.quatから計算されています。

Properties
NameTypeDescription
eulerObject

オイラー角

Properties
NameTypeDescription
pitchnumber

ピッチ

rollnumber

ロール

yawnumber

ヨー

gait

歩容解析のデータを保存しておく連想配列です。

Properties
NameTypeDescription
gaitObject

歩容解析のデータ

Properties
NameTypeDescription
typenumber

歩容のタイプ(0: 通常歩行, 1: 走行, 2: ランニング)

directionnumber

歩容の向き(0: 前進, 1: 後退, 2: 左, 3: 右)

calorienumber

消費カロリー

distancenumber

移動距離

stepsnumber

歩数

standing_phase_durationnumber

立ち上がり時間

swing_phase_durationnumber

振り出し時間

gyro

ジャイロセンサの値を保存する連想配列です。

Properties
NameTypeDescription
gyroObject

ジャイロセンサの値

Properties
NameTypeDescription
xnumber

X軸方向のジャイロセンサの値

ynumber

Y軸方向のジャイロセンサの値

znumber

Z軸方向のジャイロセンサの値

interpolation

データ欠損時に線形補完をするかどうかのオプション設定(beginのオプションで設定可能)。この設定は200Hz sensor_valuesのacc, gyro, quatのみに適用されます。

Properties
NameTypeDescription
interpolationObject

線形補間の設定

Properties
NameTypeDescription
enabledboolean

線形補間の有効化/無効化 true: 有効, false: 無効

max_consecutive_missingnumber

線形補間する最大の連続欠損数

pronation

プロネーションのデータを保存しておく連想配列です。

Properties
NameTypeDescription
pronationObject

プロネーションのデータ

Properties
NameTypeDescription
landing_impactnumber

着地衝撃

xnumber

X軸方向のプロネーション

ynumber

Y軸方向のプロネーション

znumber

Z軸方向のプロネーション

stepsnumber

歩数

quat

クォータニオンを保存する連想配列です。

Properties
NameTypeDescription
quatObject

クォータニオン

Properties
NameTypeDescription
wnumber

w

xnumber

x

ynumber

y

znumber

z

steps_number

歩数カウントを保存する変数

stride

ストライドのデータを保存しておく連想配列です。

Properties
NameTypeDescription
strideObject

ストライドのデータ

Properties
NameTypeDescription
foot_anglenumber

足首の角度

xnumber

X軸方向のストライド

ynumber

Y軸方向のストライド

znumber

Z軸方向のストライド

stepsnumber

歩数

Methods

(async) begin(notification_typeopt, optionsopt) → {Promise.<string>}

begin BLE connection SENSOR_VALUESまたはSTEP_ANALYSISのセンサー値の取得を開始します。

Parameters:
NameTypeAttributesDefaultDescription
notification_typestring<optional>
"STEP_ANALYSIS"

STEP_ANALYSIS, SENSOR_VALUES, STEP_ANALYSIS_AND_SENSOR_VALUES

optionsobject<optional>
{range:{acc:-1, gyro:-1}}

{range:{acc:[2,4,8,16],gyro:[250,500,1000,2000]}

Returns:
Type: 
Promise.<string>

clear()

接続情報をクリアします。

connectGATT(uuid)

GATT通信を始めるための関数。read, write, startNotify, stopNotifyが呼び出されるとscanと一緒に呼び出されます。

Parameters:
NameTypeDescription
uuidstring

dataChanged(self, uuid)

サーバからのデータを受信したときに呼び出される関数です。この関数は、characteristicvaluechangedイベントが発生したときに呼び出されます。

Parameters:
NameTypeDescription
selffunction
uuidstring

disconnect()

BLEデバイスとの接続を切断します。デバイス接続をマニュアルで切断する場合には reset() を利用してください。切断だけでなくクラス内のメンバ変数もクリア初期化する必要があり、reset()を利用するとそれらの処理が行われます。

(async) getDateTime() → {Promise.<object>}

Date Timeを取得する 0 year 0-255 西暦から2000を引いた数 1 month 2 day 3 hour 4 minute 5 second 6 subsecond

Returns:

date_timeを連想配列形式{timestamp, data,round_trip_time}で返す。dataにはCOREから直接送信されてきたdataviewが格納されている。round_trip_timeはデータを取得にかかった時間[ms]。

Type: 
Promise.<object>

(async) getDeviceInformation() → {Promise.<object>}

呼び出すと現在のデバイス設定を取得します。連想配列形式でリターンされます。asyncに対応させているので、awaitを利用して呼び出すことをおすすめします。

Returns:

device_informationを連想配列形式で返す

Type: 
Promise.<object>

gotAcc(acc)

加速度を取得する。加速度レンジに応じて変換された値がほしい場合は、gotConvertedAccを利用すること 対応CharacteristicはSENSOR_VALUES

Parameters:
NameTypeDescription
accObject

{x,y,z} 加速度の取得

gotBLEFrequency(frequency)

notification frequencyの実測値を取得する

Parameters:
NameTypeDescription
frequencyfloat

gotCalorie(calorie)

総消費カロリーを取得する

Parameters:
NameTypeDescription
calorieObject

{value}

gotConvertedAcc(acc)

コアモジュールで設定されている加速度レンジに応じて変換された値を取得する。

Parameters:
NameTypeDescription
accObject

{x,y,z} 加速度レンジに応じて変換した加速度の取得

gotConvertedGyro(gyro)

ジャイロレンジに応じて変換された値を取得する。

Parameters:
NameTypeDescription
gyroObject

{x,y,z} ジャイロレンジに応じて変換したジャイロの取得

gotData(data)

ORPHE TERMINAL用に作成した関数。onReadで受け取ったデータをそのまま渡す。このメソッドがユーザ側でオーバーライドされると、その他のnotifyに伴うコールバック関数(gotAcc等)はすべて呼び出されなくなるので注意してください。dataview形式なので、取り扱い方法については ORPHE TERMINALのソースを参照するとよい。

Parameters:
NameTypeDescription
datadataview

onReadで取得したすべてのデータ

gotDelta(delta)

加速度値を2回積分して各x,y,zの単位時間の移動距離を取得する。

Parameters:
NameTypeDescription
deltaObject

{x,y,z} x,y,zの前回フレームからの移動距離

gotDirection(direction)

ランニングの方向を取得する

Parameters:
NameTypeDescription
directionObject

{value} 0:none, 1:foward, 2:backward, 3:inside, 4:outside

gotDistance(distance)

総移動距離を取得する

Parameters:
NameTypeDescription
distanceObject

{value}

gotEuler(euler)

コアモジュールのオイラー角を取得する。オイラー角の取得は破綻する可能性があるため、姿勢を取る場合はクオータニオンを利用すること

Parameters:
NameTypeDescription
eulerObject

{pitch, roll, yaw} オイラー角

gotFootAngle(foot_angle)

着地角度[degree]の取得

Parameters:
NameTypeDescription
foot_angleObject

{value}

gotGait(gait)

歩容解析の取得

Parameters:
NameTypeDescription
gaitObject

{type, direction, calorie, distance} 歩行解析の取得

gotGyro(gyro)

ジャイロ(x,y,zの角速度)を取得する

Parameters:
NameTypeDescription
gyroObject

{x,y,z} ジャイロの取得

gotLandingImpact(landing_impact)

着地衝撃力[kgf/weight]の取得

Parameters:
NameTypeDescription
landing_impactObject

{value}

gotPronation(pronation)

プロネーション[degree]の取得

Parameters:
NameTypeDescription
pronationObject

{x,y,z}

gotQuat(quat)

コアモジュールのクオータニオン情報を取得する

Parameters:
NameTypeDescription
quatObject

{w,x,y,z} クオータニオンの取得

gotStandingPhaseDuration(standing_phase_duration)

立脚期継続時間[s]を取得する

Parameters:
NameTypeDescription
standing_phase_duration*

gotStepsNumber(steps_number)

現在までの歩数を取得する

Parameters:
NameTypeDescription
steps_numberObject

{value}

gotStride(stride)

ストライド[m]の取得

Parameters:
NameTypeDescription
strideObject

{x,y,z}

gotSwingPhaseDuration(swing_phase_duration)

遊脚期継続時間[s]を取得する

Parameters:
NameTypeDescription
swing_phase_duration*

gotType(type)

現在の歩容タイプを取得する

Parameters:
NameTypeDescription
typeObject

{value} 0:none, 1:walk, 2:run, 3:stand

isGotDataOverridden()

gotData()がユーザ側でオーバーライドされているかどうかを返す関数です。これを見て,デバッグモード(ORPHE TERMINAL)を有効にするかどうかを判断します。オーバーライドするとgotData()以外の関数はコールバックされません.

lostData(serial_number, serial_number_prev)

以前来たデータとのシリアルナンバーの差が1でない場合に呼び出される。SENSOR_VALUESのcharacteristicを利用し、かつ、200Hzのデータ取得のモデル(CR-3)のみで利用可能。50Hzの加速度センサーのデータ取得モデル(CR-2)では利用できない。

Parameters:
NameTypeDescription
serial_numbernumber

現在のシリアルナンバー

serial_number_prevnumber

一つ前に受診したデータのシリアルナンバー

onRead(data, uuid)

Incoming byte callback function. コアモジュールから送信されるデータを受信するコールバック関数です。それぞれのUUIDに対応するデータを正しく整形して対応するコールバック関数に渡します。ユーザはコールバック関数を手元のコードでオーバーライドして利用します。gotData()がユーザによってオーバーライドされている場合は、gotData以外のnotifyに伴うコールバック関数はすべて呼び出されないことに注意してください。

Parameters:
NameTypeDescription
datadataView

incoming bytes

uuidstring

read(uuid)

サーバからデータを読み込む。notificationからはonReadで呼び出されるので、この関数を利用するのは DEVICE_INFORMATION characteristicのみです。

Parameters:
NameTypeDescription
uuidstring

DEVICE_INFORMATION

requestDevice(uuid)

Execute requestDevice()

Parameters:
NameTypeDescription
uuidstring

reset()

reset(disconnect & clear)

resetAnalysisLogs()

Reset Analysis logs in the core module.

resetMotionSensorAttitude()

Reset motion sensor attitude, quaternion culculation.

(async) setDateTime()

[YY, MM, DD, hh, mm, ss, (sub)ss]の配列を渡すことで、コアモジュールの日時設定ができます。

setDeviceInformation(obj)

this.device_informationの連想配列形式でデータを渡すことで、コアモジュールのデバイス設定ができます。

Parameters:
NameTypeDescription
objobject

setLED(on_off, pattern)

set LED mode

Parameters:
NameTypeDescription
on_offint

0: turning off the LED, 1: turning on the LED

patternint

0-4

setLEDBrightness(value)

sets the LED Brightness

Parameters:
NameTypeDescription
valueuint8

0-255, 0:turning off the LED

setup(string[]opt, optionsopt)

最初に必要な初期化処理メソッドです。利用するキャラクタリスティック(DEVICE_INFORMATION, SENSOR_VALUES, STEP_ANALYSIS)の指定の他、オプションを指定することができます。オプションでは生データの取得を指定することができます。通常利用では引数を省略して setup() が呼び出されることが多いです。

Parameters:
NameTypeAttributesDefaultDescription
string[]Array.<string><optional>
["DEVICE_INFORMATION", "SENSOR_VALUES", "STEP_ANALYSIS"]

DEVICE_INFORMATION, SENSOR_VALUES, STEP_ANALYSIS

optionsobject<optional>
{interpolation}

interpolationは未実装

setUUID(name, serviceUUID, characteristicUUID)

UUIDを設定する関数です。UUIDはsetup()で利用するキャラクタリスティック(DEVICE_INFORMATION, SENSOR_VALUES, STEP_ANALYSIS)の指定に利用されます。

Parameters:
NameTypeDescription
namestring
serviceUUIDstring
characteristicUUIDstring

startNotify(uuid)

Start Notification

Parameters:
NameTypeDescription
uuidstring

stop()

stop and disconnect GATT connection

stopNotify(uuid)

Stop Notification

Parameters:
NameTypeDescription
uuidstring

(async) syncCoreTime(nopt) → {object}

COREモジュールの時刻をPCの時刻 + random_trip_time/2 で同期します。

Parameters:
NameTypeAttributesDefaultDescription
nnumber<optional>
3

n - 平均値算出のためのサンプル数

Returns:

{sum_round_trip_time, average_round_trip_time, standard_time, adjusted_time, round_trip_times}

Type: 
object

write(uuid, array_value)

write data to the BLE device。実際にwriteを利用するのは DEVICE_INFORMATION characteristicのみです。

Parameters:
NameTypeDescription
uuidstring

DEVICE_INFORMATION, SENSOR_VALUES, STEP_ANALYSIS

array_valuedataView

write bytes