サイト内検索

検索

Shares

Table of Content

EthercatDevice_DmpHID.mpgSetCallback()

[EthercatDevice_DmpHID_Generic]

説明

EtherCATスレーブデバイスのMPGイベント・コールバック関数を登録します。このコールバック関数はupdate()内で呼び出されるため、 update() が割り込みコールバック関数 (循環コールバック、エラーコールバック、イベントコールバックなど)内で呼び出される場合は、このコールバック関数内でブロッキング関数やシステムコール関連関数を呼び出すことは禁止されています。

派生クラス:

クラス名製造者ID製品コードUARTKeypadLCMMPG
EthercatDevice_QECR11HU1S0x00000bc30x0086d404OO
EthercatDevice_QECR11HU9S0x00000bc30x0086d402OOOO
EthercatDevice_QECR00HU9S0x00000bc30x0086d401OOOO

構文

int mpgSetCallback(void (*callback)(int));

媒介変数

  • [in] void (*callback)(int)
    登録するMPGイベントコールバック関数には、イベントの種類を示す整数型変数があります。サポートされているMPGイベントの種類は次のとおりです:
定義コード説明
ECAT_MPG_AXIS_CHANGE1The status of the Axis knob has changed.
ECAT_MPG_RATIO_CHANGE2The status of the Ratio knob has changed.
ECAT_MPG_EMERGENCY_STOP_CHANGE3The status of the Emergency Stop switch has changed.
ECAT_MPG_ENABLE_SWITCH_CHANGE4The status of the Enable switch has changed.
ECAT_MPG_ENCODER_CHANGE5The 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.

上部へスクロール