|
@@ -52,6 +52,8 @@ int GetCardSerialNumber();
|
|
|
void setLedMotion(unsigned char gun_index,unsigned char led_mode);
|
|
|
void setRelay(unsigned char gun_index,unsigned char isOn);
|
|
|
void setSpeaker(unsigned char isOn, unsigned char speaker_mode);
|
|
|
+void setLightIntensity(unsigned char gun_index);
|
|
|
+void initialLightIntensity(unsigned char gun_index);
|
|
|
|
|
|
//==========================
|
|
|
// Declare RFID module type
|
|
@@ -941,6 +943,8 @@ void InitEthernet()
|
|
|
sprintf(tmpbuf,"/sbin/ifconfig eth0 %s netmask %s up &",
|
|
|
ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthIpAddress,
|
|
|
ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthSubmaskAddress);
|
|
|
+ DEBUG_INFO("eth0 config as ip: %s, netmask: %s\n", ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthIpAddress,
|
|
|
+ ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthSubmaskAddress);
|
|
|
system(tmpbuf);
|
|
|
memset(tmpbuf,0,256);
|
|
|
sprintf(tmpbuf,"route add default gw %s eth0 &",
|
|
@@ -948,6 +952,7 @@ void InitEthernet()
|
|
|
system(tmpbuf);
|
|
|
system("/sbin/ifconfig eth0:1 192.168.201.201 netmask 255.255.255.248 up &");
|
|
|
system("ifconfig lo up &");
|
|
|
+ system("/sbin/ethtool -s eth0 speed 10 duplex full autoneg off");
|
|
|
|
|
|
if(isInterfaceUp("eth1")==PASS)
|
|
|
{
|
|
@@ -1270,7 +1275,7 @@ void get_firmware_version(unsigned char gun_index)
|
|
|
strcpy((char*)ShmSysConfigAndInfo->SysInfo.CsuPrimFwRev, ShmCharger->gun_info[gun_index].ver.Version_FW);
|
|
|
|
|
|
// Get CSU root file system version
|
|
|
- sprintf((char*)ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev, "V0.48.00.0000.00");
|
|
|
+ sprintf((char*)ShmSysConfigAndInfo->SysInfo.CsuRootFsFwRev, "V0.49.00.0000.00");
|
|
|
|
|
|
// Get AC connector type from model name
|
|
|
for(uint8_t idx=0;idx<3;idx++)
|
|
@@ -1728,9 +1733,9 @@ int isReachableInternet()
|
|
|
char buf[512];
|
|
|
char tmp[512];
|
|
|
|
|
|
+ // Get ip address & net mask
|
|
|
strcpy(cmd, "ifconfig eth0");
|
|
|
fp = popen(cmd, "r");
|
|
|
-
|
|
|
if(fp != NULL)
|
|
|
{
|
|
|
while(fgets(buf, sizeof(buf), fp) != NULL)
|
|
@@ -1739,16 +1744,43 @@ int isReachableInternet()
|
|
|
{
|
|
|
sscanf(buf, "%*s%s", tmp);
|
|
|
substr(tmp, tmp, strspn(tmp, "addr:"), strlen(buf)-strspn(tmp, "addr:"));
|
|
|
-
|
|
|
if (strcmp(tmp, (char *)ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthIpAddress) != 0)
|
|
|
{
|
|
|
strcpy((char *) ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthIpAddress, tmp);
|
|
|
}
|
|
|
+
|
|
|
+ sscanf(buf, "%*s%*s%*s%s", tmp);
|
|
|
+ substr(tmp, tmp, strspn(tmp, "Mask:"), strlen(buf)-strspn(tmp, "Mask:"));
|
|
|
+ if (strcmp(tmp, (char *)ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthSubmaskAddress) != 0)
|
|
|
+ {
|
|
|
+ strcpy((char *) ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthSubmaskAddress, tmp);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
pclose(fp);
|
|
|
memset(buf, 0x00, sizeof(buf));
|
|
|
+
|
|
|
+ // Get gateway
|
|
|
+ fp = popen("ip route", "r");
|
|
|
+ if(fp == NULL)
|
|
|
+ result = FAIL;
|
|
|
+ else
|
|
|
+ {
|
|
|
+ while(fgets(buf, sizeof(buf), fp) != NULL)
|
|
|
+ {
|
|
|
+ if((strstr(buf, "default") != NULL) && (strstr(buf, "eth0") != NULL))
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(strstr(buf, "default") != NULL)
|
|
|
+ {
|
|
|
+ sscanf(buf, "%*s%*s%s", tmp);
|
|
|
+ substr((char*)ShmSysConfigAndInfo->SysConfig.Eth0Interface.EthGatewayAddress, tmp, 0, strlen(tmp));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pclose(fp);
|
|
|
+ memset(buf, 0x00, sizeof(buf));
|
|
|
|
|
|
for(int idx=0;idx<ARRAY_SIZE(valid_Internet);idx++)
|
|
|
{
|
|
@@ -2091,6 +2123,153 @@ void checkConnectionTimeout()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+//===============================================
|
|
|
+// Set Light Internsity from ocpp
|
|
|
+//===============================================
|
|
|
+void setLightIntensity(unsigned char gun_index)
|
|
|
+{
|
|
|
+ switch(atoi((char*)ShmOCPP16Data->ConfigurationTable.CoreProfile[LightIntensity].ItemData))
|
|
|
+ {
|
|
|
+ case 0 ... 15:
|
|
|
+ if(ShmCharger->gun_info[gun_index].LightIntensityLevel != 0x00)
|
|
|
+ {
|
|
|
+ // 12 sector change to level 0
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_1 = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_2 = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_3 = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_4 = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_5 = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_6 = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_7 = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_8 = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_9 = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_10 = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_11 = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_12 = 0x00;
|
|
|
+
|
|
|
+ ShmCharger->gun_info[gun_index].LightIntensityLevel = 0x00;
|
|
|
+ ShmCharger->gun_info[gun_index].isSetLedBrightness = ON;
|
|
|
+
|
|
|
+ DEBUG_INFO("Light intensity level : [%X] == Level 0.\r\n", ShmCharger->gun_info[gun_index].LightIntensityLevel);
|
|
|
+ }
|
|
|
+
|
|
|
+ break;
|
|
|
+ case 16 ... 35:
|
|
|
+ if(ShmCharger->gun_info[gun_index].LightIntensityLevel != 0x11)
|
|
|
+ {
|
|
|
+ // 12 sector change to level 1
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_1 = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_2 = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_3 = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_4 = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_5 = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_6 = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_7 = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_8 = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_9 = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_10 = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_11 = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_12 = 0x11;
|
|
|
+
|
|
|
+ ShmCharger->gun_info[gun_index].LightIntensityLevel = 0x11;
|
|
|
+ ShmCharger->gun_info[gun_index].isSetLedBrightness = ON;
|
|
|
+
|
|
|
+ DEBUG_INFO("Light intensity level : [%X] == Level 1.\r\n", ShmCharger->gun_info[gun_index].LightIntensityLevel);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 36 ... 75:
|
|
|
+ if(ShmCharger->gun_info[gun_index].LightIntensityLevel != 0x22)
|
|
|
+ {
|
|
|
+ // 12 sector change to level 2
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_1 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_2 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_3 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_4 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_5 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_6 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_7 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_8 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_9 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_10 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_11 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_12 = 0x22;
|
|
|
+
|
|
|
+ ShmCharger->gun_info[gun_index].LightIntensityLevel = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].isSetLedBrightness = ON;
|
|
|
+
|
|
|
+ DEBUG_INFO("Light intensity level : [%X] == Level 2.\r\n", ShmCharger->gun_info[gun_index].LightIntensityLevel);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 76 ... 100:
|
|
|
+ if(ShmCharger->gun_info[gun_index].LightIntensityLevel != 0x33)
|
|
|
+ {
|
|
|
+ // 12 sector change to level 3
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_1 = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_2 = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_3 = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_4 = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_5 = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_6 = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_7 = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_8 = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_9 = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_10 = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_11 = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_12 = 0x33;
|
|
|
+
|
|
|
+ ShmCharger->gun_info[gun_index].LightIntensityLevel = 0x33;
|
|
|
+ ShmCharger->gun_info[gun_index].isSetLedBrightness = ON;
|
|
|
+
|
|
|
+ DEBUG_INFO("Light intensity level : [%X] == Level 3.\r\n", ShmCharger->gun_info[gun_index].LightIntensityLevel);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ if(ShmCharger->gun_info[gun_index].LightIntensityLevel != 2)
|
|
|
+ {
|
|
|
+ // 12 sector change to level 2
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_1 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_2 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_3 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_4 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_5 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_6 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_7 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_8 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_9 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_10 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_11 = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_12 = 0x22;
|
|
|
+
|
|
|
+ ShmCharger->gun_info[gun_index].LightIntensityLevel = 0x22;
|
|
|
+ ShmCharger->gun_info[gun_index].isSetLedBrightness = ON;
|
|
|
+
|
|
|
+ DEBUG_INFO("Default light intensity level : [%X] == Level 2.\r\n", ShmCharger->gun_info[gun_index].LightIntensityLevel);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void initialLightIntensity(unsigned char gun_index)
|
|
|
+{
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_1 = 0xff;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_2 = 0xff;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_3 = 0xff;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_4 = 0xff;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_5 = 0xff;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_6 = 0xff;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_7 = 0xff;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_8 = 0xff;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_9 = 0xff;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_10 = 0xff;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_11 = 0xff;
|
|
|
+ ShmCharger->gun_info[gun_index].setLedBrightness.sector_12 = 0xff;
|
|
|
+
|
|
|
+
|
|
|
+ ShmCharger->gun_info[gun_index].LightIntensityLevel = 0xff;
|
|
|
+ DEBUG_INFO("Initial light intensity gun_index %d to : [%X] .\r\n", gun_index, ShmCharger->gun_info[0].LightIntensityLevel);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
//===============================================
|
|
|
// Main process
|
|
|
//===============================================
|
|
@@ -2122,6 +2301,7 @@ int main(void)
|
|
|
ShmCharger->gun_info[gun_index].isInitialPass = NO;
|
|
|
ShmCharger->gun_info[gun_index].isSetBreatheLedTiming = OFF;
|
|
|
ShmCharger->gun_info[gun_index].isSetLedBrightness = OFF;
|
|
|
+ initialLightIntensity(gun_index);
|
|
|
}
|
|
|
|
|
|
// Main loop
|
|
@@ -2250,6 +2430,9 @@ int main(void)
|
|
|
{
|
|
|
setChargerMode(gun_index, SYS_MODE_BOOTING);
|
|
|
}
|
|
|
+
|
|
|
+ // Set light intensity
|
|
|
+ setLightIntensity(gun_index);
|
|
|
|
|
|
// Check initialization "PASS" or "FAIL"
|
|
|
if(ShmCharger->gun_info[gun_index].isInitialPass == YES)
|