|
@@ -1,7 +1,6 @@
|
|
|
#include "define.h"
|
|
|
#include "main.h"
|
|
|
|
|
|
-
|
|
|
//==========================
|
|
|
// System basic sample constant
|
|
|
//==========================
|
|
@@ -89,7 +88,7 @@ struct timeb endChargingTime[AC_QUANTITY];
|
|
|
sqlite3 *localDb;
|
|
|
|
|
|
struct SysConfigData SysConfigOrg;
|
|
|
-
|
|
|
+ParsingRatedCur modelnameInfo={0};
|
|
|
//=================================
|
|
|
// Common routine
|
|
|
//=================================
|
|
@@ -1618,6 +1617,8 @@ int LoadSysConfigAndInfo(struct SysConfigData *ptr)
|
|
|
ShmCharger->isCcsEnable = ON;
|
|
|
}
|
|
|
|
|
|
+ RatedCurrentParsing((char*)ShmSysConfigAndInfo->SysConfig.ModelName, &modelnameInfo);
|
|
|
+
|
|
|
return PASS;
|
|
|
}
|
|
|
|
|
@@ -1902,36 +1903,39 @@ void InitEthernet()
|
|
|
DEBUG_INFO("Initial Ethernet OK\n");
|
|
|
}
|
|
|
|
|
|
-int SpawnTask()
|
|
|
+int SpawnTask(uint8_t gun_index)
|
|
|
{
|
|
|
- system ("pkill Module_");
|
|
|
- system ("pkill OcppBackend");
|
|
|
-
|
|
|
- if((ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'T') || (ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'D'))
|
|
|
- {
|
|
|
- system("/root/Module_4g &");
|
|
|
- }
|
|
|
- else if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W')
|
|
|
+ if(gun_index == 0)
|
|
|
{
|
|
|
- system("/root/Module_Wifi &");
|
|
|
- }
|
|
|
+ system ("pkill Module_");
|
|
|
+ system ("pkill OcppBackend");
|
|
|
+
|
|
|
+ if((ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'T') || (ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'D'))
|
|
|
+ {
|
|
|
+ system("/root/Module_4g &");
|
|
|
+ }
|
|
|
+ else if(ShmSysConfigAndInfo->SysConfig.ModelName[10] == 'W')
|
|
|
+ {
|
|
|
+ system("/root/Module_Wifi &");
|
|
|
+ }
|
|
|
|
|
|
- system("/root/Module_EventLogging &");
|
|
|
+ system("/root/Module_EventLogging &");
|
|
|
|
|
|
- if(strcmp((char *)&ShmSysConfigAndInfo->SysConfig.OcppServerURL,"") != 0)
|
|
|
- {
|
|
|
- ocpp_process_start();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- DEBUG_INFO("OCPP URL is empty, need to create a configuration table !!!\n");
|
|
|
- ocpp_process_start();
|
|
|
+ if(strcmp((char *)&ShmSysConfigAndInfo->SysConfig.OcppServerURL,"") != 0)
|
|
|
+ {
|
|
|
+ ocpp_process_start();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ DEBUG_INFO("OCPP URL is empty, need to create a configuration table !!!\n");
|
|
|
+ ocpp_process_start();
|
|
|
+ }
|
|
|
+ system ("/root/Module_AlarmDetect &");
|
|
|
+ system ("/root/Module_InternalComm &");
|
|
|
+ system ("/root/Module_Speaker &");
|
|
|
+ system ("/root/Module_ProduceUtils &");
|
|
|
+ system ("/root/Module_LcmControl &");
|
|
|
}
|
|
|
- system ("/root/Module_AlarmDetect &");
|
|
|
- system ("/root/Module_InternalComm &");
|
|
|
- system ("/root/Module_Speaker &");
|
|
|
- system ("/root/Module_ProduceUtils &");
|
|
|
- system ("/root/Module_LcmControl &");
|
|
|
|
|
|
return PASS;
|
|
|
}
|
|
@@ -1951,47 +1955,49 @@ int InitQca7000()
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
-int Initialization()
|
|
|
+int Initialization(uint8_t gun_index)
|
|
|
{
|
|
|
int result = PASS;
|
|
|
|
|
|
- LoadSysConfigAndInfo(&ShmSysConfigAndInfo->SysConfig);
|
|
|
+ if(gun_index == 0)
|
|
|
+ {
|
|
|
+ LoadSysConfigAndInfo(&ShmSysConfigAndInfo->SysConfig);
|
|
|
|
|
|
- InitGPIO();
|
|
|
+ InitGPIO();
|
|
|
|
|
|
- InitEthernet();
|
|
|
+ InitEthernet();
|
|
|
|
|
|
- if(InitQca7000() != PASS)
|
|
|
- {
|
|
|
- DEBUG_ERROR("QCA7000 initial fail.\n");
|
|
|
- result = FAIL;
|
|
|
- }
|
|
|
+ if(InitQca7000() != PASS)
|
|
|
+ {
|
|
|
+ DEBUG_ERROR("QCA7000 initial fail.\n");
|
|
|
+ result = FAIL;
|
|
|
+ }
|
|
|
|
|
|
- if(DB_Open(localDb) != PASS)
|
|
|
- {
|
|
|
- DEBUG_ERROR("Local database initial fail.\n");
|
|
|
- result = FAIL;
|
|
|
- }
|
|
|
+ if(DB_Open(localDb) != PASS)
|
|
|
+ {
|
|
|
+ DEBUG_ERROR("Local database initial fail.\n");
|
|
|
+ result = FAIL;
|
|
|
+ }
|
|
|
|
|
|
- for(int gun_index=0;gun_index< AC_QUANTITY;gun_index++)
|
|
|
- ShmCharger->gun_info[gun_index].isOperactive = DB_Get_Operactive(localDb, gun_index);
|
|
|
+ if((rfidFd = InitRfidPort()) == FAIL)
|
|
|
+ {
|
|
|
+ DEBUG_ERROR("RFID port initial fail.\n");
|
|
|
+ result = FAIL;
|
|
|
+ }
|
|
|
|
|
|
- if((rfidFd = InitRfidPort()) == FAIL)
|
|
|
- {
|
|
|
- DEBUG_ERROR("RFID port initial fail.\n");
|
|
|
- result = FAIL;
|
|
|
- }
|
|
|
+ if((wtdFd = InitWatchDog()) == FAIL)
|
|
|
+ {
|
|
|
+ DEBUG_ERROR("Watchdog initial fail.\n");
|
|
|
+ result = FAIL;
|
|
|
+ }
|
|
|
|
|
|
- if((wtdFd = InitWatchDog()) == FAIL)
|
|
|
- {
|
|
|
- DEBUG_ERROR("Watchdog initial fail.\n");
|
|
|
- result = FAIL;
|
|
|
+ if(result == PASS)
|
|
|
+ DEBUG_INFO("Initialization OK.\n");
|
|
|
+ else
|
|
|
+ DEBUG_INFO("Initialization Fail.\n");
|
|
|
}
|
|
|
|
|
|
- if(result == PASS)
|
|
|
- DEBUG_INFO("Initialization OK.\n");
|
|
|
- else
|
|
|
- DEBUG_INFO("Initialization Fail.\n");
|
|
|
+ ShmCharger->gun_info[gun_index].isOperactive = DB_Get_Operactive(localDb, gun_index);
|
|
|
|
|
|
return result;
|
|
|
}
|
|
@@ -3746,7 +3752,6 @@ int main(void)
|
|
|
* TODO:
|
|
|
* 1. Power saving logic
|
|
|
*/
|
|
|
-
|
|
|
if(ShmSysConfigAndInfo->SysInfo.AcChargingData[gun_index].PilotState == CP_STATE_A)
|
|
|
{
|
|
|
ftime(&startTime[gun_index][TMR_IDX_POWERSAVING_STATE_B]);
|
|
@@ -3902,8 +3907,8 @@ int main(void)
|
|
|
setLedMotion(gun_index,LED_ACTION_INIT);
|
|
|
|
|
|
//CSU Initialization & task spawn
|
|
|
- if((Initialization() != PASS) ||
|
|
|
- (SpawnTask() != PASS))
|
|
|
+ if((Initialization(gun_index) != PASS) ||
|
|
|
+ (SpawnTask(gun_index) != PASS))
|
|
|
{
|
|
|
ShmStatusCodeData->AlarmCode.AlarmEvents.bits.CsuInitFailed = ON;
|
|
|
}
|