PMX ArduinoLib SystemREAD()
『PMX Library for Arduino』のSystemREAD()関数について解説します。
【解説】
SystemREADコマンドは、サーボのシステム情報を読み出すコマンドです。シリアル番号、製品番号、ファームウェアバージョン番号、及びサーボ通信時の応答時間を読み出すことができます。シリアル番号は、SystemWRITEコマンドやFactoryResetコマンドなどを実行する際に必要になります。
【構文】
status = SystemREAD(ID, rxData[13])
【例】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
byte systemReadByte[13]; flag = pmx.SystemREAD(ServoID, systemReadByte); if(flag == 0){ byte serialNumByte[4] = {systemReadByte[0], systemReadByte[1], systemReadByte[2], systemReadByte[3]}; unsigned long serialNum; serialNum = DataConv::bytesToUint32(serialNumByte); // 4Byteのデータを連結 Serial.print("シリアル番号:"); Serial.println(serialNum); } else{ Serial.print("Error="); Serial.println(flag, HEX); Serial.println("エラーだったため以降の処理は中止しました"); return; } |
【パラメータ】
引数1:ID(byte型)
第一引数の「ID」はサーボIDです。「ID」は、命令の対象になるサーボを指定しています。「ID」を0に指定すると、ID0のサーボを指定することができます。
引数2:rxData[13](byte配列型)
第二引数の「rxData[13]」は読み出したデータを格納するための配列です。SystemREAD()を実行すると下記の情報がrxData[]に格納されます。
rxData[0]~[3] = シリアル番号(int型(符号なし4バイトデータ))
rxData[4]~[7] = 製品番号(int型(符号なし4バイトデータ))
rxData[8]~[11] = ファームウェアバージョン(byteArray型)
rxData[12] = 応答時間(int型(符号なし1バイトデータ))
データの取り扱い方法については、サンプルプログラム「SystemREAD_Sample.ino」を参照してください。
【戻り値】
戻り値1:status(unsigned short型)
戻り値は、サーボとの通信状態とサーボの状態が正常かどうかのステータスを足したものが返ってきます。データが0であれば問題ありません。0以外の場合は、なんらかの問題が発生していますので、ステータス部がエラーの場合はオンラインマニュアルの『5.エラー状態』、または『PmxStatusErrorList』を、通信部がエラーの場合は『ComError』を参照してください。
status = PMXからの返信のステータス(PMX::PmxStatusErrorList) + 送受信の状態(PMX::ComError)