PMX ArduinoLib getFullStatus()
『PMX Library for Arduino』のgetFullStatus()関数について解説します。
【解説】
getFullStatus()関数は、サーボの状態を知ることができるステータスの関連するデータを全て読み出します。エラーが発生した場合は、こちらの関数を使用すると個別に読み出すよりプログラムを簡略化できますので非常に便利です。
サーボに問題があるとエラーに該当するビットが1になります。
getFullStatus()関数でエラー情報を読み出すと全てのエラーフラグを一気にクリアすることができます。ただし、位置エラーやロックエラー、モータ温度エラーなど原因を解消できていない場合は、ステータスをクリアしても再度該当するビットが1になります。
ステータスの詳細はこちらのオンラインマニュアルをご参照ください。
【構文】
status = getFullStatus(ID, &sysSt, &motorSt, &ramSt);
【例】
1 2 3 4 5 6 7 8 9 10 11 12 |
byte sysSt; // システムエラーを受け取る変数 byte motorSt; // モータエラーを受け取る変数 unsigned short ramSt; // RAMアクセスエラーを受け取る変数 flag = pmx.getFullStatus(ServoID, &sysSt, &motorSt, &ramSt); // エラー状態を読み出す Serial.print("ステータスエラー"); // 各データを表示 Serial.println(flag); Serial.print("システムエラー="); Serial.println(sysSt); Serial.print("モータエラー="); Serial.println(motorSt); Serial.print("RAMアクセスエラー="); Serial.println(ramSt); |
【パラメータ】
引数1:ID(byte型)
第一引数の「ID」はサーボIDです。「ID」は、命令の対象になるサーボを指定しています。「ID」を0に指定すると、ID0のサーボを指定することができます。
引数2:sysSt(byte型)
第二引数の「sysSt」にメモリマップのアドレス401から読み出したシステムエラーの値が代入されます。
引数3:motorSt(byte型)
第三引数の「motorSt」にメモリマップのアドレス402から読み出したモータエラーの値が代入されます。
引数4:ramSt(unsigned short型)
第四引数の「ramSt」にメモリマップのアドレス404, 405から読み出したRAMアクセスエラー時のアドレスが代入されます。読み出し時のアドレスは2バイトに分かれていますが、一つにまとまった状態で受け取ることができますので、そのままprintで内容を確認することができます。
【戻り値】
戻り値:status(unsigned short型)
戻り値は、サーボとの通信状態とサーボの状態が正常かどうかのステータスを足したものが返ってきます。データが0であれば問題ありません。0以外の場合は、なんらかの問題が発生していますので、ステータス部がエラーの場合はオンラインマニュアルの『5.エラー状態』、または『PmxStatusErrorList』を、通信部がエラーの場合は『ComError』を参照してください。
status = PMXからの返信のステータス(PMX::PmxStatusErrorList) + 送受信の状態(PMX::ComError)