/****************************** Module Header ******************************\ Classe COPC_Client Rôle : Communique avec le serveur OPC (Data Access) à l'aide de la classe EasyDAClient. Permet d'ajouter des items et de lire leur valeur et qualité. Utilisation de l'événement itemChanged pour être prévenu de toute modification sur les items. \***************************************************************************/ #pragma once #include #include #include #include #include #import "libid:FAB7A1E3-3B79-4292-9C3A-DF39A6F65EC1" version(5.2) // EasyOpcDALib #import "libid:965A3842-AEEA-4DF9-9241-28B963F76E24" version(5.2) // OPCUserObjects using namespace EasyOpcLib; using namespace OPCUserObjects; // Type structuré contenant les résultats d'un item : typedef struct{ int m_Value; // Valeur d'un item //Object m_Value; // Valeur d'un item bool m_bQuality; // Qualité d'un item }TResultItem; class COPC_Client { public: // Déclaration des méthodes : // Constructeur COPC_Client(void); // Destructeur ~COPC_Client(void); // Connexion au serveur OPC void StartOPC(std::string sMachineName, std::string sServerClass, int iPeriodRefresh); // Ajout d'un item au groupe créer void AddItem(std::string sItemId); //Lecture d'un item TResultItem ReadVQItem(std::string sItemId); // Déclaration de l'événement : boost::signals2::signal ItemChanged; private: // Déclarations des membres : IEasyDAClientPtr mClientOPC; // Instance de EasyDAClient int miRequestedUpdateRate; // Période de raffraîchissement des items dans le serveur (en ms) CComVariant msMachineName; // Nom de la machine (adresse IP) oû se trouve le serveur ("" si sur machine Hôte) CComVariant msServerClass; // Nom du serveur OPC // Déclaration des méthodes : // Lecture d'un item IDAVtqPtr COPC_Client::ReadItem(std::string sItemId); // Gestionnaire d'événement void OnItemChange(void); };