Bläddra i källkod

2022-03-23 / Wendell

Actions
1. [add] behavior (authorize fail and not permission to charge) when ForceCharging is enable
2. [add] behavior when customer code is PK and medel is DK
3. [mod] stop StopTransaction logic
4. [fix] dns path
5. modify subVersion to 05

Files
1. As follow commit history

Image version : V1.10.XX.XXXX.XX
Wendell 3 år sedan
förälder
incheckning
dedb34c928

+ 2 - 1
EVSE/Projects/DO360/Apps/Config.h

@@ -376,7 +376,8 @@ typedef union
         unsigned int BackendEnable:1;               // 0: backend disable,          1: backend enable
         unsigned int Wifi4gResetEnable:1;           // 0: wifi/4g reset io disable, 1: wifi/4g reset io enable
         unsigned int PsuInit:1;                     // 0: no effect,                1: psu is initialized
-        unsigned int res:18;
+        unsigned int Enable6ParallelRelay:1;        // 0: no effect,                1: enable 6 parallel relay
+        unsigned int res:17;
     }bits;
 }SystemControl;
 

+ 36 - 2
EVSE/Projects/DO360/Apps/Module_EvComm.c

@@ -1165,14 +1165,14 @@ void ChargingCapabilityResponse(int socket, struct PACKET_STRUCTURE *packet)
         ConnectorCapability[packet->Header.id - 1].TotalCost != lCost ||
         ConnectorCapability[packet->Header.id - 1].TransactionId != transaction)
 	{
-	    LOG_INFO("Connector %d TransactionId: %d UserPrice: %4.2f, Cost: %.2f [%s]",
+	    LOG_INFO("Connector %d TransactionId: %d UserPrice: %6.2f, Cost: %.2f [%s]",
             packet->Header.id, transaction, fPrice, fCost, ConnectorCapability[packet->Header.id - 1].CurrencyString);
 	}
 
     if(ConnectorCapability[packet->Header.id - 1].AccountBalance != lBalance ||
         ConnectorCapability[packet->Header.id - 1].CostDiscount != lDiscount)
     {
-        LOG_INFO("Connector %d TransactionId: %d Account: %7.2f, Discount: %.2f [%s]",
+        LOG_INFO("Connector %d TransactionId: %d Account: %8.2f, Discount: %.2f [%s]",
             packet->Header.id, transaction, fBalance, fDiscount, ConnectorCapability[packet->Header.id - 1].CurrencyString);
     }
 
@@ -2831,6 +2831,29 @@ BOOL ConnectorStateHandler(struct PACKET_STRUCTURE *packet, unsigned char dispen
 	return true;
 }
 
+bool IsEnableForceCharging(byte dispenserIndex, byte connectorId)
+{
+    if(connectorId != AUTO_GUN_SELECTION)
+    {
+        return ShmChargerInfo->Control.FCharging[connectorId - 1].FCtrl.bits.EnableForceCharging ? true : false;
+    }
+    else
+    {
+        int gun = 0;
+        for(int i = 0; i < ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].ConnectorQuantity; i++)
+        {
+            gun = ShmSysConfigAndInfo->SysInfo.DispenserInfo.Dispenser[dispenserIndex].ConnectorID[i] - 1;
+
+            if(ShmChargerInfo->Control.FCharging[gun].FCtrl.bits.EnableForceCharging)
+            {
+                return true;
+            }
+        }
+    }
+
+    return false;
+}
+
 AuthorizingInfoData preGunAuthInfo[GENERAL_GUN_QUANTITY];
 AuthorizingInfoData preDispenserAuthInfo[GENERAL_GUN_QUANTITY];
 
@@ -2846,6 +2869,11 @@ unsigned char UserIDHandler(struct PACKET_STRUCTURE *packet, unsigned char dispe
 
 	if(find || packet->Header.id == AUTO_GUN_SELECTION)
 	{
+        if(IsEnableForceCharging(dispenserIndex, packet->Header.id))
+        {
+            return _DAS_NotAllowed;
+        }
+
 	    length = packet->Header.len - 1;
 	    memset(CardNumber, 0x00, sizeof(CardNumber));
 	    memcpy(CardNumber, packet->Payload.data, length);
@@ -3025,6 +3053,12 @@ unsigned char ChargingPermissionHandler(struct PACKET_STRUCTURE *packet, unsigne
             default:
                 break;
 	    }
+
+        if(IsEnableForceCharging(dispenserIndex, packet->Header.id))
+        {
+            // not allow to charging when EnableForceCharging is true
+            permission = _DAS_NotAllowed;
+        }
 	}
 	else
 	{

+ 12 - 5
EVSE/Projects/DO360/Apps/main.c

@@ -388,7 +388,7 @@ bool isModelNameMatch = true;
 //char* rfidPortName = "/dev/ttyS2";
 #if ENABLE_PCBA_TEST == 0
 char* fwVersion = "V1.10.00.0000.00";
-char* subVersion = "04";
+char* subVersion = "05";
 #else
 char* fwVersion = "PCBA.00.04";
 char* subVersion = "00";
@@ -1573,7 +1573,7 @@ void MasterCabinetDhcpClientConfig(void)
     system("killall udhcpc");
     system("rm -rf /etc/resolv.conf");
     system("echo nameserver 8.8.8.8 > /etc/resolv.conf");       //Google DNS server
-    system("echo nameserver 180.76.76.76 > /etc/resolv.conf");  //Baidu DNS server
+    system("echo nameserver 180.76.76.76 >> /etc/resolv.conf"); //Baidu DNS server
     //system("/sbin/ifconfig eth0 down;/sbin/ifconfig eth0 up");
 
     if(ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthDhcpClient == 0)
@@ -2171,7 +2171,10 @@ bool InitialChargerSetting(void)
     }
     else if(ShmSysConfigAndInfo->SysConfig.ModelName[0] == 'D' && ShmSysConfigAndInfo->SysConfig.ModelName[1] == 'K')
     {
-        ShmChargerInfo->Control.SysCtrl.bits.FanBoardDisable = true;
+        if(!(ShmSysConfigAndInfo->SysConfig.ModelName[12] == 'P' && ShmSysConfigAndInfo->SysConfig.ModelName[13] == 'K'))
+        {
+            ShmChargerInfo->Control.SysCtrl.bits.FanBoardDisable = true;
+        }
         ShmChargerInfo->Control.SysCtrl.bits.LedBoardDisable = true;
 
         ShmChargerInfo->Control.SysCtrl.bits.DKLedIndication = true;
@@ -6937,6 +6940,10 @@ void OcppStartTransaction(byte gunIndex)
     // set deduct user id
     //Set_Deduct_UserId(gunIndex, (char *)&chargingInfo[gunIndex]->StartUserId);
 
+    // initial start & stop datetime
+    strcpy((char *)chargingInfo[gunIndex]->StartDateTime, "00:00:00");
+    strcpy((char *)chargingInfo[gunIndex]->StopDateTime, "00:00:00");
+
 	Set_Ocpp_StartTransactionId(gunIndex, (char *)chargingInfo[gunIndex]->StartUserId);
 
 	LOG_INFO("Gun %d Start Transaction IdTag = %s", chargingInfo[gunIndex]->Index + 1, chargingInfo[gunIndex]->StartUserId);
@@ -8893,8 +8900,8 @@ int main(void)
                             LOG_INFO("==================        S_IDLE (%x)        ================== \n", gun_index + 1);
                             chargingInfo[gun_index]->PresentChargedDuration = 0;
                             chargingInfo[gun_index]->RemainChargingDuration = 0;
-                            strcpy((char *)chargingInfo[gun_index]->StartDateTime, "00:00:00");
-                            strcpy((char *)chargingInfo[gun_index]->StopDateTime, "00:00:00");
+                            strcpy((char *)chargingInfo[gun_index]->StartDateTime, "");
+                            strcpy((char *)chargingInfo[gun_index]->StopDateTime, "");
                             strcpy((char *)chargingInfo[gun_index]->StartUserId, "");
                             Clean_Ocpp_StopReason(gun_index);
                             ReleaseAlarmCode(gun_index);

BIN
EVSE/Projects/DO360/Images/FactoryDefaultConfig.bin


BIN
EVSE/Projects/DO360/Images/ramdisk.gz