Browse Source

[New feature][DM30][DW30][Engineering]: Merge ReadCmdline function from alston.

2020.06.16 / TC Hsu

Actions: Import "auth", "id" command and relative functions, add "led" sub-string to firmware version command, add "ac" sub-string to get status command, correct the EV board firmware version parsing method.

Image version    : N/A
Image checksum   : N/A

Hardware PWB P/N : N/A
Hardware Version : N/A

Files:

	modified:   EVSE/Projects/DM30/Apps/ReadCmdline.c
	modified:   EVSE/Projects/DW30/Apps/ReadCmdline.c
TC_Hsu 4 years ago
parent
commit
01825ffcda
2 changed files with 176 additions and 60 deletions
  1. 88 30
      EVSE/Projects/DM30/Apps/ReadCmdline.c
  2. 88 30
      EVSE/Projects/DW30/Apps/ReadCmdline.c

+ 88 - 30
EVSE/Projects/DM30/Apps/ReadCmdline.c

@@ -57,6 +57,7 @@ struct CcsData                  *ShmCcsData;
 struct GBTData                  *ShmGBTData;
 struct FanModuleData            *ShmFanModuleData;
 struct RelayModuleData          *ShmRelayModuleData;
+struct LedModuleData            *ShmLedModuleData;
 struct PsuData                  *ShmPsuData;
 
 struct ChargingInfoData         *_chargingData[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY];
@@ -200,6 +201,15 @@ int InitShareMemory()
         result = FAIL;
     }
 
+    if ((MeterSMId = shmget(ShmLedBdKey, sizeof(struct LedModuleData),  0777)) < 0)
+    {
+        result = FAIL;
+    }
+    else if ((ShmLedModuleData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
+    {
+        result = FAIL;
+    }
+
     if ((MeterSMId = shmget(ShmPsuKey, sizeof(struct PsuData),  IPC_CREAT | 0777)) < 0)
     {
         result = FAIL;
@@ -212,8 +222,26 @@ int InitShareMemory()
     return result;
 }
 
+unsigned long GetTimeoutValue(struct timeval _sour_time)
+{
+    struct timeval _end_time;
+    gettimeofday(&_end_time, NULL);
+
+    return 1000000 * (_end_time.tv_sec - _sour_time.tv_sec) + _end_time.tv_usec - _sour_time.tv_usec;
+}
+
 void RunStatusProc(char *v1, char *v2)
 {
+    if (strcmp(v1, "ac") == 0)
+    {
+        if (!FindAcChargingInfoData(0, &ac_chargingInfo[0]))
+        {
+            printf("FindChargingInfoData (AC) false \n");
+        }
+        printf("AC Status = %d \n", ac_chargingInfo[0]->ConnectorPlugIn);
+        return;
+    }
+
     int _index = atoi(v1);
     if (_index <= 1)
     {
@@ -273,7 +301,9 @@ void RunCardProc(char *v1, char *v2)
     }
     else
     {
-        memcpy((char *)ShmSysConfigAndInfo->SysConfig.UserId, v1, ARRAY_SIZE(v1));
+        strcpy((char *)ShmSysConfigAndInfo->SysConfig.UserId, "");
+        memcpy((char *)ShmSysConfigAndInfo->SysConfig.UserId, v1, strlen(v1));
+        ShmSysConfigAndInfo->SysConfig.UserId[strlen(v1)] = '\0';
         printf("StartUserId = %s \n", ShmSysConfigAndInfo->SysConfig.UserId);
     }
 }
@@ -307,8 +337,12 @@ void GetGunLockStatusProc(char *v1, char *v2)
         printf("FindChargingInfoData error\n");
         return;
     }
+    if (strcmp(v2, "-1") != 0 && strcmp(v2, "") != 0)
+    {
+        _chargingData[_index]->GunLocked = atoi(v2);
+    }
 
-    printf("Gun Locked Status = %x \n", _chargingData[_index]->GunLocked);
+    printf("Gun Locked Status = %d \n", _chargingData[_index]->GunLocked);
 }
 
 void SetSystemIDProc()
@@ -328,17 +362,14 @@ void GetFwVerProc(char *v1)
     {
         printf("407 FW Version = %s \n", ShmPrimaryMcuData->version);
     }
-    else if (strcmp(v1, "0") == 0)
+    else if (strcmp(v1, "0") == 0 || strcmp(v1, "1") == 0)
     {
-        printf("Ev board 0 FW Version = %s \n", ShmCHAdeMOData->evse[0].version);
-    }
-    else if (strcmp(v1, "1") == 0)
-    {
-        printf("Ev board 1 FW Version = %s \n", ShmCcsData->V2GMessage_DIN70121->version);
-    }
-    else if (strcmp(v1, "2") == 0)
-    {
-        printf("Ev board 2 FW Version = %s \n", ShmGBTData->evse[0].version);
+        int _index = atoi(v1);
+
+        if (_index == 0)
+            printf("Gun 0 FW Version = %s \n", ShmSysConfigAndInfo->SysInfo.Connector1FwRev);
+        else if (_index == 1)
+            printf("Gun 1 FW Version = %s \n", ShmSysConfigAndInfo->SysInfo.Connector2FwRev);
     }
     else if (strcmp(v1, "rb") == 0)
     {
@@ -352,6 +383,10 @@ void GetFwVerProc(char *v1)
     {
         printf("DC Main Version = %s \n", ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev);
     }
+    else if (strcmp(v1, "led") == 0)
+    {
+        printf("LED Version = %s \n", ShmSysConfigAndInfo->SysInfo.LedModuleFwRev);
+    }
     else if (strcmp(v1, "ac") == 0)
     {
         if (!FindAcChargingInfoData(0, &ac_chargingInfo[0]))
@@ -370,6 +405,26 @@ void CreateOneError(char *v1)
     ShmSysConfigAndInfo->SysConfig.BillingData.isBilling = value;
 }
 
+void GetAuthorizeFlag(char *v1)
+{
+    if (strcmp(v1, "-1") == 0|| strcmp(v1, "") == 0)
+        printf("AuthorizeFlag = %d \n", ShmSysConfigAndInfo->SysInfo.AuthorizeFlag);
+    else
+        ShmSysConfigAndInfo->SysInfo.AuthorizeFlag = atoi(v1);
+}
+
+void GetOrClearId(char *v1)
+{
+    int _index = atoi(v1);
+
+    if (!FindChargingInfoData(_index, &_chargingData[0]))
+    {
+        printf("FindChargingInfoData error\n");
+        return;
+    }
+    printf("Card Number = %s \n", _chargingData[_index]->StartUserId);
+}
+
 void FwUpdateFlagProc()
 {
     ShmSysConfigAndInfo->SysInfo.FirmwareUpdate = 0x01;
@@ -409,12 +464,15 @@ void SetPowerValue(char *v1, char *v2)
         return;
     }
 
-    _chargingData[_index]->EvBatterytargetCurrent = _Current * 10;
+    _chargingData[_index]->EvBatterytargetCurrent = _Current;
 }
 
 void GetSystemInfo()
 {
     printf ("ModelName = %s \n", ShmSysConfigAndInfo->SysConfig.ModelName);
+    printf ("SerialNumber = %s \n", ShmSysConfigAndInfo->SysConfig.SerialNumber);
+    printf ("InternetConn = %d \n", ShmSysConfigAndInfo->SysInfo.InternetConn);
+
     printf ("MaxChargingPower = %d, MaxChargingCurrent = %d \n",
             ShmSysConfigAndInfo->SysConfig.MaxChargingPower,
             ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent);
@@ -615,7 +673,6 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
 
     if(_Voltage > 1000 || _Voltage < 50)
     {
-
         printf ("Input Voltage over range\n");
         return;
     }
@@ -632,8 +689,8 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
     //kill ev task
     system("killall Module_EvComm");
 
-    _Voltage = (_Voltage * 10);
-    _Current = (_Current * 10);
+    //_Voltage = (_Voltage * 10);
+    //_Current = (_Current * 10);
 
     //system(STTY_US TTY_PATH);
 
@@ -699,7 +756,7 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
                     PreviousSystemStatus = _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->SystemStatus;
 
                     printf ("[UnconditionalCharge - S_PREPARING_FOR_EV]\n");
-                    printf ("ReqVoltage = %f, ReqCurrent = %f \n", _Voltage,_Current);
+                    printf ("ReqVoltage = %f, ReqCurrent = %f \n", _Voltage * 10,_Current * 10);
 
                 }
                 //清除 main timeout 機制
@@ -709,8 +766,8 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
 
                 //充電電壓電流
                 _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterySoc = 50;
-                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = 5000;
-                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = 20;
+                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = 500;
+                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = 2;
                 _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->AvailableChargingCurrent = 1000;
 
                 //****** 注意~此行為是防止 K1K2 先開導到無法升壓 ( Relay Board 在此 state 還未搭上 K1K2 )
@@ -746,8 +803,8 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
 
                 //充電電壓電流
                 _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterySoc = 50;
-                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = 5000;
-                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = 20;
+                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = 500;
+                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = 2;
                 _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->AvailableChargingCurrent = 1000;
 
                 //printf ("tar vol_ = %d \n", _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage);
@@ -796,12 +853,6 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
                      printf ("Charging Ground Fault check Fail (%d)\n",_chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->GroundFaultStatus);
                     _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->SystemStatus = S_TERMINATING;
                 }
-
-                if (_chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->GroundFaultStatus == 0x03){
-                     printf ("Charging Ground Fault Warning (%d)\n",_chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->GroundFaultStatus);
-                    _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->SystemStatus = S_TERMINATING;
-                }
-
             }
             break;
 
@@ -815,7 +866,6 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
                     printf ("[UnconditionalCharge - S_TERMINATING]\n");
                     //無阻塞偵測 keybaord 結束
                     system(STTY_DEF TTY_PATH);
-
                 }
 
                 sleep(3);
@@ -880,8 +930,8 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
                continue;
 
             printf("vol = %f, cur = %f \n", _vol, _cur);
-            _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = _vol * 10;
-            _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = _cur * 10;
+            _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = _vol;
+            _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = _cur;
         }
         else if (strcmp(newString[0], "c") == 0)
         {
@@ -1067,6 +1117,14 @@ int main(void)
         {
             CreateOneError(newString[1]);
         }
+        else if (strcmp(newString[0], "auth") == 0)
+        {
+            GetAuthorizeFlag(newString[1]);
+        }
+        else if (strcmp(newString[0], "id") == 0)
+        {
+            GetOrClearId(newString[1]);
+        }
         else if(strcmp(newString[0], "strchg") == 0)
         {
             //如果連一個參數都沒有 (此命令不理會) 加上判斷第二參數

+ 88 - 30
EVSE/Projects/DW30/Apps/ReadCmdline.c

@@ -57,6 +57,7 @@ struct CcsData                  *ShmCcsData;
 struct GBTData                  *ShmGBTData;
 struct FanModuleData            *ShmFanModuleData;
 struct RelayModuleData          *ShmRelayModuleData;
+struct LedModuleData            *ShmLedModuleData;
 struct PsuData                  *ShmPsuData;
 
 struct ChargingInfoData         *_chargingData[CHAdeMO_QUANTITY + CCS_QUANTITY + GB_QUANTITY];
@@ -200,6 +201,15 @@ int InitShareMemory()
         result = FAIL;
     }
 
+    if ((MeterSMId = shmget(ShmLedBdKey, sizeof(struct LedModuleData),  0777)) < 0)
+    {
+        result = FAIL;
+    }
+    else if ((ShmLedModuleData = shmat(MeterSMId, NULL, 0)) == (void *) -1)
+    {
+        result = FAIL;
+    }
+
     if ((MeterSMId = shmget(ShmPsuKey, sizeof(struct PsuData),  IPC_CREAT | 0777)) < 0)
     {
         result = FAIL;
@@ -212,8 +222,26 @@ int InitShareMemory()
     return result;
 }
 
+unsigned long GetTimeoutValue(struct timeval _sour_time)
+{
+    struct timeval _end_time;
+    gettimeofday(&_end_time, NULL);
+
+    return 1000000 * (_end_time.tv_sec - _sour_time.tv_sec) + _end_time.tv_usec - _sour_time.tv_usec;
+}
+
 void RunStatusProc(char *v1, char *v2)
 {
+    if (strcmp(v1, "ac") == 0)
+    {
+        if (!FindAcChargingInfoData(0, &ac_chargingInfo[0]))
+        {
+            printf("FindChargingInfoData (AC) false \n");
+        }
+        printf("AC Status = %d \n", ac_chargingInfo[0]->ConnectorPlugIn);
+        return;
+    }
+
     int _index = atoi(v1);
     if (_index <= 1)
     {
@@ -273,7 +301,9 @@ void RunCardProc(char *v1, char *v2)
     }
     else
     {
-        memcpy((char *)ShmSysConfigAndInfo->SysConfig.UserId, v1, ARRAY_SIZE(v1));
+        strcpy((char *)ShmSysConfigAndInfo->SysConfig.UserId, "");
+        memcpy((char *)ShmSysConfigAndInfo->SysConfig.UserId, v1, strlen(v1));
+        ShmSysConfigAndInfo->SysConfig.UserId[strlen(v1)] = '\0';
         printf("StartUserId = %s \n", ShmSysConfigAndInfo->SysConfig.UserId);
     }
 }
@@ -307,8 +337,12 @@ void GetGunLockStatusProc(char *v1, char *v2)
         printf("FindChargingInfoData error\n");
         return;
     }
+    if (strcmp(v2, "-1") != 0 && strcmp(v2, "") != 0)
+    {
+        _chargingData[_index]->GunLocked = atoi(v2);
+    }
 
-    printf("Gun Locked Status = %x \n", _chargingData[_index]->GunLocked);
+    printf("Gun Locked Status = %d \n", _chargingData[_index]->GunLocked);
 }
 
 void SetSystemIDProc()
@@ -328,17 +362,14 @@ void GetFwVerProc(char *v1)
     {
         printf("407 FW Version = %s \n", ShmPrimaryMcuData->version);
     }
-    else if (strcmp(v1, "0") == 0)
+    else if (strcmp(v1, "0") == 0 || strcmp(v1, "1") == 0)
     {
-        printf("Ev board 0 FW Version = %s \n", ShmCHAdeMOData->evse[0].version);
-    }
-    else if (strcmp(v1, "1") == 0)
-    {
-        printf("Ev board 1 FW Version = %s \n", ShmCcsData->V2GMessage_DIN70121->version);
-    }
-    else if (strcmp(v1, "2") == 0)
-    {
-        printf("Ev board 2 FW Version = %s \n", ShmGBTData->evse[0].version);
+        int _index = atoi(v1);
+
+        if (_index == 0)
+            printf("Gun 0 FW Version = %s \n", ShmSysConfigAndInfo->SysInfo.Connector1FwRev);
+        else if (_index == 1)
+            printf("Gun 1 FW Version = %s \n", ShmSysConfigAndInfo->SysInfo.Connector2FwRev);
     }
     else if (strcmp(v1, "rb") == 0)
     {
@@ -352,6 +383,10 @@ void GetFwVerProc(char *v1)
     {
         printf("DC Main Version = %s \n", ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev);
     }
+    else if (strcmp(v1, "led") == 0)
+    {
+        printf("LED Version = %s \n", ShmSysConfigAndInfo->SysInfo.LedModuleFwRev);
+    }
     else if (strcmp(v1, "ac") == 0)
     {
         if (!FindAcChargingInfoData(0, &ac_chargingInfo[0]))
@@ -370,6 +405,26 @@ void CreateOneError(char *v1)
     ShmSysConfigAndInfo->SysConfig.BillingData.isBilling = value;
 }
 
+void GetAuthorizeFlag(char *v1)
+{
+    if (strcmp(v1, "-1") == 0|| strcmp(v1, "") == 0)
+        printf("AuthorizeFlag = %d \n", ShmSysConfigAndInfo->SysInfo.AuthorizeFlag);
+    else
+        ShmSysConfigAndInfo->SysInfo.AuthorizeFlag = atoi(v1);
+}
+
+void GetOrClearId(char *v1)
+{
+    int _index = atoi(v1);
+
+    if (!FindChargingInfoData(_index, &_chargingData[0]))
+    {
+        printf("FindChargingInfoData error\n");
+        return;
+    }
+    printf("Card Number = %s \n", _chargingData[_index]->StartUserId);
+}
+
 void FwUpdateFlagProc()
 {
     ShmSysConfigAndInfo->SysInfo.FirmwareUpdate = 0x01;
@@ -409,12 +464,15 @@ void SetPowerValue(char *v1, char *v2)
         return;
     }
 
-    _chargingData[_index]->EvBatterytargetCurrent = _Current * 10;
+    _chargingData[_index]->EvBatterytargetCurrent = _Current;
 }
 
 void GetSystemInfo()
 {
     printf ("ModelName = %s \n", ShmSysConfigAndInfo->SysConfig.ModelName);
+    printf ("SerialNumber = %s \n", ShmSysConfigAndInfo->SysConfig.SerialNumber);
+    printf ("InternetConn = %d \n", ShmSysConfigAndInfo->SysInfo.InternetConn);
+
     printf ("MaxChargingPower = %d, MaxChargingCurrent = %d \n",
             ShmSysConfigAndInfo->SysConfig.MaxChargingPower,
             ShmSysConfigAndInfo->SysConfig.MaxChargingCurrent);
@@ -615,7 +673,6 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
 
     if(_Voltage > 1000 || _Voltage < 50)
     {
-
         printf ("Input Voltage over range\n");
         return;
     }
@@ -632,8 +689,8 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
     //kill ev task
     system("killall Module_EvComm");
 
-    _Voltage = (_Voltage * 10);
-    _Current = (_Current * 10);
+    //_Voltage = (_Voltage * 10);
+    //_Current = (_Current * 10);
 
     //system(STTY_US TTY_PATH);
 
@@ -699,7 +756,7 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
                     PreviousSystemStatus = _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->SystemStatus;
 
                     printf ("[UnconditionalCharge - S_PREPARING_FOR_EV]\n");
-                    printf ("ReqVoltage = %f, ReqCurrent = %f \n", _Voltage,_Current);
+                    printf ("ReqVoltage = %f, ReqCurrent = %f \n", _Voltage * 10,_Current * 10);
 
                 }
                 //清除 main timeout 機制
