Rcb4Lib  1.0.0B
Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib クラス

RCB4を動かすため初期設定やコマンドをまとめたクラスです。 [詳解]

クラス

class  AckType
 返信データのACKの数値の定義 [詳解]
 
class  CmdOkType
 コマンドがOKかNGか判定する [詳解]
 
class  CommandTypes
 コマンドの列挙型 [詳解]
 
class  ConfigData
 コンフィグデータのデータ一覧 [詳解]
 
class  DeviceAddrOffset
 RCB4のデバイスデータのアドレス一覧 [詳解]
 
class  KRR_BUTTON
 KRRから送られてきたボタンの番号一覧 [詳解]
 
class  RamAddr
 RCB4のRAMのアドレス一覧 [詳解]
 
class  RomAddr
 RCB4のROMのアドレス一覧 [詳解]
 
class  ServoData
 サーボモータ1つを定義するクラス [詳解]
 
class  SubMoveCmd
 Moveのサブコマンドの列挙型 [詳解]
 

公開メンバ関数

def setCheckSum (self, dataBytes)
 コマンドのデータ配列の最後にチェックサムを代入する [詳解]
 
def synchronize (self, txBuf, rxLen)
 実際に送受信を行う [詳解]
 
def open (self, comName, bundrate, timOut)
 SerialポートをRCB-4用に設定をして開く [詳解]
 
def close (self)
 Serialポートを閉じる [詳解]
 
def synchronizeAck (self, txData)
 送受信後ACK判定 [詳解]
 
def checkAcknowledge (self)
 ACKコマンドを送って通信ができているかどうか確認を行う [詳解]
 
def moveComToRamCmdSynchronize (self, scrAddr, destData)
 COMからRAMにデータを転送します(COM ==> RAM) [詳解]
 
def moveRamToComCmdSynchronize (self, scrAddr, scrDataSize)
 RAM上のデータをCOMに出力します(RAM ==> COM) [詳解]
 
def moveComToDeviceCmdSynchronize (self, icsNum, offset, destData)
 COMからDevice部分にデータを転送する [詳解]
 
def moveDeviceToComCmdSynchronize (self, icsNum, offset, dataSize)
 Device部分からCOMにデータを転送する (Device ==> COM ) [詳解]
 
def sortServoDatas (self, servoDatas)
 サーボモータ型のデータをソートします [詳解]
 
def checkServoDatas (servoDatas)
 送られてきたservoDataの配列に重複がないか確認をします [詳解]
 
def setSingleServo (self, id, sio, pos, frame)
 サーボモータの単体を動かす [詳解]
 
def setServoPos (self, servoDatas, frame)
 複数のサーボモータを同時に動かす [詳解]
 
def setFreePos (self, servoDatas)
 指定した複数のサーボモータをフリー状態にする [詳解]
 
def setHoldPos (self, servoDatas)
 指定した複数のサーボモータをホールド状態にする [詳解]
 
def setFreeSingleServo (self, id, sio)
 指定した単体のサーボモータを同時にフリーにする [詳解]
 
def setHoldSingleServo (self, id, sio)
 指定した単体のサーボモータをホールドにする [詳解]
 
def getSinglePos (self, id, sio)
 指定したサーボモータの角度を取得する [詳解]
 
def setServoSpeed (self, servoDatas)
 一度にサーボモータのスピードを指定する [詳解]
 
def setServoStretch (self, servoDatas)
 一度にサーボモータのストレッチを指定する [詳解]
 
def getConfig (self)
 コンフィグデータを取得する [詳解]
 
def getPio (self)
 PIOの状態を取得する [詳解]
 
def setPio (self, pioData)
 PIOの状態(H/L)を変更する [詳解]
 
def setPioMode (self, pioModeData)
 PIOの入出力を変更する [詳解]
 
def getAdData (self, adPort)
 指定されたADポートの状態を取得する [詳解]
 
def getAllAdData (self)
 指定されたADポートの状態を取得する [詳解]
 
def getRcb4Voltage (self)
 RCB4に入力されている電圧値を取得します [詳解]
 
def setKrrData (self, buttonData, adData)
 KRRの疑似データをすべて送信します [詳解]
 
def setKrrButtonData (self, buttonData)
 KRRの疑似ボタンデータを送信します [詳解]
 
def setKrrAdData (self, paPort, adData)
 KRRのアナログ(PA)データを指定したポートに書き込みます [詳解]
 
def setServoRamAddrMixing (self, id, sio, mixNum, ramAddr, gain)
 指定したサーボモータのミキシングを設定する [詳解]
 
def setServoDeviceMixing (self, id, sio, mixNum, mixId, mixSio, devOfeet, gain)
 指定したサーボモータのミキシングを設定する [詳解]
 
def setServoMixGain (self, id, sio, mixNum, gain)
 ミキシングのゲインを設定する [詳解]
 
def resetServoMixing (self, id, sio, mixNum)
 指定したサーボモータのミキシングをOFFにします [詳解]
 
def setUserCounter (self, counterNum, data)
 カウンタ値を書き込む [詳解]
 
def getUserCounter (self, counterNum)
 カウンタ値を読み込みます [詳解]
 
def setUserParmeter (self, parmeterNum, data)
 指定したユーザ変数に値を書き込む [詳解]
 
def getUserParmeter (self, parmeterNum)
 指定したユーザ変数を読み込みます [詳解]
 
def getMotionPlayNum (self)
 現在再生されているモーションの番号を取得します。 [詳解]
 
def suspend (self)
 モーションを一時停止させる [詳解]
 
def motionAddr2motionNum (self, motionNum)
 モーション番号からROMに保存されている先頭アドレスを算出します [詳解]
 
def setMotionNum (self, motionNum)
 モーションのアドレスにジャンプします [詳解]
 
def resetProgramCounter (self)
 プログラムカウンタをリセットします [詳解]
 
def resume (self)
 モーションをリスタートさせます [詳解]
 
def motionPlay (self, motionNum)
 指定したモーションを再生します [詳解]
 

静的公開メンバ関数

def CheckSum (dataBytes)
 チェックサムを計算する [詳解]
 
def acknowledgeCmd ()
 ACKコマンドの生成 [詳解]
 
def moveComToRamCmd (destAddr, destData)
 COMからRAMに転送するコマンドを作成する(COM ==> RAM) [詳解]
 
def moveRamToComCmd (scrAddr, scrDataSize)
 RAMからCOMにデータを出力するコマンドを作成します(RAM ==> COM) [詳解]
 
def moveComToDeviceCmd (icsNum, offset, destData)
 COMからDevice部分にデータを転送するコマンドを生成します(COM ==> Device) [詳解]
 
def moveDeviceToComCmd (icsNum, offset, dataSize)
 Device部分からCOMにデータを転送するコマンドを作成する(Device ==> COM ) [詳解]
 
def callCmd (romAddr)
 指定したROMのアドレスにコールするコマンドを作成する [詳解]
 
def runSingleServoCmd (idNum, sioNum, pos, frame)
 サーボモータを1つだけ動かすコマンドを作成します [詳解]
 
def setServoNo (servoDatas)
 サーボモータを複数アクセスするときに必要なデータを作る関数 [詳解]
 
def runConstFrameServoCmd (servoDatas, frame)
 複数のサーボモータを同時に動かすコマンドの作成 [詳解]
 
def setParametersBaseCmd (servoDatas, servoParameter)
 サーボモータのパラメータを変更するコマンドを生成する [詳解]
 
def setSpeedCmd (servoDatas)
 一度にサーボモータのスピードを指定するコマンドの作成 [詳解]
 
def setStretchCmd (servoDatas)
 一度にサーボモータのストレッチを指定するコマンドの作成 [詳解]
 
def icsNum2id (id, sio)
 IDとSIOからICS番号に変換する [詳解]
 
def adDataAddr (adPort)
 ADの測定値アドレスを取得する [詳解]
 
def userCounterAddr (counterNum)
 カウンタのアドレスを取得する [詳解]
 
def userParmeterAddr (parmeterNum)
 ユーザ変数のアドレスを取得する [詳解]
 

公開変数類

 com
 

静的公開変数類

int Version = 220
 バージョン番号
 
int AdcCount = 11
 AD変換器のチャンネル数
 
int AdcSingleDataCount = 2
 AD変換器単体のデータバイト数
 
int AdcDataCount = AdcCount * AdcSingleDataCount
 AD変換器全体のデータバイト数
 
int SIO1_4 = 0x01
 SIO1-4の定義値
 
int SIO5_8 = 0x02
 SIO5-8の定義値
 
int MotionSingleDataCount = 2048
 1モーション当たりデータ数
 
int MaxMotionCount = 120
 モーションの数
 
int MotionDataCount = 2048 * 120
 モーションデータ全体の最大バイト数
 
int CounterSingleDataCount = 1
 ユーザカウンタのbyte数
 
int CounterCount = 10
 ユーザカウンタの数
 
int UserParmeterSingleDataCount = 2
 ユーザ変数のbyte数
 
int UserParmeterCount = 20
 ユーザ変数の数
 
int IcsDeviceSize = 35
 ICSデバイスの数 [詳解]
 
int IcsDeviceDataSize = 20
 ICSデバイスの1つのデータ数(byte)
 
int com = 0
 COMのデバイス名
 

詳解

RCB4を動かすため初期設定やコマンドをまとめたクラスです。

関数詳解

◆ acknowledgeCmd()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.acknowledgeCmd ( )
static

ACKコマンドの生成

戻り値
returnDataSizeACKコマンドの返信データ数
txbufACK用のコマンドデータ配列
覚え書き
ACKのコマンドを生成します
静的関数で外部アクセスが可能

◆ adDataAddr()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.adDataAddr (   adPort)
static

ADの測定値アドレスを取得する

引数
adPortADのポート番号
戻り値
取得されたAD値
戻り値
-1データの取得失敗
覚え書き
静的関数で外部アクセスが可能

