储能工商业-261Kwh-功率计划曲线App
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

EmsAppImpl.cpp 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /*
  2. * EmsAppImpl.cpp
  3. *
  4. * Created on: 2020年9月11日
  5. * Author: vsbes
  6. */
  7. #include "EmsAppImpl.h"
  8. #include <stddef.h>
  9. #include <iterator>
  10. #include "../../common/GUID.cpp"
  11. #include "../../models/sys/System.h"
  12. EmsCoreI* EmsAppImpl::pCore = NULL;
  13. System EmsAppImpl::sys;
  14. int EmsAppImpl::run_priority = 100;
  15. int EmsAppImpl::protect_priority = 100;
  16. EmsAppImpl::EmsAppImpl()
  17. {
  18. // TODO Auto-generated constructor stub
  19. initLogger();
  20. }
  21. EmsAppImpl::~EmsAppImpl()
  22. {
  23. // TODO Auto-generated destructor stub
  24. }
  25. HRESULT EmsAppImpl::queryInterface(const IID& iid, void** ppv)
  26. {
  27. if (iid == IID_IEmsApp)
  28. {
  29. *ppv = static_cast<EmsAppI*>(this);
  30. }
  31. else if (iid == IID_IUnknown)
  32. {
  33. *ppv = static_cast<IUnknown*>(this);
  34. }
  35. else
  36. {
  37. *ppv = NULL;
  38. return E_NOINTERFACE;
  39. }
  40. reinterpret_cast<IUnknown*>(*ppv)->addRef();
  41. return S_OK;
  42. }
  43. ULONG EmsAppImpl::addRef()
  44. {
  45. return ++m_cRef;;
  46. }
  47. ULONG EmsAppImpl::release()
  48. {
  49. if (--m_cRef == 0)
  50. {
  51. delete this;
  52. return 0;
  53. }
  54. return m_cRef;
  55. }
  56. ULONG EmsAppImpl::getVersion()
  57. {
  58. return VERSION;
  59. }
  60. HRESULT EmsAppImpl::init()
  61. {
  62. return sys.init();
  63. }
  64. HRESULT EmsAppImpl::applyDataBase(DataBase*& pstart, unsigned int& size)
  65. {
  66. size = sys.getDataBaseSize();
  67. if (size == 0)
  68. {
  69. pstart = NULL;
  70. }
  71. else
  72. {
  73. pstart = &(*sys.getDataBase());
  74. }
  75. return S_OK;
  76. }
  77. HRESULT EmsAppImpl::registerCoreHandle(EmsCoreI* handle, int t_run_priority, int t_protect_priority)
  78. {
  79. pCore = handle;
  80. run_priority = t_run_priority;
  81. protect_priority = t_protect_priority;
  82. return S_OK;
  83. }
  84. HRESULT EmsAppImpl::run()
  85. {
  86. sys.other();
  87. return S_OK;
  88. }
  89. #ifdef __cplusplus
  90. extern "C" IUnknown* CreateInstance()
  91. {
  92. IUnknown *pI = static_cast<EmsAppI*>(new EmsAppImpl());
  93. pI->addRef();
  94. return pI;
  95. }
  96. #endif