[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.