◆ callCmd()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.callCmd (   romAddr)
static

指定したROMのアドレスにコールするコマンドを作成する

引数
romAddrコール先のROMのアドレス
戻り値
(returnDataSize,txbuf)
戻り値
returnDataSize返ってくるデータサイズ
txbufコマンド全体のデータ配列
覚え書き
指定したROMのアドレスにコールするコマンドを作成します
静的関数で外部アクセスが可能
警告
条件指定なしでコールします

◆ checkAcknowledge()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.checkAcknowledge (   self)

ACKコマンドを送って通信ができているかどうか確認を行う

戻り値
TrueACKコマンドが正常に返ってきた
FalseACKコマンドが正常でなかった
呼び出し関係図:

◆ checkServoDatas()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.checkServoDatas (   servoDatas)

送られてきたservoDataの配列に重複がないか確認をします

引数
servoDatasservoDataのデータは配列
戻り値
True重複がなかった
False重複があったもしくはIDに異常値が入っていた

◆ CheckSum()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.CheckSum (   dataBytes)
static

チェックサムを計算する

引数
dataBytesデータのbyte列
戻り値
計算されたチェックサム
覚え書き
引数のbyte配列はコマンドが入っていて先頭にはデータ数が入っています。 そのデータ数を用いて配列数を判別しています。

◆ close()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.close (   self)

Serialポートを閉じる

戻り値
Serialポートを閉じるのに失敗したらエラーを返す

◆ getAdData()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.getAdData (   self,
  adPort 
)

指定されたADポートの状態を取得する

引数
adPort接続されているアナログ(AD)ポート
戻り値
指定されたADポート
-1(0xFFFF)データ取得失敗
覚え書き
RAM上のADの保存されているアドレスから2byte RAM=>COMでデータを取得します。
アドレスは、adDataAddr()から取得します。
ADポート0は電源電圧の分圧分が入力されます。
AD変換は0-5.0Vの10bitのAD変換器で変換されます。
呼び出し関係図:

◆ getAllAdData()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.getAllAdData (   self)

指定されたADポートの状態を取得する

引数
adPort接続されているアナログ(AD)ポート
戻り値
(retf,redate)
戻り値
retfTrue 取得成功
retfFalse 取得失敗
redate11個分のADデータ
redate配列が0の場合は失敗
覚え書き
RAM上のADの保存されているアドレスから2byte * 11分 RAM=>COMでデータを取得します。
ADポート0は電源電圧の分圧分が入力されます。
AD変換は0-5.0Vの10bitのAD変換器で変換されます。
呼び出し関係図:

◆ getConfig()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.getConfig (   self)

コンフィグデータを取得する

戻り値
configConfigに書かれているデータ
0xFFFFデータが正常に受信できなかった
覚え書き
ConfigRamAddressに2byteのデータがあるので、moveRamToComで取得する
呼び出し関係図:

◆ getMotionPlayNum()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.getMotionPlayNum (   self)

現在再生されているモーションの番号を取得します。

戻り値
モーション番号
0どのモーションも再生されていない
-1通信失敗
-2再生されている場所が異常である
覚え書き
現在再生されているモーション番号を現在のプログラムカウンタとフラグから算出する
モーション内で違うモーションにジャンプをしていたらジャンプしたモーション番号が得られます
呼び出し関係図:

◆ getPio()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.getPio (   self)

PIOの状態を取得する

戻り値
pioDataPIO端子の状態のbitデータの集まり[0:L 1:H]
0xFFFF(-1)データが正常に受信できなかった
覚え書き
PioAddressに2byteのデータがあるので、moveRamToComで取得する
Pioのデータは10ピンなのでマスクがかかっています
呼び出し関係図:

◆ getRcb4Voltage()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.getRcb4Voltage (   self)

RCB4に入力されている電圧値を取得します

戻り値
入力された電圧値(V)
0取得失敗
覚え書き
入力された電圧値を取得します。
電圧はADポート0に入力されます
電圧は約1/5に分圧されて0-5.0Vを10bitの分解能のAD変換されます。
呼び出し関係図:

◆ getSinglePos()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.getSinglePos (   self,
  id,
  sio 
)

指定したサーボモータの角度を取得する

引数
idサーボモータのID
sioサーボモータに接続されているSIO
戻り値
(flag,posData)
戻り値
True正常にデータを送信
Falseデータが正常に送信できなかった
posData指定されたポジションデータ
覚え書き
DeviceAddrOffset.MotorPositionAddressOffset部分に現在位置が入っているのでそこから2byte読み取る
呼び出し関係図:

◆ getUserCounter()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.getUserCounter (   self,
  counterNum 
)

カウンタ値を読み込みます

引数
counterNumカウンタの番号
戻り値
(retf,countData)
戻り値
retfTrue:通信成功
retfFalse:失敗成功
countData取得したカウンタ1byteデータ(unsigned char ,byte)
countData-1(0xFF):取得失敗
覚え書き
指定したカウンタの値を読み込みます(1byteのみ) RAM => COMで、指定したカウンタの値を1byte読み込みます
警告
データはbyte型(unsigned char)で行ってください
呼び出し関係図:

