📄 setscr.cpp
字号:
case 11: //温度补偿
{
if(SelectDeal(KeyCode,ValueSelect[0],0))
{
bFlag=1;
if(Has_TempCorrect[Battery_No]!=ValueSelect[0]->Current_Index)
Has_TempCorrect[Battery_No]=ValueSelect[0]->Current_Index;
//GetString_FromInt(Has_TempCorrect[Battery_No],TempString);
//Write_Config(329+Battery_No,TempString);
}
break;
}
case 12: //补偿基准
{
if(SelectDeal(KeyCode,ValueSelect[0],0))
{
bFlag=1;
if(Temp_Base[Battery_No]!=ValueSelect[0]->Current_Index)
Temp_Base[Battery_No]=ValueSelect[0]->Current_Index;
//GetString_FromInt(Temp_Base[Battery_No],TempString);
//Write_Config(327+Battery_No,TempString);
}
break;
}
case 13: //补偿系数
{
if(InputDeal(KeyCode,ValueEdit[0],1)==1)
{
bFlag=1;
Temp_CompFactor[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
//Write_Config(331+Battery_No,ValueEdit[0]->TempString);
}
else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
{
GetString_FromFloat(Temp_CompFactor[Battery_No],1,TempString);
strcpy(ValueEdit[0]->TempString,TempString);
strcat(TempString,"V/℃");
Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
}
break;
}
}
}
else if(KeyCode==20)
{
bFlag=1;
}
if(bFlag==1)
{
Display_BatteryPara(Battery_No,1);
Key_MenuItem=0;
}
}
}
//-----------------------------------------------------------------
void Display_BatteryPara(uCHAR Battery_No,uCHAR Is_Refresh)
{
uINT i=0;
//char TempString[32];
char Battery_String[4][32]={"阀控式铅酸蓄电池","防酸式铅酸蓄电池",
"高倍率铬镍蓄电池","中倍率铬镍蓄电池"};
char String[14][32]={"电池类型:","电池数量:","电池容量:","浮充电压:","均充电压:",
"充电限流:","定时均充:","均充周期:","均充时间:",
"转换电流:","转换时间:","温度补偿:","补偿基准:","补偿系数:"};
if(Is_Refresh==0)
{
Clear_Lcd();
DisPlay_TopLabel(1); //由于每页都有时间显示 时间在主循环中显示
DisPlay_StartView(1);//1为返回, 0为开始
}
for(i=0;i<14;i++)
Display_String(16,48+i*16,String[i],0);
strcpy(String[0],Battery_String[Battery_Index[Battery_No]]);
GetString_FromInt(Battery_CellCount[Battery_No],String[1]);
strcat(String[1],"只");
GetString_FromInt(Full_Capacity[Battery_No],String[2]);
strcat(String[2],"Ah");
GetString_FromFloat(Float_SetVoltage[Battery_No],0,String[3]);
strcat(String[3],"V");
GetString_FromFloat(Equal_SetVoltage[Battery_No],0,String[4]);
strcat(String[4],"V");
GetString_FromFloat(Current_SetVoltage[Battery_No],0,String[5]);
strcat(String[5],"A");
if(Has_Periodic[Battery_No]==0)
strcpy(String[6],"否");
else
strcpy(String[6],"是");
GetString_FromInt(Periodic_Time[Battery_No],String[7]);
strcat(String[7],"天");
GetString_FromInt(ECharge_Time[Battery_No],String[8]);
strcat(String[8],"小时");
GetString_FromFloat(Change_Current[Battery_No],0,String[9]);
strcat(String[9],"A");
GetString_FromInt(Change_SetTime[Battery_No],String[10]);
strcat(String[10],"小时");
if(Has_TempCorrect[Battery_No]==0)
strcpy(String[11],"否");
else
strcpy(String[11],"是");
if(Temp_Base[Battery_No]==0)
strcpy(String[12],"20℃");
else
strcpy(String[12],"25℃");
GetString_FromFloat(Temp_CompFactor[Battery_No],0,String[13]);
strcat(String[13],"V/℃");
for(i=0;i<14;i++)
Display_String(88,48+i*16,String[i],0);
}
//--------------报警参数设置--------------------
void Set_AlarmPara(uCHAR Battery_No,uCHAR KeyCode)
{
//uINT i=0;
uCHAR bFlag=0;
char TempString[32];
char String[8][32]={"均充过压值:","浮充过压值:","浮充欠压值","放电欠压值:",
"母线过压值:","母线欠压值:","交流过压值:","交流欠压值:"};
sFLOAT TempFloat=220.0;
if(System_Voltage==0)
TempFloat=220.0;
else if(System_Voltage==0)
TempFloat=110.0;
else if(System_Voltage==0)
TempFloat=48.0;
else
TempFloat=24.0;
//------------------每次进入新菜单时都要将Key_MenuItem置0------------------
if(Key_MenuItem==0)//键盘输入框不可见
{
//-------------------键嘛值从43-36----------------------
if((KeyCode<=43)&&(KeyCode>=36))
{
//---------------------显示键盘输入框-----------------------
Display_KeyFrame(0);
strcpy(TempString,"请输入");
strcat(TempString,String[KeyCode-36]);
Display_String(32,112,TempString,0);
Current_EditItem=KeyCode-36;
switch(Current_EditItem)
{
case 0: //
{
Init_EditText(ValueEdit[0],32,128,4,0,1,1.31*TempFloat,1.1*TempFloat);
GetString_FromFloat(Equal_HVoltage[Battery_No],0,TempString);
break;
}
case 1: //
{
Init_EditText(ValueEdit[0],32,128,4,0,1,1.23*TempFloat,1.05*TempFloat);
GetString_FromFloat(Float_HVoltage[Battery_No],0,TempString);
break;
}
case 2: //
{
Init_EditText(ValueEdit[0],32,128,4,0,1,1.15*TempFloat,0.95*TempFloat);
GetString_FromFloat(Float_LVoltage[Battery_No],0,TempString);
break;
}
case 3://转换电流
{
Init_EditText(ValueEdit[0],32,128,4,0,1,0.95*TempFloat,0.8*TempFloat);
GetString_FromFloat(DisCharge_LVoltage[Battery_No],0,TempString);
break;
}
case 4: //
{
Init_EditText(ValueEdit[0],32,128,4,0,1,1.3*TempFloat,1.0*TempFloat);
GetString_FromFloat(DCBus_HVoltage[Battery_No],0,TempString);
break;
}
case 5: //
{
Init_EditText(ValueEdit[0],32,128,4,0,1,1.0*TempFloat,0.85*TempFloat);
GetString_FromFloat(DCBus_LVoltage[Battery_No],0,TempString);
break;
}
case 6: //
{
Init_EditText(ValueEdit[0],32,128,4,0,1,500,250);
GetString_FromFloat(ACPower_HVoltage[Battery_No],0,TempString);
break;
}
case 7://转换电流
{
Init_EditText(ValueEdit[0],32,128,4,0,1,340,170);
GetString_FromFloat(ACPower_LVoltage[Battery_No],0,TempString);
break;
}
}
strcpy(ValueEdit[0]->TempString,TempString);
strcat(TempString,"V");
Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
Key_MenuItem=1;
}//输入有效
}
else
{
if((KeyCode<=18))
{
switch(Current_EditItem)
{
case 0: //
{
if(InputDeal(KeyCode,ValueEdit[0],1)==1)
{
Equal_HVoltage[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
//Write_Config(345+Battery_No,ValueEdit[0]->TempString);
bFlag=1;
}
else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
{
GetString_FromFloat(Equal_HVoltage[Battery_No],0,TempString);
strcpy(ValueEdit[0]->TempString,TempString);
strcat(TempString,"V");
Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
}
break;
}
case 1: //
{
if(InputDeal(KeyCode,ValueEdit[0],1)==1)
{
Float_HVoltage[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
bFlag=1;
//Write_Config(347+Battery_No,ValueEdit[0]->TempString);
}
else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
{
GetString_FromFloat(Float_HVoltage[Battery_No],0,TempString);
strcpy(ValueEdit[0]->TempString,TempString);
strcat(TempString,"V");
Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
}
break;
}
case 2: //
{
if(InputDeal(KeyCode,ValueEdit[0],1)==1)
{
Float_LVoltage[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
bFlag=1;
//Write_Config(349+Battery_No,ValueEdit[0]->TempString);
}
else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
{
GetString_FromFloat(Float_LVoltage[Battery_No],0,TempString);
strcpy(ValueEdit[0]->TempString,TempString);
strcat(TempString,"V");
Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
}
break;
}
case 3://转换电流
{
if(InputDeal(KeyCode,ValueEdit[0],1)==1)
{
DisCharge_LVoltage[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
bFlag=1;
//Write_Config(351+Battery_No,ValueEdit[0]->TempString);
}
else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
{
GetString_FromFloat(DisCharge_LVoltage[Battery_No],0,TempString);
strcpy(ValueEdit[0]->TempString,TempString);
strcat(TempString,"V");
Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
}
break;
}
case 4: //
{
if(InputDeal(KeyCode,ValueEdit[0],1)==1)
{
DCBus_HVoltage[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
bFlag=1;
//Write_Config(353+Battery_No,ValueEdit[0]->TempString);
}
else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
{
GetString_FromFloat(DCBus_HVoltage[Battery_No],0,TempString);
strcpy(ValueEdit[0]->TempString,TempString);
strcat(TempString,"V");
Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
}
break;
}
case 5: //
{
if(InputDeal(KeyCode,ValueEdit[0],1)==1)
{
DCBus_LVoltage[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
bFlag=1;
//Write_Config(355+Battery_No,ValueEdit[0]->TempString);
}
else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
{
GetString_FromFloat(DCBus_LVoltage[Battery_No],0,TempString);
strcpy(ValueEdit[0]->TempString,TempString);
strcat(TempString,"V");
Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
}
break;
}
case 6: //
{
if(InputDeal(KeyCode,ValueEdit[0],1)==1)
{
ACPower_HVoltage[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
bFlag=1;
//Write_Config(357+Battery_No,ValueEdit[0]->TempString);
}
else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
{
GetString_FromFloat(ACPower_HVoltage[Battery_No],0,TempString);
strcpy(ValueEdit[0]->TempString,TempString);
strcat(TempString,"V");
Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
}
break;
}
case 7://转换电流
{
if(InputDeal(KeyCode,ValueEdit[0],1)==1)
{
ACPower_LVoltage[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
bFlag=1;
//Write_Config(359+Battery_No,ValueEdit[0]->TempString);
}
else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
{
GetString_FromFloat(ACPower_LVoltage[Battery_No],0,TempString);
strcpy(ValueEdit[0]->TempString,TempString);
strcat(TempString,"V");
Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
}
break;
}
}
}
else if(KeyCode==20)
{
bFlag=1;
}
if(bFlag==1)
{
Display_AlarmPara(Battery_No,1);
Key_MenuItem=0;
}
}
}
//--------------报警参数设置--------------------------
void Display_AlarmPara(uCHAR Battery_No,uCHAR Is_Refresh)
{
uINT i=0;
//char TempString[32];
char String[8][32]={"均充过压值:","浮充过压值:","浮充欠压值","放电欠压值:",
"母线过压值:","母线欠压值:","交流过压值:","交流欠压值:"};
if(Is_Refresh==0)
{
Clear_Lcd();
DisPlay_TopLabel(1); //由于每页都有时间显示 时间在主循环中显示
DisPlay_StartView(1);//1为返回, 0为开始
}
for(i=0;i<8;i++)
Display_String(8,48+i*24,String[i],0);
GetString_FromFloat(Equal_HVoltage[Battery_No],0,String[0]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -