SelectGun.c 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. #if 0
  2. #include <stdio.h> /*標準輸入輸出定義*/
  3. #include <stdlib.h> /*標準函數庫定義*/
  4. #include <string.h>
  5. #include <stdint.h>
  6. #include "../Config.h"
  7. #include "../Log/log.h"
  8. #include "../Define/define.h"
  9. #include "../ShareMemory/shmMem.h"
  10. #include "../timeout.h"
  11. #include "../CSU/main.h"
  12. #include "SelectGun.h"
  13. //------------------------------------------------------------------------------
  14. int WaitAuthorPageState(void)
  15. {
  16. int ret = FAIL;
  17. struct SysInfoData *pSysInfo = (struct SysInfoData *)GetShmSysInfoData();
  18. #if !defined DD360Audi
  19. return PASS;
  20. #endif //!defined DD360Audi
  21. if (pSysInfo->SystemPage != _LCM_AUTHORIZING &&
  22. pSysInfo->SystemPage != _LCM_AUTHORIZ_COMP &&
  23. pSysInfo->SystemPage != _LCM_AUTHORIZ_FAIL) {
  24. ret = PASS;
  25. }
  26. return ret;
  27. }
  28. void destroySelGun(uint8_t curGun)
  29. {
  30. uint8_t i = 0;
  31. #if !defined DD360Audi
  32. return;
  33. #endif //!defined DD360Audi
  34. struct SysConfigData *pSysConfig = (struct SysConfigData *)GetShmSysConfigData();
  35. struct SysInfoData *pSysInfo = (struct SysInfoData *)GetShmSysInfoData();
  36. SelectGunInfo *pSelectGunInfo = (SelectGunInfo *)GetShmSelectGunInfo(); //Jerry add
  37. struct OCPP16Data *ShmOCPP16Data = (struct OCPP16Data *)GetShmOCPP16Data();
  38. //for status timeout
  39. if (curGun == DESTROY_ALL_SEL) {
  40. pSelectGunInfo->SelGunInfo.RightGun = SEL_GUN_RELEASE;
  41. pSelectGunInfo->SelGunInfo.LeftGun = SEL_GUN_RELEASE;
  42. log_info("destroy all gun = %d, %d",
  43. pSelectGunInfo->SelGunInfo.LeftGun,
  44. pSelectGunInfo->SelGunInfo.RightGun);
  45. for (i = 0; i < pSysConfig->TotalConnectorCount; i++) {
  46. StopGunInfoTimeoutDet(i);
  47. memset(&pSelectGunInfo->PricesInfo[i], 0, sizeof(PricesInfo));
  48. }
  49. pSysInfo->CurGunSelected = 0;
  50. strcpy((char *)pSysConfig->UserId, "");
  51. //changeLcmPage(_LCM_SELECT_GUN);
  52. return;
  53. }
  54. //for charging timeout or complete
  55. if ((curGun == LEFT_GUN_NUM) && (pSelectGunInfo->SelGunInfo.LeftGun != SEL_GUN_RELEASE)) {
  56. if (pSelectGunInfo->SelGunInfo.LeftGun == SEL_GUN_CONFIRM ||
  57. pSelectGunInfo->SelGunInfo.LeftGun == SEL_GUN_ATHOR) {
  58. pSysInfo->SystemPage = _LCM_SELECT_GUN;
  59. }
  60. pSelectGunInfo->SelGunInfo.LeftGun = SEL_GUN_RELEASE;
  61. StopGunInfoTimeoutDet(LEFT_GUN_NUM);
  62. if (ShmOCPP16Data->SpMsg.bits.AuthorizeConf != NO) {
  63. ClearAuthorizedFlag();
  64. }
  65. log_info("destroy left gun, cur page = %d", pSysInfo->SystemPage);
  66. //if (pSysInfo->SystemPage == pSysInfo->SystemPage) {
  67. log_info("clear left balance");
  68. memset(&pSelectGunInfo->PricesInfo[curGun], 0, sizeof(PricesInfo));
  69. pSelectGunInfo->PricesInfo[curGun].Balance = FAIL_BALANCE_PRICES;
  70. //}
  71. }
  72. if ((curGun == RIGHT_GUN_NUM) && (pSelectGunInfo->SelGunInfo.RightGun != SEL_GUN_RELEASE)) {
  73. if (pSelectGunInfo->SelGunInfo.RightGun == SEL_GUN_CONFIRM ||
  74. pSelectGunInfo->SelGunInfo.RightGun == SEL_GUN_ATHOR) {
  75. pSysInfo->SystemPage = _LCM_SELECT_GUN;
  76. }
  77. pSelectGunInfo->SelGunInfo.RightGun = SEL_GUN_RELEASE;
  78. StopGunInfoTimeoutDet(RIGHT_GUN_NUM);
  79. if (ShmOCPP16Data->SpMsg.bits.AuthorizeConf != NO) {
  80. ClearAuthorizedFlag();
  81. }
  82. log_info("destroy right gun, cur page = %d", pSysInfo->SystemPage);
  83. //if (pSysInfo->SystemPage == pSysInfo->SystemPage) {
  84. log_info("clear right balance");
  85. memset(&pSelectGunInfo->PricesInfo[curGun], 0, sizeof(PricesInfo));
  86. pSelectGunInfo->PricesInfo[curGun].Balance = FAIL_BALANCE_PRICES;
  87. //}
  88. }
  89. }
  90. int waitRightGunPlugIt(uint8_t curGun)
  91. {
  92. #if !defined DD360Audi
  93. return;
  94. #endif //!defined DD360Audi
  95. SelectGunInfo *pSelectGunInfo = (SelectGunInfo *)GetShmSelectGunInfo(); //Jerry add
  96. if ((curGun == RIGHT_GUN_NUM) && (pSelectGunInfo->SelGunInfo.RightGun == SEL_GUN_ATHOR)) {
  97. return PASS;
  98. }
  99. return FAIL;
  100. }
  101. int waitLeftGunPlugIt(uint8_t curGun)
  102. {
  103. #if !defined DD360Audi
  104. return;
  105. #endif //!defined DD360Audi
  106. SelectGunInfo *pSelectGunInfo = (SelectGunInfo *)GetShmSelectGunInfo(); //Jerry add
  107. if ((curGun == LEFT_GUN_NUM) && (pSelectGunInfo->SelGunInfo.LeftGun == SEL_GUN_ATHOR)) {
  108. return PASS;
  109. }
  110. return FAIL;
  111. }
  112. void setSelGunWaitToAuthor(uint8_t curSel)
  113. {
  114. #if !defined DD360Audi
  115. return;
  116. #endif //!defined DD360Audi
  117. SelectGunInfo *pSelectGunInfo = (SelectGunInfo *)GetShmSelectGunInfo(); //Jerry add
  118. if (curSel == LEFT_GUN_NUM && pSelectGunInfo->SelGunInfo.LeftGun == SEL_GUN_CONFIRM) {
  119. pSelectGunInfo->SelGunInfo.LeftGun = SEL_GUN_ATHOR;
  120. //printf("setSelGunWaitToAuthor left");
  121. StopGunInfoTimeoutDet(curSel);
  122. } else if (curSel == RIGHT_GUN_NUM && pSelectGunInfo->SelGunInfo.RightGun == SEL_GUN_CONFIRM) {
  123. pSelectGunInfo->SelGunInfo.RightGun = SEL_GUN_ATHOR;
  124. //printf("setSelGunWaitToAuthor right");
  125. StopGunInfoTimeoutDet(curSel);
  126. }
  127. }
  128. int getConfirmSelectedGun(uint8_t curSel)
  129. {
  130. #if !defined DD360Audi
  131. return;
  132. #endif //!defined DD360Audi
  133. SelectGunInfo *pSelectGunInfo = (SelectGunInfo *)GetShmSelectGunInfo(); //Jerry add
  134. if (((curSel == LEFT_GUN_NUM) && (pSelectGunInfo->SelGunInfo.LeftGun >= SEL_GUN_CONFIRM)) ||
  135. ((curSel == RIGHT_GUN_NUM) && (pSelectGunInfo->SelGunInfo.RightGun >= SEL_GUN_CONFIRM))) {
  136. return PASS;
  137. }
  138. return FAIL;
  139. }
  140. void confirmSelGun(uint8_t selGun)
  141. {
  142. #if !defined DD360Audi
  143. return;
  144. #endif //!defined DD360Audi
  145. struct SysInfoData *pSysInfo = (struct SysInfoData *)GetShmSysInfoData();
  146. SelectGunInfo *pSelectGunInfo = (SelectGunInfo *)GetShmSelectGunInfo(); //Jerry add
  147. if (selGun == LEFT_GUN_NUM) {
  148. pSelectGunInfo->SelGunInfo.LeftGun = SEL_GUN_CONFIRM;
  149. StopGunInfoTimeoutDet(selGun);
  150. //printf("confirmSelGun left");
  151. } else if (selGun == RIGHT_GUN_NUM) {
  152. pSelectGunInfo->SelGunInfo.RightGun = SEL_GUN_CONFIRM;
  153. StopGunInfoTimeoutDet(selGun);
  154. //printf("confirmSelGun right");
  155. }
  156. pSysInfo->SystemPage = _LCM_IDLE;
  157. StartGunInfoTimeoutDet(selGun, Timeout_SelectGun);
  158. }
  159. #endif //0