PMX C#Lib SystemREAD()
『PMX Library for C#』のSystemREAD()関数について解説します。
【解説】
SystemREADコマンドは、サーボのシステム情報を読み出すコマンドです。シリアル番号、製品番号、ファームウェアバージョン番号、及びサーボ通信時の応答時間を読み出すことができます。シリアル番号は、SystemWRITEコマンドやFactoryResetコマンドなどを実行する際に必要になります。
【構文】
status = SystemREAD(ID, out rxData[13])
【例】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
ushort flag = pmx.SystemREAD(ServoID, out byte[] systemReadByte); if (flag == 0) { uint serialNum = BitConverter.ToUInt32(systemReadByte, 0); Console.WriteLine("シリアル番号:{0}", serialNum); uint modelFullNum = BitConverter.ToUInt32(systemReadByte, 4); Console.WriteLine("製品番号:{0},{1}", modelFullNum, modelFullNum.ToString("X")); ushort modelNum = BitConverter.ToUInt16(systemReadByte, 4); Console.WriteLine("モデル番号:{0},{1}", modelNum, modelNum.ToString("X")); ushort seriesNum = BitConverter.ToUInt16(systemReadByte, 6); Console.WriteLine("シリーズ:{0},{1}", seriesNum , seriesNum.ToString("X")); Console.WriteLine("ファームウェアバージョン:{0} {1} {2} {3}", systemReadByte[11], systemReadByte[10], systemReadByte[9], systemReadByte[8]); Console.WriteLine("応答時間:{0}", systemReadByte[12]); } else { Console.WriteLine("Error = {0}", flag.ToString("x")); Console.WriteLine("エラーだったため以降の処理は中止しました"); 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_WRITE_Sample」を参照してください。
outキーワードについては、C#の資料をご参照ください。
【戻り値】
戻り値:status(ushort型)
戻り値は、サーボとの通信状態とサーボの状態が正常かどうかのステータスを足したものが返ってきます。データが0であれば問題ありません。0以外の場合は、なんらかの問題が発生していますので、ステータス部がエラーの場合はオンラインマニュアルの『5.エラー状態』、または『PmxStatusErrorList』を、通信部がエラーの場合は『ComError』を参照してください。
status = PMXからの返信のステータス(PmxStatusErrorList) + 送受信の状態(ComError)