update APS initial

main
Yik Teng Hie 3 months ago
parent 76bef81c18
commit 0355c1bdb3

Binary file not shown.

Binary file not shown.

@ -14,7 +14,7 @@ class CInputBase;
class CInputControllerBase : public CCard class CInputControllerBase : public CCard
{ {
public: public:
CInputControllerBase(std::string csMutexName); CInputControllerBase(const std::string& csMutexName);
virtual ~CInputControllerBase(); virtual ~CInputControllerBase();
void RegisterInput(const CInputSetting& inputSetting, CInputBase* pInput); void RegisterInput(const CInputSetting& inputSetting, CInputBase* pInput);

@ -17,15 +17,19 @@ protected:
int m_CardType{ -1 }; int m_CardType{ -1 };
int m_nNoOfCard{ 0 }; int m_nNoOfCard{ 0 };
int m_index{ 0 }; int m_index{ 0 };
std::string m_szCardName{ "" }; std::string m_strCardName{ "" };
std::vector<int> m_vecInitializedCards; // keep track of initialized card ids handled by APS library
public: public:
CMotionControllerBase(int index, const std::string& pMutexName); CMotionControllerBase(int index, const std::string& pMutexName);
virtual ~CMotionControllerBase(); virtual ~CMotionControllerBase();
void SetCardInfo(int nCardType, const std::string& cardName); void SetCardInfo(int nCardType, const std::string& cardName);
int GetCardType() const; int GetCardType() const;
std::string GetCardName() const; const std::string& GetCardName() const;
std::vector<int> GetInitializedCards() const;
virtual BOOL Init(int& nNoOfMtr) = 0; virtual BOOL Init(int& nNoOfMtr) = 0;
virtual void Close(); virtual void Close();

@ -2,23 +2,24 @@
class CMotionControllerBase; class CMotionControllerBase;
class CMtrProfile; class CMtrProfile;
#ifdef BUILD_IODLL #ifdef BUILD_IODLL
#define IODLLCLASS __declspec(dllexport) #define IODLLCLASS __declspec(dllexport)
#else #else
#define IODLLCLASS __declspec(dllimport) #define IODLLCLASS __declspec(dllimport)
#endif #endif
class IODLLCLASS CAbstractMotionControllerFactory class IODLLCLASS CAbstractMotionControllerFactory
{ {
private: private:
int m_cardType; int m_cardType{ -1 };
char *m_cardName; std::string m_cardName;
public: public:
CAbstractMotionControllerFactory(int cardType, char* m_cardName); CAbstractMotionControllerFactory(int cardType, const std::string& m_cardName);
virtual ~CAbstractMotionControllerFactory(); virtual ~CAbstractMotionControllerFactory();
virtual CMotionControllerBase *CreateMotionController(int index) = 0; virtual CMotionControllerBase* CreateMotionController(int index) = 0;
int GetCardType(); int GetCardType() const;
char * GetCardName(); const std::string& GetCardName() const;
}; };
/** /**
@ -32,14 +33,15 @@ class IODLLCLASS CMotionControllerFactory
{ {
private: private:
CMotionControllerFactory(void); CMotionControllerFactory(void);
public: public:
virtual ~CMotionControllerFactory(void); virtual ~CMotionControllerFactory(void);
static CMotionControllerFactory &Instance(); static CMotionControllerFactory& Instance();
void AddFactory(CAbstractMotionControllerFactory *pFactory); void AddFactory(CAbstractMotionControllerFactory* pFactory);
void RemoveFactory(CAbstractMotionControllerFactory *pFactory); void RemoveFactory(CAbstractMotionControllerFactory* pFactory);
CMotionControllerBase *CreateMotionController(int index, const char* cardName); CMotionControllerBase* CreateMotionController(int index, const std::string& cardName);
CMotionControllerBase *CreateMotionController(int index, int cardType); CMotionControllerBase* CreateMotionController(int index, int cardType);
int GetCardType(const char* cardName); int GetCardType(const std::string& cardName);
}; };
/** /**
@ -60,17 +62,17 @@ public:
* @param MotionController_class The class of the MotionController that the factory creates. * @param MotionController_class The class of the MotionController that the factory creates.
*/ */
#define REGISTER_MOTIONCONTROLLER_FACTORY(mType, name, MotionController_class) \ #define REGISTER_MOTIONCONTROLLER_FACTORY(mType, name, MotionController_class) \
class Factory ## MotionController_class : public CAbstractMotionControllerFactory \ class Factory##MotionController_class : public CAbstractMotionControllerFactory \
{ \ { \
public: \ public: \
Factory ## MotionController_class() : CAbstractMotionControllerFactory(mType, name){} \ Factory##MotionController_class() : CAbstractMotionControllerFactory(mType, name) {} \
CMotionControllerBase *CreateMotionController(int index) \ CMotionControllerBase* CreateMotionController(int index) \
{ \ { \
CMotionControllerBase *ptr = new MotionController_class(index); \ CMotionControllerBase* ptr = new MotionController_class(index); \
ptr->SetCardInfo(mType, name); \ ptr->SetCardInfo(mType, name); \
return ptr; \ return ptr; \
} \ } \
}; \ }; \
static Factory ## MotionController_class StaticFactory ## MotionController_class; \ static Factory##MotionController_class StaticFactory##MotionController_class; \
CAbstractMotionControllerFactory* GetFactory ## MotionController_class() { return &StaticFactory ## MotionController_class; } CAbstractMotionControllerFactory* GetFactory##MotionController_class() { return &StaticFactory##MotionController_class; }

@ -25,6 +25,9 @@ public:
void Close() override; void Close() override;
private: private:
std::vector<int> BitsToCardIds(int cardIDBits);
BOOL Init_7856(int nCardID, CHardwareCfgFactory& cfgFty, int nCfgMotionNumber, int nCfgCardNumber, int& nNoOfMtr); 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); BOOL Init_ECAT(int nCardID, CHardwareCfgFactory& cfgFty, int nCfgMotionNumber, int nCfgCardNumber, int& nNoOfMtr);
}; };

@ -13,7 +13,7 @@ class COutputBase;
class COutputControllerBase : public CCard class COutputControllerBase : public CCard
{ {
public: public:
COutputControllerBase(std::string csMutexName); COutputControllerBase(const std::string& csMutexName);
virtual ~COutputControllerBase(); virtual ~COutputControllerBase();
void RegisterOutput(const COutputSetting& outputSetting, COutputBase* pOutput); void RegisterOutput(const COutputSetting& outputSetting, COutputBase* pOutput);

Binary file not shown.
Loading…
Cancel
Save