储能工商业-261Kwh-功率计划曲线App
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

Device.cpp 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /*
  2. * Device.cpp
  3. *
  4. * Created on: 2020年9月14日
  5. * Author: vsbes
  6. */
  7. #include "Device.h"
  8. #include <stddef.h>
  9. #include <utility>
  10. #include "../../utils/Util.h"
  11. Device::Device()
  12. {
  13. // TODO Auto-generated constructor stub
  14. chargeOrDisChargeState = 0;
  15. P = 0.0;
  16. SOC = 0.0;
  17. chargeEnergy = 0.0;
  18. disChargeEnergy = 0.0;
  19. chargeEnergy_o = 0.0;
  20. disChargeEnergy_o = 0.0;
  21. chargeEnergyDaily = 0.0;
  22. disChargeEnergyDaily = 0.0;
  23. }
  24. Device::~Device()
  25. {
  26. // TODO Auto-generated destructor stub
  27. }
  28. Device* Device::addParam(const std::string key, const std::string value)
  29. {
  30. if (!key.empty() && !value.empty())
  31. {
  32. params.insert(make_pair(key, value));
  33. }
  34. return this;
  35. }
  36. HRESULT Device::init()
  37. {
  38. chargeStateUUID = getParam("chargeState");
  39. disChargeStateUUID = getParam("disChargeState");
  40. chargeEnergyUUID = getParam("chargeEnergy");
  41. disChargeEnergyUUID = getParam("disChargeEnergy");
  42. chargeEnergyDailyUUID = getParam("chargeEnergyDaily");
  43. disChargeEnergyDailyUUID = getParam("disChargeEnergyDaily");
  44. return S_OK;
  45. }
  46. void Device::other()
  47. {
  48. if (chargeOrDisChargeState == 0)
  49. {
  50. Util::setItemIntValue(chargeStateUUID, 0, 101);
  51. Util::setItemIntValue(disChargeStateUUID, 0, 101);
  52. }
  53. else if (chargeOrDisChargeState == 1)
  54. {
  55. Util::setItemIntValue(chargeStateUUID, 1, 101);
  56. Util::setItemIntValue(disChargeStateUUID, 0, 101);
  57. chargeEnergy += (fabs(P) * 0.000277777778);
  58. }
  59. else if (chargeOrDisChargeState == 2)
  60. {
  61. Util::setItemIntValue(chargeStateUUID, 0, 101);
  62. Util::setItemIntValue(disChargeStateUUID, 1, 101);
  63. disChargeEnergy += (fabs(P) * 0.000277777778);
  64. }
  65. else
  66. {
  67. Util::setItemIntValue(chargeStateUUID, 0, 101);
  68. Util::setItemIntValue(disChargeStateUUID, 0, 101);
  69. }
  70. chargeEnergyDaily = chargeEnergy - chargeEnergy_o;
  71. disChargeEnergyDaily = disChargeEnergy - disChargeEnergy_o;
  72. Util::setItemFloatValue(chargeEnergyUUID, chargeEnergy, 101);
  73. Util::setItemFloatValue(disChargeEnergyUUID, disChargeEnergy, 101);
  74. Util::setItemFloatValue(chargeEnergyDailyUUID, chargeEnergyDaily, 101);
  75. Util::setItemFloatValue(disChargeEnergyDailyUUID, disChargeEnergyDaily, 101);
  76. }
  77. std::string Device::getParam(std::string key)
  78. {
  79. size_t index = params.count(key);
  80. if (index == 0)
  81. {
  82. return "";
  83. }
  84. else
  85. {
  86. return params.find(key)->second;
  87. }
  88. }