|
@@ -1318,9 +1318,9 @@ int InitRfidPort()
|
|
|
return uartO2;
|
|
|
}
|
|
|
|
|
|
-//==========================================
|
|
|
+//===============================================
|
|
|
// Check internet access status
|
|
|
-//==========================================
|
|
|
+//===============================================
|
|
|
int isReachableInternet()
|
|
|
{
|
|
|
int result = FAIL;
|
|
@@ -1385,6 +1385,23 @@ int isReservationExpired(unsigned char gun_index)
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+//===============================================
|
|
|
+// Valid from local white list
|
|
|
+//===============================================
|
|
|
+int isValidLocalWhiteCard()
|
|
|
+{
|
|
|
+ uint8_t result = FAIL;
|
|
|
+ for(uint8_t idx=0;idx<ARRAY_SIZE(ShmSysConfigAndInfo->SysConfig.LocalWhiteCard);idx++)
|
|
|
+ {
|
|
|
+ if(strcmp((char*)ShmSysConfigAndInfo->SysConfig.UserId, (char*)ShmSysConfigAndInfo->SysConfig.LocalWhiteCard[idx]) == 0)
|
|
|
+ {
|
|
|
+ result = PASS;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
//===============================================
|
|
|
// Main process
|
|
|
//===============================================
|
|
@@ -1745,6 +1762,7 @@ int main(void)
|
|
|
// Authorization timeout process.
|
|
|
ShmCharger->rfidReq = OFF;
|
|
|
setChargerMode(gun_index, SYS_MODE_IDLE);
|
|
|
+ DEBUG_WARN("Authorize timeout!\r\n");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -1753,17 +1771,21 @@ int main(void)
|
|
|
case START_METHOD_RFID:
|
|
|
if(ShmOCPP16Data->SpMsg.bits.AuthorizeConf ||
|
|
|
(ShmSysConfigAndInfo->SysConfig.AuthorisationMode == AUTH_MODE_FREE) ||
|
|
|
- !ShmOCPP16Data->OcppConnStatus)
|
|
|
+ !ShmOCPP16Data->OcppConnStatus ||
|
|
|
+ ((isValidLocalWhiteCard() == PASS) && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_LOCALLIST)))
|
|
|
{
|
|
|
if((strcmp((char*)ShmOCPP16Data->Authorize.ResponseIdTagInfo.Status, "Accepted")==0) ||
|
|
|
(ShmSysConfigAndInfo->SysConfig.AuthorisationMode == AUTH_MODE_FREE) ||
|
|
|
- (!ShmOCPP16Data->OcppConnStatus&&(ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_FREE)))
|
|
|
+ (!ShmOCPP16Data->OcppConnStatus&&(ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_FREE)) ||
|
|
|
+ ((isValidLocalWhiteCard() == PASS) && (ShmSysConfigAndInfo->SysConfig.OfflinePolicy == OFF_POLICY_LOCALLIST)))
|
|
|
{
|
|
|
+ DEBUG_INFO("Authorize pass.\r\n");
|
|
|
setSpeaker(ON,SPEAKER_SHORT);
|
|
|
setChargerMode(gun_index, SYS_MODE_PREPARING);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ DEBUG_INFO("Authorize fail.\r\n");
|
|
|
setSpeaker(ON,SPEAKER_INTERVAL_3COUNT);
|
|
|
setChargerMode(gun_index, SYS_MODE_IDLE);
|
|
|
}
|