![]() |
Rcb4Class 2.0.0
|
RCB4を動かすため初期設定やコマンドをまとめたクラスです。 このクラスをベースに派生させることで様々な通信形式に対応できるようになります。 More...
#include <Rcb4BaseClass.h>
Classes | |
union | ConfigData |
2byteのコンフィグデータを容易にアクセスできるよう共用体にします More... | |
union | DwordByte |
4byte(long型)のデータをアクセスできるよう共用体にします More... | |
union | QwordByte |
8byte(long long型)のデータをアクセスできるよう共用体にします More... | |
struct | ServoData |
サーボモータのIDおよびSIOとポジションの何かしらデータを格納します。 More... | |
union | WordByte |
2byte(short型)のデータをアクセスできるよう共用体にします More... | |
Public Types | |
enum | AckType : byte { Ack = 0x06 , Nack = 0x15 } |
ACKの値 More... | |
enum | CommandTypes : byte { Move = 0x00 , Jump = 0x0B , Call = 0x0C , SingleServo = 0x0F , ConstFrameServo = 0x10 , ServoParam = 0x12 , AckCheck = 0xFE , None = 0xFF } |
RCB4のコマンドの定義 More... | |
enum | SubMoveCmd : byte { RamToCom = 0x20 , ComToRam = 0x02 , DeviceToCom = 0x21 , ComToDevice = 0x12 } |
moveコマンドのサブコマンドの定義 More... | |
enum | RamAddr : unsigned short { ConfigRamAddress = 0x0000 , ProgramCounterRamAddress = 0x0002 , AdcRamAddress = 0x0022 , PioModeAddres = 0x0038 , PioAddress = 0x003A , KrrButtonDataAddress = 0x0350 , KrrPa1Address = 0x0352 , CounterRamAddress = 0x0457 , UserParmeterRamAddress = 0x0462 } |
RAMに保存されているアドレスの一覧 More... | |
enum | RomAddr : long { StartupCmdRomAddress = 0x0444 , MainLoopCmd = 0x044B , MotionRomAddress = 0x0b80 } |
ROMに保存されているアドレスの一覧 More... | |
enum | DeviceAddrOffset : byte { CategoryAddressOffset = 0x00 , IDAddressOffset = 0x01 , TrimAddressOffset = 0x02 , MotorPositionAddressOffset = 0x04 , PositionAddressOffset = 0x06 , frameAddressOffset = 0x08 , Mixing1AddressOffset = 0x0E , Mixing1RatioAddressOffset = 0x10 , Mixing2AddressOffset = 0x11 , Mixing2RatioAddressOffset = 0x13 } |
(ICS)デバイスの設定値が格納されている各先頭のアドレスからの順番 More... | |
enum | SioNum : byte { SIO1_4 = 0x01 , SIO5_8 = 0x02 } |
Sioコネクタの番号の定義 More... | |
enum | KRR_BUTTON : unsigned short { KRR_BUTTON_NONE = 0x0000 , KRR_BUTTON_UP = 0x0001 , KRR_BUTTON_DOWN = 0x0002 , KRR_BUTTON_RIGHT = 0x0004 , KRR_BUTTON_LEFT = 0x0008 , KRR_BUTTON_TRIANGLE = 0x0010 , KRR_BUTTON_CROSS = 0x0020 , KRR_BUTTON_CIRCLE = 0x0040 , KRR_BUTTON_SQUARE = 0x0100 , KRR_BUTTON_S1 = 0x0200 , KRR_BUTTON_S2 = 0x0400 , KRR_BUTTON_S3 = 0x0800 , KRR_BUTTON_S4 = 0x1000 , KRR_BUTTON_FALSE = 0xFFFF } |
KRRが受信するボタンデータの定義 More... | |
Public Member Functions | |
bool | isSynchronize () |
通信中かどうか返す関数 | |
bool | getConfig (unsigned short *confData) |
RCB4のコンフィグデータを読み取る | |
bool | getConfig () |
RCB4のコンフィグデータを読み取る | |
int | moveComToRamCmd (byte *txData, int destAddr, byte destData[], int destDataSize) |
COMからRAMにデータを転送するコマンドを生成する | |
int | moveComToRamCmd (int destAddr, byte destData[], int destDataSize) |
COMからRAMにデータを転送するコマンドを生成する | |
int | moveRamToComCmd (byte *txData, int scrAddr, int scrDataSize) |
RAMのデータをCOMに送るコマンドを生成する | |
int | moveRamToComCmd (int scrAddr, int scrDataSize) |
RAMのデータをCOMに送るコマンドを生成する | |
int | moveComToDeviceCmd (byte *txData, byte icsNum, byte offset, int data) |
COMからのデータをICSに展開するコマンドを生成する(short 2byteバージョン) | |
int | moveComToDeviceCmd (byte *txData, byte idNum, byte sioNum, byte offset, int data) |
COMからのデータをICSに展開するコマンドを生成する(short 2byteバージョン) | |
int | moveComToDeviceCmd (byte idNum, byte sioNum, byte offset, int data) |
COMからのデータをICSに展開するコマンドを生成し、送信バッファに入れる(short 2byteバージョン) | |
int | moveComToDeviceCmd (byte icsNum, byte offset, int data) |
COMからのデータをICSに展開するコマンドを生成し、送信バッファに入れる(short 2byteバージョン) | |
int | moveComToDeviceCmd (byte *txData, byte icsNum, byte offset, byte dataArray[], int dataArraySize) |
COMからのデータをICSに展開するコマンドを生成する(複数byteバージョン) | |
int | moveComToDeviceCmd (byte *txData, byte idNum, byte sioNum, byte offset, byte dataArray[], int dataArraySize) |
COMからのデータをICSに展開するコマンドを生成する(複数byteバージョン) | |
int | moveComToDeviceCmd (byte icsNum, byte offset, byte dataArray[], int dataArraySize) |
COMからのデータをICSに展開するコマンドを生成し、送信バッファに入れる(複数byteバージョン) | |
int | moveComToDeviceCmd (byte idNum, byte sioNum, byte offset, byte dataArray[], int dataArraySize) |
COMからのデータをICSに展開するコマンドを生成し、送信バッファに入れる(複数byteバージョン) | |
int | moveDeviceToComCmd (byte *txData, byte icsNum, byte offset, byte dataSize) |
ICSのデータをCOMに転送するコマンドを生成する | |
int | moveDeviceToComCmd (byte *txData, byte idNum, byte sioNum, byte offset, byte dataSize) |
ICSのデータをCOMに転送するコマンドを生成する | |
int | moveDeviceToComCmd (byte icsNum, byte offset, byte dataSize) |
ICSのデータをCOMに転送するコマンドを生成する | |
int | moveDeviceToComCmd (byte idNum, byte sioNum, byte offset, byte dataSize) |
ICSのデータをCOMに転送するコマンドを生成し、送信バッファに入れる | |
int | callCmd (byte *txData, long romAddr) |
指定したアドレスにジャンプ(CALL)するコマンドを生成します | |
int | callCmd (long romAddr) |
指定したアドレスにジャンプ(CALL)するコマンドを生成します | |
int | runSingleServoCmd (byte *txData, ServoData servoData, byte frame) |
指定したサーボモータを1個だけ動かすコマンドを作成します | |
int | runSingleServoCmd (ServoData servoData, byte frame) |
指定したサーボモータを1個だけ動かすコマンドを作成します | |
int | runSingleServoCmd (byte *txData, byte idNum, byte sioNum, int pos, byte frame) |
指定したサーボモータを1個だけ動かすコマンドを作成します | |
int | runSingleServoCmd (byte idNum, byte sioNum, int pos, byte frame) |
指定したサーボモータを1個だけ動かすコマンドを作成します | |
int | runConstFrameServoCmd (byte *txData, ServoData servoDatas[], byte servoCount, byte frame) |
指定したサーボモータを複数個動かすコマンドの生成 | |
int | runConstFrameServoCmd (ServoData servoData[], byte servoCount, byte frame) |
指定したサーボモータを複数個動かすコマンドの生成 | |
int | setParametersBaseCmd (byte *txData, byte servoParameter, ServoData servoDatas[], byte servoCount) |
指定したサーボモータを複数個パラメータを変えるコマンドの生成 | |
int | setParametersBaseCmd (byte servoParameter, ServoData servoData[], byte servoCount) |
指定したサーボモータを複数個パラメータを変えるコマンドの生成 | |
int | setSpeedCmd (byte *txData, ServoData servoDatas[], byte servoCount) |
指定したサーボモータを複数個スピードを変えるコマンドの生成 | |
int | setSpeedCmd (ServoData servoData[], byte servoCount) |
指定したサーボモータを複数個スピードを変えるコマンドの生成 | |
int | setStretchCmd (byte *txData, ServoData servoDatas[], byte servoCount) |
指定したサーボモータを複数個ストレッチを変えるコマンドの生成 | |
int | setStretchCmd (ServoData servoData[], byte servoCount) |
指定したサーボモータを複数個ストレッチを変えるコマンドの生成 | |
int | acknowledgeCmd (byte *txData) |
ackコマンドの生成 | |
int | acknowledgeCmd () |
ackコマンドの生成 | |
virtual bool | synchronize (byte txBuf[], byte txLen, byte rxBuf[], byte rxLen) |
ICS通信の送受信 | |
bool | checkAcknowledge () |
ackコマンドを送信 | |
bool | setCheckSum (byte dataBytes[]) |
コマンドのチェックサムを計算し、最後尾にいれます | |
bool | checkCheckSum (byte dataBytes[]) |
送られてきたコマンドのチェックサムがあっているか確認します | |
bool | checkReverceCmd (byte dataBytes[], byte cmd) |
返信データが簡易的チェックをします | |
unsigned short | getPio () |
現在のPIOの状態を取得します | |
bool | setPio (unsigned short pioData) |
現在のPIOの状態を変更します | |
unsigned short | getPioMode () |
現在のPIOの入出力状態を取得します | |
bool | setPioMode (unsigned short pioModeData) |
現在のPIOの入出力状態を変更します | |
unsigned short | getAdData (int adPort) |
現在指定したADの値を取得します | |
bool | setSingleServo (byte id, byte sio, int pos, byte frame) |
指定したサーボモータ単体を動作させます | |
bool | setSingleServo (ServoData servoData, byte frame) |
指定したサーボモータ単体を動作させます | |
bool | setFreeSingleServo (byte id, byte sio) |
指定したサーボモータ単体をフリーにします | |
bool | setHoldSingleServo (byte id, byte sio) |
指定したサーボモータ単体にトルクをかけます | |
int | getSinglePos (byte id, byte sio) |
指定したサーボモータのポジションデータを取得します | |
bool | setServoPos (ServoData servoDatas[], byte servoCount, byte frame) |
指定したサーボモータ複数を動作させます | |
bool | setFreePos (ServoData servoDatas[], byte servoCount) |
指定したサーボモータ単体をフリーにします | |
bool | setHoldPos (ServoData servoDatas[], byte servoCount) |
指定した複数のサーボモータにトルクをかけます | |
bool | setServoSpeed (ServoData servoDatas[], byte servoCount) |
指定したサーボモータのスピードを変更します | |
bool | setServoStretch (ServoData servoDatas[], byte servoCount) |
指定したサーボモータのストレッチを変更します | |
byte | icsNum2id (byte id, byte sio) |
IDとSIOの番号からICS番号に変更します | |
bool | motionPlay (int motionNum) |
指定したモーションを再生させます | |
bool | setMotionNum (byte motionNum) |
指定したモーションにジャンプします | |
bool | resetProgramCounter () |
プロフラムカウンタをリセットします | |
bool | suspend (unsigned short *config) |
モーションを一時停止させます | |
bool | suspend () |
モーションを一時停止させます | |
bool | resume (unsigned short *configData) |
モーションを再開させます | |
bool | resume () |
モーションを再開させます | |
long | motionAddr2motionNum (byte motionNum) |
モーション番号からモーションの先頭アドレスを求めます | |
int | getMotionPlayNum (void) |
現在動いているモーションの番号を取得します | |
bool | setKrrData (unsigned short buttonData, byte adData[4]) |
KRRの領域にデータをすべて送信する(疑似的にボタンデータを送る) | |
bool | setKrrButtonData (unsigned short buttonData) |
KRRの領域にボタンデータを送信する(疑似的にボタンデータを送る) | |
bool | setKrrAdData (byte paPort, byte adData) |
KRRの領域にボタンデータを送信する(疑似的にボタンデータを送る) | |
bool | setServoDefaultMixing (byte id, byte sio, byte mixNum, int addr, char gain) |
指定したサーボモータのミキシングを設定する(ユーザ変数ミキシング) | |
bool | setServoUserParmeterMixing (byte id, byte sio, byte mixNum, int userParamNum, char gain) |
指定したサーボモータのミキシングを設定する(ユーザ変数ミキシング) | |
bool | setServoAdMixing (byte id, byte sio, byte mixNum, int adPort, char gain) |
指定したサーボモータのミキシングを設定する(ユーザ変数ミキシング) | |
bool | setServoMixGain (byte id, byte sio, byte mixNum, char gain) |
指定したサーボモータのミキシングゲインのみを変更します | |
bool | resetServoMixing (byte id, byte sio, byte mixNum) |
指定したサーボモータのミキシングをOFFにします | |
bool | setUserParmeter (int userParamNum, short data) |
ユーザ変数の値を設定する | |
short | getUserParmeter (int userParamNum) |
指定したユーザ変数の値を取得する | |
bool | setUserCounter (int counterNum, byte data) |
ユーザカウンタを設定する | |
byte | getUserCounter (int counterNum) |
Static Public Member Functions | |
static int | adRamAddr (int adPort) |
指定したADポート番号のアドレスを返す | |
static int | userParmeterAddr (int userParamNum) |
ユーザ変数のRAMアドレスを取得する | |
static int | userCounterAddr (int counterNum) |
カウンターのRAMのアドレスを取得する | |
Public Attributes | |
ConfigData | configData |
コンフィグデータの格納場所 | |
Static Public Attributes | |
static constexpr int | Version = 220 |
バージョン番号 | |
static constexpr int | AdcCount = 11 |
AD変換器のチャンネル数) | |
static constexpr int | AdcSingleDataCount = 2 |
AD変換器単体のデータバイト数 | |
static constexpr int | AdcDataCount = AdcCount * AdcSingleDataCount |
AD変換器全体のデータバイト数 | |
static constexpr int | MotionSingleDataCount = 2048 |
1モーションあたりのデータバイト数 | |
static constexpr int | MaxMotionCount = 120 |
モーションの最大数) | |
static constexpr long | MotionDataCount = 2048 * 120 |
モーションデータ全体の最大バイト数 | |
static constexpr int | IcsDeviceSize = 35 |
ICSのデバイスの数定義 本当は36だが、KRRは含めない | |
static constexpr int | IcsDeviceDataSize = 20 |
ICS1つのデータサイズ | |
static constexpr int | CounterCount = 10 |
カウンターの数 | |
static constexpr int | UserParmeterCount = 20 |
ユーザ変数のカス | |
Protected Member Functions | |
byte | CheckSum (byte dataBytes[]) |
コマンドのチェックサムを計算します | |
bool | checkuning (byte *txData) |
データ通信中で、送信バッファに値を入れようとしているかチェックする | |
int64_t | setServoNo (ServoData servoDatas[], byte servoCount) |
複数サーボモータにアクセスするときにコマンドで「動作させるサーボの指定」部分を作成 | |
bool | sortServoDatas (ServoData servoDatas[], byte ServoCount) |
複数サーボモータにアクセスするときにサーボの順番の指定があるのでソートする | |
unsigned short | moveRamToComCmdSynchronize (int scrAddr, byte scrDataSize, byte rxDara[]) |
MoveコマンドでRAM上のデータをCOMに転送します | |
bool | moveComToRamCmdSynchronize (int scrAddr, byte destData[], int destDataSize) |
MoveコマンドでRAM上のデータをCOMに転送します | |
bool | SynchronizeAck (byte *txData) |
何かしらコマンドを送って、ACKが返ってくるか確認 | |
Protected Attributes | |
byte | txBuf [128] |
送信用バッファ | |
byte | rxBuf [128] |
受信用バッファ | |
bool | _isSynchronize = false |
現在送受信中(synchronize)か判断します true:実行中 false:待機中 | |
RCB4を動かすため初期設定やコマンドをまとめたクラスです。 このクラスをベースに派生させることで様々な通信形式に対応できるようになります。
enum Rcb4BaseClass::AckType : byte |
enum Rcb4BaseClass::CommandTypes : byte |
enum Rcb4BaseClass::DeviceAddrOffset : byte |
(ICS)デバイスの設定値が格納されている各先頭のアドレスからの順番
enum Rcb4BaseClass::KRR_BUTTON : unsigned short |
KRRが受信するボタンデータの定義
同時押しの場合は各データの論理和をとります
enum Rcb4BaseClass::RamAddr : unsigned short |
RAMに保存されているアドレスの一覧
enum Rcb4BaseClass::RomAddr : long |
enum Rcb4BaseClass::SioNum : byte |
enum Rcb4BaseClass::SubMoveCmd : byte |
int Rcb4BaseClass::acknowledgeCmd | ( | ) |
ackコマンドの生成
ACKのコマンドを生成する
int Rcb4BaseClass::acknowledgeCmd | ( | byte * | txData | ) |
ackコマンドの生成
[out] | *txData | 現在入れようと思っている送信バッファ |
ACKのコマンドを生成する
|
static |
指定したADポート番号のアドレスを返す
adPort | ADポート番号 |
int Rcb4BaseClass::callCmd | ( | byte * | txData, |
long | romAddr ) |
指定したアドレスにジャンプ(CALL)するコマンドを生成します
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | romAddr | ジャンプするアドレス |
-1 | バッファに何か使われているかサイズが249byte以上 |
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
ROMの指定アドレスにジャンプする命令を生成します。
Call命令なので、終わったら元の場所に戻ります。
int Rcb4BaseClass::callCmd | ( | long | romAddr | ) |
指定したアドレスにジャンプ(CALL)するコマンドを生成します
[in] | romAddr | ジャンプするアドレス |
-1 | バッファに何か使われているかサイズが249byte以上 |
ROMの指定アドレスにジャンプする命令を生成します。
Call命令なので、終わったら元の場所に戻ります。
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
bool Rcb4BaseClass::checkAcknowledge | ( | ) |
ackコマンドを送信
False | コマンドが返ってこなかった時およびNCKが返ってきたとき |
ACKのコマンドを送信する
bool Rcb4BaseClass::checkCheckSum | ( | byte | dataBytes[] | ) |
送られてきたコマンドのチェックサムがあっているか確認します
[in] | dataBytes[] | コマンドが入ったデータ |
False | チェックサムが間違っていたとき、データ数が0だった時 |
送られてきたコマンドのチェックサムがあっているか確認します
bool Rcb4BaseClass::checkReverceCmd | ( | byte | dataBytes[], |
byte | cmd ) |
返信データが簡易的チェックをします
[in] | dataBytes[] | 返信データが入った配列 |
[in] | cmd | 送信したコマンド |
False | チェックサムが間違っていたとき、2byte目が送信コマンドと違っていたとき |
返信データの簡易チェックをします 返信データのチェックサムおよびコマンド部分のチェック
|
protected |
コマンドのチェックサムを計算します
[in] | dataBytes[] | コマンドが入ったデータ |
コマンドのチェックサムを計算します
|
protected |
データ通信中で、送信バッファに値を入れようとしているかチェックする
[in] | *txData | 現在入れようと思っている送信バッファ |
true | 現在入れようとしているバッファは何も使っていない |
false | 現在入れようとしているバッファは使っている最中である |
unsigned short Rcb4BaseClass::getAdData | ( | int | adPort | ) |
現在指定したADの値を取得します
[in] | adPort | ADポートの指定(0~10) |
-1(0xFFFF) | 通信失敗 |
Move命令を使って指定した現在のAD値を取得します
bool Rcb4BaseClass::getConfig | ( | ) |
RCB4のコンフィグデータを読み取る
true | 通信成功、データ取得 |
false | 通信失敗 |
bool Rcb4BaseClass::getConfig | ( | unsigned short * | confData | ) |
RCB4のコンフィグデータを読み取る
[out] | confData | RCB4のコンフィグデータ |
true | 通信成功、データ取得 |
false | 通信失敗 |
int Rcb4BaseClass::getMotionPlayNum | ( | void | ) |
現在動いているモーションの番号を取得します
0 | どのモーションも再生されていない(待機中のLOOPを回っている) |
-1 | 通信失敗 |
-2 | 再生されている場所が異常である |
unsigned short Rcb4BaseClass::getPio | ( | ) |
現在のPIOの状態を取得します
-1(0xFFFF) | 通信失敗 |
Move命令を使って現在のPIOのHかLの状態を取得します
unsigned short Rcb4BaseClass::getPioMode | ( | ) |
現在のPIOの入出力状態を取得します
-1(0xFFFF) | 通信失敗 |
Move命令を使って現在のPIOの入力か出力かを取得します
int Rcb4BaseClass::getSinglePos | ( | byte | id, |
byte | sio ) |
指定したサーボモータのポジションデータを取得します
[in] | id | サーボモータのID |
[in] | sio | SIOの値(SioNum) |
-1 | 通信失敗 |
ID,SIOで指定したサーボモータのポジションデータを取得します
short Rcb4BaseClass::getUserParmeter | ( | int | userParamNum | ) |
指定したユーザ変数の値を取得する
userParamNum | ユーザ変数の番号 |
ユーザ変数の値 | |
0x7FFF | False (0xFFFFは-1になり、来る可能性が高いのでわざと0x7FFFにする) |
byte Rcb4BaseClass::icsNum2id | ( | byte | id, |
byte | sio ) |
IDとSIOの番号からICS番号に変更します
[in] | id | サーボモータのID |
[in] | sio | SIOの値(SioNum) |
IDとSIOの番号からRCB4内部で扱うICS番号に変更します
|
inline |
通信中かどうか返す関数
true | 送信中 |
false | 待機中 |
long Rcb4BaseClass::motionAddr2motionNum | ( | byte | motionNum | ) |
モーション番号からモーションの先頭アドレスを求めます
モーション番号からモーションの先頭アドレスを求めます
bool Rcb4BaseClass::motionPlay | ( | int | motionNum | ) |
指定したモーションを再生させます
[in] | motionNum | 再生させるモーション番号 |
False | 通信失敗 |
指定したモーションを再生させます
int Rcb4BaseClass::moveComToDeviceCmd | ( | byte * | txData, |
byte | icsNum, | ||
byte | offset, | ||
byte | dataArray[], | ||
int | dataArraySize ) |
COMからのデータをICSに展開するコマンドを生成する(複数byteバージョン)
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | icsNum | ICS番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | dataArray | 書き込むデータ配列 |
[in] | dataArraySize | 書き込むデータ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
COMからRCB4の内のICSエリアに割り当てられたデータに反映させます
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveComToDeviceCmd | ( | byte * | txData, |
byte | icsNum, | ||
byte | offset, | ||
int | data ) |
COMからのデータをICSに展開するコマンドを生成する(short 2byteバージョン)
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | icsNum | ICS番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | data | 2byte分のデータ |
-1 | バッファに何か使われているかサイズが249byte以上 |
COMからRCB4の内のICSエリアに割り当てられたデータに反映させます
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveComToDeviceCmd | ( | byte * | txData, |
byte | idNum, | ||
byte | sioNum, | ||
byte | offset, | ||
byte | dataArray[], | ||
int | dataArraySize ) |
COMからのデータをICSに展開するコマンドを生成する(複数byteバージョン)
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | idNum | サーボのID番号 |
[in] | sioNum | SIO(SioNum)の番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | dataArray | 書き込むデータ |
[in] | dataArraySize | 書き込むデータ数 |
int | 送信データ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
COMからRCB4の内のICSエリアに割り当てられたデータに反映させます
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveComToDeviceCmd | ( | byte * | txData, |
byte | idNum, | ||
byte | sioNum, | ||
byte | offset, | ||
int | data ) |
COMからのデータをICSに展開するコマンドを生成する(short 2byteバージョン)
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | idNum | サーボのID番号 |
[in] | sioNum | SIO(SioNum)の番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | data | 2byte分のデータ |
-1 | バッファに何か使われているかサイズが249byte以上 |
COMからRCB4の内のICSエリアに割り当てられたデータに反映させます
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveComToDeviceCmd | ( | byte | icsNum, |
byte | offset, | ||
byte | dataArray[], | ||
int | dataArraySize ) |
COMからのデータをICSに展開するコマンドを生成し、送信バッファに入れる(複数byteバージョン)
[in] | icsNum | ics番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | dataArray | 書き込むデータ |
[in] | dataArraySize | 書き込むデータ数 |
int | 送信データ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
COMからRCB4の内のICSエリアに割り当てられたデータに反映させます
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveComToDeviceCmd | ( | byte | icsNum, |
byte | offset, | ||
int | data ) |
COMからのデータをICSに展開するコマンドを生成し、送信バッファに入れる(short 2byteバージョン)
[in] | icsNum | ICS番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | data | 2byte分のデータ |
-1 | バッファに何か使われているかサイズが249byte以上 |
COMからRCB4の内のICSエリアに割り当てられたデータに反映させます
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveComToDeviceCmd | ( | byte | idNum, |
byte | sioNum, | ||
byte | offset, | ||
byte | dataArray[], | ||
int | dataArraySize ) |
COMからのデータをICSに展開するコマンドを生成し、送信バッファに入れる(複数byteバージョン)
[in] | idNum | サーボのID番号 |
[in] | sioNum | SIO(SioNum)の番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | dataArray | 書き込むデータ |
[in] | dataArraySize | 書き込むデータ数 |
int | 送信データ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
COMからRCB4の内のICSエリアに割り当てられたデータに反映させます
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveComToDeviceCmd | ( | byte | idNum, |
byte | sioNum, | ||
byte | offset, | ||
int | data ) |
COMからのデータをICSに展開するコマンドを生成し、送信バッファに入れる(short 2byteバージョン)
[in] | idNum | サーボのID番号 |
[in] | sioNum | SIO(SioNum)の番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | data | 2byte分のデータ |
-1 | バッファに何か使われているかサイズが249byte以上 |
COMからRCB4の内のICSエリアに割り当てられたデータに反映させます
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveComToRamCmd | ( | byte * | txData, |
int | destAddr, | ||
byte | destData[], | ||
int | destDataSize ) |
COMからRAMにデータを転送するコマンドを生成する
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | destAddr | RCB4に書き込む先頭アドレス |
[in] | destData[] | 書き込みデータ |
[in] | destDataSize | 書込みデータ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
COMからRCB4内部RAMのデータを書き換えるコマンドを生成します
int Rcb4BaseClass::moveComToRamCmd | ( | int | destAddr, |
byte | destData[], | ||
int | destDataSize ) |
COMからRAMにデータを転送するコマンドを生成する
[in] | destAddr | RCB4に書き込む先頭アドレス |
[in] | destData[] | 書き込みデータ |
[in] | destDataSize | 書込みデータ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
COMからRCB4内部RAMのデータを書き換えるコマンドを生成します
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
|
protected |
MoveコマンドでRAM上のデータをCOMに転送します
[in] | scrAddr | 取得するRAMデータの先頭アドレス |
[in] | destData[] | 送信データ配列(単純にデータのみ) |
[out] | destDataSize | 送信データサイズ(単純にデータのみ) |
False | 送信失敗等 |
COMからRAM上の指定したアドレスにデータを書きこみます
int Rcb4BaseClass::moveDeviceToComCmd | ( | byte * | txData, |
byte | icsNum, | ||
byte | offset, | ||
byte | dataSize ) |
ICSのデータをCOMに転送するコマンドを生成する
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | icsNum | ICS番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | dataSize | 取得するデータ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
RCB4のICSエリアに割り当てられたデータをCOMに転送するコマンドを生成します
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveDeviceToComCmd | ( | byte * | txData, |
byte | idNum, | ||
byte | sioNum, | ||
byte | offset, | ||
byte | dataSize ) |
ICSのデータをCOMに転送するコマンドを生成する
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | idNum | サーボのID番号 |
[in] | sioNum | SIO(SioNum)の番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | dataSize | 取得するデータ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
RCB4のICSエリアに割り当てられたデータをCOMに転送するコマンドを生成します
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveDeviceToComCmd | ( | byte | icsNum, |
byte | offset, | ||
byte | dataSize ) |
ICSのデータをCOMに転送するコマンドを生成する
[in] | icsNum | ICS番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | dataSize | 取得するデータ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
RCB4のICSエリアに割り当てられたデータをCOMに転送するコマンドを生成します
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveDeviceToComCmd | ( | byte | idNum, |
byte | sioNum, | ||
byte | offset, | ||
byte | dataSize ) |
ICSのデータをCOMに転送するコマンドを生成し、送信バッファに入れる
[in] | idNum | サーボのID番号 |
[in] | sioNum | SIO(SioNum)の番号 |
[in] | offset | 何バイト離れたところをアクセスするか |
[in] | dataSize | 取得するデータ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
RCB4のICSエリアに割り当てられたデータをCOMに転送するコマンドを生成します
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveRamToComCmd | ( | byte * | txData, |
int | scrAddr, | ||
int | scrDataSize ) |
RAMのデータをCOMに送るコマンドを生成する
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | scrAddr | RCB4に書き込む先頭アドレス |
[in] | scrDataSize | 書込みデータ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
RCB4の内のRAMのデータをCOMに送るコマンドを生成します
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::moveRamToComCmd | ( | int | scrAddr, |
int | scrDataSize ) |
RAMのデータをCOMに送るコマンドを生成する
[in] | scrAddr | RCB4に書き込む先頭アドレス |
[in] | scrDataSize | 書込みデータ数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
RCB4の内のRAMのデータをCOMに送るコマンドを生成します
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
|
protected |
MoveコマンドでRAM上のデータをCOMに転送します
[in] | scrAddr | 取得するRAMデータの先頭アドレス |
[in] | scrDataSize | 取得するRAMのデータ数 |
[out] | rxDara[] | 受信データ(純粋にRAMのデータのみ) |
-1 | (0xFFFF) 送信失敗等 |
RAM上指定した先頭アドレスから指定したデータ数分のデータをCOMに転送します
bool Rcb4BaseClass::resetProgramCounter | ( | ) |
プロフラムカウンタをリセットします
False | 通信失敗 |
プログラムカウンタをリセットします。
bool Rcb4BaseClass::resetServoMixing | ( | byte | id, |
byte | sio, | ||
byte | mixNum ) |
指定したサーボモータのミキシングをOFFにします
id | サーボモータのID |
sio | サーボモータが接続されているSIO番号(SIO1-4:0x01,SIO5-8:0x02) |
mixNum | ミキシングの番号(1or2) |
True | 通信成功 |
False | 失敗成功 |
bool Rcb4BaseClass::resume | ( | ) |
モーションを再開させます
False | 通信失敗 |
モーションを一時停止させます
bool Rcb4BaseClass::resume | ( | unsigned short * | config | ) |
モーションを再開させます
[in,out] | config | 外部で覚えているconfigデータ |
False | 通信失敗 |
モーションを一時停止させます
int Rcb4BaseClass::runConstFrameServoCmd | ( | byte * | txData, |
ServoData | servoDatas[], | ||
byte | servoCount, | ||
byte | frame ) |
指定したサーボモータを複数個動かすコマンドの生成
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | servoDatas[] | アクセスするサーボのデータの配列 |
[in] | servoCount | アクセスするサーボのデータの配列数(サーボの数) |
[in] | frame | フレーム数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
複数個サーボモータを動かすコマンドを生成します。
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::runConstFrameServoCmd | ( | ServoData | servoDatas[], |
byte | servoCount, | ||
byte | frame ) |
指定したサーボモータを複数個動かすコマンドの生成
[in] | servoDatas[] | アクセスするサーボのデータの配列 |
[in] | servoCount | アクセスするサーボのデータの配列数(サーボの数) |
[in] | frame | フレーム数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
複数個サーボモータを動かすコマンドを生成します。
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::runSingleServoCmd | ( | byte * | txData, |
byte | idNum, | ||
byte | sioNum, | ||
int | pos, | ||
byte | frame ) |
指定したサーボモータを1個だけ動かすコマンドを作成します
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | idNum | サーボモータのID番号 |
[in] | sioNum | 接続しているSIO(SioNum)の番号 |
[in] | pos | サーボモータのポジションデータ(目標値) |
[in] | frame | フレーム数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
1つだけサーボを動かします。
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::runSingleServoCmd | ( | byte * | txData, |
ServoData | servoData, | ||
byte | frame ) |
指定したサーボモータを1個だけ動かすコマンドを作成します
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | servoData | 動かそうとしているサーボを1まとまりにした型 |
[in] | frame | フレーム数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
1つだけサーボを動かします。
ServoData型には、サーボモータのID以外にもSIOと動かすポジションのデータが入ります
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::runSingleServoCmd | ( | byte | idNum, |
byte | sioNum, | ||
int | pos, | ||
byte | frame ) |
指定したサーボモータを1個だけ動かすコマンドを作成します
[in] | idNum | サーボモータのID番号 |
[in] | sioNum | 接続しているSIO(SioNum)の番号 |
[in] | pos | サーボモータのポジションデータ(目標値) |
[in] | frame | フレーム数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
1つだけサーボを動かします。
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::runSingleServoCmd | ( | ServoData | servoData, |
byte | frame ) |
指定したサーボモータを1個だけ動かすコマンドを作成します
[in] | servoData | 動かそうとしているサーボを1まとまりにした型 |
[in] | frame | フレーム数 |
-1 | バッファに何か使われているかサイズが249byte以上 |
1つだけサーボを動かします。
ServoData型には、サーボモータのID以外にもSIOと動かすポジションのデータが入ります
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
bool Rcb4BaseClass::setCheckSum | ( | byte | dataBytes[] | ) |
コマンドのチェックサムを計算し、最後尾にいれます
[in,out] | dataBytes[] | コマンドが入ったデータ |
False | コマンドの先頭が0だった時 |
コマンドのチェックサムを計算し、最後尾に代入します
bool Rcb4BaseClass::setFreePos | ( | ServoData | servoDatas[], |
byte | servoCount ) |
指定したサーボモータ単体をフリーにします
[in] | servoDatas[] | サーボモータのデータをひとかたまりにしたものを複数個 |
[in] | servoCount | servoDatasのサーボの数 |
False | 通信失敗 |
servoDatas[]で指定したサーボモータをフリーにします
bool Rcb4BaseClass::setFreeSingleServo | ( | byte | id, |
byte | sio ) |
指定したサーボモータ単体をフリーにします
[in] | id | サーボモータのID |
[in] | sio | SIOの値(SioNum) |
False | 通信失敗 |
ID,SIOで指定したサーボモータをフリーにします
bool Rcb4BaseClass::setHoldPos | ( | ServoData | servoDatas[], |
byte | servoCount ) |
指定した複数のサーボモータにトルクをかけます
[in] | servoDatas[] | サーボモータのデータをひとかたまりにしたものを複数個 |
[in] | servoCount | servoDatasのサーボの数 |
False | 通信失敗 |
servoDatas[]で指定したサーボモータをフリーにします Free状態からトルクをかける状態に復帰します
bool Rcb4BaseClass::setHoldSingleServo | ( | byte | id, |
byte | sio ) |
指定したサーボモータ単体にトルクをかけます
[in] | id | サーボモータのID |
[in] | sio | SIOの値(SioNum) |
False | 通信失敗 |
ID,SIOで指定したサーボモータにトルクをかけます Free状態からトルクをかける状態に復帰します
bool Rcb4BaseClass::setKrrAdData | ( | byte | paPort, |
byte | adData ) |
KRRの領域にボタンデータを送信する(疑似的にボタンデータを送る)
[in] | paPort | 指定するADポート(PA1(0x01)~PA4(0x04)) |
[in] | adData | ADデータ(7bit) |
False | 通信失敗 |
Move命令を使ってKRRのADデータを送信します
bool Rcb4BaseClass::setKrrButtonData | ( | unsigned short | buttonData | ) |
KRRの領域にボタンデータを送信する(疑似的にボタンデータを送る)
[in] | buttonData | ボタンデータ |
False | 通信失敗 |
Move命令を使ってKRRの領域にボタンデータを送信します
bool Rcb4BaseClass::setKrrData | ( | unsigned short | buttonData, |
byte | adData[4] ) |
KRRの領域にデータをすべて送信する(疑似的にボタンデータを送る)
[in] | buttonData | ボタンデータ |
[in] | adData | 4byte分のアナログデータを指定 |
False | 通信失敗 |
Move命令を使ってKRRの領域にデータをすべて送信します
bool Rcb4BaseClass::setMotionNum | ( | byte | motionNum | ) |
指定したモーションにジャンプします
[in] | motionNum | ジャンプするモーション番号 |
False | 通信失敗 |
プログラムカウンタをリセットします。
int Rcb4BaseClass::setParametersBaseCmd | ( | byte * | txData, |
byte | servoParameter, | ||
ServoData | servoDatas[], | ||
byte | servoCount ) |
指定したサーボモータを複数個パラメータを変えるコマンドの生成
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | servoParameter | (Stretch:1 Speed:2) |
[in] | servoDatas[] | アクセスするサーボのデータの配列 |
[in] | servoCount | アクセスするサーボのデータの配列数(サーボの数) |
-1 | バッファに何か使われているかサイズが249byte以上 |
複数個サーボモータを動かすコマンドを生成します。
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::setParametersBaseCmd | ( | byte | servoParameter, |
ServoData | servoDatas[], | ||
byte | servoCount ) |
指定したサーボモータを複数個パラメータを変えるコマンドの生成
[in] | servoParameter | (Stretch:1 Speed:2) |
[in] | servoDatas[] | アクセスするサーボのデータの配列 |
[in] | servoCount | アクセスするサーボのデータの配列数(サーボの数) |
-1 | バッファに何か使われているかサイズが249byte以上 |
複数個サーボモータを動かすコマンドを生成します。
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
bool Rcb4BaseClass::setPio | ( | unsigned short | pioData | ) |
現在のPIOの状態を変更します
[in] | pioData | PIO全体のデータ |
False | 通信失敗 |
Move命令を使って現在のPIOのHかLの状態にします
bool Rcb4BaseClass::setPioMode | ( | unsigned short | pioModeData | ) |
現在のPIOの入出力状態を変更します
[in] | pioModeData | PIO全体の入出力データ |
False | 通信失敗 |
Move命令を使って現在のPIO入力と出力を変更します
bool Rcb4BaseClass::setServoAdMixing | ( | byte | id, |
byte | sio, | ||
byte | mixNum, | ||
int | adPort, | ||
char | gain ) |
指定したサーボモータのミキシングを設定する(ユーザ変数ミキシング)
id | サーボモータのID |
sio | サーボモータが接続されているSIO番号(SIO1-4:0x01,SIO5-8:0x02) |
mixNum | ミキシングの番号(1or2) |
adPort ADポートの番号 | |
gain | ramAddrのデータをgain分、かけ合わせる |
True | 通信成功 |
False | 失敗成功 |
bool Rcb4BaseClass::setServoDefaultMixing | ( | byte | id, |
byte | sio, | ||
byte | mixNum, | ||
int | addr, | ||
char | gain ) |
指定したサーボモータのミキシングを設定する(ユーザ変数ミキシング)
id | サーボモータのID |
sio | サーボモータが接続されているSIO番号(SIO1-4:0x01,SIO5-8:0x02) |
mixNum | ミキシングの番号(1or2) |
addr | ミキシングをかける指定したRAMアドレス(上位で1or2byte 処理済み) |
gain | ramAddrのデータをgain分、かけ合わせる |
True | 通信成功 |
False | 失敗成功 |
bool Rcb4BaseClass::setServoMixGain | ( | byte | id, |
byte | sio, | ||
byte | mixNum, | ||
char | gain ) |
指定したサーボモータのミキシングゲインのみを変更します
id | サーボモータのID |
sio | サーボモータが接続されているSIO番号(SIO1-4:0x01,SIO5-8:0x02) |
mixNum | ミキシングの番号(1or2) |
gain | ramAddrのデータをgain分、かけ合わせる |
True | 通信成功 |
False | 失敗成功 |
|
protected |
複数サーボモータにアクセスするときにコマンドで「動作させるサーボの指定」部分を作成
[in] | servoDatas[] | アクセスするサーボのデータの配列 |
[in] | servoCount | アクセスするサーボのデータの配列数(サーボの数) |
「動作させるサーボの指定」には1bitずつ順番に動かす部分(フラグ)を立てていきます
bool Rcb4BaseClass::setServoPos | ( | ServoData | servoDatas[], |
byte | servoCount, | ||
byte | frame ) |
指定したサーボモータ複数を動作させます
[in] | servoDatas[] | サーボモータのデータをひとかたまりにしたものを複数個 |
[in] | servoCount | servoDatasのサーボの数 |
[in] | frame | フレーム数(多いほどゆっくり動く) |
False | 通信失敗 |
servoDataに入っている複数のサーボモータの情報をもとにFrame数を使用して動かします
bool Rcb4BaseClass::setServoSpeed | ( | ServoData | servoDatas[], |
byte | servoCount ) |
指定したサーボモータのスピードを変更します
[in] | servoDatas[] | サーボモータのデータをひとかたまりにしたものを複数個 |
[in] | servoCount | servoDatasのサーボの数 |
False | 通信失敗 |
servoDatas[]で指定したサーボモータのスピード(出力の上限値)を変更します
bool Rcb4BaseClass::setServoStretch | ( | ServoData | servoDatas[], |
byte | servoCount ) |
指定したサーボモータのストレッチを変更します
[in] | servoDatas[] | サーボモータのデータをひとかたまりにしたものを複数個 |
[in] | servoCount | servoDatasのサーボの数 |
False | 通信失敗 |
servoDatas[]で指定したサーボモータのストレッチ(柔らかさ)を変更します
bool Rcb4BaseClass::setServoUserParmeterMixing | ( | byte | id, |
byte | sio, | ||
byte | mixNum, | ||
int | userParamNum, | ||
char | gain ) |
指定したサーボモータのミキシングを設定する(ユーザ変数ミキシング)
id | サーボモータのID |
sio | サーボモータが接続されているSIO番号(SIO1-4:0x01,SIO5-8:0x02) |
mixNum | ミキシングの番号(1or2) |
userParamNum ユーザ変数の番号 | |
gain | ramAddrのデータをgain分、かけ合わせる |
True | 通信成功 |
False | 失敗成功 |
bool Rcb4BaseClass::setSingleServo | ( | byte | id, |
byte | sio, | ||
int | pos, | ||
byte | frame ) |
指定したサーボモータ単体を動作させます
[in] | id | サーボモータのID番号 |
[in] | sio | SIOの値(SioNum) |
[in] | pos | サーボモータの目標ポジション値 |
[in] | frame | フレーム数(多いほどゆっくり動く) |
False | 通信失敗 |
指定したサーボモータをID,SIO,POS,Frame数を使用して動かします
bool Rcb4BaseClass::setSingleServo | ( | ServoData | servoData, |
byte | frame ) |
指定したサーボモータ単体を動作させます
[in] | servoData | サーボモータのデータをひとかたまりにしたもの |
[in] | frame | フレーム数(多いほどゆっくり動く) |
False | 通信失敗 |
servoDataに入っているサーボモータの情報をもとに,Frame数を使用して動かします
int Rcb4BaseClass::setSpeedCmd | ( | byte * | txData, |
ServoData | servoDatas[], | ||
byte | servoCount ) |
指定したサーボモータを複数個スピードを変えるコマンドの生成
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | servoDatas[] | アクセスするサーボのデータの配列 |
[in] | servoCount | アクセスするサーボのデータの配列数(サーボの数) |
-1 | バッファに何か使われているかサイズが249byte以上 |
複数個サーボモータを動かすコマンドを生成します。
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::setSpeedCmd | ( | ServoData | servoDatas[], |
byte | servoCount ) |
指定したサーボモータを複数個スピードを変えるコマンドの生成
[in] | servoDatas[] | アクセスするサーボのデータの配列 |
[in] | servoCount | アクセスするサーボのデータの配列数(サーボの数) |
-1 | バッファに何か使われているかサイズが249byte以上 |
複数個サーボモータを動かすコマンドを生成します。
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::setStretchCmd | ( | byte * | txData, |
ServoData | servoDatas[], | ||
byte | servoCount ) |
指定したサーボモータを複数個ストレッチを変えるコマンドの生成
[out] | *txData | 現在入れようと思っている送信バッファ |
[in] | servoDatas[] | アクセスするサーボのデータの配列 |
[in] | servoCount | アクセスするサーボのデータの配列数(サーボの数) |
-1 | バッファに何か使われているかサイズが249byte以上 |
複数個サーボモータを動かすコマンドを生成します。
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
int Rcb4BaseClass::setStretchCmd | ( | ServoData | servoDatas[], |
byte | servoCount ) |
指定したサーボモータを複数個ストレッチを変えるコマンドの生成
[in] | servoDatas[] | アクセスするサーボのデータの配列 |
[in] | servoCount | アクセスするサーボのデータの配列数(サーボの数) |
-1 | バッファに何か使われているかサイズが249byte以上 |
複数個サーボモータを動かすコマンドを生成します。
返値はtxDataのデータbyte数を返しますので、送信するのに使用します
bool Rcb4BaseClass::setUserCounter | ( | int | counterNum, |
byte | data ) |
ユーザカウンタを設定する
counterNum | ユーザカウンタの番号 |
data | ユーザカウンタのデータ |
bool Rcb4BaseClass::setUserParmeter | ( | int | userParamNum, |
short | data ) |
ユーザ変数の値を設定する
userParamNum | ユーザ変数の番号 |
data | ユーザ変数の設定値 |
True | 通信成功 |
False | 失敗成功 |
|
protected |
複数サーボモータにアクセスするときにサーボの順番の指定があるのでソートする
サーボのデータをソートするのとしていサーボデータの返却
[in,out] | servoDatas[] | アクセスするサーボのデータの配列 |
[in] | servoCount | アクセスするサーボのデータの配列数(サーボの数) |
true | ソート成功 |
false | データ数が多すぎたり不正なICS番号が割り当てられようとしたとき |
サーボモータを複数動かす時、順番に並んでいる必要があるのでそのデータをソートします
bool Rcb4BaseClass::suspend | ( | ) |
モーションを一時停止させます
False | 通信失敗 |
モーションを一時停止させます
bool Rcb4BaseClass::suspend | ( | unsigned short * | config | ) |
モーションを一時停止させます
[in,out] | config | 外部で覚えているconfigデータ |
False | 通信失敗 |
モーションを一時停止させます
|
virtual |
ICS通信の送受信
[in,out] | *txBuf | |
[in] | txLen | |
[out] | *rxBuf | 受信格納バッファ |
[in] | rxLen | 受信データ数 |
true | 通信成功 |
false | 通信失敗 |
Reimplemented in Rcb4HardSerialClass.
|
protected |
何かしらコマンドを送って、ACKが返ってくるか確認
[in] | *txData | 送信データ |
False | 送信失敗等 |
何かしらコマンドを送って、ACKが返ってくるか確認
|
static |
カウンターのRAMのアドレスを取得する
counterNum | カウンターの番号 |
カウンターのRAMアドレス | |
-1 | RAMアドレス変換失敗 |
|
static |
ユーザ変数のRAMアドレスを取得する
userParamNum | ユーザ変数の番号 |
ユーザ変数のRAMアドレス | |
-1 | RAMアドレス変換失敗 |