PMX ArduinoLib getSystemStatus()
『PMX Library for Arduino』のgetSystemStatus()関数について解説します。
【解説】
getSystemStatus()関数は、サーボの状態を知ることができるステータスのシステムエラーに関連するデータを読み出します。サーボからの返信パケットに含まれるステータスでシステムエラーのビットが立っている場合に、エラーの詳細を知ることができます。
サーボに問題があるとエラーに該当するビットが1になります。
getSystemStatus()関数でエラー情報を読み出すとエラーフラグがクリアされます。ただし、入力電圧エラーやCPU温度エラーなど原因を解消できていない場合は、ステータスをクリアしても再度該当するビットが1になります。
ステータスの詳細はこちらのオンラインマニュアルをご参照ください。
システムエラー詳細
Bit (LSB順) |
状態 | 内容 |
Bit0 | Watchdog | Watchdog timerが起動したときに通知されるエラーです。 |
Bit1 | ROM | ROMの書き込み、読み出しに失敗した場合にエラーになります。 |
Bit2 | 入力電圧 | 電源電圧の下限、上限閾値より電圧が超えるとエラーになります。 |
Bit3 | CPU温度 | CPUが設定された閾値の温度を上回るとエラーになります。 |
Bit4 | なし | |
Bit5 | なし | |
Bit6 | なし | |
Bit7 | なし |
【構文】
status = getSystemStatus(ID, &sysStaData);
【例】
1 2 3 |
byte sysStaData; flag = pmx.getSystemStatus(ServoID, &sysStaData); Serial.println(sysStaData, HEX); |
【パラメータ】
引数1:ID(byte型)
第一引数の「ID」はサーボIDです。「ID」は、命令の対象になるサーボを指定しています。「ID」を0に指定すると、ID0のサーボを指定することができます。
引数2:sysStaData(byte型)
第二引数の「sysStaData」にメモリマップのアドレス401から読み出したシステムエラーの値が代入されます。
【戻り値】
戻り値:status(unsigned short型)
戻り値は、サーボとの通信状態とサーボの状態が正常かどうかのステータスを足したものが返ってきます。データが0であれば問題ありません。0以外の場合は、なんらかの問題が発生していますので、ステータス部がエラーの場合はオンラインマニュアルの『5.エラー状態』、または『PmxStatusErrorList』を、通信部がエラーの場合は『ComError』を参照してください。
status = PMXからの返信のステータス(PMX::PmxStatusErrorList) + 送受信の状態(PMX::ComError)