Beispiel #1
0
void SetVoltLevel(void)

{
        unchar s[5];
        switch(MenuStatus)
        {
        case 2:
 
       if(CURPATH.CurrentDirStarClusID !=0)
       {
         CURPATH.CurrentDirStarClusID = 0;
       } 
       Str_8x16(1, 0,"添加电压等级" ); 
      if((ReadFile("CONFIG  TXT", Temp, 22,2)!=0xff))//取出系统默认的电压等级
       {
         s[0] = *(unint*)Temp/1000+0x30;         
         s[1] = (*(unint*)Temp%1000)/100+0x30;
         s[2] = ((*(unint*)Temp%1000)%100)/10+0x30;
         s[3] = ((*(unint*)Temp%1000)%100)%10+0x30;
         s[4] = '\0';
         if(((unint)Temp !=2)||((unint)Temp !=6)||((unint)Temp !=12))
         {  
         Str_8x16(1,0, "非法的电压等级");
         return;
         }
         Str_8x16(1,0, Temp);
         if(*(unint*)Temp ==2) Index =0;
         if((unint)Temp[0]==6 ) Index = 1;
         if((unint)Temp[0]==12) Index =2;
         
         DispFanBai(1,0,4);
         MenuStatus=1000;
         
       }
       else
       {
         //配置文件不存在。
         return;
         
       }  
        
          
          break;
        case 1000:
         switch(GetKey1())
         {
         case ENTER_KEY:
        if(ModefyModel ==0) 
        {
          if(ModifyFile("CONFIG  TXT", &Temp[Index],64+CurrentBatGrp*64+16, 2) !=0xff)
          {
            Str_8x16(1,0,"设置已经保存成功");
            return;
          }
          
        }
           return;
           //break;
         case UP_KEY:
          if (Index ==2)
            Index =0;
           else
            Index++;
           s[0] = BatVoltLevel[Index]/10;
           s[1] = BatVoltLevel[Index]%10;
           s[2] = 0;
           Str_8x16(1,0,s);
           DispFanBai(1,0,2);
           break;
         case DOWN_KEY:
           if (Index ==0)
            Index =2;
           else
            Index--;
           s[0] = BatVoltLevel[Index]/10;
           s[1] = BatVoltLevel[Index]%10;
           s[2] = 0;
           Str_8x16(1,0,s);
           DispFanBai(1,0,2);         
             
           break;
         case ESC_KEY:
           return;
           //break;
         default:
           break;          
          //break;          
          
     }
   }          
}
Beispiel #2
0
//**************************************
//功能 :设置ip地址,子网掩码,网关
//************************************
void SetIp(void)
{
  unchar s[5];
 switch(MenuStatus)
 {
 case 2:
   if(CURPATH.CurrentDirStarClusID !=0)
   {
     CURPATH.CurrentDirStarClusID = 0;
   }
   unint32 offset;
   if(pCurrentMenu == &MyMenu[16])//如果这是设置IP地址。           
   {
    Str_8x16(0, 0,"IP地址设置" ); 
    offset =4;
   }
   if(pCurrentMenu == &MyMenu[17])//如果这是设置子网掩码。           
   {
    Str_8x16(0, 0,"子网掩码设置" );      
    offset=8;
   }
   if(pCurrentMenu == &MyMenu[18])//如果这是设置网关地址。           
   {
    Str_8x16(0, 0,"网关设置" ); 
    offset=12;
   }   
   if((ReadFile("CONFIG  TXT", Temp, offset,4)!=0xff))
   {
     //显示ip

     s[0] = Temp[0]/100+0x30;
     s[1] = (Temp[0]%100)/10+0x30;
     s[2] = (Temp[0]%100)%10+0x30;
     s[3]= '.';
     s[4] =0;
     Str_8x16(1, 0, s);
     
     s[0] = Temp[1]/100+0x30;
     s[1] = (Temp[1]%100)/10+0x30;
     s[2] = (Temp[1]%100)%10+0x30;
     s[3]= '.';
     s[4] = 0;
     Str_8x16(1, 4, s); 

     s[0] = Temp[2]/100+0x30;
     s[1] = (Temp[2]%100)/10+0x30;
     s[2] = (Temp[2]%100)%10+0x30;
     s[3]= '.';
     s[4] = 0;
     Str_8x16(1, 8, s); 

     s[0] = Temp[3]/100+0x30;
     s[1] = (Temp[3]%100)/10+0x30;
     s[2] = (Temp[3]%100)%10+0x30;
     s[3] = '\0';
     Str_8x16(1, 12, s);  
     //反白显示第一项。
     Index=0;
     DispFanBai(1,0,3);
     MenuStatus =1000;
     
   }
   
   else
   {
     //文件不存在提示文件不存在确定键返回;
    return; 
   }
   
       

   break;
 case 1000:
     switch(GetKey1())   
     {
       case ENTER_KEY:
         if(Index ==3)
         {
          //保存数据到sd卡并退到上级菜单。
           if(pCurrentMenu == &MyMenu[16])//如果这是设置IP地址。           
           {
             ModifyFile("CONFIG  TXT", Temp,4, 4);
             MenuStatus =3;
             return;
           }
           if(pCurrentMenu == &MyMenu[18])//如果这是设置网关地址。           
           {
             ModifyFile("CONFIG  TXT", Temp,12, 4);
             MenuStatus =3;
             return;
           }           
           if(pCurrentMenu == &MyMenu[17])//如果这是设置子网掩码还需知道子网掩码的合法性。
           {
             unint32 mask;
             mask=(unint32)&Temp[0];
             if(((mask-1)|mask)==0xffffffff)//(mask -1 | mask) ==  0xFFFFFFFF ,如果是TRUE就是子网掩码,是FALSE就不是子网掩码。
             {
               //是合法的子网掩码;保存退出。
               ModifyFile("CONFIG  TXT", Temp,8, 4);
               MenuStatus =3;
              return;
             }
             MenuStatus =3;
             return;//放弃不保存退出。
           }
 
           
         }
           

         else
         //改变反白显示的位置
           DispFanBai(1,Index*4,3); //取消原先的反白           
           Index++;
           DispFanBai(1,Index*4,3);//改为当前的反白           
         
         break;
        case UP_KEY:
          if(Temp[Index]==255)
          Temp[Index]=0;
          else
          Temp[Index]++; 
          s[0] = Temp[Index]/100+0x30;
          s[1] = (Temp[Index]%100)/10+0x30;
          s[2] = (Temp[Index]%100)%10+0x30;

          s[4] = '\0';
          Str_8x16(1, Index*4, s);
          DispFanBai(1,Index*4,3);          
          break;
        case DOWN_KEY:
          if(Temp[Index]==0)
            Temp[Index] = 255;
          else
            Temp[Index]--;
          s[0] = Temp[Index]/100+0x30;
          s[1] = (Temp[Index]%100)/10+0x30;
          s[2] = (Temp[Index]%100)%10+0x30;

          s[4] = '\0';
          Str_8x16(1, Index*4, s); 
          DispFanBai(1,Index*4,3);          
          break;
        case ESC_KEY:
          if(Index ==0)
          {
            
          }
 
         else if(Index==3)
          {
            ////放弃数据并退到上级菜单
           MenuStatus = 3;
           return; 
          }

          else
          { 
                     //改变反白显示的位置
            
           DispFanBai(1,Index*4,3); //取消原先的反白
           Index--; 
           DispFanBai(1,Index*4,3);//改为当前的反白
          } 
          break;
     default:
          break;
     }
   break;
 default:
   break;
 }
}
 //-----------------------------------------------------------------------------
 bool dFileTouch(const char * name)
 {
    return ModifyFile(name, TOUCH);
 }
