[EthercatDevice_DmpHID_Generic]
説明
EtherCATスレーブデバイスのMPGイベント・コールバック関数を登録します。このコールバック関数はupdate()内で呼び出されるため、 update() が割り込みコールバック関数 (循環コールバック、エラーコールバック、イベントコールバックなど)内で呼び出される場合は、このコールバック関数内でブロッキング関数やシステムコール関連関数を呼び出すことは禁止されています。
派生クラス:
| クラス名 | 製造者ID | 製品コード | UART | Keypad | LCM | MPG |
| EthercatDevice_QECR11HU1S | 0x00000bc3 | 0x0086d404 | O | O | ||
| EthercatDevice_QECR11HU9S | 0x00000bc3 | 0x0086d402 | O | O | O | O |
| EthercatDevice_QECR00HU9S | 0x00000bc3 | 0x0086d401 | O | O | O | O |
構文
int mpgSetCallback(void (*callback)(int));
媒介変数
[in] void (*callback)(int)
登録するMPGイベントコールバック関数には、イベントの種類を示す整数型変数があります。サポートされているMPGイベントの種類は次のとおりです:
| 定義 | コード | 説明 |
| ECAT_MPG_AXIS_CHANGE | 1 | The status of the Axis knob has changed. |
| ECAT_MPG_RATIO_CHANGE | 2 | The status of the Ratio knob has changed. |
| ECAT_MPG_EMERGENCY_STOP_CHANGE | 3 | The status of the Emergency Stop switch has changed. |
| ECAT_MPG_ENABLE_SWITCH_CHANGE | 4 | The status of the Enable switch has changed. |
| ECAT_MPG_ENCODER_CHANGE | 5 | The logical counter of the Encoder has changed. |
戻り値
error codeを返します。返された値が 0の場合、この関数が正常に完了したことを示します。
備考
この関数は、 EthercatMaster::begin()が正常に実行された後で呼び出す必要があります。この関数はブロッキングされているため、循環コールバック関数内で呼び出すことができません。
例
#include "Ethercat.h"
EthercatMaster master;
EthercatDevice_QECR11HU9S slave;
void MpgCallback(int event) {
switch (event) {
case ECAT_MPG_AXIS_CHANGE:
Serial.print("MPG Axis changed. ");
Serial.println(slave.mpgReadAxis());
break;
case ECAT_MPG_RATIO_CHANGE:
Serial.print("MPG Ratio changed. ");
Serial.println(slave.mpgReadRatio());
break;
case ECAT_MPG_EMERGENCY_STOP_CHANGE:
Serial.print("MPG Emergency Stop changed ");
Serial.println(slave.mpgReadEmergencyStop());
break;
case ECAT_MPG_ENABLE_SWITCH_CHANGE:
Serial.print("MPG Enable Switch changed. ");
Serial.println(slave.mpgReadEnableSwitch());
break;
case ECAT_MPG_ENCODER_CHANGE:
Serial.print("MPG Encoder changed. ");
Serial.println(slave.mpgReadEncoder());
break;
}
}
void setup() {
Serial.begin(115200);
master.begin();
slave.attach(0, master);
slave.mpgSetCallback(MpgCallback);
master.start();
}
void loop() {
slave.update();
// ...
}Please see EthercatDevice_DmpHID_Generic Class for more QEC HID slave instructions and API usage.