|
@@ -10,7 +10,7 @@
|
|
|
|
|
|
struct COMMAND commandRaw;
|
|
|
struct timespec tmr[TIMER_CNT];
|
|
|
-uint16_t nSerial;
|
|
|
+uint16_t nSerial=0;
|
|
|
|
|
|
//==========================================
|
|
|
// Common routine
|
|
@@ -324,7 +324,7 @@ int pollingRequest(int uart, unsigned char* cmd)
|
|
|
length = ((cmd[1]<<8)|cmd[2])+4;
|
|
|
cmd[(length-1)] = calChksum(cmd);
|
|
|
|
|
|
- show_raw(cmd, length, NO);
|
|
|
+ // show_raw(cmd, length, NO);
|
|
|
|
|
|
if(write(uart, cmd, length ) > 0)
|
|
|
{
|
|
@@ -376,7 +376,7 @@ int pollingResponse(int uart, unsigned char* rx)
|
|
|
|
|
|
if(Total_len[0] >0)
|
|
|
{
|
|
|
- show_raw(rx, Total_len[1], YES);
|
|
|
+ // show_raw(rx, Total_len[1], YES);
|
|
|
|
|
|
CSUM[0] = rx[(((rx[1] << 8) | (rx[2]))+3)];
|
|
|
CSUM[1] = calChksum(&rx[0]);
|
|
@@ -435,6 +435,59 @@ xmlNode *find_node(xmlNode *node, char *node_name)
|
|
|
//==========================================
|
|
|
// Reader operation function
|
|
|
//==========================================
|
|
|
+int InfoMgmtRequest(int uart)
|
|
|
+{
|
|
|
+ char xmlBody[1024]={0};
|
|
|
+ int n;
|
|
|
+
|
|
|
+ xmlBuffer * outputXmlPtr = xmlBufferCreate();
|
|
|
+ xmlDocPtr doc = NULL;
|
|
|
+ xmlNodePtr node_req = NULL;
|
|
|
+ xmlNodePtr node_cmd = NULL;
|
|
|
+ xmlNodePtr node_param = NULL;
|
|
|
+ xmlNodePtr node_param_Info = NULL;
|
|
|
+
|
|
|
+ // Create xml message
|
|
|
+ doc = xmlNewDoc(BAD_CAST "1.0");
|
|
|
+ node_req = xmlNewNode(NULL, BAD_CAST "Req");
|
|
|
+ xmlDocSetRootElement(doc, node_req);
|
|
|
+
|
|
|
+ node_cmd = xmlNewNode(NULL, BAD_CAST "Cmd");
|
|
|
+ xmlNewChild(node_cmd, NULL, BAD_CAST "CmdId", BAD_CAST "InfoMgmt");
|
|
|
+ xmlNewChild(node_cmd, NULL, BAD_CAST "CmdTout", BAD_CAST "30");
|
|
|
+ xmlAddChild(node_req, node_cmd);
|
|
|
+
|
|
|
+ node_param = xmlNewNode(NULL, BAD_CAST "Param");
|
|
|
+ node_param_Info = xmlNewNode(NULL, BAD_CAST "Info");
|
|
|
+
|
|
|
+ xmlNewChild(node_param_Info, NULL, BAD_CAST "Id", BAD_CAST "GetSystemVer");
|
|
|
+
|
|
|
+ xmlAddChild(node_param, node_param_Info);
|
|
|
+ xmlAddChild(node_req, node_param);
|
|
|
+
|
|
|
+ xmlNodeDump(outputXmlPtr, NULL, (xmlNode *)node_req, 0, 0);
|
|
|
+ n = sprintf(xmlBody, "%s", (const char *)outputXmlPtr->content);
|
|
|
+
|
|
|
+ DEBUG_INFO("[%s] is a string %d chars long\n", xmlBody, n);
|
|
|
+
|
|
|
+ xmlBufferFree(outputXmlPtr);
|
|
|
+ xmlFreeDoc(doc);
|
|
|
+ xmlCleanupParser();
|
|
|
+ xmlMemoryDump();
|
|
|
+
|
|
|
+ // Create protocol message
|
|
|
+ memset(commandRaw.requestData, 0x00, ARRAY_SIZE(commandRaw.requestData));
|
|
|
+
|
|
|
+ commandRaw.requestData[0] = STX;
|
|
|
+ commandRaw.requestData[1] = (strlen(xmlBody)>>8)&0xff;
|
|
|
+ commandRaw.requestData[2] = (strlen(xmlBody)>>0)&0xff;
|
|
|
+ memcpy(&commandRaw.requestData[3], xmlBody, strlen(xmlBody));
|
|
|
+
|
|
|
+ //show_raw(&commandRaw.requestData[0], (strlen(xmlBody)+3), NO);
|
|
|
+
|
|
|
+ return pollingRequest(uart, commandRaw.requestData);
|
|
|
+}
|
|
|
+
|
|
|
int preAuthRequest(int uart)
|
|
|
{
|
|
|
char xmlBody[1024]={0};
|
|
@@ -472,7 +525,7 @@ int preAuthRequest(int uart)
|
|
|
xmlNodeDump(outputXmlPtr, NULL, (xmlNode *)node_req, 0, 0);
|
|
|
n = sprintf(xmlBody, "%s", (const char *)outputXmlPtr->content);
|
|
|
|
|
|
- printf ("[%s] is a string %d chars long\n", xmlBody, n);
|
|
|
+ DEBUG_INFO("[%s] is a string %d chars long\n", xmlBody, n);
|
|
|
|
|
|
xmlBufferFree(outputXmlPtr);
|
|
|
xmlFreeDoc(doc);
|
|
@@ -487,7 +540,7 @@ int preAuthRequest(int uart)
|
|
|
commandRaw.requestData[2] = (strlen(xmlBody)>>0)&0xff;
|
|
|
memcpy(&commandRaw.requestData[3], xmlBody, strlen(xmlBody));
|
|
|
|
|
|
- show_raw(&commandRaw.requestData[0], (strlen(xmlBody)+3), NO);
|
|
|
+ //show_raw(&commandRaw.requestData[0], (strlen(xmlBody)+3), NO);
|
|
|
|
|
|
return pollingRequest(uart, commandRaw.requestData);
|
|
|
}
|
|
@@ -551,24 +604,86 @@ int preAuthResponse(int uart)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- DEBUG_INFO("===== Get preAuth Response is Fail =====( %d)==========\n", nSerial++);
|
|
|
+ if((nSerial++ % 5)==0)
|
|
|
+ DEBUG_INFO("===== Get preAuth Response is Fail =====( %d)==========\n", (nSerial-1));
|
|
|
nSerial %= 0xffff;
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+int InfoMgmtResponse(int uart)
|
|
|
+{
|
|
|
+ int result = pollingResponse(uart, commandRaw.responseData);
|
|
|
+
|
|
|
+ //char *xmlTestBody = "<Resp><Cmd><CmdId>InfoMgmtResp</CmdId><StatusCode>001F</StatusCode><StatusText>TransactionDeferred</StatusText></Cmd>
|
|
|
+ // <Data><Info><Id>InfoMgmt</Id><SysVer>[System Firmware Version]</SysVer>
|
|
|
+ // <AppVer>[Application Version]</AppVer><SerialNum>[Serial Number]</SerialNum></Info></Data></Resp>";
|
|
|
+
|
|
|
+ char xmlTestBody[1024] = {0};
|
|
|
+
|
|
|
+ if(result == PASS)
|
|
|
+ {
|
|
|
+ memcpy(xmlTestBody, &commandRaw.responseData[3], ((commandRaw.responseData[1] << 8) | commandRaw.responseData[2]));
|
|
|
+
|
|
|
+ xmlDocPtr doc = xmlParseDoc((const xmlChar *)xmlTestBody);
|
|
|
+ xmlNode *root_element = xmlDocGetRootElement(doc);
|
|
|
+
|
|
|
+ if((find_node(root_element, "Resp") != NULL) && (strstr((char*)xmlNodeGetContent(find_node(root_element, "CmdId")), "InfoMgmtResp") != NULL))
|
|
|
+ {
|
|
|
+ DEBUG_INFO("===== Get InfoMgmt response =======================\n");
|
|
|
+ // ShmSysConfigAndInfo->SysInfo.bazel8.txResp.isGetOn = ON;
|
|
|
+
|
|
|
+ sprintf(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.statusCode, "%s", xmlNodeGetContent(find_node(root_element, "StatusCode")));
|
|
|
+ sprintf(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.statusText, "%s", xmlNodeGetContent(find_node(root_element, "StatusText")));
|
|
|
+
|
|
|
+ DEBUG_INFO("Status code: %s\n", ShmSysConfigAndInfo->SysInfo.bazel8.txResp.statusCode);
|
|
|
+ DEBUG_INFO("Status text: %s\n", ShmSysConfigAndInfo->SysInfo.bazel8.txResp.statusText);
|
|
|
+
|
|
|
+ if(strstr(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.statusCode,"0000") != NULL)
|
|
|
+ {
|
|
|
+ ShmSysConfigAndInfo->SysInfo.bazel8.txResp.isGetOn = ON;
|
|
|
+ sprintf(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.txnId, "%s", xmlNodeGetContent(find_node(root_element, "SysVer")));
|
|
|
+ DEBUG_INFO("System Firmware Version: %s\n", ShmSysConfigAndInfo->SysInfo.bazel8.txResp.txnId);
|
|
|
+ sprintf(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.txnId, "%s", xmlNodeGetContent(find_node(root_element, "AppVer")));
|
|
|
+ DEBUG_INFO("Application Version: %s\n", ShmSysConfigAndInfo->SysInfo.bazel8.txResp.txnId);
|
|
|
+ sprintf(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.txnId, "%s", xmlNodeGetContent(find_node(root_element, "SerialNum")));
|
|
|
+ DEBUG_INFO("Serial Number: %s\n", ShmSysConfigAndInfo->SysInfo.bazel8.txResp.txnId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ DEBUG_INFO("===== Get unknown node =======================\n");
|
|
|
+ }
|
|
|
+
|
|
|
+ //DEBUG_INFO("===== End 0 =======================\n");
|
|
|
+ xmlFreeDoc(doc);
|
|
|
+ //DEBUG_INFO("===== End 1 =======================\n");
|
|
|
+ xmlCleanupParser();
|
|
|
+ //DEBUG_INFO("===== End 2 =======================\n");
|
|
|
+ xmlMemoryDump();
|
|
|
+ //DEBUG_INFO("===== End 3 =======================\n");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if((nSerial++ % 5)==0)
|
|
|
+ DEBUG_INFO("===== Get InfoMgmt Response is Fail =====( %d)==========\n", (nSerial-1));
|
|
|
+ nSerial %= 0xffff;
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+}
|
|
|
//==========================================
|
|
|
// Main loop
|
|
|
//==========================================
|
|
|
int main(void)
|
|
|
{
|
|
|
int UartFd;
|
|
|
- int preAuthRetry = 0;
|
|
|
+ //int preAuthRetry = 0;
|
|
|
int cmdRepeatCount = 0;
|
|
|
|
|
|
// Henry
|
|
|
- int state[2] = {s_IDLE, s_IDLE};
|
|
|
+ int state[2] = {s_NONE, s_NONE};
|
|
|
//uint8_t Rx_Cir_Buf[1024];
|
|
|
//uint8_t Rx_Buf[1024];
|
|
|
//int Rx_Cir_Idx[2], Rx_Buf_Idx;
|
|
@@ -619,10 +734,11 @@ int main(void)
|
|
|
|
|
|
DEBUG_INFO("Payment module initialize completed.\n");
|
|
|
|
|
|
-// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = true; // from CSU
|
|
|
-// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isWaitRes = false;
|
|
|
-// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = false;
|
|
|
-// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = false;
|
|
|
+ ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = false; // from CSU
|
|
|
+ ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isWaitRes = false;
|
|
|
+ ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = false;
|
|
|
+ ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = false;
|
|
|
+ ShmStatusCodeData->AlarmCode.AlarmEvents.bits.PaymentCommTimeout = false;
|
|
|
|
|
|
//===============================================
|
|
|
// Main loop
|
|
@@ -648,51 +764,132 @@ int main(void)
|
|
|
*/
|
|
|
switch(state[0])
|
|
|
{
|
|
|
+ case s_NONE:
|
|
|
+ state[0] = s_INFO;
|
|
|
+ state[1] = s_NONE;
|
|
|
+ DEBUG_INFO(">> PayError: %d\n", ShmStatusCodeData->AlarmCode.AlarmEvents.bits.PaymentCommTimeout);
|
|
|
+ break;
|
|
|
+ case s_INFO:
|
|
|
+ if(state[0] != state[1])
|
|
|
+ {
|
|
|
+ state[1] = state[0];
|
|
|
+ cmdRepeatCount = 0;
|
|
|
+ DEBUG_INFO("Perpare Selftest...\n");
|
|
|
+ }
|
|
|
+
|
|
|
+ if(InfoMgmtRequest(UartFd))
|
|
|
+ {
|
|
|
+ cmdRepeatCount = 0;
|
|
|
+ refreshStartTimer(&tmr[TIMER_READ_RESPONSE]);
|
|
|
+ state[0] = s_INFO_WAIT_RESPONE;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ cmdRepeatCount++;
|
|
|
+ if(cmdRepeatCount > SPEC_REQUEST_RETRY)
|
|
|
+ {
|
|
|
+ DEBUG_WARN("preAuthRequest fail over count(%d).", cmdRepeatCount);
|
|
|
+
|
|
|
+ cmdRepeatCount = 0;
|
|
|
+ // Raise a error for Payment Task.
|
|
|
+ ShmStatusCodeData->AlarmCode.AlarmEvents.bits.PaymentCommTimeout = true;
|
|
|
+ DEBUG_INFO(" Raise a error for Payment Task...\n");
|
|
|
+ DEBUG_INFO(">> PayError: %d\n", ShmStatusCodeData->AlarmCode.AlarmEvents.bits.PaymentCommTimeout);
|
|
|
+
|
|
|
+ state[0] = s_NONE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case s_INFO_WAIT_RESPONE:
|
|
|
+ if(state[0] != state[1])
|
|
|
+ {
|
|
|
+ state[1] = state[0];
|
|
|
+ ShmSysConfigAndInfo->SysInfo.bazel8.txResp.isGetOn = OFF;
|
|
|
+ nSerial = 0;
|
|
|
+ DEBUG_INFO("Wait Selftest Respone...\n");
|
|
|
+ }
|
|
|
+
|
|
|
+ do {
|
|
|
+ if( InfoMgmtResponse(UartFd) )
|
|
|
+ {
|
|
|
+ if(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.isGetOn)
|
|
|
+ {
|
|
|
+ state[0] = s_IDLE;
|
|
|
+ ShmStatusCodeData->AlarmCode.AlarmEvents.bits.PaymentCommTimeout = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if((getDiffSecNow(tmr[TIMER_READ_RESPONSE]) > TIMEOUT_REQUEST))
|
|
|
+ {
|
|
|
+ DEBUG_WARN("Wait pre auth response timeout(%d secs).\n", TIMEOUT_REQUEST);
|
|
|
+
|
|
|
+ // Raise a error for Payment Task.
|
|
|
+ ShmStatusCodeData->AlarmCode.AlarmEvents.bits.PaymentCommTimeout = true;
|
|
|
+ DEBUG_INFO(" Raise a error for Payment Task...\n");
|
|
|
+ DEBUG_INFO(">> PayError: %d\n", ShmStatusCodeData->AlarmCode.AlarmEvents.bits.PaymentCommTimeout);
|
|
|
+
|
|
|
+ state[0] = s_NONE;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ } while (ShmSysConfigAndInfo->SysInfo.bazel8.txResp.isGetOn != ON);
|
|
|
+ break;
|
|
|
case s_IDLE:
|
|
|
if(state[0] != state[1])
|
|
|
{
|
|
|
state[1] = state[0];
|
|
|
- DEBUG_INFO(" >> Back to Idle.\n");
|
|
|
+ DEBUG_INFO(" Enter the Idle state...\n");
|
|
|
|
|
|
ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = false;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = false;
|
|
|
- //ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = false; // The CSU should be set to false.
|
|
|
+ DEBUG_INFO(">> isResultPass: %d\n", ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass);
|
|
|
+ DEBUG_INFO(">> isRes: %d\n", ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes);
|
|
|
}
|
|
|
|
|
|
if(ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq)
|
|
|
{
|
|
|
+ DEBUG_INFO(" Raise the isReq flag...\n");
|
|
|
+
|
|
|
ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = false;
|
|
|
+
|
|
|
+ strcpy((char *)ShmSysConfigAndInfo->SysInfo.bazel8.txResp.txnId, "");
|
|
|
+ strcpy((char *)ShmSysConfigAndInfo->SysInfo.bazel8.txResp.statusCode, "");
|
|
|
+ strcpy((char *)ShmSysConfigAndInfo->SysInfo.bazel8.txResp.statusText, "");
|
|
|
+
|
|
|
+ ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = false;
|
|
|
+ ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = false; // The CSU should be set to false.
|
|
|
+
|
|
|
state[0] = s_SEND_AUTH_ONLY;
|
|
|
}
|
|
|
break;
|
|
|
case s_SEND_AUTH_ONLY:
|
|
|
if(state[0] != state[1])
|
|
|
{
|
|
|
- state[1] = state[0];
|
|
|
-
|
|
|
- if(preAuthRequest(UartFd))
|
|
|
- {
|
|
|
- refreshStartTimer(&tmr[TIMER_READ_RESPONSE]);
|
|
|
-
|
|
|
- cmdRepeatCount = 0;
|
|
|
- state[0] = s_WAIT_RESPONE;
|
|
|
- }
|
|
|
+ state[1] = state[0];
|
|
|
+ cmdRepeatCount = 0;
|
|
|
+ DEBUG_INFO(" Send Auth-Only state...\n");
|
|
|
+ }
|
|
|
|
|
|
+ if(preAuthRequest(UartFd))
|
|
|
+ {
|
|
|
+ refreshStartTimer(&tmr[TIMER_READ_RESPONSE]);
|
|
|
+
|
|
|
+ cmdRepeatCount = 0;
|
|
|
+ state[0] = s_WAIT_RESPONE;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ cmdRepeatCount++;
|
|
|
if(cmdRepeatCount > SPEC_REQUEST_RETRY)
|
|
|
- {
|
|
|
- DEBUG_WARN("preAuthRequest fail over count(%d).", cmdRepeatCount);
|
|
|
-
|
|
|
- cmdRepeatCount = 0;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = false;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = false;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = true; // To tell CSU is done.
|
|
|
-
|
|
|
- state[0] = s_IDLE;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- cmdRepeatCount++;
|
|
|
- }
|
|
|
+ {
|
|
|
+ DEBUG_WARN("preAuthRequest fail over count(%d).", cmdRepeatCount);
|
|
|
+
|
|
|
+ cmdRepeatCount = 0;
|
|
|
+ ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = false;
|
|
|
+ ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = false;
|
|
|
+ ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = true; // To tell CSU is done.
|
|
|
+
|
|
|
+ state[0] = s_IDLE;
|
|
|
+ }
|
|
|
}
|
|
|
break;
|
|
|
case s_WAIT_RESPONE:
|
|
@@ -702,6 +899,7 @@ int main(void)
|
|
|
ShmSysConfigAndInfo->SysInfo.bazel8.txResp.isGetOn = OFF;
|
|
|
ShmSysConfigAndInfo->SysInfo.bazel8.event.isGetOn = OFF;
|
|
|
nSerial = 0;
|
|
|
+ DEBUG_INFO(" Wait Auth-Only Respone state...\n");
|
|
|
}
|
|
|
|
|
|
do {
|
|
@@ -712,9 +910,6 @@ int main(void)
|
|
|
// * 1. Announce CSU event content.
|
|
|
|
|
|
ShmSysConfigAndInfo->SysInfo.bazel8.event.isGetOn = false;
|
|
|
-
|
|
|
-// if(ShmSysConfigAndInfo->SysInfo.bazel8.event.messageId == 21) // Please Present Card.
|
|
|
-// refreshStartTimer(&tmr[TIMER_READ_RESPONSE]);
|
|
|
}
|
|
|
else if(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.isGetOn)
|
|
|
{
|
|
@@ -722,6 +917,9 @@ int main(void)
|
|
|
((strstr(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.statusCode, "0000") != NULL)?true:false);
|
|
|
|
|
|
ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = true; // To tell CSU is done.
|
|
|
+
|
|
|
+ DEBUG_INFO(">> isResultPass: %d\n", ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass);
|
|
|
+ DEBUG_INFO(">> isRes: %d\n", ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -746,86 +944,86 @@ int main(void)
|
|
|
|
|
|
return FAIL;
|
|
|
|
|
|
- for(;;)
|
|
|
- {
|
|
|
-
|
|
|
- // need to run the script first : run_evse_stop.sh
|
|
|
-
|
|
|
- if(ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq)
|
|
|
- {
|
|
|
-
|
|
|
- // Pre auth request
|
|
|
- if(!ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isWaitRes)
|
|
|
- {
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = false;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.event.isGetOn = false;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.txResp.isGetOn = false;
|
|
|
-
|
|
|
- if(preAuthRequest(UartFd))
|
|
|
- {
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isWaitRes = true;
|
|
|
- cmdRepeatCount = 0;
|
|
|
- refreshStartTimer(&tmr[TIMER_READ_RESPONSE]);
|
|
|
- }
|
|
|
-
|
|
|
- if(cmdRepeatCount > SPEC_REQUEST_RETRY)
|
|
|
- {
|
|
|
- DEBUG_WARN("preAuthRequest fail over count(%d).", cmdRepeatCount);
|
|
|
- cmdRepeatCount = 0;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = false;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = false;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- cmdRepeatCount += 1;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if((getInputBufferCount(UartFd) >= RAW_DATA_LENGTH))
|
|
|
- {
|
|
|
-
|
|
|
- //DEBUG_INFO("\n\rTo wait Payment preAuth Response.\n\r");
|
|
|
-
|
|
|
- if(preAuthResponse(UartFd))
|
|
|
- {
|
|
|
- if(ShmSysConfigAndInfo->SysInfo.bazel8.event.isGetOn)
|
|
|
- {
|
|
|
-
|
|
|
- // * 1. Announce CSU event content.
|
|
|
-
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.event.isGetOn = false;
|
|
|
- }
|
|
|
- else if(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.isGetOn)
|
|
|
- {
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = ((strstr(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.statusCode, "0000") != NULL)?true:false);
|
|
|
-
|
|
|
- if(ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass || (preAuthRetry++ >= 3))
|
|
|
- {
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = false;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = true;
|
|
|
-
|
|
|
- preAuthRetry = 0;
|
|
|
- }
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isWaitRes = false;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if((getDiffSecNow(tmr[TIMER_READ_RESPONSE]) > TIMEOUT_REQUEST))
|
|
|
- {
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = false;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isWaitRes = false;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = false;
|
|
|
- ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = true;
|
|
|
- DEBUG_WARN("Wait pre auth response timeout(%d secs).", TIMEOUT_REQUEST);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- sleep(3);
|
|
|
- }
|
|
|
-
|
|
|
- return FAIL;
|
|
|
+// for(;;)
|
|
|
+// {
|
|
|
+//
|
|
|
+// // need to run the script first : run_evse_stop.sh
|
|
|
+//
|
|
|
+// if(ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq)
|
|
|
+// {
|
|
|
+//
|
|
|
+// // Pre auth request
|
|
|
+// if(!ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isWaitRes)
|
|
|
+// {
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = false;
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.event.isGetOn = false;
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.txResp.isGetOn = false;
|
|
|
+//
|
|
|
+// if(preAuthRequest(UartFd))
|
|
|
+// {
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isWaitRes = true;
|
|
|
+// cmdRepeatCount = 0;
|
|
|
+// refreshStartTimer(&tmr[TIMER_READ_RESPONSE]);
|
|
|
+// }
|
|
|
+//
|
|
|
+// if(cmdRepeatCount > SPEC_REQUEST_RETRY)
|
|
|
+// {
|
|
|
+// DEBUG_WARN("preAuthRequest fail over count(%d).", cmdRepeatCount);
|
|
|
+// cmdRepeatCount = 0;
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = false;
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = false;
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = true;
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+// cmdRepeatCount += 1;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+// if((getInputBufferCount(UartFd) >= RAW_DATA_LENGTH))
|
|
|
+// {
|
|
|
+//
|
|
|
+// //DEBUG_INFO("\n\rTo wait Payment preAuth Response.\n\r");
|
|
|
+//
|
|
|
+// if(preAuthResponse(UartFd))
|
|
|
+// {
|
|
|
+// if(ShmSysConfigAndInfo->SysInfo.bazel8.event.isGetOn)
|
|
|
+// {
|
|
|
+//
|
|
|
+// // * 1. Announce CSU event content.
|
|
|
+//
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.event.isGetOn = false;
|
|
|
+// }
|
|
|
+// else if(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.isGetOn)
|
|
|
+// {
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = ((strstr(ShmSysConfigAndInfo->SysInfo.bazel8.txResp.statusCode, "0000") != NULL)?true:false);
|
|
|
+//
|
|
|
+// if(ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass || (preAuthRetry++ >= 3))
|
|
|
+// {
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = false;
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = true;
|
|
|
+//
|
|
|
+// preAuthRetry = 0;
|
|
|
+// }
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isWaitRes = false;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// if((getDiffSecNow(tmr[TIMER_READ_RESPONSE]) > TIMEOUT_REQUEST))
|
|
|
+// {
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isReq = false;
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isWaitRes = false;
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isResultPass = false;
|
|
|
+// ShmSysConfigAndInfo->SysInfo.bazel8.cmdPreAuth.isRes = true;
|
|
|
+// DEBUG_WARN("Wait pre auth response timeout(%d secs).", TIMEOUT_REQUEST);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// sleep(3);
|
|
|
+// }
|
|
|
+//
|
|
|
+// return FAIL;
|
|
|
}
|