Beispiel #4
0
  //**********************************************
  // 1.3.2功能 电池数量
  //功能:设置当前电池组的电池数量。           
  //******************************
   SetCurrentBatNumbers()
   {
        unchar s[5];
        switch(MenuStatus)
        {
        case 2:

     
          
       if(CURPATH.CurrentDirStarClusID !=0)
       {
         CURPATH.CurrentDirStarClusID = 0;
       } 
       Str_8x16(1, 0,"添加电池数量" ); 
      if(ReadFile("CONFIG  TXT", Temp, 20,2)!=0xff)
       {
         s[0] = (unint)Temp/1000+0x30;         
         s[1] = ((unint)Temp%1000)/100+0x30;
         s[2] = (((unint)Temp%1000)%100)/10+0x30;
         s[3] = (((unint)Temp%1000)%100)%10+0x30;
         s[4] = '\0';
         Str_8x16(1,0, Temp);
         DispFanBai(1,0,4);
         MenuStatus=1000;
         
       }
       else
       {
         //配置文件不存在。
       }  
        
          
          break;
        case 1000:
         switch(GetKey1())
         {
         case ENTER_KEY:
        if(ModefyModel ==0) 
        {
          if(ModifyFile("CONFIG  TXT", Temp,64+CurrentBatGrp*64, 2) !=0xff)
          {
            Str_8x16(1,0,"设置已经保存成功");
            return;
          }
          
        }
           return;
           //break;
         case UP_KEY:
           if((unint)Temp==9999)
             *(unint*)Temp=0;
           else
             (unint)Temp[0]++;
         s[0] =(unint) Temp/1000+0x30;         
         s[1] = ((unint)Temp%1000)/100+0x30;
         s[2] = (((unint)Temp%1000)%100)/10+0x30;
         s[3] = (((unint)Temp%1000)%100)%10+0x30;
         s[4] = '\0';
         Str_8x16(1,0, Temp);
         DispFanBai(1,0,4);           
           
           break;
         case DOWN_KEY:
           if((unint)Temp ==0)
             *(unint*)Temp=9999;
             else
              (unint)Temp[0]--;
         s[0] =(unint) Temp/1000+0x30;         
         s[1] = ((unint)Temp%1000)/100+0x30;
         s[2] = (((unint)Temp%1000)%100)/10+0x30;
         s[3] = (((unint)Temp%1000)%100)%10+0x30;
         s[4] = '\0';
         Str_8x16(1,0, Temp);
         DispFanBai(1,0,4);               
             
           break;
         case ESC_KEY:
           break;
         default:
           break;          
          //break;          
          
     }
   }        
 }        
 //-----------------------------------------------------------------------------
 bool dFileDelete(const char * name)
 {
    return ModifyFile(name, DELETE);
 }