PMX ArduinoLib getRamAccessStatus()
『PMX Library for Arduino』のgetRamAccessStatus()関数について解説します。
【解説】
getRamAccessStatus()関数は、サーボの状態を知ることができるステータスのRAMアクセスエラーのアドレス値を読み出します。サーボからの返信パケットに含まれるステータスでRAMアクセスエラーのビットが立っている場合に、エラーの詳細を知ることができます。
RAMアクセスエラーは、MemWRITEなどで範囲外のアドレスにアクセスしたときに発生するエラーです。アドレスに問題があるとそのアドレス値を返します。
getRamAccessStatus()関数でエラー情報を読み出すとエラーがクリアされます。
ステータスの詳細はこちらのオンラインマニュアルをご参照ください。
【構文】
status = getRamAccessStatus(ID, &ramStaData);
【例】
1 2 3 |
unsigned short ramStaData; flag, ramStaData = pmx.getRamAccessStatus(ServoID, &ramStaData); Serial.println(ramStaData, HEX); |
【パラメータ】
引数1:ID(byte型)
第一引数の「ID」はサーボIDです。「ID」は、命令の対象になるサーボを指定しています。「ID」を0に指定すると、ID0のサーボを指定することができます。
引数2:ramStaData(unsigned short型)
第二引数の「ramStaData」にメモリマップのアドレス404, 405から読み出したRAMアクセスエラー時のアドレスが代入されます。読み出し時のアドレスは2バイトに分かれていますが、getRamAccessStatus()関数では一つにまとまった状態で受け取ることができますので、そのままprintで内容を確認することができます。
【戻り値】
戻り値:status(unsigned short型)
戻り値は、サーボとの通信状態とサーボの状態が正常かどうかのステータスを足したものが返ってきます。データが0であれば問題ありません。0以外の場合は、なんらかの問題が発生していますので、ステータス部がエラーの場合はオンラインマニュアルの『5.エラー状態』、または『PmxStatusErrorList』を、通信部がエラーの場合は『ComError』を参照してください。
status = PMXからの返信のステータス(PMX::PmxStatusErrorList) + 送受信の状態(PMX::ComError)