DIOS.Dev.Machinery.Driver.ECOM.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #pragma once
  2. //#include "DIOS.Dev.Machinery.Model.h"
  3. #ifdef DIOSDEVMACHINERYDRIVER_EXPORTS
  4. #define _DIOSDEVMACHDRIVERECOM_API __declspec(dllexport)
  5. #else
  6. #define _DIOSDEVMACHDRIVERECOM_API __declspec(dllimport)
  7. #endif
  8. #include "IODeviceWithSCF.tlh"
  9. #include "IODeviceWithSCF.tli"
  10. namespace DIOS::Dev::Detail::MachineryECOM
  11. {
  12. class _DIOSDEVMACHDRIVERECOM_API MachineryECOMDevice : public IODeviceWithSCF <IODeviceDetail>, public MachineryModel
  13. {
  14. using super = IODeviceWithSCF <IODeviceDetail>;
  15. using superMach = MachineryModel;
  16. public:
  17. MachineryECOMDevice(std::shared_ptr <IOEventCenter> center, nsSCF::SCF SCF);
  18. ~MachineryECOMDevice();
  19. virtual std::string GetGUID() const override;
  20. void Register();
  21. };
  22. class _DIOSDEVMACHDRIVERECOM_API MachineryECOMDriver : public DIOS::Dev::Detail::IODriverWithSCF <MachineryDriverModel>
  23. {
  24. using super = IODriverWithSCF <MachineryDriverModel>;
  25. public:
  26. MachineryECOMDriver();
  27. virtual ~MachineryECOMDriver();
  28. void FireNotify(std::string key, std::string content);
  29. public:
  30. virtual void Prepare() override;
  31. virtual int Connect() override;
  32. virtual void Disconnect() override;
  33. virtual bool isConnected() const override;
  34. virtual void Dequeue(const char* Packet, DWORD Length) override;
  35. virtual void FireNotify(int code, std::string key, std::string content) override;
  36. virtual auto CreateDevice(int index)->std::unique_ptr <IODevice> override;
  37. virtual std::string DriverProbe() override;
  38. virtual std::string GetResource() override;
  39. virtual std::string DeviceProbe() override;
  40. virtual bool GetDeviceConfig(std::string& Cfg) override;
  41. virtual bool SetDeviceConfig(std::string Cfg) override;
  42. private:
  43. string GetWorkPath(std::string driverconfigfile);
  44. void MachDriverPrepare(std::string driverconfigpath);
  45. void InstallLoggers(const std::string& workpath);
  46. void IntallPinDefineFile(const std::string& workpath);
  47. void LogInfo(char* Packet, int len, char* others);
  48. private:
  49. void* m_dpcHandler;
  50. void* m_handleComm;
  51. void* m_handleDispatcher;
  52. string m_SystemType;
  53. };
  54. }