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

📄 setscr.cpp

📁 许继的2812开发全套驱动程序,很全很实用的.rar
💻 CPP
📖 第 1 页 / 共 5 页
字号:
#include  "SetScr.h"
#include  "lcd.h"
#include  "inputedit.h"
#include  "string.h"
//--------------输入编辑框--------------
uCHAR Current_EditItem=0;
uCHAR Modify_PassWord=0;
uCHAR PassInput_Error=0;
uCHAR PassInput_Differ=0;

//--------------------显示设定菜单-----------------
void DisPlay_SetMenu()
{
  uINT i=0;
  char String[8][32]={"电池维护","报警维护","通讯设置","系统校时","口令修改","音响参数","记录删除","出厂设置"};
  Clear_Lcd();
  DisPlay_TopLabel(1);
  DisPlay_StartView(1);//1为返回, 0为开始  位置固定
  for(i=0;i<8;i++)
  {
    if(i%3==0)
      Display_String(8,96+64*(i/3),String[i],1);
    else if(i%3==1)
      Display_String(88,96+64*(i/3),String[i],1);
    else if(i%3==2)
      Display_String(168,96+64*(i/3),String[i],1);
  }
  //-------------显示图标按钮----------
  Display_SetBitmap();
}
//----------------------------------
void Set_BatteryPara(uCHAR Battery_No,uCHAR KeyCode)
{
  uINT i=0;
  uCHAR bFlag=0;
  char TempString[32];
  char Battery_String[4][32]={"阀控式铅酸蓄电池","防酸式铅酸蓄电池",
                               "高倍率铬镍蓄电池","中倍率铬镍蓄电池"};
  char String[14][32]={"电池类型:","电池数量:","电池容量:","浮充电压:","均充电压:",
                        "充电限流:","定时均充:","均充周期:","均充时间:",
                        "转换电流:","转换时间:","温度补偿:","补偿基准:","补偿系数:"};
  char Select_String[2][32]={"否","是"};
  char Base_String[2][32]={"20℃","25℃"};
  sFLOAT TempFloat=220.0;
  if(System_Voltage==0)
    TempFloat=220.0;
  else if(System_Voltage==1)
    TempFloat=110.0;
  else if(System_Voltage==2)
    TempFloat=48.0;
  else
    TempFloat=24.0;
  //------------------每次进入新菜单时都要将Key_MenuItem置0------------------
  if(Key_MenuItem==0)//键盘输入框不可见
  {
    //-------------------键嘛值从21-35----------------------
    if((KeyCode<=35)&&(KeyCode>=21))
    {
      //---------------------显示键盘输入框-----------------------
      Display_KeyFrame();//
      if((KeyCode==21)||(KeyCode==27)||(KeyCode==32)||(KeyCode==33))
        strcpy(TempString,"请选择");
      else
        strcpy(TempString,"请输入");
      strcat(TempString,String[KeyCode-21]);
      Display_String(32,112,TempString,0);
      Current_EditItem=KeyCode-21;
      switch(Current_EditItem)
      {
        case 0: //电池了行
        {
          Init_SelectText(ValueSelect[0],32,128,4,Battery_Index[Battery_No],1);
          for(i=0;i<4;i++)
            strcpy(ValueSelect[0]->TempString[i],Battery_String[i]);
          Display_String(ValueSelect[0]->StartX,ValueSelect[0]->StartY,ValueSelect[0]->TempString[Battery_Index[Battery_No]],1);
          break;
        }
        case 1: //电池只数
        {
          Init_EditText(ValueEdit[0],32,128,3,0,1,128,2);
          GetString_FromInt(Battery_CellCount[Battery_No],ValueEdit[0]->TempString);
          strcpy(TempString,ValueEdit[0]->TempString);
          strcat(TempString,"只");
          Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          break;
        }
        case 2: //电池容量
        {
          Init_EditText(ValueEdit[0],32,128,4,0,1,3000,20);
          GetString_FromInt(Full_Capacity[Battery_No],TempString);
          strcpy(ValueEdit[0]->TempString,TempString);//去掉单位
          strcat(TempString,"Ah");
          Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          break;
        }
        case 3: //浮充电压
        {
          Init_EditText(ValueEdit[0],32,128,4,0,1,1.2*TempFloat,TempFloat);
          GetString_FromFloat(Float_SetVoltage[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: //均充电压
        {
          Init_EditText(ValueEdit[0],32,128,4,0,1,1.28*TempFloat,1.05*TempFloat);
          GetString_FromFloat(Equal_SetVoltage[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: //限流值
        {
          Init_EditText(ValueEdit[0],32,128,4,0,1,0.25*Full_Capacity[Battery_No],0.08*Full_Capacity[Battery_No]);
          GetString_FromFloat(Current_SetVoltage[Battery_No],0,TempString);
          strcpy(ValueEdit[0]->TempString,TempString);
          strcat(TempString,"A");
          Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,1);
          break;
        }
        case 6://定时均充
        {
          Init_SelectText(ValueSelect[0],32,128,2,Has_Periodic[Battery_No],1);
          for(i=0;i<2;i++)
            strcpy(ValueSelect[0]->TempString[i],Select_String[i]);
          Display_String(ValueSelect[0]->StartX,ValueSelect[0]->StartY,ValueSelect[0]->TempString[Has_Periodic[Battery_No]],1);
          break;
        }
        case 7://均充周期
        {
          Init_EditText(ValueEdit[0],32,128,3,0,1,180,90);
          GetString_FromInt(Periodic_Time[Battery_No],TempString);
          strcpy(ValueEdit[0]->TempString,TempString);//去掉单位
          strcat(TempString,"天");
          Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          break;
        }
        case 8://均充时间
        {
          Init_EditText(ValueEdit[0],32,128,3,0,1,12,5);
          GetString_FromInt(ECharge_Time[Battery_No],TempString);
          strcpy(ValueEdit[0]->TempString,TempString);//去掉单位
          strcat(TempString,"小时");
          Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          break;
        }
        case 9://转换电流
        {
          Init_EditText(ValueEdit[0],32,128,5,0,1,0.05*Full_Capacity[Battery_No],0.01*Full_Capacity[Battery_No]);
          GetString_FromFloat(Change_Current[Battery_No],1,TempString);
          strcpy(ValueEdit[0]->TempString,TempString);
          strcat(TempString,"A");
          Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          break;
        }
        case 10: //转换时间
        {
          Init_EditText(ValueEdit[0],32,128,1,0,1,3,1);
          GetString_FromInt(Change_SetTime[Battery_No],TempString);
          strcpy(ValueEdit[0]->TempString,TempString);//去掉单位
          strcat(TempString,"小时");
          Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          break;
        }
        case 11: //温度补偿
        {
          Init_SelectText(ValueSelect[0],32,128,2,Has_TempCorrect[Battery_No],1);
          for(i=0;i<2;i++)
            strcpy(ValueSelect[0]->TempString[i],Select_String[i]);
          Display_String(ValueSelect[0]->StartX,ValueSelect[0]->StartY,ValueSelect[0]->TempString[Has_TempCorrect[Battery_No]],1);
          break;
        }
        case 12: //补偿基准
        {
          Init_SelectText(ValueSelect[0],32,128,2,Temp_Base[Battery_No],1);
          for(i=0;i<2;i++)
            strcpy(ValueSelect[0]->TempString[i],Base_String[i]);
          Display_String(ValueSelect[0]->StartX,ValueSelect[0]->StartY,ValueSelect[0]->TempString[Temp_Base[Battery_No]],1);
          break;
        }
        case 13: //补偿系数
        {
          Init_EditText(ValueEdit[0],32,128,4,0,1,0.5,0.1);
          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;
        }
      }
      Key_MenuItem=1;
    }
    //--
  }
  else
  {
    if((KeyCode<=18))
    {
      switch(Current_EditItem)
      {
        case 0: //电池了行
        {
          if(SelectDeal(KeyCode,ValueSelect[0],0))
          {
            bFlag=1;
            if(Battery_Index[Battery_No]!=ValueSelect[0]->Current_Index)
            {
              Battery_Index[Battery_No]=ValueSelect[0]->Current_Index;
              //GetString_FromInt(Battery_Index[Battery_No],TempString);
              //Write_Config(315+Battery_No,TempString);
            }
          }
          break;
        }
        case 1: //电池只数
        {
          if(InputDeal(KeyCode,ValueEdit[0],0)==1)
          {
            bFlag=1;
            Battery_CellCount[Battery_No]=Get_IntFromString(ValueEdit[0]->TempString);
            //Write_Config(319+Battery_No,ValueEdit[0]->TempString);
          }
          else if(InputDeal(KeyCode,ValueEdit[0],0)==2)//输入无效
          {
            GetString_FromInt(Battery_CellCount[Battery_No],ValueEdit[0]->TempString);
            strcpy(TempString,ValueEdit[0]->TempString);
            strcat(TempString,"只");
            Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          }
          break;
        }
        case 2: //电池容量
        {
          if(InputDeal(KeyCode,ValueEdit[0],0)==1)
          {
            bFlag=1;
            Full_Capacity[Battery_No]=Get_IntFromString(ValueEdit[0]->TempString);
            //Write_Config(317+Battery_No,ValueEdit[0]->TempString);
          }
          else if(InputDeal(KeyCode,ValueEdit[0],0)==2)
          {
            GetString_FromInt(Full_Capacity[Battery_No],TempString);
            strcpy(ValueEdit[0]->TempString,TempString);//去掉单位
            strcat(TempString,"Ah");
            Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          }
          break;
        }
        case 3: //浮充电压
        {
          if(InputDeal(KeyCode,ValueEdit[0],1)==1)
          {
            bFlag=1;
            Float_SetVoltage[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
            //Write_Config(321+Battery_No,ValueEdit[0]->TempString);
          }
          else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
          {
            GetString_FromFloat(Float_SetVoltage[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)
          {
            bFlag=1;
            Equal_SetVoltage[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
            //Write_Config(323+Battery_No,ValueEdit[0]->TempString);
          }
          else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
          {
            GetString_FromFloat(Equal_SetVoltage[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)
          {
            bFlag=1;
            Current_SetVoltage[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
            //Write_Config(325+Battery_No,ValueEdit[0]->TempString);
          }
          else if(InputDeal(KeyCode,ValueEdit[0],1)==2)
          {
            GetString_FromFloat(Current_SetVoltage[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(SelectDeal(KeyCode,ValueSelect[0],0))
          {
            bFlag=1;
            if(Has_Periodic[Battery_No]!=ValueSelect[0]->Current_Index)
               Has_Periodic[Battery_No]=ValueSelect[0]->Current_Index;
            //GetString_FromInt(Has_Periodic[Battery_No],TempString);
            //Write_Config(335+Battery_No,TempString);
          }
          break;
        }
        case 7://均充周期
        {
          if(InputDeal(KeyCode,ValueEdit[0],0)==1)
          {
            bFlag=1;
            Periodic_Time[Battery_No]=Get_IntFromString(ValueEdit[0]->TempString);
            //Write_Config(333+Battery_No,ValueEdit[0]->TempString);
          }
          else if(InputDeal(KeyCode,ValueEdit[0],0)==2)
          {
            GetString_FromInt(Periodic_Time[Battery_No],TempString);
            strcpy(ValueEdit[0]->TempString,TempString);//去掉单位
            strcat(TempString,"天");
            Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          }
          break;
        }
        case 8://均充时间
        {
          if(InputDeal(KeyCode,ValueEdit[0],0)==1)
          {
            bFlag=1;
            ECharge_Time[Battery_No]=Get_IntFromString(ValueEdit[0]->TempString);
            //Write_Config(337+Battery_No,ValueEdit[0]->TempString);
          }
          else if(InputDeal(KeyCode,ValueEdit[0],0)==2)
          {
            GetString_FromInt(ECharge_Time[Battery_No],TempString);
            strcpy(ValueEdit[0]->TempString,TempString);//去掉单位
            strcat(TempString,"小时");
            Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          }
          break;
        }
        case 9://转换电流
        {
          if(InputDeal(KeyCode,ValueEdit[0],1)==1)
          {
            bFlag=1;
            Change_Current[Battery_No]=Get_FloatFromString(ValueEdit[0]->TempString);
            //Write_Config(339+Battery_No,ValueEdit[0]->TempString);
          }
          else  if(InputDeal(KeyCode,ValueEdit[0],1)==2)
          {
            GetString_FromFloat(Change_Current[Battery_No],1,TempString);
            strcpy(ValueEdit[0]->TempString,TempString);
            strcat(TempString,"A");
            Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          }
          break;
        }
        case 10: //转换时间
        {
          if(InputDeal(KeyCode,ValueEdit[0],0)==1)
          {
            bFlag=1;
            Change_SetTime[Battery_No]=Get_IntFromString(ValueEdit[0]->TempString);
            //Write_Config(341+Battery_No,ValueEdit[0]->TempString);
          }
          else  if(InputDeal(KeyCode,ValueEdit[0],0)==2)
          {
            GetString_FromInt(Change_SetTime[Battery_No],TempString);
            strcpy(ValueEdit[0]->TempString,TempString);//去掉单位
            strcat(TempString,"小时");
            Display_String(ValueEdit[0]->StartX,ValueEdit[0]->StartY,TempString,0);
          }
          break;
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -