#pragma once //#include "DIOS.Dev.Machinery.Model.h" #ifdef DIOSDEVMACHINERYDRIVER_EXPORTS #define _DIOSDEVMACHDRIVERECOM_API __declspec(dllexport) #else #define _DIOSDEVMACHDRIVERECOM_API __declspec(dllimport) #endif #include "IODeviceWithSCF.tlh" #include "IODeviceWithSCF.tli" namespace DIOS::Dev::Detail::MachineryECOM { class _DIOSDEVMACHDRIVERECOM_API MachineryECOMDevice : public IODeviceWithSCF , public MachineryModel { using super = IODeviceWithSCF ; using superMach = MachineryModel; public: MachineryECOMDevice(std::shared_ptr center, nsSCF::SCF SCF); ~MachineryECOMDevice(); virtual std::string GetGUID() const override; void Register(); }; class _DIOSDEVMACHDRIVERECOM_API MachineryECOMDriver : public DIOS::Dev::Detail::IODriverWithSCF { using super = IODriverWithSCF ; public: MachineryECOMDriver(); virtual ~MachineryECOMDriver(); void FireNotify(std::string key, std::string content); public: virtual void Prepare() override; virtual int Connect() override; virtual void Disconnect() override; virtual bool isConnected() const override; virtual void Dequeue(const char* Packet, DWORD Length) override; virtual void FireNotify(int code, std::string key, std::string content) override; virtual auto CreateDevice(int index)->std::unique_ptr override; virtual std::string DriverProbe() override; virtual std::string GetResource() override; virtual std::string DeviceProbe() override; virtual bool GetDeviceConfig(std::string& Cfg) override; virtual bool SetDeviceConfig(std::string Cfg) override; private: string GetWorkPath(std::string driverconfigfile); void MachDriverPrepare(std::string driverconfigpath); void InstallLoggers(const std::string& workpath); void IntallPinDefineFile(const std::string& workpath); void LogInfo(char* Packet, int len, char* others); private: void* m_dpcHandler; void* m_handleComm; void* m_handleDispatcher; string m_SystemType; }; }