// MotionController_ADLINK_APS_ECAT.h: interface for the CMotionController_ADLINK_APS_ECAT class.
//
//////////////////////////////////////////////////////////////////////
#pragma once

#include <vector>

#include "MotionControllerBase.h"

class CMotionController_ADLINK_APS_ECAT : public CMotionControllerBase
{
private:
    std::vector<int> m_cardIds;

    const std::vector<int> m_vecECATType{ 20, 24, 26, 46, 47, 48 }; // ECAT card types

public:
    CMotionController_ADLINK_APS_ECAT(int index);
    virtual ~CMotionController_ADLINK_APS_ECAT();

    BOOL Init(int& nNoOfMtr) override;
    void Close() override;

private:
    BOOL Init_7856(int nCardID, CHardwareCfgFactory& cfgFty, int nCfgMotionNumber, int nCfgCardNumber, int& nNoOfMtr);
    BOOL Init_ECAT(int nCardID, CHardwareCfgFactory& cfgFty, int nCfgMotionNumber, int nCfgCardNumber, int& nNoOfMtr);
};