◆ getUserParmeter()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.getUserParmeter (   self,
  parmeterNum 
)

指定したユーザ変数を読み込みます

引数
parmeterNumユーザ変数の番号
戻り値
(retf,paraData)
戻り値
retfTrue:通信成功
retfFalse:失敗成功
paraData取得したユーザ変数2byteデータ(short)
paraData-1(0xFFFF):取得失敗
覚え書き
指定したユーザ変数の値を読み込みます(2byteのみ) RAM => COMで、指定したカウンタの値を2byte読み込みます
警告
データはbyte型(unsigned char)で行ってください
呼び出し関係図:

◆ icsNum2id()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.icsNum2id (   id,
  sio 
)
static

IDとSIOからICS番号に変換する

引数
idサーボモータのID
sioサーボモータが接続されているSIO番号(SIO1-4:0x01,SIO5-8:0x02)
戻り値
ICS番号
覚え書き
IDとSIOからICS番号に変換します
静的関数で外部アクセスが可能
ServoData.icsNum2id()と挙動は同じです

◆ motionAddr2motionNum()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.motionAddr2motionNum (   self,
  motionNum 
)

モーション番号からROMに保存されている先頭アドレスを算出します

引数
motionNumモーション番号
戻り値
モーションのアドレス
-1モーションのアドレスが存在しない
覚え書き
モーション番号からアドレスを算出します

◆ motionPlay()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.motionPlay (   self,
  motionNum 
)

指定したモーションを再生します

引数
motionNumモーション番号
戻り値
True通信成功
False失敗成功
覚え書き
指定したモーションを再生させます
モーションを再生させるには
1.モーションの一時停止
2.プログラムカウンタのリセット
3.モーションのアドレスにジャンプ
4.モーションを復帰させる
以上の手順が必要です
呼び出し関係図:

◆ moveComToDeviceCmd()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.moveComToDeviceCmd (   icsNum,
  offset,
  destData 
)
static

COMからDevice部分にデータを転送するコマンドを生成します(COM ==> Device)

引数
icsNum書き込むICSデバイスの番号(IDとSIOから計算した値)
offset書き込むデータのオフセットアドレス
destData書き込むデータ
戻り値
(returnDataSize,txbuf)
戻り値
returnDataSize返ってくるデータサイズ
txbufコマンド全体のデータ配列
覚え書き
COMから指定したICS番号の指定した部分にデータを転送をするコマンドを生成します(COM ==> Device)
静的関数で外部アクセスが可能
icsNum => icsNum2id()
offset => Rcb4BaseLib.DeviceAddrOffset

◆ moveComToDeviceCmdSynchronize()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.moveComToDeviceCmdSynchronize (   self,
  icsNum,
  offset,
  destData 
)

COMからDevice部分にデータを転送する

引数
icsNum書き込むICSデバイスの番号(IDとSIOから計算した値)
offset書き込むデータのオフセットアドレス
destData書き込むデータ
戻り値
True:正常にデータが返ってきた
False:正常にデータが返ってこなかった
覚え書き
COMから指定したICS番号の指定した部分にデータを転送します(COM ==> Device)
icsNum => icsNum2id()
offset => Rcb4BaseLib.DeviceAddrOffset
呼び出し関係図:

◆ moveComToRamCmd()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.moveComToRamCmd (   destAddr,
  destData 
)
static

COMからRAMに転送するコマンドを作成する(COM ==> RAM)

引数
destAddr書き換えるRAMのデータアドレス
destData書き換えるデータ配列(1byteも可能)
戻り値
returnDataSize返ってくるデータサイズ
txbufコマンド全体のデータ配列
覚え書き
COM(外部)からRAMにデータを書き込むコマンドを作成します
静的関数で外部アクセスが可能

◆ moveComToRamCmdSynchronize()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.moveComToRamCmdSynchronize (   self,
  scrAddr,
  destData 
)

COMからRAMにデータを転送します(COM ==> RAM)

引数
scrAddr書き換えるRAMの転送アドレス
destData書き換えるデータ配列(1byteも可能)
戻り値
Trueデータが正常に転送できた
Falseデータが正常に転送できなかった
覚え書き
COM(外部)からRAMのデータを書き換えます
呼び出し関係図:

◆ moveDeviceToComCmd()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.moveDeviceToComCmd (   icsNum,
  offset,
  dataSize 
)
static

Device部分からCOMにデータを転送するコマンドを作成する(Device ==> COM )

引数
icsNum読み込むICSデバイスの番号(IDとSIOから計算した値)
offset読み込むデータのオフセットアドレス
destSize読み込むデータ数
戻り値
(returnDataSize,txbuf)
戻り値
returnDataSize返ってくるデータサイズ
txbufコマンド全体のデータ配列
覚え書き
Device部分からCOMにデータを転送するコマンドを生成します(Device ==> COM )
静的関数で外部アクセスが可能
icsNum => icsNum2id()
offset => Rcb4BaseLib.DeviceAddrOffset

◆ moveDeviceToComCmdSynchronize()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.moveDeviceToComCmdSynchronize (   self,
  icsNum,
  offset,
  dataSize 
)

Device部分からCOMにデータを転送する (Device ==> COM )

引数
icsNum読み込むICSデバイスの番号(IDとSIOから計算した値)
offset読み込むデータのオフセットアドレス
destSize読み込むデータ数
戻り値
True:正常にデータが返ってきたFalse:正常にデータが返ってこなかった
rxbufコマンドを除いた受信したデータ
覚え書き
Device部分からCOMにデータを転送する(Device ==> COM )
失敗した場合はFalseと同時に空のデータ配列をかえします。
icsNum => icsNum2id()
offset => Rcb4BaseLib.DeviceAddrOffset
呼び出し関係図:

◆ moveRamToComCmd()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.moveRamToComCmd (   scrAddr,
  scrDataSize 
)
static

RAMからCOMにデータを出力するコマンドを作成します(RAM ==> COM)

引数
scrAddr取得するデータの先頭アドレス
scrDataSize取得するデータbyte数
戻り値
returnDataSize受信データ数
txbuf送信データコマンドデータ配列
覚え書き
RAM上のデータをCOMに転送するコマンドを作成します

◆ moveRamToComCmdSynchronize()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.moveRamToComCmdSynchronize (   self,
  scrAddr,
  scrDataSize 
)

RAM上のデータをCOMに出力します(RAM ==> COM)

引数
scrAddr取得するデータの先頭アドレス
scrDataSize取得するデータbyte数
戻り値
True:正常にデータが返ってきたFalse:正常にデータが返ってこなかった
コマンドを除いた受信したデータ
覚え書き
RAM上のデータをCOMに転送(出力)します(RAM ==> COM)
失敗した場合はFalseと同時に空のデータ配列をかえします。
呼び出し関係図:

◆ open()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.open (   self,
  comName,
  bundrate,
  timOut 
)

SerialポートをRCB-4用に設定をして開く

引数
comNameポートの名前
bundrate通信速度
timOut受信タイムアウト
戻り値
True:ポートを開いてコンフィグデータを取得できた
False:ポートを開けなかったか、コンフィグデータを取得できなかった
覚え書き
Serialポートを開く 通信ができるかどうかACKコマンドを送る コンフィグデータを取得する 上のどれかが失敗したらエラーを返す
呼び出し関係図:

◆ resetProgramCounter()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.resetProgramCounter (   self)

プログラムカウンタをリセットします

戻り値
True通信成功
False失敗成功
覚え書き
プログラムカウンタをリセットします。
正確には、プログラムカウンタを初期設定後の部分に変更します。
各種フラグもリセットします。
呼び出し関係図:

◆ resetServoMixing()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.resetServoMixing (   self,
  id,
  sio,
  mixNum 
)

指定したサーボモータのミキシングをOFFにします

引数
idサーボモータのID
sioサーボモータが接続されているSIO番号(SIO1-4:0x01,SIO5-8:0x02)
mixNumミキシングの番号(1or2)
戻り値
True通信成功
False失敗成功
覚え書き
指定したサーボモータのミキシングをOFFにします。
ゲインは0xFFFFが書き込まれます
呼び出し関係図:

◆ resume()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.resume (   self)

モーションをリスタートさせます

戻り値
True通信成功
False失敗成功
覚え書き
モーションをリスタート(復帰)させます
configデータを変更します
EEPROM =>1 ,ベクタージャンプ => 0,サーボの動作レスポンス => 0,ICSスイッチ => 1
警告
内部のconfigの情報(self.__config)を直接変更するので、初期設定時に読み取る必要があります
呼び出し関係図:

◆ runConstFrameServoCmd()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.runConstFrameServoCmd (   servoDatas,
  frame 
)
static

複数のサーボモータを同時に動かすコマンドの作成

引数
servoDatasサーボモータのデータが保存されている配列
frameサーボモータを動かすフレーム数
戻り値
(returnDataSize,txbuf)
戻り値
returnDataSize返ってくるデータサイズ
txbufコマンド全体のデータ配列
覚え書き
複数のサーボモータを動かすためのコマンドを作成します
静的関数で外部アクセスが可能
警告
引数のデータは中身が書き換えられるので注意

◆ runSingleServoCmd()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.runSingleServoCmd (   idNum,
  sioNum,
  pos,
  frame 
)
static

サーボモータを1つだけ動かすコマンドを作成します

引数
idNumサーボモータのID番号
sioNumSIOのつながっている番号
posサーボモータのポジションデータ(0(FREE),0xFFFF(Hold),3500-11500)
frameフレーム周期
戻り値
(returnDataSize,txbuf)
戻り値
returnDataSize返ってくるデータサイズ
txbufコマンド全体のデータ配列
覚え書き
サーボモータを1つだけ動かします
静的関数で外部アクセスが可能
sioNum SIO1-4 , SIO5-8

◆ setCheckSum()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setCheckSum (   self,
  dataBytes 
)

コマンドのデータ配列の最後にチェックサムを代入する

引数
dataBytes送信するデータ配列
戻り値
True:挿入成功False:挿入失敗
警告
送信コマンドのみにしてください
呼び出し関係図:

◆ setFreePos()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setFreePos (   self,
  servoDatas 
)

指定した複数のサーボモータをフリー状態にする

引数
servoDatasサーボモータのデータが保存されている配列(使うのはSIO,IDのみ)
戻り値
True正常にデータを送信
Falseデータが正常に送信できなかった
覚え書き
servoDatasのdata部分を0x8000にしてsetServoPos()に送る
呼び出し関係図:

◆ setFreeSingleServo()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setFreeSingleServo (   self,
  id,
  sio 
)

指定した単体のサーボモータを同時にフリーにする

引数
idサーボモータのID
sioサーボモータに接続されているSIO
戻り値
True正常にデータを送信
Falseデータが正常に送信できなかった
覚え書き
ポジション部分を0x8000にしてsetSingleServo()に送る
呼び出し関係図:

◆ setHoldPos()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setHoldPos (   self,
  servoDatas 
)

指定した複数のサーボモータをホールド状態にする

引数
servoDatasサーボモータのデータが保存されている配列(使うのはSIO,IDのみ)
戻り値
True正常にデータを送信
Falseデータが正常に送信できなかった
覚え書き
servoDatasのdata部分を0x7FFFにしてsetServoPos()に送る
呼び出し関係図:

◆ setHoldSingleServo()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setHoldSingleServo (   self,
  id,
  sio 
)

指定した単体のサーボモータをホールドにする

引数
idサーボモータのID
sioサーボモータに接続されているSIO
戻り値
True正常にデータを送信
Falseデータが正常に送信できなかった
覚え書き
ポジション部分を0x7FFFにしてsetSingleServo()に送る
呼び出し関係図:

◆ setKrrAdData()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setKrrAdData (   self,
  paPort,
  adData 
)

KRRのアナログ(PA)データを指定したポートに書き込みます

引数
paPortKRRの指定するポート
adData指定したポートに書き込むアナログデータ(byte型(8bit))
戻り値
True送信成功
False送信失敗
警告
KRRが接続されているときは、接続されている側のデータで上書きされるため使えません
adDataに関しては必ず1byte分のデータを入れてください
覚え書き
KRRの受信データ部分の指定したPAポートのデータを書き込みます
COM=>RAMでPAのポートアドレスにデータを書き込まれます
呼び出し関係図:

◆ setKrrButtonData()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setKrrButtonData (   self,
  buttonData 
)

KRRの疑似ボタンデータを送信します

引数
buttonDataボタンデータ(KRR_BUTTON)
戻り値
True送信成功
False送信失敗
警告
KRRが接続されているときは、接続されている側のデータで上書きされるため使えません
覚え書き
KRRの受信データ部分のボタンデータを書き込みます
ボタンデータに関してはKRR_BUTTONから作成します
呼び出し関係図:

◆ setKrrData()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setKrrData (   self,
  buttonData,
  adData 
)

KRRの疑似データをすべて送信します

引数
buttonDataボタンデータ(KRR_BUTTON)
adDataPA1-4のデータ(byte型の配列)
戻り値
True送信成功
False送信失敗
警告
KRRが接続されているときは、接続されている側のデータで上書きされるため使えません
adDataに関しては必ず1byte * 4の配列を渡してください
覚え書き
KRRの受信データ部分にデータをすべて入れます
ボタンデータに関してはKRR_BUTTONから作成します すべてのデータを書き込むには、KRRのボタンデータのアドレスにCOM=>RAMで6byte分書き込みます
呼び出し関係図:

◆ setMotionNum()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setMotionNum (   self,
  motionNum 
)

モーションのアドレスにジャンプします

引数
motionNumモーション番号
戻り値
True通信成功
False失敗成功
覚え書き
指定したモーションのROMのアドレスにジャンプします。
モーションのジャンプにはCallコマンドを使用します。
呼び出し関係図:

◆ setParametersBaseCmd()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setParametersBaseCmd (   servoDatas,
  servoParameter 
)
static

サーボモータのパラメータを変更するコマンドを生成する

引数
servoDatasサーボモータのデータが保存されている配列
servoParameterサーボモータのどのパラメータを変更するか指定
戻り値
(returnDataSize,txbuf)
戻り値
returnDataSize返ってくるデータサイズ
txbufコマンド全体のデータ配列
覚え書き
サーボモータのパラメータを変更するコマンドを生成します
静的関数で外部アクセスが可能
servoParameter 0x01:ストレッチ 0x02:スピード
警告
引数のデータは中身が書き換えられるので注意

◆ setPio()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setPio (   self,
  pioData 
)

PIOの状態(H/L)を変更する