@@ -709,8 +766,8 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
 
                 //充電電壓電流
                 _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterySoc = 50;
-                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = 5000;
-                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = 20;
+                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = 500;
+                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = 2;
                 _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->AvailableChargingCurrent = 1000;
 
                 //****** 注意~此行為是防止 K1K2 先開導到無法升壓 ( Relay Board 在此 state 還未搭上 K1K2 )
@@ -746,8 +803,8 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
 
                 //充電電壓電流
                 _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterySoc = 50;
-                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = 5000;
-                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = 20;
+                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = 500;
+                _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = 2;
                 _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->AvailableChargingCurrent = 1000;
 
                 //printf ("tar vol_ = %d \n", _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage);
@@ -796,12 +853,6 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
                      printf ("Charging Ground Fault check Fail (%d)\n",_chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->GroundFaultStatus);
                     _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->SystemStatus = S_TERMINATING;
                 }
-
-                if (_chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->GroundFaultStatus == 0x03){
-                     printf ("Charging Ground Fault Warning (%d)\n",_chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->GroundFaultStatus);
-                    _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->SystemStatus = S_TERMINATING;
-                }
-
             }
             break;
 
@@ -815,7 +866,6 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
                     printf ("[UnconditionalCharge - S_TERMINATING]\n");
                     //無阻塞偵測 keybaord 結束
                     system(STTY_DEF TTY_PATH);
-
                 }
 
                 sleep(3);
@@ -880,8 +930,8 @@ void RunUnconditionalChargeIndex1(char *v1, char *v2, char *v3)
                continue;
 
             printf("vol = %f, cur = %f \n", _vol, _cur);
-            _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = _vol * 10;
-            _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = _cur * 10;
+            _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetVoltage = _vol;
+            _chargingData[ShmSysConfigAndInfo->SysInfo.CurGunSelected]->EvBatterytargetCurrent = _cur;
         }
         else if (strcmp(newString[0], "c") == 0)
         {
@@ -1067,6 +1117,14 @@ int main(void)
         {
             CreateOneError(newString[1]);
         }
+        else if (strcmp(newString[0], "auth") == 0)
+        {
+            GetAuthorizeFlag(newString[1]);
+        }
+        else if (strcmp(newString[0], "id") == 0)
+        {
+            GetOrClearId(newString[1]);
+        }
         else if(strcmp(newString[0], "strchg") == 0)
         {
             //如果連一個參數都沒有 (此命令不理會) 加上判斷第二參數