⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setscr.cpp

📁 许继的2812开发全套驱动程序,很全很实用的.rar
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        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 + -