引数
pioDataPIO端子の状態のbitデータの集まり[0:L 1:H]
戻り値
True正常にデータを送信
Falseデータが正常に送信できなかった
覚え書き
PioAddressに2byteのデータがあるので、moveComToRamで書き込む
呼び出し関係図:

◆ setPioMode()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setPioMode (   self,
  pioModeData 
)

PIOの入出力を変更する

引数
pioModeDataPIOの端子の入出力状態せってするbitデータの集まり[0:L 1:H]
戻り値
True正常にデータを送信
Falseデータが正常に送信できなかった
覚え書き
PioModeAddresに2byteのデータがあるので、moveComToRamで書き込む
呼び出し関係図:

◆ setServoDeviceMixing()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setServoDeviceMixing (   self,
  id,
  sio,
  mixNum,
  mixId,
  mixSio,
  devOfeet,
  gain 
)

指定したサーボモータのミキシングを設定する

引数
idサーボモータのID
sioサーボモータが接続されているSIO番号(SIO1-4:0x01,SIO5-8:0x02)
mixNumミキシングの番号(1or2)
mixIdミキシングをかける指定したサーボモータのID
mixSioミキシングをかける指定したサーボモータが接続されているSIO番号(SIO1-4:0x01,SIO5-8:0x02)
devOfeetミキシングをデバイスのオフセット値(DeviceAddrOffset)
gainサーボの指定したデータをgain分、かけ合わせる
戻り値
True通信成功
False失敗成功
覚え書き
指定したサーボモータにミキシングを指定したアドレスに設定します
サーボの出力データ = サーボモータの指令値 + サーボモータのトリム値 + ミキシング値1 + ミキシング値2
ミキシング値 = デバイス(サーボモータ)の値 * gain
デバイス(サーボモータ)の値 = (mixIdとmixSioから作られる)ICS番号のdevOfeetされたデータ
警告
ミキシングは1byteもできますが、前提は2byteとして処理を行っています
呼び出し関係図:

◆ setServoMixGain()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setServoMixGain (   self,
  id,
  sio,
  mixNum,
  gain 
)

ミキシングのゲインを設定する

引数
idサーボモータのID
sioサーボモータが接続されているSIO番号(SIO1-4:0x01,SIO5-8:0x02)
mixNumミキシングの番号(1or2)
gainサーボの指定したデータをgain分、かけ合わせる
戻り値
True通信成功
False失敗成功
覚え書き
指定したサーボモータのミキシングゲインを設定します。
呼び出し関係図:

◆ setServoNo()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setServoNo (   servoDatas)
static

サーボモータを複数アクセスするときに必要なデータを作る関数

引数
servoDatasサーボモータ型のデータが入力されている配列
戻り値
retサーボモータを複数アクセスするときに必要なデータ5byte分
覚え書き
必要なデータは、サーボモータを変更する部分にbitを立てる

◆ setServoPos()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setServoPos (   self,
  servoDatas,
  frame 
)

複数のサーボモータを同時に動かす

引数
servoDatasサーボモータのデータが保存されている配列
frameサーボモータを動かすフレーム数
戻り値
True正常にデータを送信
Falseデータが正常に送信できなかった
覚え書き
複数のサーボモータを動かすためのコマンドを作成します
静的関数で外部アクセスが可能
警告
引数のデータは中身が書き換えられるので注意
呼び出し関係図:

◆ setServoRamAddrMixing()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setServoRamAddrMixing (   self,
  id,
  sio,
  mixNum,
  ramAddr,
  gain 
)

指定したサーボモータのミキシングを設定する

引数
idサーボモータのID
sioサーボモータが接続されているSIO番号(SIO1-4:0x01,SIO5-8:0x02)
mixNumミキシングの番号(1or2)
ramAddrミキシングをかける指定したRAMアドレス
gainramAddrのデータをgain分、かけ合わせる
戻り値
True通信成功
False失敗成功
覚え書き
指定したサーボモータにミキシングを指定したアドレスに設定します
サーボの出力データ = サーボモータの指令値 + サーボモータのトリム値 + ミキシング値1 + ミキシング値2
ミキシング値 = ramAddrに保存されているデータ * gain
警告
ミキシングは1byteもできますが、前提は2byteとして処理を行っています
呼び出し関係図:

◆ setServoSpeed()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setServoSpeed (   self,
  servoDatas 
)

一度にサーボモータのスピードを指定する

引数
servoDatasサーボモータのデータが保存されている配列
戻り値
True正常にデータを送信
Falseデータが正常に送信できなかった
覚え書き
setParametersBaseCmdのパラメータを2に設定してコマンドを作成し、送受信をする
呼び出し関係図:

◆ setServoStretch()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setServoStretch (   self,
  servoDatas 
)

一度にサーボモータのストレッチを指定する

引数
servoDatasサーボモータのデータが保存されている配列
戻り値
True正常にデータを送信
Falseデータが正常に送信できなかった
覚え書き
setParametersBaseCmdのパラメータを1に設定してコマンドを作成し、送受信をする
呼び出し関係図:

