|
@@ -19,7 +19,7 @@ static struct SysInfoData *pSysInfo = NULL;
|
|
bool isDeductDb_ready;
|
|
bool isDeductDb_ready;
|
|
//------------------------------------------------------------------------------
|
|
//------------------------------------------------------------------------------
|
|
static char *rfidPortName = "/dev/ttyS2";
|
|
static char *rfidPortName = "/dev/ttyS2";
|
|
-int fd = -1;
|
|
|
|
|
|
+
|
|
static bool isCardScan = false;
|
|
static bool isCardScan = false;
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
//------------------------------------------------------------------------------
|
|
@@ -278,27 +278,24 @@ void AuthorizeToCharge()
|
|
if(isAuthorizedComplete())
|
|
if(isAuthorizedComplete())
|
|
{
|
|
{
|
|
// StopSystemTimeoutDet();
|
|
// StopSystemTimeoutDet();
|
|
- // StartSystemTimeoutDet(Timeout_WaitBalance);
|
|
|
|
- // if (ShmSelectGunInfo->PricesInfo[pSysInfo->CurGunSelected].Balance != FAIL_BALANCE_PRICES)
|
|
|
|
- {
|
|
|
|
- // StopSystemTimeoutDet();
|
|
|
|
|
|
+ StartSystemTimeoutDet(Timeout_WaitBalance);
|
|
|
|
+ if (ShmSelectGunInfo->PricesInfo[pSysInfo->CurGunSelected].Balance != FAIL_BALANCE_PRICES) {
|
|
|
|
+ StopSystemTimeoutDet();
|
|
// 判斷後台回覆狀態
|
|
// 判斷後台回覆狀態
|
|
if (canStartCharging()) {
|
|
if (canStartCharging()) {
|
|
// LCM => Authorize complete
|
|
// LCM => Authorize complete
|
|
//pDcChargingInfo->SystemStatus = S_AUTHORIZING;
|
|
//pDcChargingInfo->SystemStatus = S_AUTHORIZING;
|
|
//pSysInfo->SystemPage = _PAGE_PLUGIN;
|
|
//pSysInfo->SystemPage = _PAGE_PLUGIN;
|
|
//log_info("Wait Gun(%d) plugin",pSysInfo->CurGunSelected);
|
|
//log_info("Wait Gun(%d) plugin",pSysInfo->CurGunSelected);
|
|
- if (ShmDcCommonData->AuthPass_flag[pSysInfo->CurGunSelected] == TRUE) {
|
|
|
|
- DetectPluginStart();
|
|
|
|
- pSysInfo->SystemPage = _PAGE_PLUGIN;
|
|
|
|
- log_info("Authorize Complete can plugin gun");
|
|
|
|
- }
|
|
|
|
|
|
+ DetectPluginStart();
|
|
|
|
+ if (ShmDcCommonData->AuthPass_flag[pSysInfo->CurGunSelected] == TRUE)
|
|
|
|
+ pSysInfo->SystemPage = _PAGE_PLUGIN;
|
|
//log_info("Gun(%d) Balance: %f",pSysInfo->CurGunSelected,
|
|
//log_info("Gun(%d) Balance: %f",pSysInfo->CurGunSelected,
|
|
// ShmSelectGunInfo->PricesInfo[pSysInfo->CurGunSelected].Balance);
|
|
// ShmSelectGunInfo->PricesInfo[pSysInfo->CurGunSelected].Balance);
|
|
} else {
|
|
} else {
|
|
- //log_info("LCM => Authorize fail");
|
|
|
|
|
|
+ log_info("LCM => Authorize fail");
|
|
//pSysInfo->SystemPage = _PAGE_AUTHORIZE_FAIL;
|
|
//pSysInfo->SystemPage = _PAGE_AUTHORIZE_FAIL;
|
|
- //strcpy((char *)pSysConfig->UserId, "");
|
|
|
|
|
|
+ strcpy((char *)pSysConfig->UserId, "");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
ClearAuthorizedFlag();
|
|
ClearAuthorizedFlag();
|
|
@@ -353,6 +350,7 @@ void PreAuthCompleteToCardReader(int fd,uint8_t gunIndex)
|
|
result = CreditCardPreAuthComplete(fd,(int)ShmDcCommonData->finalcost[pSysInfo->CurGunSelected] ,"TCC Test",
|
|
result = CreditCardPreAuthComplete(fd,(int)ShmDcCommonData->finalcost[pSysInfo->CurGunSelected] ,"TCC Test",
|
|
&ShmDcCommonData->pCreditCard[gunIndex].VemData[0],
|
|
&ShmDcCommonData->pCreditCard[gunIndex].VemData[0],
|
|
&ShmDcCommonData->pCreditCard[gunIndex]);
|
|
&ShmDcCommonData->pCreditCard[gunIndex]);
|
|
|
|
+
|
|
//result = 1;
|
|
//result = 1;
|
|
if (result > 0 ) {
|
|
if (result > 0 ) {
|
|
log_info("Credit Card Spend Money:%.1f",ShmDcCommonData->finalcost[gunIndex]);
|
|
log_info("Credit Card Spend Money:%.1f",ShmDcCommonData->finalcost[gunIndex]);
|
|
@@ -406,7 +404,7 @@ void CreateRfidFork(void)
|
|
struct timeb SeqEndTime;
|
|
struct timeb SeqEndTime;
|
|
struct tm *tm;
|
|
struct tm *tm;
|
|
pSysInfo = (struct SysInfoData *)GetShmSysInfoData();
|
|
pSysInfo = (struct SysInfoData *)GetShmSysInfoData();
|
|
-
|
|
|
|
|
|
+ int fd = -1;
|
|
int isContinue = 1;
|
|
int isContinue = 1;
|
|
RFID rfid = {0};
|
|
RFID rfid = {0};
|
|
RecordTransactionInfo deduct;
|
|
RecordTransactionInfo deduct;
|
|
@@ -483,20 +481,15 @@ void CreateRfidFork(void)
|
|
is_idle = TRUE;
|
|
is_idle = TRUE;
|
|
}
|
|
}
|
|
|
|
|
|
- if (ShmDcCommonData->finalcost_flag[gunIndex]) {
|
|
|
|
- StopGunInfoTimeoutDet(gunIndex); //Timeout_FinalCost
|
|
|
|
- pSysInfo->SystemPage = _PAGE_PAYING;
|
|
|
|
- if (ShmDcCommonData->finalcost[gunIndex] < 1) {
|
|
|
|
- ShmDcCommonData->PreAuth_Config = _CREDITCARD_CANCEL;
|
|
|
|
- pSysInfo->SystemPage = _PAGE_COMPLETE;
|
|
|
|
|
|
+ if (ShmDcCommonData->StopCharge[gunIndex] == TRUE && ShmDcCommonData->finalcost_flag[gunIndex]) {
|
|
|
|
+ if (ShmDcCommonData->finalcost[gunIndex] <= 0) {
|
|
|
|
+
|
|
} else {
|
|
} else {
|
|
ShmDcCommonData->StopCharge[gunIndex] = FALSE;
|
|
ShmDcCommonData->StopCharge[gunIndex] = FALSE;
|
|
-
|
|
|
|
|
|
+ StopGunInfoTimeoutDet(gunIndex); //Timeout_FinalCost
|
|
PreAuthCompleteToCardReader(fd,gunIndex);
|
|
PreAuthCompleteToCardReader(fd,gunIndex);
|
|
ShmDcCommonData->PayFinish[gunIndex] = TRUE;
|
|
ShmDcCommonData->PayFinish[gunIndex] = TRUE;
|
|
}
|
|
}
|
|
- ShmDcCommonData->finalcost_flag[gunIndex] = FALSE;
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
} // for
|
|
} // for
|
|
if (is_idle == TRUE && tm->tm_min%15 == 0 &&
|
|
if (is_idle == TRUE && tm->tm_min%15 == 0 &&
|
|
@@ -507,7 +500,7 @@ void CreateRfidFork(void)
|
|
result = CreditCardPreAuthComplete(fd,(int)ShmDcCommonData->ReAuthComplete.Amount ,"TCC Test",
|
|
result = CreditCardPreAuthComplete(fd,(int)ShmDcCommonData->ReAuthComplete.Amount ,"TCC Test",
|
|
&ShmDcCommonData->ReAuthComplete.VemData[0],
|
|
&ShmDcCommonData->ReAuthComplete.VemData[0],
|
|
&ShmDcCommonData->pCreditCard[0]);
|
|
&ShmDcCommonData->pCreditCard[0]);
|
|
- sleep(10);
|
|
|
|
|
|
+ sleep(10);
|
|
if (result > 0) {
|
|
if (result > 0) {
|
|
ShmDcCommonData->ReAuthComplete.DeductResult = YES;
|
|
ShmDcCommonData->ReAuthComplete.DeductResult = YES;
|
|
ShmDcCommonData->ReAuthComplete.IsUpload = NO;
|
|
ShmDcCommonData->ReAuthComplete.IsUpload = NO;
|
|
@@ -524,37 +517,25 @@ void CreateRfidFork(void)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(ShmDcCommonData->PreAuth_Config == _CREDITCARD_CANCEL) {
|
|
if(ShmDcCommonData->PreAuth_Config == _CREDITCARD_CANCEL) {
|
|
-
|
|
|
|
- log_info("PreAuth Cancel ApprovalNo:%s",&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].ApprovalNo[0]);
|
|
|
|
- log_info("PreAuth Cancel CardNo:%s",&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].CardNo[0]);
|
|
|
|
- log_info("PreAuth Cancel VemData:%s",&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].VemData[0]);
|
|
|
|
-
|
|
|
|
ShmDcCommonData->PreAuth_Result = CreditCardPreAuthCancel(fd,PREAUTHMONEY,"TCC Test",
|
|
ShmDcCommonData->PreAuth_Result = CreditCardPreAuthCancel(fd,PREAUTHMONEY,"TCC Test",
|
|
&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].ApprovalNo[0],
|
|
&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].ApprovalNo[0],
|
|
&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].CardNo[0],
|
|
&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].CardNo[0],
|
|
&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].VemData[0]);
|
|
&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].VemData[0]);
|
|
- sleep(10);
|
|
|
|
|
|
+ sleep(10);
|
|
if (ShmDcCommonData->PreAuth_Result > 0 ) {
|
|
if (ShmDcCommonData->PreAuth_Result > 0 ) {
|
|
strcpy((char *)pSysConfig->UserId,"");
|
|
strcpy((char *)pSysConfig->UserId,"");
|
|
- log_info("Credit Card Cancel Stop");
|
|
|
|
- ShmDcCommonData->TradeCancel = FALSE;
|
|
|
|
- ShmDcCommonData->finalcost_flag[gunIndex] = FALSE;
|
|
|
|
|
|
+ log_info("Card Reader Stop");
|
|
memset(&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected], 0, sizeof(TransInfo));
|
|
memset(&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected], 0, sizeof(TransInfo));
|
|
} else if (ShmDcCommonData->PreAuth_Result < 0) {
|
|
} else if (ShmDcCommonData->PreAuth_Result < 0) {
|
|
- log_info("Credit Card Cancel Fail");
|
|
|
|
|
|
+ log_info("Car Reader Stop Fail");
|
|
|
|
|
|
}
|
|
}
|
|
ShmDcCommonData->PreAuth_Config = _CREDITCARD_IDLE;
|
|
ShmDcCommonData->PreAuth_Config = _CREDITCARD_IDLE;
|
|
} else if (ShmDcCommonData->PreAuth_Config == _CREDITCARD_PREAUTH) {
|
|
} else if (ShmDcCommonData->PreAuth_Config == _CREDITCARD_PREAUTH) {
|
|
-
|
|
|
|
result = CreditCardPreAuth(fd, PREAUTHMONEY,"TCC Test", &ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected]);
|
|
result = CreditCardPreAuth(fd, PREAUTHMONEY,"TCC Test", &ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected]);
|
|
- log_info("PreAuth ApprovalNo:%s",&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].ApprovalNo[0]);
|
|
|
|
- log_info("PreAuth CardNo:%s",&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].CardNo[0]);
|
|
|
|
- log_info("PreAuth VemData:%s",&ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].VemData[0]);
|
|
|
|
-
|
|
|
|
|
|
+ sleep(10);
|
|
//result = 1;
|
|
//result = 1;
|
|
if (result > 0) {
|
|
if (result > 0) {
|
|
- sleep(10);
|
|
|
|
ShmDcCommonData->AuthPass_flag[pSysInfo->CurGunSelected] = TRUE;
|
|
ShmDcCommonData->AuthPass_flag[pSysInfo->CurGunSelected] = TRUE;
|
|
//pSysInfo->SystemPage = _PAGE_PLUGIN;
|
|
//pSysInfo->SystemPage = _PAGE_PLUGIN;
|
|
//strncpy((char *)pSysConfig->UserId,ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].CardNo,20);
|
|
//strncpy((char *)pSysConfig->UserId,ShmDcCommonData->pCreditCard[pSysInfo->CurGunSelected].CardNo,20);
|