|
@@ -80,6 +80,7 @@ unsigned char mask_table[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 };
|
|
|
int whileLoopTime = 10000; // 10 ms
|
|
|
int wtdFd = -1;
|
|
|
byte _authorizeIndex = NO_DEFINE;
|
|
|
+byte _eThernetUsage = _ETHERNET_USAGE_NONE;
|
|
|
|
|
|
bool IsAuthorizingMode();
|
|
|
void ClearAuthorizedFlag();
|
|
@@ -1027,12 +1028,16 @@ void InitEthernet()
|
|
|
ethResult = NO;
|
|
|
}
|
|
|
|
|
|
- if (!ethResult && ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W')
|
|
|
+ if (!ethResult &&
|
|
|
+ (ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W' ||
|
|
|
+ ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'D'))
|
|
|
{
|
|
|
ethResult = !ShmStatusCodeData->InfoCode.InfoEvents.bits.InternetDisconnectViaWiFi;
|
|
|
}
|
|
|
|
|
|
- if (!ethResult && ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'T')
|
|
|
+ if (!ethResult &&
|
|
|
+ (ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'T' ||
|
|
|
+ ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'D'))
|
|
|
{
|
|
|
ethResult = !ShmStatusCodeData->InfoCode.InfoEvents.bits.InternetDisconnectVia4Gi;
|
|
|
}
|
|
@@ -1165,6 +1170,10 @@ void GetFirmwareVersion()
|
|
|
// 3G/4G
|
|
|
ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev[9] = '2';
|
|
|
break;
|
|
|
+ case 'D':
|
|
|
+ // Wi-Fi + 3G/4G
|
|
|
+ ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev[9] = '5';
|
|
|
+ break;
|
|
|
default:
|
|
|
// LAN
|
|
|
ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev[9] = '0';
|
|
@@ -1611,12 +1620,14 @@ int SpawnTask()
|
|
|
system("/root/OcppBackend &");
|
|
|
}
|
|
|
|
|
|
- if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'T')
|
|
|
+ if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'T' ||
|
|
|
+ ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'D')
|
|
|
{
|
|
|
system("/root/Module_4g &");
|
|
|
}
|
|
|
|
|
|
- if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W')
|
|
|
+ if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W' ||
|
|
|
+ ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'D')
|
|
|
{
|
|
|
system("/root/Module_Wifi &");
|
|
|
}
|
|
@@ -4496,12 +4507,15 @@ void CheckIsAlternatvieByModelName()
|
|
|
if(strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWWU301J0UE1PH") == EQUAL ||
|
|
|
strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWWU301J0UW1PH") == EQUAL ||
|
|
|
strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWWU301J0UT1PH") == EQUAL ||
|
|
|
+ strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWWU301J0UD1PH") == EQUAL ||
|
|
|
strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWYE301J0EE1PH") == EQUAL ||
|
|
|
strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWYE301J0EW1PH") == EQUAL ||
|
|
|
strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWYE301J0ET1PH") == EQUAL ||
|
|
|
+ strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWYE301J0ED1PH") == EQUAL ||
|
|
|
strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWYC301J0UE1PH") == EQUAL ||
|
|
|
strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWYC301J0UW1PH") == EQUAL ||
|
|
|
- strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWYC301J0UT1PH") == EQUAL)
|
|
|
+ strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWYC301J0UT1PH") == EQUAL ||
|
|
|
+ strcmp((char *)ShmSysConfigAndInfo->SysConfig.ModelName, "DWYC301J0UD1PH") == EQUAL)
|
|
|
ShmSysConfigAndInfo->SysInfo.IsAlternatvieConf = YES;
|
|
|
else
|
|
|
ShmSysConfigAndInfo->SysInfo.IsAlternatvieConf = NO;
|
|
@@ -4568,7 +4582,8 @@ void ClearAlarmCodeWhenAcOff()
|
|
|
//==========================================
|
|
|
void CheckTask()
|
|
|
{
|
|
|
- if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'T')
|
|
|
+ if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'T' ||
|
|
|
+ ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'D')
|
|
|
{
|
|
|
if(system("pidof -s Module_4g > /dev/null") != 0)
|
|
|
{
|
|
@@ -4576,7 +4591,9 @@ void CheckTask()
|
|
|
system("/root/Module_4g &");
|
|
|
}
|
|
|
}
|
|
|
- else if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W')
|
|
|
+
|
|
|
+ if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W' ||
|
|
|
+ ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'D')
|
|
|
{
|
|
|
if(system("pidof -s Module_Wifi > /dev/null") != 0)
|
|
|
{
|
|
@@ -4602,6 +4619,48 @@ void CheckTask()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+//==========================================
|
|
|
+// Check task processing
|
|
|
+//==========================================
|
|
|
+void CheckEthernetUsage()
|
|
|
+{
|
|
|
+ if (!ShmStatusCodeData->InfoCode.InfoEvents.bits.InternetDisconnectViaEthernet)
|
|
|
+ {
|
|
|
+ if (_eThernetUsage != _ETHERNET_USAGE_LAN)
|
|
|
+ {
|
|
|
+ system("ifmetric eth0 0");
|
|
|
+ system("ifmetric mlan0 1");
|
|
|
+ system("ifmetric ppp0 2");
|
|
|
+ _eThernetUsage = _ETHERNET_USAGE_LAN;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!ShmStatusCodeData->InfoCode.InfoEvents.bits.InternetDisconnectViaWiFi)
|
|
|
+ {
|
|
|
+ if (_eThernetUsage != _ETHERNET_USAGE_WIFI)
|
|
|
+ {
|
|
|
+ system("ifmetric eth0 0");
|
|
|
+ system("ifmetric mlan0 1");
|
|
|
+ system("ifmetric ppp0 2");
|
|
|
+ _eThernetUsage = _ETHERNET_USAGE_WIFI;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!ShmStatusCodeData->InfoCode.InfoEvents.bits.InternetDisconnectVia4Gi)
|
|
|
+ {
|
|
|
+ if (_eThernetUsage != _ETHERNET_USAGE_3G_4g)
|
|
|
+ {
|
|
|
+ system("ifmetric eth0 0");
|
|
|
+ system("ifmetric mlan0 1");
|
|
|
+ system("ifmetric ppp0 2");
|
|
|
+ _eThernetUsage = _ETHERNET_USAGE_3G_4g;
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
//==========================================
|
|
|
// Check Smart Charging Profile
|
|
|
//==========================================
|
|
@@ -4907,6 +4966,7 @@ int main(void)
|
|
|
if ((GetTimeoutValue(_cmdMainPriority_time) / 1000) > 5000)
|
|
|
{
|
|
|
CheckTask();
|
|
|
+ CheckEthernetUsage();
|
|
|
for (byte _index = 0; _index < ShmSysConfigAndInfo->SysConfig.TotalConnectorCount; _index++)
|
|
|
{
|
|
|
if (chargingInfo[_index]->SystemStatus == S_CHARGING)
|