◆ setSingleServo()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setSingleServo (   self,
  id,
  sio,
  pos,
  frame 
)

サーボモータの単体を動かす

引数
idNumサーボモータのID番号
sioNumSIOのつながっている番号
posサーボモータのポジションデータ(0x8000(FREE),0xFFFF(Hold),3500-11500)
frameフレーム周期
戻り値
True正常にデータを送信
Falseデータが正常に送信できなかった
覚え書き
サーボモータを1つだけ動かします
sioNum SIO1-4 , SIO5-8
呼び出し関係図:

◆ setSpeedCmd()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setSpeedCmd (   servoDatas)
static

一度にサーボモータのスピードを指定するコマンドの作成

引数
servoDatasサーボモータのデータが保存されている配列
戻り値
(returnDataSize,txbuf)
戻り値
returnDataSize返ってくるデータサイズ
txbufコマンド全体のデータ配列
覚え書き
setParametersBaseCmdのパラメータを2に設定してコマンドを作成している
静的関数で外部アクセスが可能

◆ setStretchCmd()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setStretchCmd (   servoDatas)
static

一度にサーボモータのストレッチを指定するコマンドの作成

引数
servoDatasサーボモータのデータが保存されている配列
戻り値
(returnDataSize,txbuf)
戻り値
returnDataSize返ってくるデータサイズ
txbufコマンド全体のデータ配列
覚え書き
setParametersBaseCmdのパラメータを1に設定してコマンドを作成している
静的関数で外部アクセスが可能

◆ setUserCounter()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setUserCounter (   self,
  counterNum,
  data 
)

カウンタ値を書き込む

引数
counterNumカウンタの番号
data書き込むデータ(unsigned char ,byte)
戻り値
True通信成功
False失敗成功
覚え書き
指定したカウンタに値を書き込みます(1byteのみ) COM => RAMで、指定したカウンタのアドレスに1byte書き込みます
警告
データはbyte型(unsigned char)で行ってください
呼び出し関係図:

◆ setUserParmeter()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.setUserParmeter (   self,
  parmeterNum,
  data 
)

指定したユーザ変数に値を書き込む

引数
parmeterNumユーザ変数の番号
data書き込むデータ(short型)
戻り値
True通信成功
False失敗成功
覚え書き
指定したユーザ変数に値を書き込みます(2byte(signed short)) COM => RAMで、指定したユーザ変数に2byte書き込みます
警告
データはsigned short型で行ってください
呼び出し関係図:

◆ sortServoDatas()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.sortServoDatas (   self,
  servoDatas 
)

サーボモータ型のデータをソートします

引数
servoDatasソート前のデータ
戻り値
servoDatasソート後のデータ(中身が変わっているだけ)
覚え書き
サーボデータ型をICS番号を基準にソートします
警告
引数のデータは中身が書き換えられるので注意

◆ suspend()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.suspend (   self)

モーションを一時停止させる

戻り値
True通信成功
False失敗成功
覚え書き
configデータを変更し、モーションを一時停止させます
EEPROM =>0 ,ベクタージャンプ => 0,サーボの動作レスポンス => 0,ICSスイッチ => 0
警告
内部のconfigの情報(self.__config)を直接変更するので、初期設定時に読み取る必要があります
呼び出し関係図:

◆ synchronize()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.synchronize (   self,
  txBuf,
  rxLen 
)

実際に送受信を行う

引数
txBuf送信データの配列
rxLen受信データ数
戻り値
rxbuf受信データ 配列数0の場合は失敗になります
rxsデータの受信数
覚え書き
実際に同期した送受信を行います。 失敗した場合は配列0の何も入っていないデータを返します コマンドを受信し終わった後受信コマンドの合否及びチェックサムの判定もします。
呼び出し関係図:

◆ synchronizeAck()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.synchronizeAck (   self,
  txData 
)

送受信後ACK判定

引数
txDataACKコマンドが入ったデータ配列
戻り値
ACKが正常に返ってきたかどうか判断
覚え書き
ACK限定の送受信関数になります
呼び出し関係図:

◆ userCounterAddr()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.userCounterAddr (   counterNum)
static

カウンタのアドレスを取得する

引数
counterNumカウンタの番号
戻り値
カウンタのRAMアドレス
-1設定されたアドレスが不正である
覚え書き
静的関数で外部アクセスが可能

◆ userParmeterAddr()

def Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.userParmeterAddr (   parmeterNum)
static

ユーザ変数のアドレスを取得する

引数
parmeterNumユーザ変数の番号
戻り値
ユーザ変数のRAMアドレス
-1設定されたアドレスが不正である
覚え書き
静的関数で外部アクセスが可能

メンバ詳解

◆ IcsDeviceSize

int Rcb4BaseLib20190204(コメント挿入中).Rcb4BaseLib.IcsDeviceSize = 35
static

ICSデバイスの数

覚え書き
デバイスは本当は36個あるが、KRRは含めない

このクラス詳解は次のファイルから抽出されました: