|
@@ -36,8 +36,8 @@ static SymStruct modelTable[] = {
|
|
|
{ "DQ", MODEL_DQ },
|
|
|
{ "DK", MODEL_DK },
|
|
|
{ "DX", MODEL_DX },
|
|
|
- { "DB", MODEL_DB },
|
|
|
- { "DH", MODEL_DH },
|
|
|
+ { "DB", MODEL_DB },
|
|
|
+ { "DH", MODEL_DH },
|
|
|
};
|
|
|
|
|
|
static SymStruct regulationTable[] = {
|
|
@@ -58,8 +58,8 @@ static SymStruct regulationTable[] = {
|
|
|
};
|
|
|
|
|
|
static SymStruct powerTable[] = {
|
|
|
- {"201", POWER_20W},
|
|
|
- {"251", POWER_25W},
|
|
|
+ {"201", POWER_20W},
|
|
|
+ {"251", POWER_25W},
|
|
|
{"301", POWER_30W},
|
|
|
{"601", POWER_60W},
|
|
|
{"801", POWER_80W},
|
|
@@ -106,9 +106,10 @@ static SymStruct gunTypeTable[] = {
|
|
|
{"B", GUN_TYPE_B},
|
|
|
{"H", GUN_TYPE_H},
|
|
|
{"A", GUN_TYPE_A},
|
|
|
- {"L", GUN_TYPE_L},
|
|
|
- {"Y", GUN_TYPE_Y},
|
|
|
- {"Z", GUN_TYPE_Z},
|
|
|
+ {"L", GUN_TYPE_L},
|
|
|
+ {"Y", GUN_TYPE_Y},
|
|
|
+ {"Z", GUN_TYPE_Z},
|
|
|
+ {"S", GUN_TYPE_S},
|
|
|
};
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
@@ -169,7 +170,7 @@ static int keyfromstring(char *key, SymStruct *table, int tableCount)
|
|
|
}
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
-static uint16_t defaultRatedCurrent(uint8_t modelType, uint32_t gunType, int powerKey)
|
|
|
+static uint16_t defaultRatedCurrent(uint8_t modelType, uint32_t gunType, int powerKey, int reguKey)
|
|
|
{
|
|
|
uint16_t ret = RC_0A;
|
|
|
|
|
@@ -184,7 +185,7 @@ static uint16_t defaultRatedCurrent(uint8_t modelType, uint32_t gunType, int pow
|
|
|
|
|
|
if(powerKey < POWER_30W)
|
|
|
{
|
|
|
- powerKey = POWER_30W;
|
|
|
+ powerKey = POWER_30W;
|
|
|
}
|
|
|
|
|
|
switch (gunType) {
|
|
@@ -192,7 +193,20 @@ static uint16_t defaultRatedCurrent(uint8_t modelType, uint32_t gunType, int pow
|
|
|
if(powerKey == POWER_30W)
|
|
|
ret = RC_60A;
|
|
|
else if(powerKey >= POWER_60W)
|
|
|
- ret = RC_120A;
|
|
|
+ {
|
|
|
+ if(reguKey == REG_JARI)
|
|
|
+ {
|
|
|
+ ret = RC_125A;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ret = RC_120A;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case GUN_TYPE_S:
|
|
|
+ ret = RC_200A;
|
|
|
break;
|
|
|
|
|
|
case GUN_TYPE_U:
|
|
@@ -238,7 +252,7 @@ static uint16_t defaultRatedCurrent(uint8_t modelType, uint32_t gunType, int pow
|
|
|
|
|
|
case GUN_TYPE_T:
|
|
|
case GUN_TYPE_D:
|
|
|
- ret = RC_300A;
|
|
|
+ ret = RC_500A;
|
|
|
break;
|
|
|
|
|
|
case GUN_TYPE_H:
|
|
@@ -250,14 +264,13 @@ static uint16_t defaultRatedCurrent(uint8_t modelType, uint32_t gunType, int pow
|
|
|
break;
|
|
|
|
|
|
case GUN_TYPE_L:
|
|
|
- ret = RC_80A;
|
|
|
- break;
|
|
|
+ ret = RC_80A;
|
|
|
+ break;
|
|
|
|
|
|
case GUN_TYPE_Y:
|
|
|
case GUN_TYPE_Z:
|
|
|
- ret = RC_150A;
|
|
|
- break;
|
|
|
-
|
|
|
+ ret = RC_150A;
|
|
|
+ break;
|
|
|
|
|
|
case GUN_TYPE_0:
|
|
|
ret = RC_0A;
|
|
@@ -271,8 +284,8 @@ static uint16_t defaultRatedCurrent(uint8_t modelType, uint32_t gunType, int pow
|
|
|
case GUN_TYPE_6:
|
|
|
case GUN_TYPE_7:
|
|
|
case GUN_TYPE_8:
|
|
|
- ret = RC_0A;
|
|
|
- break;
|
|
|
+ ret = RC_0A;
|
|
|
+ break;
|
|
|
|
|
|
default:
|
|
|
log_error("Gun type is not defined: 0x%x\r\n", gunType);
|
|
@@ -350,6 +363,14 @@ static uint16_t exchangeRatingCur(uint32_t key)
|
|
|
case DS_CE_60_E:
|
|
|
return RC_120A; //rating current 120A
|
|
|
|
|
|
+ //125A J For JARI / Japan Market
|
|
|
+ case DS_JARI_60_J:
|
|
|
+ case DS_JARI_90_J:
|
|
|
+ case DS_JARI_120_J:
|
|
|
+ case DS_JARI_150_J:
|
|
|
+ case DS_JARI_180_J:
|
|
|
+ return RC_125A; //rating current 125A
|
|
|
+
|
|
|
//200A U
|
|
|
case DD_CE_180_U:
|
|
|
case DD_CE_360_U:
|
|
@@ -445,7 +466,7 @@ static uint16_t exchangeRatingCur(uint32_t key)
|
|
|
|
|
|
case DD_CNS_180_D:
|
|
|
case DD_CNS_360_D:
|
|
|
- return RC_300A;
|
|
|
+ return RC_500A;
|
|
|
|
|
|
//500A V
|
|
|
case DD_CE_180_V:
|
|
@@ -500,6 +521,8 @@ static void exchangeGunTypeAndVolValue(uint8_t key, GunTypeAndVolInfo *gunAndVol
|
|
|
|
|
|
case GUN_TYPE_J:// : CHAdeMO
|
|
|
case GUN_TYPE_K:
|
|
|
+ case GUN_TYPE_L:
|
|
|
+ case GUN_TYPE_S:
|
|
|
pGunAndVol->GunType = Gun_Type_Chademo;
|
|
|
pGunAndVol->GunVoltage = VOL_CHADEMO;
|
|
|
break;
|
|
@@ -528,14 +551,14 @@ static void exchangeGunTypeAndVolValue(uint8_t key, GunTypeAndVolInfo *gunAndVol
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static int exchangePowerValue(uint8_t key)
|
|
|
+static int exchangePowerValue(uint8_t key, uint8_t modelKey)
|
|
|
{
|
|
|
switch (key) {
|
|
|
case POWER_20W:
|
|
|
- return 200;
|
|
|
+ return 200;
|
|
|
|
|
|
case POWER_25W:
|
|
|
- return 250;
|
|
|
+ return 250;
|
|
|
|
|
|
case POWER_30W:
|
|
|
return 300;
|
|
@@ -586,7 +609,10 @@ static int exchangePowerValue(uint8_t key)
|
|
|
return 7200;
|
|
|
|
|
|
default:
|
|
|
- log_error("Power is not defined\r\n");
|
|
|
+ if(modelKey != MODEL_DD && modelKey != MODEL_DX)
|
|
|
+ {
|
|
|
+ log_error("Power is not defined\r\n");
|
|
|
+ }
|
|
|
return 0;
|
|
|
break;
|
|
|
}
|
|
@@ -632,9 +658,13 @@ int RatedCurrentParsing(char *pModuleName, void *pDestStruct)
|
|
|
strncpy(power, &pModuleName[4], 3);
|
|
|
power[3] = '\0';
|
|
|
|
|
|
+ //get modelKey and reguKey
|
|
|
+ modelKey = keyfromstring(&model[0], &modelTable[0], sizeof(modelTable) / sizeof(SymStruct));
|
|
|
+ reguKey = keyfromstring(®ulation[0], ®ulationTable[0], sizeof(regulationTable) / sizeof(SymStruct));
|
|
|
+
|
|
|
//get max power value
|
|
|
powerKey = keyfromstring(&power[0], &powerTable[0], sizeof(powerTable) / sizeof(SymStruct));
|
|
|
- pParsingInfo->Power = exchangePowerValue(powerKey);
|
|
|
+ pParsingInfo->Power = exchangePowerValue(powerKey, modelKey);
|
|
|
|
|
|
pParsingInfo->GetGunCount = 0;
|
|
|
for (i = 0; i < sizeof(pParsingInfo->ParsingInfo) / sizeof(RateCurInfo); i++) {
|
|
@@ -664,8 +694,6 @@ int RatedCurrentParsing(char *pModuleName, void *pDestStruct)
|
|
|
strncpy(gunType, &pModuleName[gunTypeIndex], 1);
|
|
|
gunType[1] = '\0';
|
|
|
|
|
|
- modelKey = keyfromstring(&model[0], &modelTable[0], sizeof(modelTable) / sizeof(SymStruct));
|
|
|
- reguKey = keyfromstring(®ulation[0], ®ulationTable[0], sizeof(regulationTable) / sizeof(SymStruct));
|
|
|
if ((gunTypeKey = keyfromstring(&gunType[0], &gunTypeTable[0], sizeof(gunTypeTable) / sizeof(SymStruct))) == GUN_TYPE_0) {
|
|
|
//log_error("Rated Current Parsing the type of gun is none\r\n");
|
|
|
continue;
|
|
@@ -676,7 +704,7 @@ int RatedCurrentParsing(char *pModuleName, void *pDestStruct)
|
|
|
ret = ((modelKey << 24) | (reguKey << 16) | (powerKey << 8) | gunTypeKey);
|
|
|
ratingCurVal = exchangeRatingCur(ret);
|
|
|
if (ratingCurVal == RC_0A) {
|
|
|
- ratingCurVal = defaultRatedCurrent(modelKey, gunTypeKey, powerKey);
|
|
|
+ ratingCurVal = defaultRatedCurrent(modelKey, gunTypeKey, powerKey, reguKey);
|
|
|
}
|
|
|
|
|
|
memset((uint8_t *)&fGunAndVol, 0, sizeof(GunTypeAndVolInfo));
|