display.c
上传用户:jndfzc
上传日期:2014-06-02
资源大小:325k
文件大小:149k
源码类别:

单片机开发

开发平台:

Others

  1. //#################################################
  2. //                     2006年11月   
  3. //                    Ver 1.0
  4. //                   GCA-150A
  5. //           完成人:黄光林
  6. //modify:  2006-11 
  7. //#################################################
  8. #include  "Define.h"
  9. #include  "maindef.h"
  10. #include  "LCD.h"
  11. #include  "Display.h"
  12. #include  "table.H"
  13. #include  "P103_mmi2dsp.h"
  14. /******************ARM  TO   DSP  交换数据所需的变量*********************888*/
  15. UC Return_flag;
  16. UC Flag_Password_True=0;
  17. UI   YC_Value[YC_NUM];       /*数组存所有YC数据*/
  18. UI   YC_Value1[YC_NUM];       /*数组存所有YC数据*/
  19. short  YC_POWER_P;//有功功率
  20. short  YC_POWER_Q;//无功功率
  21. struct  System_Info_fm  System_Info; //实时信息
  22. unsigned char TargetArea;            //目标区(用于复制定值)
  23. unsigned char SourceArea;            //原始区(用于复制定值)
  24. struct  SOE_Buf_Show_fm      SOE_Buf_Show0;          //存放SOE的缓冲区
  25. struct  Report_Buf_Show_fm   Report_Buf_Show0;
  26. struct SoftInformation_fm  SoftInformation;
  27. struct Setting_Copy_fm    Setting_Copy;
  28. struct Setting_Switch_fm  Setting_Switch;
  29. struct Output_Test_YK_fm  Output_Test_YK;
  30. struct  Channel_Ration_Flag_fm  Channel_Ration_Flag;
  31. struct  YYB_Modify_Flag_fm   YYB_Modify_Flag;
  32. struct  Fault_Recode_Flag_fm   Fault_Recode_Flag;    //召唤故障报告/SOE缓冲区
  33. struct Harmonic_Value_fm Harmonic_Value;
  34. struct Time_buf realtime;
  35. struct  Time_buf  realtime1;         //实时时钟修改用
  36. unsigned int   System_config[CONFIG_NUM];    //系统配置
  37. unsigned int   System_setting[SETTING_NUM];   //定值
  38. /*+++++++++++++++++++++++++++++++内部用+++++++++++++++++++++++++*/
  39. UI   System_config_Old[CONFIG_NUM];    //系统配置
  40. UI   System_setting_Old[SETTING_NUM];   //定值
  41. UI   YC_Value1_Change[10];  
  42. UI   Screen_state = 1;
  43. UI   L_Screen_state = 0;
  44. UI  Outport_FixedValue=0;
  45. UC   SubMenuPosition=0, menupage=0,SubMenuPosition_temp=0;
  46. UC   Father1_MenuPosition=0,Father2_MenuPosition=0,Father3_MenuPosition=0;
  47. UC    Father2_page=0,Father3_page=0;
  48. UC   CT_Type=0,Select_CT_Type=0,Auto_CT_Type=0;
  49. UI   temp1=0;
  50. UC   PassWordNum,PassWordchanged=0;
  51. UI   PASSWord_temp,PASSWord;
  52. UI  Returnto_Modify;
  53. /*
  54. 修改返回地址
  55. 0 系统信息
  56. 4 自动调整
  57. 5     手动调整
  58. 6      时钟调整
  59. 7 TA 参数
  60. 8     TV参数
  61. 9   开出传动
  62. 10    端口信息
  63. 11    压板投退
  64. 12    遥信参数
  65. 101~112 定值修改
  66. 116 查看SOE
  67. 211 事件报告
  68. 212 故障简报
  69. 213 操作记录
  70. */
  71. UI  Returnto_Save;
  72. /*
  73. 保存返回地址
  74. 5    手动调整
  75. 6    时钟调整
  76. 7 TA 参数
  77. 8     TV参数
  78. 9  
  79. 10    端口信息
  80. 11    压板投退
  81. 12    遥信参数
  82. 18  遥分操作
  83. 19  遥合操作
  84. 20~30  开出传动
  85. 101~112 定值修改
  86. */
  87. UC   Key_UP,Key_DOWN,Key_LEFT,Key_RIGHT,Key_OK,Key_CANCEL,Key_FUGUI,Key_ADD,Key_SUB;
  88. UC   L_Key_UP,L_Key_DOWN,L_Key_LEFT,L_Key_RIGHT,L_Key_OK,L_Key_CANCEL,L_Key_FUGUI,L_Key_ADD,L_Key_SUB;
  89. UC   Key_ADD_Long,Key_SUB_Long;
  90. UC FixedValue_Num=0;//临时定值区号
  91. UC FixedValue_Switch_Num=0;//定值切换区号
  92. UC PC_Comm_Flag=0;
  93. UC New_Information_Flag=0;
  94. UI  Rs485_Baud;//通信参数用
  95. UC Sametime_Phase=0;
  96. UC time_modify_flag=0;
  97. UC update_flag1=0;
  98. UC Output_Select_Flag=0;//开出传动用
  99. UC Harmonic_Num=2;
  100. UC Soe_Num=0;
  101. UC Fault_Num=0;
  102. UC Command_Flag=0;
  103. UI Cmd_ArmToDsp;
  104. UI CmdReturn_True_Flag=0;
  105. UI CmdReturn_Erro_Flag=0;
  106. UC Cmd_Exectue_Flag=0;
  107. UC CmdExectue_Erro_Flag=0;
  108. UC PT_num;
  109. struct Limit
  110. {
  111.  UI Low_Limit;
  112.  UI Up_Limit;
  113.  UI step_Size;
  114. }; //下限上限步长
  115. const struct Limit  PT_Limit={0,250,1};//*10
  116. const struct Limit  PT_FF_Limit={0,400,1};//*10
  117. const struct Limit  CT_YF_Limit={0,5000,1};
  118. const struct Limit  CT_FF_Limit={1,5,4}; 
  119. const struct Limit  YXTime_Limit={0,32000,1};
  120. const struct Limit  YMBase_Limit={0,999999999,1};
  121. const struct Limit  FXP_Limit={10,20000,1};
  122. const struct Limit  P_Limit={50,20000,1};
  123. const struct Limit  IntegralWidth_Limit={0,250,1};
  124. const struct Limit Control_Word_Limit={0,1,1};
  125. const struct Limit FXCurrent_Limit={5,9999,1};//*100
  126. const struct Limit GZCurrent_Limit={5,9999,1};//*100
  127. const struct Limit  Current_Limit={5,9999,1};//*100
  128. const struct Limit Voltage_Limit={50,15000,1};//*100
  129. const struct Limit GVoltage_Limit={50,15000,1};//*100
  130. const struct Limit Time_Limit={3,9999,1};//*100
  131. const struct Limit PTime_Limit={3,20000,1};//*100
  132. const struct Limit KZD_Limit={0,100,1};
  133. const struct Limit K_Limit={20,9999,1};
  134. const struct Limit  Freq_limit={4000,6000,1};//*100
  135. const struct Limit  GFreq_limit={4000,6000,1};//*100
  136. const struct Limit Huacha_limit={0,1000,1};
  137. const struct Limit Changle_limit={0,9000,100};//*10重合角度
  138. const struct Limit Channel_limit={8000,12000,1};//*10
  139. const struct Limit Harmonic_limit={2,23,1};//谐波次数
  140. const struct Limit XBGJ_limit={0,100,1};//谐波告警
  141. const UI Setting_Init[SETTING_NUM]=
  142. {0,0,7000,100,7000,100,11000,100,11000,100,
  143.   5000,100,7000,100,7000,100,11000,100,11000,100,
  144.   5000,100,7000,100,7000,100,11000,100,11000,100,
  145.   5000,100,7000,100,7000,100,11000,100,11000,100,
  146.   5000,100,
  147.  };
  148. const UI Config_Init[CONFIG_NUM]=
  149. { 1,  9600, 100,  100, 100, 100, 100, 100,   100,  100, 100,  100,
  150.   100,   
  151.  };
  152. extern UC display_buf[20];
  153. extern UC ucsigned_60s;
  154. extern US ucsigned_60s_Count;
  155. extern UC  ucsigned_1000ms_flag;
  156. //++++++++++++++++++++++++++++++函数声明区++++++++++++++++++++++++++++++++++
  157. void Dalog_Info_Show(UC value,UC key,UC type);
  158. void FirstRun_Bmp_View(void);
  159. void Second_Measurevalue_Show(UC page);
  160. void Second_Measurevalue1_Show(UC page);
  161. void Run_Bmp_Value_Show(void);
  162. void RealYX_Show(UC page,UC select);
  163. void RealPower_Show(UC page);
  164. void  Screen_MainMenu(void);
  165. void ViewPassword(UC num);
  166. void Comm_Information_Show(UC page,UC select);
  167. void YxTime_Value_Show(UC page,UC select);
  168. void Yaban_Control_Show(UC page,UC select );//压板
  169. void  Yaban_Control_Modify(void);
  170. void  System_Config_Show(UC page,UC select);
  171. void   Outport_Test_Show(UC page,UC select);
  172. void Channel_Adjust_Manual(void);
  173. void Channel_Value_Show(UC page,UC select) ;
  174. void Channel_Adjust_Auto(void);
  175. void Function_Introduction(void);
  176. void Version_Show(void);
  177. void System_Reset(void);
  178. void  FixedValue_A_Show(UC page,UC select);
  179. void Fault_Record_Show(UC select);
  180. void Look_Soe_Show(void);
  181. void   FixedValue_Manage_Show(UC page ,UC select);
  182. void  System_Help_show(UC select);
  183. void FixedValue_A_FYGI_Show(UC page,UC select );//定值组A-零序过流
  184. void FixedValue_A_FYGI_Modify(void);/*定值组A-零序过流*/
  185. void Outport_Setting_Show(UC page ,UC select);
  186. void  Outport_Value_Show(UC page,UC select);
  187. void New_Information(void);
  188. void Frame_Show(UC select);
  189. void Data_Save(void);
  190. void Data_Select_Save(void);
  191. void Data_Select_show(UC select);
  192. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  193. //+++++++++++++++++++++++++++++++++++++++++++++++++
  194. //
  195. //                              函数原代码区
  196. //+++++++++++++++++++++++++++++++++++++++++++++++++
  197. void delayfor(long count)
  198. {
  199.     long i,j;
  200.     for(i=0;i<count;i++)
  201.         for(j=0;j<10;j++);
  202. }
  203. /*显示定值组*/
  204. /*键盘检查*/
  205. void  Updata_key(US Key)
  206. {      
  207. static UC ucTempADD=0,ucTempSUB=0; 
  208.     L_Key_UP     = Key_UP;
  209.     L_Key_DOWN   = Key_DOWN;
  210.     L_Key_LEFT   = Key_LEFT;
  211.     L_Key_RIGHT  = Key_RIGHT;
  212.     L_Key_OK     = Key_OK;
  213.     L_Key_CANCEL = Key_CANCEL;
  214.     L_Key_FUGUI  = Key_FUGUI;
  215.      L_Key_ADD= Key_ADD;
  216.     L_Key_SUB= Key_SUB;
  217.      
  218.     if( (Key&0x1ff) != 0x1ff)
  219.      {System_Info.MMI_Statue=0x00;ucsigned_60s=0;ucsigned_60s_Count=0;}
  220.     if( (Key&0x02) != 0)        Key_CANCEL = 0;
  221.       else                       Key_CANCEL = 1;
  222.     
  223.     if( (Key&0x0080) != 0)        Key_LEFT = 0;
  224.     else                           Key_LEFT = 1;
  225.     if( (Key&0x0040) != 0)       Key_DOWN= 0;
  226.     else                          Key_DOWN= 1;
  227.     if( (Key&0x0020) != 0)     Key_UP   = 0;
  228.     else                          Key_UP = 1;
  229.     if( (Key&0x0100) != 0)       Key_RIGHT= 0;
  230.     else                          Key_RIGHT = 1;
  231.     
  232.     if( (Key&0x0001) != 0)       Key_OK = 0;//0x004
  233.     else                          Key_OK = 1;
  234.     
  235.     if( (Key&0x0010) != 0)     Key_ADD = 0;//0x0008
  236.     else                          Key_ADD = 1;
  237.     
  238.     if( (Key&0x0008) != 0)       Key_SUB = 0;//0x0010
  239.     else                          Key_SUB = 1;
  240.     
  241.     if( (Key&0x004) != 0)     Key_FUGUI = 0;//0x0001
  242.     else                          Key_FUGUI = 1;
  243.     
  244.       /*ADD*/
  245.  if( Key_ADD==1 )
  246.    {
  247.     ucTempADD++;
  248.     if( ucTempADD > 50 )
  249.       { ucTempADD=45; Key_ADD_Long=1; }
  250.    }
  251.  else
  252.    {
  253.   //  if( ucTempADD > 5 ) { Key_Up_Change=1; }   /*按键*/
  254.     ucTempADD=0; Key_ADD_Long=0;
  255.    }
  256.  /*SUB*/
  257.  if( Key_SUB==1 )
  258.    {
  259.     ucTempSUB++;
  260.     if( ucTempSUB > 50 )
  261.       { ucTempSUB=45; Key_SUB_Long=1; }
  262.    }
  263.  else
  264.    {
  265.   //  if( ucTempDown > 5 ) { Key_Down_Change=1; }   /*按键*/
  266.     ucTempSUB=0; Key_SUB_Long=0;
  267.    }
  268. }
  269. //############################################################
  270. //               以下为菜单结构程序:
  271. //
  272. //
  273. //                        第一部分         
  274. //############################################################
  275. void Screen_Logo(void)
  276. {  
  277.     if(L_Screen_state!=0)
  278.      {  
  279.        Logo_View();
  280.        L_Screen_state=0;
  281.      }
  282.    if((Key_OK==0 )&&(L_Key_OK==1))
  283.      {
  284.       Screen_state =1;
  285.         L_Key_OK    = Key_OK;
  286.         
  287.      }
  288. }
  289. /*一次系统运行图*/
  290. void FirstRun_Bmp_View(void)
  291. {
  292.   if(L_Screen_state!=2)
  293.      {  
  294.         Run_Bmp_View();
  295.        //Run_Bmp_Value_Show();
  296.         State_Time_Show();
  297.     L_Screen_state=2;
  298.      }
  299.    if((Key_OK==0 )&&(L_Key_OK==1))
  300.      {
  301.       Screen_state =1;
  302.         L_Key_OK    = Key_OK;
  303.     }
  304. }
  305. //++++++++++++++主菜单++++++++++++++++++
  306. //         实时数据
  307. //         报告信息
  308. //         保护定值
  309. //         系统信息
  310. //         控制操作
  311. //         帮助信息
  312. //++++++++++++++++++++++++++++++++++++++++=
  313. void  Screen_MainMenu(void)
  314. {
  315.    UC  i;
  316.     if(L_Screen_state!=1)
  317.      {  
  318.        
  319.        L_Screen_state=1;
  320.   cls();
  321. Logo_Title();
  322. LCDPrintf(0,0,0,"拾主菜单",8);
  323.        
  324.        for(i=0;i<6;i++)
  325.          LCDPrintf( 1,1,(i+1)*16,(char *)mainMenu[i],20);
  326.             SubMenuPosition= Father1_MenuPosition;
  327. if(SubMenuPosition>6) SubMenuPosition = 0;
  328.        LCDPrintf( 0,1,(SubMenuPosition+1)*16,(char *)mainMenu[SubMenuPosition],20);
  329.           Frame_Show(0);
  330.        
  331.      }
  332.     if((Key_UP==0 )&&(L_Key_UP==1))
  333.      { 
  334.        L_Key_UP    = Key_UP;
  335.        LCDPrintf( 1,1,(SubMenuPosition+1)*16,(char *)mainMenu[SubMenuPosition],20);
  336.        
  337.        if( SubMenuPosition == 0) SubMenuPosition = 5;
  338.        else                       SubMenuPosition--;
  339.        
  340.        LCDPrintf( 0,1,(SubMenuPosition+1)*16,(char *)mainMenu[SubMenuPosition],20);
  341.        
  342.       Frame_Show(0);
  343.      } 
  344.     if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  345.      { 
  346.        L_Key_DOWN  = Key_DOWN;
  347.        LCDPrintf( 1,1,(SubMenuPosition+1)*16,(char *)mainMenu[SubMenuPosition],20);
  348.        
  349.        if( SubMenuPosition == 5) SubMenuPosition = 0;
  350.        else                       SubMenuPosition++;
  351.        
  352.        LCDPrintf( 0,1,(SubMenuPosition+1)*16,(char *)mainMenu[SubMenuPosition],20);
  353.          Frame_Show(0);
  354.      } 
  355.    if((Key_OK==0 )&&(L_Key_OK==1))
  356.      {  
  357.         L_Key_OK = Key_OK;
  358.     if(((SubMenuPosition<6)&&(SubMenuPosition!=3))||(((System_Info.LED_Statue&0x02)==0x02)&&(SubMenuPosition==3)))
  359.         Screen_state =(1+SubMenuPosition)*10+1;
  360.        if(SubMenuPosition==3)  
  361.         { 
  362.            MMI_DSP_Instruction(0x0500,0,0);/*读系统定值*/
  363.            Dalog_Info_Show(0, 7, 0);
  364. Command_Flag=1;
  365. }
  366.         Father1_MenuPosition=SubMenuPosition;
  367. Father2_MenuPosition=0;
  368. Father2_page=0;
  369.      }
  370.     if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  371.      {
  372.         Screen_state =2;
  373.         SubMenuPosition = 0;
  374. Father1_MenuPosition=0;
  375. Flag_Password_True=0;
  376.         L_Key_CANCEL = Key_CANCEL;
  377.      }
  378.  if(Command_Flag>0) 
  379.            {
  380.                      if(Check_Instruction_Statue(0x0500)==0x00)
  381.                           {
  382.                         /*系统配置备份*/
  383.                        for(i=0;i<CONFIG_NUM;i++)
  384.                             System_config_Old[i]=System_config[i];
  385.              //Screen_state =CmdReturn_True_Flag;
  386.              Dalog_Info_Show(0, 12, 0);
  387.              Command_Flag=0;
  388.              Screen_state =41;
  389.        }
  390.          else  if(Check_Instruction_Statue(0x0500)==0x22)
  391.              {
  392.              Command_Flag=0;
  393.              Dalog_Info_Show(1, 12, 0);
  394.              }
  395.  }
  396. }
  397. //+++++++++++主菜单/实时数据++++++++++++++++++
  398. //     二次测量值
  399. //                一次测量值
  400. //    实时遥信
  401. //                     实时电度
  402. //                       谐波分量
  403. //    查看SOE
  404. //+++++++++++++++++++++++++++++++++++++++++++++++++++
  405. void  Sample_Information_Menu(void)
  406. {
  407.   UC i;
  408.     if(L_Screen_state!=11)
  409.      {  
  410.        L_Screen_state=11;
  411.        cls();
  412. Logo_Title();
  413.        LCDPrintf( 0,0,0,(char *)(&mainMenu[0][0]),10);
  414.        
  415.        for(i=0;i<6;i++)
  416.          LCDPrintf( 1,1,(i+1)*16,(char *)secondMenu_sample[i],20);
  417.         SubMenuPosition=Father2_MenuPosition;
  418.        if(SubMenuPosition>3) SubMenuPosition = 0;
  419.        
  420.        LCDPrintf( 0,1,(SubMenuPosition+1)*16,(char *)secondMenu_sample[SubMenuPosition],20);
  421.           Frame_Show(0);
  422.      }
  423.     if((Key_UP==0 )&&(L_Key_UP==1))
  424.      { 
  425.        L_Key_UP    = Key_UP;
  426.        LCDPrintf( 1,1,(SubMenuPosition+1)*16,(char *)secondMenu_sample[SubMenuPosition],20);
  427.        
  428.        if( SubMenuPosition == 0) SubMenuPosition = 3;
  429.        else                       SubMenuPosition--;
  430.        
  431.        LCDPrintf( 0,1,(SubMenuPosition+1)*16,(char *)secondMenu_sample[SubMenuPosition],20);
  432.        
  433.    Frame_Show(0);
  434.        } 
  435.     if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  436.      { 
  437.        L_Key_DOWN  = Key_DOWN;
  438.        LCDPrintf( 1,1,(SubMenuPosition+1)*16,(char *)secondMenu_sample[SubMenuPosition],20);
  439.        
  440.        if( SubMenuPosition == 3) SubMenuPosition = 0;
  441.        else                       SubMenuPosition++;
  442.        
  443.        LCDPrintf( 0,1,(SubMenuPosition+1)*16,(char *)secondMenu_sample[SubMenuPosition],20);
  444.        
  445.    Frame_Show(0);
  446.        } 
  447.      if((Key_OK==0 )&&(L_Key_OK==1))
  448.       {
  449.       L_Key_OK=Key_OK;
  450. Father2_MenuPosition=SubMenuPosition;
  451.         switch(SubMenuPosition)
  452.          {
  453.             case 0: 
  454.    Screen_state =111;
  455.   break;
  456. case 1: 
  457.    Screen_state =112;
  458.     break;
  459.         case 2:
  460.      Screen_state =113;
  461.     break;
  462.         case 3: 
  463.       Screen_state =116;//查看SOE
  464.                  Returnto_Modify=16;
  465. break;
  466.           
  467.             default: 
  468. Screen_state=0;
  469.                      break;
  470.          };
  471.       }
  472.     if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  473.      {
  474.         Screen_state =1;
  475.         SubMenuPosition = 0;
  476.         L_Key_CANCEL = Key_CANCEL;
  477.      }
  478. }
  479. //主菜单/实时数据/二次测量值
  480. void Second_Measurevalue(void)
  481. {
  482.     if(L_Screen_state!=111)
  483.      {  
  484.        L_Screen_state=111;
  485.         menupage= 0;
  486.    cls();
  487.         Logo_Title();
  488.        Second_Measurevalue_Show(menupage);
  489.     
  490.      }
  491.     if((Key_UP==0 )&&(L_Key_UP==1))
  492.      { 
  493.        L_Key_UP    = Key_UP;
  494.        
  495.        if( menupage == 0) menupage = 5;
  496.        else                       menupage--;
  497.       cls();
  498.         Logo_Title();
  499.         Second_Measurevalue_Show(menupage);
  500.        } 
  501.     if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  502.      { 
  503.        L_Key_DOWN  = Key_DOWN;
  504.       
  505.        if( menupage == 5) menupage = 0;
  506.        else                       menupage++;
  507.       cls();
  508.         Logo_Title();
  509.         Second_Measurevalue_Show(menupage);
  510.        }
  511.     if(update_flag1==1)
  512.      {
  513.      update_flag1=0;
  514.      Second_Measurevalue_Show(menupage);
  515.      }
  516.      if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  517.      {
  518.         Screen_state =11;
  519.         menupage = 0;
  520.         L_Key_CANCEL = Key_CANCEL;
  521.      }
  522. }
  523. void Second_Measurevalue_Show(UC page)
  524. { UC i,temp=0;
  525.    
  526.        LCDPrintf( 0,0,0,"壹PT遥测值",12);  
  527.    
  528.         for(i=0;i<6;i++)
  529.          LCDPrintf( 1,1,(i+1)*16,(char *)Secondvalue1_Text[i+6*page],20);
  530.  switch(page)
  531.      {
  532.      case 0:
  533.             Bcd_show(1, 6, 16, YC_Value[Ua1],0, 1, 0,0);
  534.         //Angle_Show(1,6,32,  YC_Value[Ua1_ANGLE],1,1);
  535.         Bcd_show(1, 6, 32,  YC_Value[Ua1+1],0, 1, 0,0);
  536.         //Angle_Show(1,6,64,YC_Value[Ua1_ANGLE+2],1,1);
  537.         Bcd_show(1, 6, 48,  YC_Value[Ua1+2],0, 1, 0,0);
  538.         //Angle_Show(1,6,96,YC_Value[Ua1_ANGLE+4],1,1);
  539.          Bcd_show(1, 6, 4*16,  YC_Value[Ua1+3],0, 1, 0,0);
  540.         //Angle_Show(1,6,32,YC_Value[Ua1_ANGLE+6],1,1);
  541.         Bcd_show(1, 6, 5*16,  YC_Value[Ua1+4],0, 1, 0,0);
  542.         //Angle_Show(1,6,64,YC_Value[Ua1_ANGLE+8],1,1);
  543.         Bcd_show(1, 6, 6*16,  YC_Value[Ua1+5],0, 1, 0,0);
  544.         //Angle_Show(1,6,96,YC_Value[Ua1_ANGLE+10],1,1);
  545.         temp=3;
  546.         break;
  547.         case 1:
  548.          Bcd_show(1, 6, 16,  YC_Value[Ua1+6],0, 1, 0,0);
  549.         //Angle_Show(1, 6, 32,  YC_Value[Ua1_ANGLE+12],1, 1);
  550.         Bcd_show(1, 7, 32,  YC_Value[Ua1+7],0, 1, 0,0);
  551.         //Angle_Show(1, 6, 64,  YC_Value[Ua1_ANGLE+14],1, 1);
  552. Bcd_show(1, 6, 48,  YC_Value[Ua1+8],0, 1, 0,0);
  553. //Angle_Show(1,6,96,YC_Value1[Ua3_ANGLE],1,1);
  554.  Bcd_show(1, 6, 4*16,  YC_Value[Ua1+9],0, 1, 0,0);
  555.         //Angle_Show(1,6,32,YC_Value[Ua1_ANGLE+6],1,1);
  556.         Bcd_show(1, 6, 5*16,  YC_Value[Ua1+10],0, 1, 0,0);
  557.         //Angle_Show(1,6,64,YC_Value[Ua1_ANGLE+8],1,1);
  558.         Bcd_show(1, 6, 6*16,  YC_Value[Ua1+11],0, 1, 0,0);
  559.         //Angle_Show(1,6,96,YC_Value[Ua1_ANGLE+10],1,1);
  560.         temp=2;
  561.         break;
  562.         case 2:
  563.          Bcd_show(1, 6, 16,  YC_Value[Ua1+12],0, 1, 0,0);
  564.         //Angle_Show(1, 6, 32,  YC_Value[Ua1_ANGLE+12],1, 1);
  565.         Bcd_show(1, 6, 32,  YC_Value[Ua1+13],0, 1, 0,0);
  566.         //Angle_Show(1, 6, 64,  YC_Value[Ua1_ANGLE+14],1, 1);
  567. Bcd_show(1, 6, 48,  YC_Value[Ua1+14],0, 1, 0,0);
  568. //Angle_Show(1,6,96,YC_Value1[Ua3_ANGLE],1,1);
  569.  Bcd_show(1, 7, 4*16,  YC_Value[Ua1+15],0, 1, 0,0);
  570.         //Angle_Show(1,6,32,YC_Value[Ua1_ANGLE+6],1,1);
  571.         Bcd_show(1, 6, 5*16,  YC_Value1[Ua3+0],0, 1, 0,0);
  572.         //Angle_Show(1,6,64,YC_Value[Ua1_ANGLE+8],1,1);
  573.         Bcd_show(1, 6, 6*16,  YC_Value1[Ua3+1],0, 1, 0,0);
  574.         //Angle_Show(1,6,96,YC_Value[Ua1_ANGLE+10],1,1);
  575.         temp=2;
  576.         break;
  577.         case 3:
  578. Bcd_show(1, 6, 16,  YC_Value1[Ua3+2],0, 1, 0,0);
  579.         //Angle_Show(1, 6, 32,  YC_Value1[Ua3_ANGLE+2],1, 1);
  580. Bcd_show(1, 7, 32,  YC_Value1[Ua3+3],0, 1, 0,0);
  581.         //Angle_Show(1, 6, 64,  YC_Value1[Ua3_ANGLE+4],1, 1);
  582. Bcd_show(1, 6, 48,  YC_Value1[Ua3+4],0, 1, 0,0);
  583. //Angle_Show(1,6,96,YC_Value1[Ua3_ANGLE+6],1,1);
  584.  Bcd_show(1, 6, 4*16,  YC_Value1[Ua3+5],0, 1, 0,0);
  585.         //Angle_Show(1,6,32,YC_Value[Ua1_ANGLE+6],1,1);
  586.         Bcd_show(1, 6, 5*16,  YC_Value1[Ua3+6],0, 1, 0,0);
  587.         //Angle_Show(1,6,64,YC_Value[Ua1_ANGLE+8],1,1);
  588.         Bcd_show(1, 7, 6*16,  YC_Value1[Ua3+7],0, 1, 0,0);
  589.         //Angle_Show(1,6,96,YC_Value[Ua1_ANGLE+10],1,1);
  590.         temp=2;
  591.         break;
  592.    case 4:
  593. Bcd_show(1, 6, 16,  YC_Value1[Ua3+8],0, 1, 0,0);
  594.         //Angle_Show(1, 6, 32,  YC_Value1[Ua3_ANGLE+8],1, 1);
  595. Bcd_show(1, 6, 32,  YC_Value1[Ua3+9],0, 1, 0,0);
  596.         //Angle_Show(1, 6, 64,  YC_Value1[Ua3_ANGLE+10],1, 1);
  597. Bcd_show(1, 6, 48,  YC_Value1[Ua3+10],0, 1, 0,0);
  598. //Angle_Show(1,6,96,YC_Value1[Ua3_ANGLE+12],1,1);
  599.  Bcd_show(1, 7, 4*16,  YC_Value1[Ua3+11],0, 1, 0,0);
  600.         //Angle_Show(1,6,32,YC_Value[Ua1_ANGLE+6],1,1);
  601.         Bcd_show(1, 6, 5*16,  YC_Value1[Ua3+12],0, 1, 0,0);
  602.         //Angle_Show(1,6,64,YC_Value[Ua1_ANGLE+8],1,1);
  603.         Bcd_show(1, 6, 6*16,  YC_Value1[Ua3+13],0, 1, 0,0);
  604.         //Angle_Show(1,6,96,YC_Value[Ua1_ANGLE+10],1,1);
  605.         temp=2;
  606.         break;
  607.    case 5:
  608.       Bcd_show(1, 6, 16,  YC_Value1[Ua3+14],0, 1, 0,0);
  609.            //Angle_Show(1, 6, 32,  YC_Value1[Ua3_ANGLE+14],1, 1);
  610.             Bcd_show(1, 7, 32,  YC_Value1[Ua3+15],0, 1, 0,0);
  611.       temp=1;
  612.       break;
  613. default:break;
  614.      }
  615.    Frame_Show(temp); 
  616. }
  617. //主菜单/实时数据/二次测量值
  618. void Second_Measurevalue1(void)
  619. {
  620.     if(L_Screen_state!=112)
  621.      {  
  622.        L_Screen_state=112;
  623.         menupage= 0;
  624.    cls();
  625.         Logo_Title();
  626.        Second_Measurevalue1_Show(menupage);
  627.     
  628.      }
  629.     if((Key_UP==0 )&&(L_Key_UP==1))
  630.      { 
  631.        L_Key_UP    = Key_UP;
  632.        
  633.        if( menupage == 0) menupage = 3;
  634.        else                       menupage--;
  635.       cls();
  636.         Logo_Title();
  637.         Second_Measurevalue1_Show(menupage);
  638.        } 
  639.     if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  640.      { 
  641.        L_Key_DOWN  = Key_DOWN;
  642.       
  643.        if( menupage == 3) menupage = 0;
  644.        else                       menupage++;
  645.       cls();
  646.         Logo_Title();
  647.         Second_Measurevalue1_Show(menupage);
  648.        }
  649.     if(update_flag1==1)
  650.      {
  651.      update_flag1=0;
  652.      Second_Measurevalue1_Show(menupage);
  653.      }
  654.      if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  655.      {
  656.         Screen_state =11;
  657.         menupage = 0;
  658.         L_Key_CANCEL = Key_CANCEL;
  659.      }
  660. }
  661. void Second_Measurevalue1_Show(UC page)
  662. { UC i,temp=0;
  663.    
  664.        LCDPrintf( 0,0,0,"壹站变遥测值",12);  
  665.   
  666.         for(i=0;i<6;i++)
  667.          LCDPrintf( 1,1,(i+1)*16,(char *)Secondvalue2_Text[i+6*page],20);
  668.  switch(page)
  669.      {
  670.      case 0:
  671.           Bcd_show(1, 6, 16, YC_Value[Ua_1],0, 1, 0,0);
  672.         //Angle_Show(1,6,32,  YC_Value[Ua_1_ANGLE],1,1);
  673.         Bcd_show(1, 6, 2*16,  YC_Value[Ua_1+1],0, 1, 0,0);
  674.         //Angle_Show(1,6,64,YC_Value[Ua_1_ANGLE+2],1,1);
  675.         Bcd_show(1, 6, 3*16,  YC_Value[Ua_1+2],0, 1, 0,0);
  676.         //Angle_Show(1,6,96,YC_Value[Ua_1_ANGLE+4],1,1);
  677.          Bcd_show(1, 6, 4*16,  YC_Value[Ia_1],0, 0, 0,0);
  678.         //Angle_Show(1,6,32,YC_Value[Ia_1_ANGLE],1,1);
  679.         Bcd_show(1, 6, 5*16,  YC_Value[Ia_1+1],0, 0, 0,0);
  680.         //Angle_Show(1,6,64,YC_Value[Ia_1_ANGLE+2],1,1);
  681.         Bcd_show(1, 6, 6*16,  YC_Value[Ia_1+2],0, 0, 0,0);
  682.         //Angle_Show(1,6,96,YC_Value[Ia_1_ANGLE+4],1,1);
  683.         temp=3;
  684.         break;
  685.         case 1:
  686.         temp=2;
  687.             Bcd_show(1, 6, 16, YC_Value1[Ua_2],0, 1, 0,0);
  688.         //Angle_Show(1,6,32,  YC_Value1[Ua_2_ANGLE],1,1);
  689.         Bcd_show(1, 6, 2*16,  YC_Value1[Ua_2+1],0, 1, 0,0);
  690.         //Angle_Show(1,6,64,YC_Value1[Ua_2_ANGLE+2],1,1);
  691.         Bcd_show(1, 6, 3*16,  YC_Value1[Ua_2+2],0, 1, 0,0);
  692.         //Angle_Show(1,6,96,YC_Value1[Ua_2_ANGLE+4],1,1);
  693.          Bcd_show(1, 6, 4*16,  YC_Value1[Ia_2],0, 0, 0,0);
  694.         //Angle_Show(1,6,32,YC_Value1[Ia_2_ANGLE],1,1);
  695.         Bcd_show(1, 6, 5*16,  YC_Value1[Ia_2+1],0, 0, 0,0);
  696.         //Angle_Show(1,6,64,YC_Value1[Ia_2_ANGLE+2],1,1);
  697.         Bcd_show(1, 6, 6*16,  YC_Value1[Ia_2+2],0, 0, 0,0);
  698.         //Angle_Show(1,6,96,YC_Value1[Ia_2_ANGLE+4],1,1);
  699.        
  700.         break;
  701.           
  702.    case 2:
  703.       Bcd_show(1, 6, 16,  YC_Value[P_1],0, 2, 0,0);
  704.            Bcd_show(1, 6, 32,  YC_Value[Q_1],0, 3, 0,0);
  705.    Bcd_show(1, 6, 48,  YC_Value[Q_1+1],0, 2, 0,0);
  706.            Bcd_show(1, 6, 64,  YC_Value[Q_1+2],0, 5, 0,0);
  707.     Bcd_show(1, 6, 80,  YC_Value1[P_2],0, 2, 0,0);
  708.            Bcd_show(1, 6, 96,  YC_Value1[Q_2],0, 3, 0,0);
  709.       temp=2;
  710.       break;
  711.       case 3:
  712.       Bcd_show(1, 6, 16,  YC_Value1[Q_2+1],0, 2, 0,0);
  713.            Bcd_show(1, 6, 32,  YC_Value1[Q_2+2],0, 5, 0,0);
  714.   
  715.       temp=1;
  716.       break;
  717. default:break;
  718.      }
  719.    Frame_Show(temp); 
  720. }
  721. //主菜单/实时数据/实时遥信
  722. void RealYX(void)
  723. {
  724. if(L_Screen_state!=113)
  725.      {  
  726.        L_Screen_state=113;
  727.         SubMenuPosition = 0;menupage=0;
  728.   cls();
  729.         Logo_Title();
  730.        RealYX_Show(menupage, 100);
  731.       
  732.      }
  733. if(update_flag1==1)
  734. {
  735. update_flag1=0;
  736. RealYX_Show(menupage, 100);
  737. }
  738.     if((Key_UP==0 )&&(L_Key_UP==1))
  739.      { 
  740.        L_Key_UP    = Key_UP;
  741.        
  742.        if( menupage== 0) menupage = 1;
  743.        else                       menupage--;
  744.      cls();
  745.         Logo_Title();
  746.     RealYX_Show(menupage, 100);
  747.    
  748.        } 
  749.     if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  750.      { 
  751.        L_Key_DOWN  = Key_DOWN;
  752.       
  753.        if( menupage== 1) menupage = 0;
  754.        else                       menupage++;
  755.      cls();
  756.         Logo_Title();
  757.     RealYX_Show(menupage, 100);
  758.        }
  759.      if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  760.      {
  761.         Screen_state =11;
  762.         SubMenuPosition = 0;
  763.         L_Key_CANCEL = Key_CANCEL;
  764.      }
  765. }
  766. void RealYX_Show(UC page,UC select)
  767. { UC i,temp=0;
  768.      
  769.        LCDPrintf( 0,0,0,"壹实时遥信",12);   
  770.         for(i=0;i<6;i++)
  771.          LCDPrintf( 1,1,(i+1)*16,(char *)RealYX_Text[i+6*page],20);
  772.  switch(page)
  773. {
  774. case 0:
  775. for(i=0;i<6;i++)
  776. {
  777.     if(((System_Info.YX[0]>>i)&0x01)==0x01)
  778.         LCDPrintf( 1,12,(i+1)*16,"盒",4);/*合0*/
  779.         else
  780.         LCDPrintf( 1,12,(i+1)*16,"份",4);/*分*/
  781. }
  782. temp=3;
  783. break;
  784. case 1:
  785.   for(i=6;i<11;i++)
  786. {
  787.     if(((System_Info.YX[0]>>i)&0x01)==0x01)
  788.         LCDPrintf( 1,12,(i-6+1)*16,"盒",4);/*合0*/
  789.         else
  790.         LCDPrintf( 1,12,(i-6+1)*16,"份",4);/*分*/
  791. }
  792.   
  793.   temp=1;
  794. break;
  795. default: break;
  796. }
  797.      Frame_Show(temp);
  798. }
  799. //主菜单/实时数据/查看SOE
  800. void LookSoe_Num_Modify(void)
  801. {
  802.     if(L_Screen_state!=116)
  803.      {       L_Screen_state=116;
  804.           Soe_Num=1;
  805. Dalog_Info_Show(0, 17, 0);
  806.    Bcd_show(0, 5, 80, Soe_Num, 0, 0, 0, 2);
  807.          Frame_Show(3);
  808.      }
  809.    if((Key_ADD==0)&&(L_Key_ADD==1))
  810.      {
  811.       L_Key_ADD=Key_ADD;
  812.       if(Soe_Num>=50)  Soe_Num=1;
  813.        else Soe_Num++;
  814.         Bcd_show(0, 5, 80,Soe_Num, 0, 0, 0, 2);
  815.       
  816.    }
  817. if((Key_SUB==0)&&(L_Key_SUB==1))
  818.      {
  819.      L_Key_SUB=Key_SUB;
  820.       if(Soe_Num<=1)  Soe_Num=50;
  821.        else  Soe_Num--;
  822.         Bcd_show(0, 5, 80,Soe_Num, 0, 0, 0, 2);
  823.       
  824. }
  825.       if((Key_OK==0 )&&(L_Key_OK==1))
  826.      {  
  827.          L_Key_OK = Key_OK;
  828.          Screen_state =1161;
  829.       
  830.          SubMenuPosition = 0;
  831.         
  832. }
  833.      if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  834.      {
  835.          switch(Returnto_Modify)
  836.         {
  837.         case 16:
  838.         Screen_state =11;//soe
  839.         break;
  840.         case 211://事件
  841.         case 212://操作
  842.         case 213: //故障简报
  843.         Screen_state =21;
  844.         break;
  845.               
  846.         default:break;
  847.         }
  848.         SubMenuPosition = 0;
  849.         L_Key_CANCEL = Key_CANCEL;
  850.      }
  851. }
  852. //主菜单/实时数据/查看SOE
  853. //*******查soe表**************
  854. UC Check_SoeTable(UC soenum)
  855. {
  856. UC i;
  857. soenum=soenum+256;
  858. for(i=0;i<120;i++)
  859. {
  860. if(SoeTable_Check[i]==soenum)
  861. { soenum=i;
  862. break;
  863. }
  864. }
  865. return(soenum);
  866. }
  867. //*****************************
  868. void Look_Soe(void)
  869. {  UC temp_per2=0;
  870. if(L_Screen_state!=1161)
  871.      {  
  872.        L_Screen_state=1161;
  873.        switch(Returnto_Modify)
  874.         {
  875.         case 16:
  876.         temp_per2=0x20;//soe
  877.         break;
  878.         case 211:
  879.         temp_per2=0x30;//事件
  880.         break;
  881.         case 212:
  882.         temp_per2=0x40;//操作
  883.         break;
  884.         case 213:
  885.         temp_per2=0x50;//故障简报
  886.         break;
  887.         default:break;
  888.         }
  889.     MMI_DSP_Instruction(0x1200, (Soe_Num-1), temp_per2);
  890.     Dalog_Info_Show(0, 7, 0);
  891. Command_Flag=1;
  892.        
  893. }
  894. if((Key_ADD==0)&&(L_Key_ADD==1))
  895.      {
  896.       L_Key_ADD=Key_ADD;
  897.       if(Soe_Num>=50)  Soe_Num=1;
  898.        else Soe_Num++;
  899.       Bcd_show(0, 5, 80,Soe_Num, 0, 0, 0, 2);
  900.    switch(Returnto_Modify)
  901.         {
  902.         case 16:
  903.         temp_per2=0x20;//soe
  904.         break;
  905.         case 211:
  906.         temp_per2=0x30;//事件
  907.         break;
  908.         case 212:
  909.         temp_per2=0x40;//操作
  910.         break;
  911.         case 213:
  912.         temp_per2=0x50;//故障简报
  913.         break;
  914.         default:break;
  915.         }
  916.     MMI_DSP_Instruction(0x1200, (Soe_Num-1), temp_per2);
  917.    
  918. Dalog_Info_Show(0, 7, 0);
  919. Command_Flag=1;
  920.      }
  921. if((Key_SUB==0)&&(L_Key_SUB==1))
  922.      {
  923.      L_Key_SUB=Key_SUB;
  924.       if(Soe_Num<=1)  Soe_Num=50;
  925.        else  Soe_Num--;
  926.  
  927.        Bcd_show(0, 5, 80,Soe_Num, 0, 0, 0, 2);
  928.     switch(Returnto_Modify)
  929.         {
  930.         case 16:
  931.         temp_per2=0x20;//soe
  932.         break;
  933.         case 211:
  934.         temp_per2=0x30;//事件
  935.         break;
  936.         case 212:
  937.         temp_per2=0x40;//操作
  938.         break;
  939.         case 213:
  940.         temp_per2=0x50;//故障简报
  941.         break;
  942.         default:break;
  943.         }
  944.     MMI_DSP_Instruction(0x1200, (Soe_Num-1), temp_per2);
  945.    
  946. Dalog_Info_Show(0, 7, 0);
  947. Command_Flag=1;
  948.       
  949. }
  950. if(Command_Flag>0)
  951. {
  952. if(Check_Instruction_Statue(0x1200)==0x00)
  953.              {
  954. /*显示SOE*/
  955. Command_Flag=0;
  956. Look_Soe_Show();
  957.   
  958.               }
  959.               else if(Check_Instruction_Statue(0x1200)==0x22)
  960.                {
  961.                 Dalog_Info_Show(1, 12, 0);
  962. Command_Flag=0;
  963.                }
  964. }
  965.  if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  966.      {
  967.   switch(Returnto_Modify)
  968.         {
  969.         case 16:
  970.         Screen_state =11;//soe
  971.         break;
  972.         case 211://事件
  973.         case 212://操作
  974.         case 213://故障简报
  975.         Screen_state =21;
  976.         break;
  977.         default:break;
  978.         }
  979.         
  980.         SubMenuPosition = 0;
  981.         L_Key_CANCEL = Key_CANCEL;
  982.      }
  983. }
  984. void Look_Soe_Show(void)
  985. {
  986. UC i;
  987.  cls();Logo_Title();
  988.       switch(Returnto_Modify)
  989.         {
  990.         case 16:
  991.          LCDPrintf( 0,0,0,"壹查看SOE",10);
  992.         break;
  993.         case 211:
  994.         LCDPrintf( 0,0,0,"壹事件报告",10);
  995.         break;
  996.         case 212:
  997.          LCDPrintf( 0,0,0,"壹操作记录",10);
  998.         break;
  999.         case 213:
  1000.         LCDPrintf( 0,0,0,"壹故障简报",10);
  1001.         break;
  1002.         default:break;
  1003.         }
  1004.       Bcd_show(1, 11, 0, Soe_Num,0, 0, 0,2);
  1005. LCDPrintf( 1,13,0,(char *)"条",2);
  1006.         
  1007. for(i=0;i<6;i++)
  1008. LCDPrintf( 1,1,(i+1)*16,(char *)LookSoe_Text[i],20);
  1009. Bcd_show(1,9, 1*16, SOE_Buf_Show0.num, 0, 0, 0, 2);
  1010. Bcd_show(1,5, 2*16,  SOE_Buf_Show0.year, 0, 0, 0, 2);
  1011. Bcd_show(1,8, 2*16,  SOE_Buf_Show0.mon, 0, 0, 0, 2);
  1012. Bcd_show(1,11, 2*16, SOE_Buf_Show0.day, 0, 0, 0, 2);
  1013. Bcd_show(1,3, 3*16,  SOE_Buf_Show0.hour, 0, 0, 0, 2);
  1014. Bcd_show(1,6, 3*16, SOE_Buf_Show0.min, 0, 0, 0, 2);
  1015. Bcd_show(1,9, 3*16,  SOE_Buf_Show0.sec, 0, 0, 0, 2);
  1016.  Bcd_show(1,12, 3*16, SOE_Buf_Show0.msec, 0, 0, 0, 2);
  1017. LCDPrintf( 1,6,4*16,(char *)&Soe_Info_Text[(UC)(Check_SoeTable( SOE_Buf_Show0.num))][0],8);
  1018. LCDPrintf( 1,2,5*16,(char *)&Soe_Info_Text[(UC)(Check_SoeTable( SOE_Buf_Show0.num))][8],12);
  1019. if( SOE_Buf_Show0.stu==0x02) 
  1020. LCDPrintf( 1,6,6*16,"发生",6);
  1021.  else if( SOE_Buf_Show0.stu==0x01)
  1022.   LCDPrintf( 1,6,6*16,"消失",6);
  1023. Frame_Show(0);
  1024. }
  1025. //----------------------------实时数据界面结束-------------------------------------------
  1026. //++++++++++++++++++++++++++报告信息开始++++++++++++++++++++++++++++++++++++++++++++++++++++
  1027. //报告信息/事件报告、故障简报、操作记录见Look_SOE()
  1028. //报告信息/故障报告
  1029. void  Report_Manage(void)
  1030. {
  1031. UC i;
  1032.     if(L_Screen_state!=21)
  1033.      {  
  1034.        cls();Logo_Title();
  1035.        L_Screen_state=21;
  1036.               LCDPrintf( 0,0,0,(char *)(&mainMenu[1][0]),10);
  1037.        for(i=0;i<4;i++)
  1038.          LCDPrintf( 1,1,(i+1)*16,(char *)secondMenu_rpt[i],20);
  1039.         SubMenuPosition = Father2_MenuPosition;
  1040.        if(SubMenuPosition>4) SubMenuPosition =0;
  1041.        LCDPrintf( 0,1,(SubMenuPosition+1)*16,(char *)secondMenu_rpt[SubMenuPosition],20);
  1042.    Frame_Show(0);
  1043.        }
  1044.     if((Key_UP==0 )&&(L_Key_UP==1))
  1045.      { 
  1046.        L_Key_UP    = Key_UP;
  1047.        LCDPrintf( 1,1,(SubMenuPosition+1)*16,(char *)secondMenu_rpt[SubMenuPosition],20);
  1048.        
  1049.        if( SubMenuPosition == 0) SubMenuPosition = 3;
  1050.        else                       SubMenuPosition--;
  1051.        
  1052.        LCDPrintf( 0,1,(SubMenuPosition+1)*16,(char *)secondMenu_rpt[SubMenuPosition],20);
  1053.        
  1054.         Frame_Show(0);
  1055.      } 
  1056.     if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  1057.      { 
  1058.        L_Key_DOWN  = Key_DOWN;
  1059.        LCDPrintf( 1,1,(SubMenuPosition+1)*16,(char *)secondMenu_rpt[SubMenuPosition],20);
  1060.        
  1061.        if( SubMenuPosition == 3) SubMenuPosition = 0;
  1062.        else                       SubMenuPosition++;
  1063.        
  1064.        LCDPrintf( 0,1,(SubMenuPosition+1)*16,(char *)secondMenu_rpt[SubMenuPosition],20);
  1065.        
  1066.    Frame_Show(0);
  1067.        } 
  1068.     
  1069.     if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  1070.      {
  1071.         Screen_state =1;
  1072.         SubMenuPosition = 0;
  1073.         L_Key_CANCEL = Key_CANCEL;
  1074.      }
  1075.      if((Key_OK==0 )&&(L_Key_OK==1))
  1076.      {  
  1077.         L_Key_OK = Key_OK;
  1078.        Father2_MenuPosition=SubMenuPosition;
  1079.         switch(SubMenuPosition)
  1080.          {
  1081.             case 0: 
  1082.               case 1: 
  1083.         case 2:
  1084.    Screen_state=116;
  1085.              Returnto_Modify=211+SubMenuPosition;
  1086.               break;
  1087.              case 3: 
  1088.              Screen_state=214;//故障报告
  1089.                 break;
  1090.        
  1091.             default: 
  1092. Screen_state=0;
  1093.                      break;
  1094.          };
  1095.         
  1096.         L_Key_OK = Key_OK;
  1097. }
  1098. }
  1099. void Fault_Num_Modify(void)
  1100. {
  1101. if(L_Screen_state!=214)
  1102.      {       L_Screen_state=214;
  1103.            Fault_Num=1;
  1104. Dalog_Info_Show(0,17,0);
  1105.    Bcd_show(0, 5, 80, Fault_Num, 0, 0, 0, 2);
  1106.             Frame_Show(0);
  1107.      }
  1108.    if((Key_ADD==0)&&(L_Key_ADD==1))
  1109.      {
  1110.       L_Key_ADD=Key_ADD;
  1111.       if(Fault_Num>=50)  Fault_Num=1;
  1112.        else Fault_Num++;
  1113.         Bcd_show(0, 5, 80,Fault_Num, 0, 0, 0, 2);
  1114.      }
  1115. if((Key_SUB==0)&&(L_Key_SUB==1))
  1116.      {
  1117.      L_Key_SUB=Key_SUB;
  1118.       if(Fault_Num<=1)  Fault_Num=50;
  1119.        else  Fault_Num--;
  1120.         Bcd_show(0, 5, 80,Fault_Num, 0, 0, 0, 2);
  1121.       
  1122. }
  1123.       if((Key_OK==0 )&&(L_Key_OK==1))
  1124.      {  
  1125.          L_Key_OK = Key_OK;
  1126.          Screen_state =2141;
  1127.              SubMenuPosition = 0;
  1128.         
  1129. }
  1130.      if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  1131.      {
  1132.         Screen_state =21;
  1133.         SubMenuPosition = 0;
  1134.         L_Key_CANCEL = Key_CANCEL;
  1135.      }
  1136. }
  1137. void Fault_Report_Show(void)
  1138. {
  1139. if(L_Screen_state!=2141)
  1140.      {  
  1141.    
  1142.        L_Screen_state=2141;
  1143.     menupage=0;
  1144. MMI_DSP_Instruction(0x1200, (Fault_Num-1), 0x60);
  1145. Dalog_Info_Show(0, 7, 0);
  1146. Command_Flag=1;
  1147.    }
  1148.    
  1149.     if((Key_ADD==0)&&(L_Key_ADD==1))
  1150.      {
  1151.       L_Key_ADD=Key_ADD;
  1152.       if(Fault_Num>=50)  Fault_Num=1;
  1153.        else Fault_Num++;
  1154.         Bcd_show(0, 5, 80,Fault_Num, 0, 0, 0, 2);
  1155.          MMI_DSP_Instruction(0x1200, (Fault_Num-1), 0x60);
  1156.           Dalog_Info_Show(0, 7, 0);
  1157.         Command_Flag=1; 
  1158.      }
  1159. if((Key_SUB==0)&&(L_Key_SUB==1))
  1160.      {
  1161.      L_Key_SUB=Key_SUB;
  1162.       if(Fault_Num<=1)  Fault_Num=50;
  1163.        else  Fault_Num--;
  1164.         Bcd_show(0, 5, 80,Fault_Num, 0, 0, 0, 2);
  1165.         MMI_DSP_Instruction(0x1200, (Fault_Num-1), 0x60);
  1166.           Dalog_Info_Show(0, 7, 0);
  1167.         Command_Flag=1; 
  1168. }
  1169. if(Command_Flag>0)
  1170. {
  1171. if(Check_Instruction_Statue(0x1200)==0x00)
  1172.                {
  1173. /*显示事件*/
  1174. Command_Flag=0;
  1175.        Fault_Record_Show(0);
  1176.                }
  1177.                 else if(Check_Instruction_Statue(0x1200)==0x22)
  1178.                 {
  1179.                 Dalog_Info_Show(1, 12, 0);
  1180. Command_Flag=0;
  1181.                  }
  1182. }
  1183.  if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  1184.      {
  1185.         Screen_state =21;
  1186.         SubMenuPosition = 0;
  1187.         L_Key_CANCEL = Key_CANCEL;
  1188.      }
  1189.   if((Key_UP==0 )&&(L_Key_UP==1))
  1190.      { 
  1191.        L_Key_UP    = Key_UP;
  1192.         if(menupage==0) menupage=4;
  1193.         else menupage--;
  1194.        
  1195.         Fault_Record_Show(menupage);
  1196. }
  1197.   if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  1198.      { 
  1199.        L_Key_DOWN  = Key_DOWN;
  1200.        if(menupage>=4) menupage=0;
  1201.         else menupage++;
  1202.        
  1203.         Fault_Record_Show(menupage);
  1204.   }  
  1205. }
  1206. void Fault_Record_Show(UC select)
  1207. {  UC i,temp=0,temp_erect=6;
  1208.  cls();
  1209.        Logo_Title();
  1210.         LCDPrintf( 0,0,0,"壹故障报告",10);
  1211.         Bcd_show(1, 11, 0, Fault_Num,0, 0, 0,2);
  1212. LCDPrintf( 1,13,0,(char *)"条",2);
  1213.  switch(select)
  1214.        {
  1215.        case 0:
  1216. { temp=3;
  1217. for(i=0;i<6;i++)
  1218.  LCDPrintf( 1,1,(i+1)*16,(char *)LookSoe_Text[i],20);
  1219.   Bcd_show(1,9, 1*16, Report_Buf_Show0.num, 0, 0, 0, 2);
  1220.   Bcd_show(1,5, 2*16,  Report_Buf_Show0.year, 0, 0, 0, 2);
  1221.   Bcd_show(1,8, 2*16,  Report_Buf_Show0.mon, 0, 0, 0, 2);
  1222.   Bcd_show(1,11, 2*16, Report_Buf_Show0.day, 0, 0, 0, 2);
  1223.   Bcd_show(1,3, 3*16,  Report_Buf_Show0.hour, 0, 0, 0, 2);
  1224.   Bcd_show(1,6, 3*16, Report_Buf_Show0.min, 0, 0, 0, 2);
  1225.   Bcd_show(1,9, 3*16,  Report_Buf_Show0.sec, 0, 0, 0, 2);
  1226.   Bcd_show(1,12, 3*16, Report_Buf_Show0.msec, 0, 0, 0, 2);
  1227.     LCDPrintf( 1,6,4*16,(char *)&Soe_Info_Text[(UC)(Check_SoeTable( Report_Buf_Show0.num))][0],8);
  1228.     LCDPrintf( 1,2,5*16,(char *)&Soe_Info_Text[(UC)(Check_SoeTable( Report_Buf_Show0.num))][8],12);
  1229. if( Report_Buf_Show0.stu==0x02) 
  1230. LCDPrintf( 1,6,6*16,"发生",6);
  1231.  else if( Report_Buf_Show0.stu==0x01)
  1232.   LCDPrintf( 1,6,6*16,"消失",6);
  1233. break;
  1234.   }
  1235.        case 1:
  1236. temp=2;
  1237.        for(i=0;i<6;i++)
  1238.  LCDPrintf( 1,1,(i+1)*16,(char *)Faultreport_Text[i],20);
  1239.         Bcd_show(1,temp_erect, 1*16, (Report_Buf_Show0.Value[0]), 0, 1, 0, 0);
  1240.       Bcd_show(1,temp_erect, 2*16, (Report_Buf_Show0.Value[1]), 0, 1, 0, 0);
  1241.      Bcd_show(1,temp_erect, 3*16,  (Report_Buf_Show0.Value[2]), 0, 1, 0, 0);
  1242.  Bcd_show(1,temp_erect, 4*16, (Report_Buf_Show0.Value[3]), 0, 1, 0, 0);
  1243.       Bcd_show(1,(temp_erect+1), 5*16, (Report_Buf_Show0.Value[4]), 0, 1, 0, 0);
  1244.      Bcd_show(1,temp_erect, 6*16,  (Report_Buf_Show0.Value[5]), 0, 1, 0, 0);
  1245.   
  1246.        break;
  1247. case 2:
  1248. temp=2;
  1249. for(i=6;i<12;i++)
  1250.  LCDPrintf( 1,1,((i-6+1)*16),(char *)Faultreport_Text[i],20);
  1251.        Bcd_show(1,temp_erect, 1*16, (Report_Buf_Show0.Value[6]), 0, 1, 0, 0);
  1252.       Bcd_show(1,temp_erect, 2*16, (Report_Buf_Show0.Value[7]), 0, 1, 0, 0);
  1253.      Bcd_show(1,temp_erect, 3*16,  (Report_Buf_Show0.Value[8]), 0, 1, 0, 0);
  1254.  Bcd_show(1,(temp_erect+1), 4*16, (Report_Buf_Show0.Value[9]), 0, 1, 0, 0);
  1255.       Bcd_show(1,temp_erect, 5*16, (Report_Buf_Show0.Value[10]), 0, 1, 0, 0);
  1256.      Bcd_show(1,temp_erect, 6*16,  (Report_Buf_Show0.Value[11]), 0, 1, 0, 0);
  1257.  break;
  1258.        case 3:
  1259.    temp=2;
  1260.        for(i=12;i<18;i++)
  1261.     LCDPrintf( 1,1,((i-12+1)*16),(char *)Faultreport_Text[i],20);
  1262.        Bcd_show(1,temp_erect, 1*16, (Report_Buf_Show0.Value[12]), 0, 1, 0, 0);
  1263.       Bcd_show(1,temp_erect, 2*16, (Report_Buf_Show0.Value[13]), 0, 1, 0, 0);
  1264.      Bcd_show(1,(temp_erect+1), 3*16,  (Report_Buf_Show0.Value[14]), 0, 1, 0, 0);
  1265.  Bcd_show(1,temp_erect, 4*16, (Report_Buf_Show0.Value[15]), 0, 1, 0, 0);
  1266.       Bcd_show(1,temp_erect, 5*16, (Report_Buf_Show0.Value[16]), 0, 1, 0, 0);
  1267.      Bcd_show(1,temp_erect, 6*16,  (Report_Buf_Show0.Value[17]), 0, 1, 0, 0);
  1268.   break;
  1269.       case 4:
  1270.     temp=1;
  1271.        for(i=18;i<24;i++)
  1272.     LCDPrintf( 1,1,((i-18+1)*16),(char *)Faultreport_Text[i],20);
  1273.         Bcd_show(1,temp_erect, 1*16, (Report_Buf_Show0.Value[18]), 0, 1, 0, 0);
  1274.      Bcd_show(1,(temp_erect+1), 2*16,  (Report_Buf_Show0.Value[19]), 0, 1, 0, 0);
  1275.     break;
  1276.              default:
  1277. break;
  1278.       }  
  1279.   Frame_Show(temp);
  1280. }
  1281. //--------------------------------------报告信息结束----------------------------------------     
  1282. //++++++++++++++++++++++++++++++++++保护定值开始++++++++++++++++++++++++++++++++++++++++++++++++++++
  1283. //  定值组A
  1284. //  定值组B
  1285. //  定值组C
  1286. //  定值组D
  1287. //  切换定值组
  1288. //  复制定值组
  1289. //  写初始定值
  1290. // 
  1291. //+++++++++++++++++++++++++++++++++
  1292. void  FixedValue_Manage(void)
  1293. {
  1294.     UC i;
  1295.     if(L_Screen_state!=31)
  1296.      {  
  1297.      L_Screen_state=31;
  1298.        cls();
  1299. Logo_Title();
  1300.    Command_Flag=0;menupage=Father2_page; ;
  1301.        SubMenuPosition=Father2_MenuPosition;
  1302.        if(SubMenuPosition>6) SubMenuPosition = 0;
  1303.      FixedValue_Manage_Show(menupage, SubMenuPosition);
  1304.      
  1305.        }
  1306.     if(update_flag1==1)  {update_flag1=0;  Bcd_show(0,12,0,System_Info.DZ_Area, 0, 0,0, 3);}
  1307.     if((Key_UP==0 )&&(L_Key_UP==1))
  1308.      { 
  1309.        L_Key_UP    = Key_UP;
  1310.        
  1311.        
  1312.        if( SubMenuPosition == 0) SubMenuPosition = 6;
  1313.        else                       SubMenuPosition--;
  1314.        if((SubMenuPosition==6)||(SubMenuPosition==5))
  1315.    {  if( menupage== 0)  {menupage = 1;}
  1316.         else                     {  menupage--;}
  1317.           cls();
  1318.                Logo_Title();
  1319.   }
  1320.          FixedValue_Manage_Show(menupage, SubMenuPosition);
  1321.      
  1322.      } 
  1323.     if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  1324.      { 
  1325.        L_Key_DOWN  = Key_DOWN;
  1326.       
  1327.        if( SubMenuPosition == 6) SubMenuPosition = 0;
  1328.        else                       SubMenuPosition++;
  1329.               if((SubMenuPosition==6)||(SubMenuPosition==0))
  1330.    {  if( menupage>= 1)  {menupage = 0;}
  1331.         else                     {  menupage++;}
  1332.           cls();
  1333.                   Logo_Title();
  1334.   }
  1335.          FixedValue_Manage_Show(menupage, SubMenuPosition);
  1336.      } 
  1337.     if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  1338.      {
  1339.         Screen_state =1;
  1340.         SubMenuPosition = 0;
  1341.  Flag_Password_True=0;
  1342.         L_Key_CANCEL = Key_CANCEL;
  1343.      }
  1344.       if((Key_OK==0 )&&(L_Key_OK==1))
  1345.      {  
  1346.         L_Key_OK = Key_OK;
  1347.       Father2_page =menupage; 
  1348. Father2_MenuPosition=SubMenuPosition;
  1349. Father3_MenuPosition=0;
  1350. Father3_page=0;
  1351.         switch(SubMenuPosition)
  1352.          {
  1353.             case 0: /*读定值及区号*/
  1354.             case 1:
  1355.              case 2:
  1356.  case 3:
  1357. FixedValue_Num=SubMenuPosition;
  1358.              MMI_DSP_Instruction(0x0600, FixedValue_Num, 0);
  1359.              Dalog_Info_Show(0, 7, 0);
  1360.              Command_Flag=1;
  1361.             
  1362.               break;
  1363.            case 4: 
  1364. if(Flag_Password_True==1)
  1365. Screen_state=315;
  1366. else
  1367.              Screen_state =110;//先检验密码
  1368.              Returnto_Modify=130;
  1369.                       break;
  1370.             case 5: 
  1371. if(Flag_Password_True==1)
  1372. Screen_state=316;
  1373. else
  1374.              Screen_state =110;
  1375.              Returnto_Modify=131;
  1376.                       break;
  1377.      case 6:
  1378.         if(Flag_Password_True==1)
  1379. Screen_state=317;
  1380. else
  1381.              Screen_state =110;
  1382.              Returnto_Modify=132;
  1383.                       break;
  1384.    
  1385.             default: 
  1386.                      break;
  1387.          };
  1388.         
  1389.         L_Key_OK = Key_OK;
  1390. }
  1391. if(Command_Flag>0) 
  1392. {
  1393.       if(Check_Instruction_Statue(0x0600)==0x00)
  1394.                {
  1395.                Screen_state =311;
  1396.         Command_Flag=0;
  1397. for(i=0;i<SETTING_NUM;i++)
  1398.                System_setting_Old[i]=System_setting[i];
  1399.        
  1400.         }
  1401.              else  if(Check_Instruction_Statue(0x0600)==0x22)
  1402.                 {           Dalog_Info_Show(1, 12, 0);
  1403. Command_Flag=0; 
  1404. }
  1405. }
  1406. }
  1407. void   FixedValue_Manage_Show(UC page ,UC select)
  1408. {   
  1409.     UC i,temp=0;
  1410.        LCDPrintf( 0,0,0,(char *)(&mainMenu[2][0]),10);
  1411.        for(i=0;i<6;i++)
  1412.             LCDPrintf( 1,1,(i+1)*16,(char *)secondMenu_fixedvalue[i+page*6],20);
  1413.               Bcd_show(0,12,0,System_Info.DZ_Area, 0, 0,0, 3);
  1414.                   LCDPrintf( 0,13,0,(char *)"组",2);
  1415.      switch(page)
  1416. {
  1417. case 0:
  1418. temp=3;
  1419.     
  1420.  for(i=0;i<6;i++)
  1421.              {
  1422.                 if(select==i)
  1423.                                   LCDPrintf( 0,1,(i-page*6+1)*16,(char *)secondMenu_fixedvalue[i],20);
  1424.        else
  1425.                                   LCDPrintf( 1,1,(i-page*6+1)*16,(char *)secondMenu_fixedvalue[i],20);
  1426.             
  1427.   }
  1428.      break;
  1429. case 1:
  1430.      temp=1;
  1431.  for(i=6;i<12;i++)
  1432.              {
  1433.                 if(select==i)
  1434.                                   LCDPrintf( 0,1,(i-page*6+1)*16,(char *)secondMenu_fixedvalue[i],20);
  1435.        else
  1436.                                   LCDPrintf( 1,1,(i-page*6+1)*16,(char *)secondMenu_fixedvalue[i],20);
  1437.             
  1438.   }
  1439.  
  1440.     
  1441.                                               break;
  1442.       }
  1443.   Frame_Show(temp);
  1444. }
  1445. void  FixedValue_A(void)
  1446. {
  1447.      if(L_Screen_state!=311)
  1448.      {         
  1449.        L_Screen_state=311;
  1450.     cls();Logo_Title();
  1451.       menupage=Father3_page;
  1452.   SubMenuPosition_temp=0;
  1453.   SubMenuPosition = Father3_MenuPosition;
  1454.   if(menupage>2)  menupage=0;
  1455.   if(SubMenuPosition>3)  SubMenuPosition=0;
  1456. FixedValue_A_Show(menupage, SubMenuPosition);
  1457.    
  1458.        }
  1459.     if((Key_UP==0 )&&(L_Key_UP==1))
  1460.      { 
  1461.        L_Key_UP    = Key_UP;
  1462.   if(SubMenuPosition==0)
  1463.      SubMenuPosition=3;
  1464. else 
  1465. SubMenuPosition--;
  1466.        /* if((SubMenuPosition==5)||(SubMenuPosition==11))
  1467.   {  if( menupage== 0)  menupage = 1;
  1468.         else              menupage--;
  1469.        
  1470.        }*/
  1471. FixedValue_A_Show(menupage, SubMenuPosition);
  1472.      } 
  1473.     if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  1474.      { 
  1475.        L_Key_DOWN  = Key_DOWN;
  1476.         if(SubMenuPosition>=3)
  1477.      SubMenuPosition=0;
  1478. else 
  1479. SubMenuPosition++;
  1480.        /* if((SubMenuPosition==6)||(SubMenuPosition==0))
  1481.   {  if( menupage>= 1)  menupage = 0;
  1482.         else                       menupage++;
  1483.        
  1484.        }*/
  1485.        
  1486. FixedValue_A_Show(menupage, SubMenuPosition);
  1487.       
  1488.      }
  1489.  if((Key_OK==0 )&&(L_Key_OK==1))
  1490.  {  
  1491.         L_Key_OK = Key_OK;
  1492. Father3_MenuPosition=SubMenuPosition;
  1493. Father3_page=menupage;
  1494. if(SubMenuPosition<13)
  1495.     Screen_state =31101;
  1496.    PT_num=SubMenuPosition;
  1497.         }
  1498.     
  1499.     if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  1500.      {
  1501.       if(Returnto_Save==110)
  1502. Screen_state =119;
  1503.                   else  Screen_state =31;
  1504.         SubMenuPosition = 0;
  1505.         L_Key_CANCEL = Key_CANCEL;
  1506.      }
  1507. }
  1508. void  FixedValue_A_Show(UC page,UC select)
  1509. { UC i,temp=0;
  1510.  
  1511. LCDPrintf(0,0,0,"叁定值组",10);
  1512. Bcd_show(0, 8, 0, FixedValue_Num, 0,0, 0, 3);
  1513.         for(i=0;i<6;i++)
  1514.          LCDPrintf( 1,1,(i+1)*16,(char *)FixedValue_index[page*6+i],20);
  1515.         
  1516. switch(page)
  1517.       {
  1518. case 0:  
  1519.              temp=0;
  1520.  for(i=0;i<6;i++)
  1521.        {
  1522.           if(select==i)
  1523.               LCDPrintf( 0,1,(i+1)*16,(char *)FixedValue_index[i],20);
  1524.           else
  1525.          LCDPrintf( 1,1,(i+1)*16,(char *)FixedValue_index[i],20);
  1526.      }
  1527.           break;
  1528.      case 1:  
  1529.              temp=1;
  1530.  for(i=6;i<12;i++)
  1531.        {
  1532.           if(select==i)
  1533.               LCDPrintf( 0,1,(i-6+1)*16,(char *)FixedValue_index[i],20);
  1534.           else
  1535.          LCDPrintf( 1,1,(i-6+1)*16,(char *)FixedValue_index[i],20);
  1536.      }
  1537.           break;
  1538. default: 
  1539.           break;
  1540.     };
  1541.  Frame_Show(temp);
  1542. }
  1543. //********************定值组A-突变量启动******************************
  1544. void FixedValue_A_FYGI(void)
  1545. {
  1546.  if(L_Screen_state!=31101)
  1547.      {  
  1548.       
  1549.        L_Screen_state=31101;
  1550.        
  1551.  SubMenuPosition = 0;  menupage=0;
  1552.     FixedValue_A_FYGI_Show(menupage,100) ;
  1553.        
  1554.             }
  1555.    if((Key_UP==0 )&&(L_Key_UP==1))
  1556.      { 
  1557.        L_Key_UP    = Key_UP;
  1558.       
  1559.        if( menupage== 0)  {menupage = 2;}
  1560.        else                      { menupage--;}
  1561.        FixedValue_A_FYGI_Show(menupage,100) ;
  1562.  
  1563.        } 
  1564.     if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  1565.      { 
  1566.        L_Key_DOWN  = Key_DOWN;
  1567.       
  1568.         if( menupage>= 2)  {menupage = 0;}
  1569.        else                      {menupage++;}
  1570.       FixedValue_A_FYGI_Show(menupage,100) ;
  1571.        
  1572.        }
  1573.   if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  1574.      {
  1575.         Screen_state =311;
  1576.         SubMenuPosition = 0;
  1577.         L_Key_CANCEL = Key_CANCEL;
  1578.      }
  1579.      
  1580.   if((Key_OK==0 )&&(L_Key_OK==1))
  1581. {
  1582.  L_Key_OK= Key_OK;
  1583.  Returnto_Modify=101;
  1584.  Screen_state=911;
  1585.  
  1586. }    
  1587. }
  1588. void FixedValue_A_FYGI_Modify(void)//定值组A-过流
  1589. {
  1590. UC fast_step_flag=0;
  1591. UC Fast_Step=10;
  1592. UC  temp_num;
  1593. temp_num=PT_num*10;
  1594.     if( L_Screen_state != 31121 )
  1595.      {  
  1596.          L_Screen_state = 31121;
  1597.          SubMenuPosition=0;
  1598.          menupage=0;
  1599.        
  1600.        FixedValue_A_FYGI_Show(menupage,SubMenuPosition) ;
  1601.       
  1602.      }
  1603.   
  1604.      if(((Key_ADD==0)&&(L_Key_ADD==1))||(Key_ADD_Long==1))
  1605.      {
  1606.       L_Key_ADD=Key_ADD;
  1607.       if(Key_ADD_Long==1){Key_ADD_Long=0;fast_step_flag=1;}
  1608.      switch(SubMenuPosition)
  1609.       {
  1610.          case 0:  
  1611.       if(System_setting[DDY_START1+temp_num]>=Voltage_Limit.Up_Limit) 
  1612.  System_setting[DDY_START1+temp_num]=Voltage_Limit.Low_Limit;
  1613. else if(fast_step_flag==1)
  1614. System_setting[DDY_START1+temp_num]+=Voltage_Limit.step_Size*Fast_Step;
  1615. System_setting[DDY_START1+temp_num]+=Voltage_Limit.step_Size;
  1616. break;
  1617.  case 1:
  1618.   if(System_setting[DDY_DELAY1+temp_num]>=Time_Limit.Up_Limit) 
  1619. System_setting[DDY_DELAY1+temp_num]=Time_Limit.Low_Limit;
  1620. else if(fast_step_flag==1)
  1621. System_setting[DDY_DELAY1+temp_num]+=Time_Limit.step_Size*Fast_Step;
  1622. System_setting[DDY_DELAY1+temp_num]+=Time_Limit.step_Size;
  1623.                                                       break;
  1624.                     
  1625. case 2: 
  1626.  if(System_setting[DDY_START2+temp_num]>=Voltage_Limit.Up_Limit) 
  1627.  System_setting[DDY_START2+temp_num]=Voltage_Limit.Low_Limit;
  1628. else if(fast_step_flag==1)
  1629. System_setting[DDY_START2+temp_num]+=Voltage_Limit.step_Size*Fast_Step;
  1630. System_setting[DDY_START2+temp_num]+=Voltage_Limit.step_Size;
  1631. break;
  1632.  case 3:
  1633.   if(System_setting[DDY_DELAY2+temp_num]>=Time_Limit.Up_Limit) 
  1634. System_setting[DDY_DELAY2+temp_num]=Time_Limit.Low_Limit;
  1635. else if(fast_step_flag==1)
  1636. System_setting[DDY_DELAY2+temp_num]+=Time_Limit.step_Size*Fast_Step;
  1637. System_setting[DDY_DELAY2+temp_num]+=Time_Limit.step_Size;
  1638.                                                       break;
  1639. case 4:
  1640. if((System_setting[KG1]&(KG1_D(PT_num*2)))==KG1_D(PT_num*2)) 
  1641. System_setting[KG1]=System_setting[KG1]&(~(KG1_D(PT_num*2)));
  1642. else System_setting[KG1]=System_setting[KG1]|(KG1_D(PT_num*2));
  1643. break;
  1644.                  case 5:  
  1645.       if(System_setting[GDY_START1+temp_num]>=Voltage_Limit.Up_Limit) 
  1646.  System_setting[GDY_START1+temp_num]=Voltage_Limit.Low_Limit;
  1647. else if(fast_step_flag==1)
  1648. System_setting[GDY_START1+temp_num]+=Voltage_Limit.step_Size*Fast_Step;
  1649. System_setting[GDY_START1+temp_num]+=Voltage_Limit.step_Size;
  1650. break;
  1651.  case 6:
  1652.   if(System_setting[GDY_DELAY1+temp_num]>=Time_Limit.Up_Limit) 
  1653. System_setting[GDY_DELAY1+temp_num]=Time_Limit.Low_Limit;
  1654. else if(fast_step_flag==1)
  1655. System_setting[GDY_DELAY1+temp_num]+=Time_Limit.step_Size*Fast_Step;
  1656. System_setting[GDY_DELAY1+temp_num]+=Time_Limit.step_Size;
  1657.                                                       break;
  1658.                     
  1659. case 7: 
  1660.  if(System_setting[GDY_START2+temp_num]>=Voltage_Limit.Up_Limit) 
  1661.  System_setting[GDY_START2+temp_num]=Voltage_Limit.Low_Limit;
  1662. else if(fast_step_flag==1)
  1663. System_setting[GDY_START2+temp_num]+=Voltage_Limit.step_Size*Fast_Step;
  1664. System_setting[GDY_START2+temp_num]+=Voltage_Limit.step_Size;
  1665. break;
  1666.  case 8:
  1667.   if(System_setting[GDY_DELAY2+temp_num]>=Time_Limit.Up_Limit) 
  1668. System_setting[GDY_DELAY2+temp_num]=Time_Limit.Low_Limit;
  1669. else if(fast_step_flag==1)
  1670. System_setting[GDY_DELAY2+temp_num]+=Time_Limit.step_Size*Fast_Step;
  1671. System_setting[GDY_DELAY2+temp_num]+=Time_Limit.step_Size;
  1672.                                                       break;
  1673.    case 9: 
  1674.  if(System_setting[LXGDY_START+temp_num]>=Voltage_Limit.Up_Limit) 
  1675.  System_setting[LXGDY_START+temp_num]=Voltage_Limit.Low_Limit;
  1676. else if(fast_step_flag==1)
  1677. System_setting[LXGDY_START+temp_num]+=Voltage_Limit.step_Size*Fast_Step;
  1678. System_setting[LXGDY_START+temp_num]+=Voltage_Limit.step_Size;
  1679. break;
  1680.  case 10:
  1681.   if(System_setting[LXGDY_DELAY+temp_num]>=Time_Limit.Up_Limit) 
  1682. System_setting[LXGDY_DELAY+temp_num]=Time_Limit.Low_Limit;
  1683. else if(fast_step_flag==1)
  1684. System_setting[LXGDY_DELAY+temp_num]+=Time_Limit.step_Size*Fast_Step;
  1685. System_setting[LXGDY_DELAY+temp_num]+=Time_Limit.step_Size;
  1686.                                                       break;
  1687.                  case 11:
  1688. if((System_setting[KG1]&(KG1_D(PT_num*2+1)))==KG1_D(PT_num*2+1)) 
  1689. System_setting[KG1]=System_setting[KG1]&(~(KG1_D(PT_num*2+1)));
  1690. else System_setting[KG1]=System_setting[KG1]|(KG1_D(PT_num*2+1));
  1691. break;
  1692. default: 
  1693.           break;
  1694.       };
  1695.      fast_step_flag=0;
  1696.       FixedValue_A_FYGI_Show(menupage,SubMenuPosition) ;
  1697. }
  1698.          
  1699. if(((Key_SUB==0)&&(L_Key_SUB==1))||(Key_SUB_Long==1))
  1700.      {
  1701.      L_Key_SUB=Key_SUB;
  1702.      if(Key_SUB_Long==1){Key_SUB_Long=0;fast_step_flag=1;}
  1703. switch(SubMenuPosition)
  1704.       {
  1705. case 0: 
  1706. if((System_setting[DDY_START1+temp_num]<=Voltage_Limit.Low_Limit)||
  1707. (System_setting[DDY_START1+temp_num]>=Voltage_Limit.Up_Limit))
  1708. System_setting[DDY_START1+temp_num]=Voltage_Limit.Up_Limit;
  1709. else if(fast_step_flag==1)
  1710. System_setting[DDY_START1+temp_num]-=Voltage_Limit.step_Size*Fast_Step;
  1711. System_setting[DDY_START1+temp_num]-=Voltage_Limit.step_Size;
  1712. break;
  1713. case 1:
  1714. if((System_setting[DDY_DELAY1+temp_num]<=Time_Limit.Low_Limit)||
  1715. (System_setting[DDY_DELAY1+temp_num]>=Time_Limit.Up_Limit))
  1716. System_setting[DDY_DELAY1+temp_num]=Time_Limit.Up_Limit;
  1717. else if(fast_step_flag==1)
  1718. System_setting[DDY_DELAY1+temp_num]-=Time_Limit.step_Size*Fast_Step;
  1719. System_setting[DDY_DELAY1+temp_num]-=Time_Limit.step_Size;
  1720. break;
  1721.      case 2: 
  1722.   if((System_setting[DDY_START2+temp_num]<=Voltage_Limit.Low_Limit)||
  1723. (System_setting[DDY_START2+temp_num]>=Voltage_Limit.Up_Limit))
  1724. System_setting[DDY_START2+temp_num]=Voltage_Limit.Up_Limit;
  1725. else if(fast_step_flag==1)
  1726. System_setting[DDY_START2+temp_num]-=Voltage_Limit.step_Size*Fast_Step;
  1727. System_setting[DDY_START2+temp_num]-=Voltage_Limit.step_Size;
  1728. break;
  1729. case 3:
  1730. if((System_setting[DDY_DELAY2+temp_num]<=Time_Limit.Low_Limit)||
  1731. (System_setting[DDY_DELAY2+temp_num]>=Time_Limit.Up_Limit))
  1732. System_setting[DDY_DELAY2+temp_num]=Time_Limit.Up_Limit;
  1733. else if(fast_step_flag==1)
  1734. System_setting[DDY_DELAY2+temp_num]-=Time_Limit.step_Size*Fast_Step;
  1735. System_setting[DDY_DELAY2+temp_num]-=Time_Limit.step_Size;
  1736. break;
  1737.  case 4:
  1738. if((System_setting[KG1]&(KG1_D(PT_num*2)))==KG1_D(PT_num*2)) 
  1739. System_setting[KG1]=System_setting[KG1]&(~(KG1_D(PT_num*2)));
  1740. else System_setting[KG1]=System_setting[KG1]|(KG1_D(PT_num*2));
  1741. break;
  1742.  case 5: 
  1743.                      if((System_setting[GDY_START1+temp_num]<=Voltage_Limit.Low_Limit)||
  1744. (System_setting[GDY_START1+temp_num]>=Voltage_Limit.Up_Limit))
  1745. System_setting[GDY_START1+temp_num]=Voltage_Limit.Up_Limit;
  1746. else if(fast_step_flag==1)
  1747. System_setting[GDY_START1+temp_num]-=Voltage_Limit.step_Size*Fast_Step;
  1748. System_setting[GDY_START1+temp_num]-=Voltage_Limit.step_Size;
  1749.   break;
  1750.   case 6: 
  1751. if((System_setting[GDY_DELAY1+temp_num]<=Time_Limit.Low_Limit)||
  1752. (System_setting[GDY_DELAY1+temp_num]>=Time_Limit.Up_Limit))
  1753. System_setting[GDY_DELAY1+temp_num]=Time_Limit.Up_Limit;
  1754. else if(fast_step_flag==1)
  1755. System_setting[GDY_DELAY1+temp_num]-=Time_Limit.step_Size*Fast_Step;
  1756. System_setting[GDY_DELAY1+temp_num]-=Time_Limit.step_Size;
  1757. break;
  1758.  case 7: 
  1759.                      if((System_setting[GDY_START2+temp_num]<=Voltage_Limit.Low_Limit)||
  1760. (System_setting[GDY_START2+temp_num]>=Voltage_Limit.Up_Limit))
  1761. System_setting[GDY_START2+temp_num]=Voltage_Limit.Up_Limit;
  1762. else if(fast_step_flag==1)
  1763. System_setting[GDY_START2+temp_num]-=Voltage_Limit.step_Size*Fast_Step;
  1764. System_setting[GDY_START2+temp_num]-=Voltage_Limit.step_Size;
  1765.   break;
  1766.   case 8: 
  1767. if((System_setting[GDY_DELAY2+temp_num]<=Time_Limit.Low_Limit)||
  1768. (System_setting[GDY_DELAY2+temp_num]>=Time_Limit.Up_Limit))
  1769. System_setting[GDY_DELAY2+temp_num]=Time_Limit.Up_Limit;
  1770. else if(fast_step_flag==1)
  1771. System_setting[GDY_DELAY2+temp_num]-=Time_Limit.step_Size*Fast_Step;
  1772. System_setting[GDY_DELAY2+temp_num]-=Time_Limit.step_Size;
  1773. break;
  1774.  case 9: 
  1775.                      if((System_setting[LXGDY_START+temp_num]<=Voltage_Limit.Low_Limit)||
  1776. (System_setting[LXGDY_START+temp_num]>=Voltage_Limit.Up_Limit))
  1777. System_setting[LXGDY_START+temp_num]=Voltage_Limit.Up_Limit;
  1778. else if(fast_step_flag==1)
  1779. System_setting[LXGDY_START+temp_num]-=Voltage_Limit.step_Size*Fast_Step;
  1780. System_setting[LXGDY_START+temp_num]-=Voltage_Limit.step_Size;
  1781.   break;
  1782.   case 10: 
  1783. if((System_setting[LXGDY_DELAY+temp_num]<=Time_Limit.Low_Limit)||
  1784. (System_setting[LXGDY_DELAY+temp_num]>=Time_Limit.Up_Limit))
  1785. System_setting[LXGDY_DELAY+temp_num]=Time_Limit.Up_Limit;
  1786. else if(fast_step_flag==1)
  1787. System_setting[LXGDY_DELAY+temp_num]-=Time_Limit.step_Size*Fast_Step;
  1788. System_setting[LXGDY_DELAY+temp_num]-=Time_Limit.step_Size;
  1789. break;
  1790.          case 11:
  1791.  if((System_setting[KG1]&(KG1_D(PT_num*2+1)))==KG1_D(PT_num*2+1)) 
  1792. System_setting[KG1]=System_setting[KG1]&(~(KG1_D(PT_num*2+1)));
  1793. else System_setting[KG1]=System_setting[KG1]|(KG1_D(PT_num*2+1));
  1794. break;
  1795. default: 
  1796.           break;
  1797.       };
  1798.    fast_step_flag=0;
  1799.       FixedValue_A_FYGI_Show(menupage,SubMenuPosition) ;
  1800.  }
  1801.         
  1802.    if((Key_UP==0)&&(L_Key_UP==1))
  1803.      {
  1804.       L_Key_UP=Key_UP;
  1805. if(SubMenuPosition==0)
  1806.      SubMenuPosition=11;
  1807. else 
  1808. SubMenuPosition--;
  1809. if((SubMenuPosition==11)|| (SubMenuPosition==8)||(SubMenuPosition==4))
  1810.   { if(menupage==0) {menupage = 2;}
  1811.         else         { menupage--;}
  1812.       
  1813.  }
  1814.       FixedValue_A_FYGI_Show(menupage,SubMenuPosition) ;
  1815.        
  1816.      }
  1817.          
  1818.    if((Key_DOWN==0)&&((L_Key_DOWN==1)))
  1819.      {
  1820.       L_Key_DOWN=Key_DOWN;
  1821.      
  1822.   if(SubMenuPosition>=11)
  1823.      SubMenuPosition=0;
  1824. else 
  1825. SubMenuPosition++;
  1826.        if(((SubMenuPosition==9)||(SubMenuPosition==5)||(SubMenuPosition==0)))
  1827.   {  if( menupage>= 2)  {menupage = 0;}
  1828.         else                     {  menupage++;}
  1829.        
  1830.   }
  1831.       FixedValue_A_FYGI_Show(menupage,SubMenuPosition) ;
  1832.        
  1833.      } 
  1834.   
  1835.   if((Key_OK==0)&&(L_Key_OK==1))
  1836.      {
  1837.       L_Key_OK=Key_OK;
  1838.      
  1839.        Screen_state =311;
  1840.             Returnto_Save=110;
  1841.        SubMenuPosition=0;
  1842.        SubMenuPosition_temp=0;
  1843.      } 
  1844. }
  1845. void FixedValue_A_FYGI_Show(UC page,UC select )//定值组A-过流
  1846. {
  1847. UC i,temp_Erect=7,temp_Line=0,temp=0;
  1848. UC temp_num;
  1849.  cls();Logo_Title();
  1850. LCDPrintf(0,0,0,"叁复压过流",12);
  1851.      for(i=0;i<6;i++)
  1852.           LCDPrintf( 1,1,(i+1)*16,(char *)FixedValue_FYGI_Text[i+6*page],20);
  1853.              temp_num=PT_num*10;
  1854. switch(page)
  1855. {
  1856.      case 0:
  1857.       temp=3;
  1858. temp_Line=2;
  1859. if(select==0)
  1860.              Bcd_show(0,temp_Erect, temp_Line*16,System_setting[DDY_START1+temp_num],0,1,0,0);
  1861.        else
  1862.       Bcd_show(1,temp_Erect, temp_Line*16,System_setting[DDY_START1+temp_num],0,1,0,0);
  1863.          temp_Line++;
  1864.  if(select==1)
  1865.              Bcd_show(0,temp_Erect, temp_Line*16,System_setting[DDY_DELAY1+temp_num],0,6,0,0);
  1866.        else
  1867.       Bcd_show(1,temp_Erect, temp_Line*16,System_setting[DDY_DELAY1+temp_num],0,6,0,0);
  1868.          temp_Line++;
  1869.   if(select==2)
  1870.              Bcd_show(0,temp_Erect, temp_Line*16,System_setting[DDY_START2+temp_num],0,1,0,0);
  1871.        else
  1872.       Bcd_show(1,temp_Erect, temp_Line*16,System_setting[DDY_START2+temp_num],0,1,0,0);
  1873.          temp_Line++;
  1874.  if(select==3)
  1875.              Bcd_show(0,temp_Erect, temp_Line*16,System_setting[DDY_DELAY2+temp_num],0,6,0,0);
  1876.        else
  1877.       Bcd_show(1,temp_Erect, temp_Line*16,System_setting[DDY_DELAY2+temp_num],0,6,0,0);
  1878.          temp_Line++;       
  1879.  
  1880.    if(select==4)
  1881.                               Control_Word_Show(0,(temp_Erect+5), temp_Line*16,(System_setting[KG1]&KG1_D(PT_num*2)) , 4);
  1882.                else
  1883.                     Control_Word_Show(1,(temp_Erect+5), temp_Line*16,(System_setting[KG1]&KG1_D(PT_num*2)) , 4);
  1884.                                               
  1885.     
  1886.             break;
  1887. case 1:
  1888. temp=2;
  1889. temp_Line=2;
  1890. if(select==5)
  1891.              Bcd_show(0,temp_Erect, temp_Line*16,System_setting[GDY_START1+temp_num],0,1,0,0);
  1892.        else
  1893.       Bcd_show(1,temp_Erect, temp_Line*16,System_setting[GDY_START1+temp_num],0,1,0,0);
  1894.          temp_Line++;
  1895.  if(select==6)
  1896.              Bcd_show(0,temp_Erect, temp_Line*16,System_setting[GDY_DELAY1+temp_num],0,6,0,0);
  1897.        else
  1898.       Bcd_show(1,temp_Erect, temp_Line*16,System_setting[GDY_DELAY1+temp_num],0,6,0,0);
  1899.          temp_Line++;
  1900.   if(select==7)
  1901.              Bcd_show(0,temp_Erect, temp_Line*16,System_setting[GDY_START2+temp_num],0,1,0,0);
  1902.        else
  1903.       Bcd_show(1,temp_Erect, temp_Line*16,System_setting[GDY_START2+temp_num],0,1,0,0);
  1904.          temp_Line++;
  1905.  if(select==8)
  1906.              Bcd_show(0,temp_Erect, temp_Line*16,System_setting[GDY_DELAY2+temp_num],0,6,0,0);
  1907.        else
  1908.       Bcd_show(1,temp_Erect, temp_Line*16,System_setting[GDY_DELAY2+temp_num],0,6,0,0);
  1909.          temp_Line++;       
  1910.               break;
  1911.                 case 2:
  1912. temp=1;
  1913. temp_Line=2;
  1914. if(select==9)
  1915.              Bcd_show(0,temp_Erect, temp_Line*16,System_setting[LXGDY_START+temp_num],0,1,0,0);
  1916.        else
  1917.       Bcd_show(1,temp_Erect, temp_Line*16,System_setting[LXGDY_START+temp_num],0,1,0,0);
  1918.          temp_Line++;
  1919.  if(select==10)
  1920.              Bcd_show(0,temp_Erect, temp_Line*16,System_setting[LXGDY_DELAY+temp_num],0,6,0,0);
  1921.        else
  1922.       Bcd_show(1,temp_Erect, temp_Line*16,System_setting[LXGDY_DELAY+temp_num],0,6,0,0);
  1923.          temp_Line++;temp_Line++;
  1924.  if(select==11)
  1925.                               Control_Word_Show(0,(temp_Erect+5), temp_Line*16,(System_setting[KG1]&KG1_D(PT_num*2+1)) , 4);
  1926.                else
  1927.                     Control_Word_Show(1,(temp_Erect+5), temp_Line*16,(System_setting[KG1]&KG1_D(PT_num*2+1)) , 4);
  1928.             
  1929. break;
  1930. default:break;
  1931. }
  1932.  Frame_Show(temp);
  1933. }
  1934. void Compare_FixedValue_Num(void)
  1935. {
  1936. if( L_Screen_state != 911 )
  1937.      {  
  1938.          L_Screen_state = 911;
  1939.          if(FixedValue_Num==System_Info.DZ_Area)
  1940.           { /*不能修改当前区*/
  1941.           Dalog_Info_Show(0,16, 0);
  1942.           }
  1943.          else   if(Flag_Password_True==1)
  1944.   Screen_state=31020+Returnto_Modify;
  1945.        else
  1946.          Screen_state=110;
  1947. }
  1948.   if((Key_OK==0)&&(L_Key_OK==1))
  1949.        {
  1950.       L_Key_OK=Key_OK;
  1951. if(Returnto_Modify<=110)
  1952. Screen_state=31000+Returnto_Modify;//过流
  1953.      
  1954.    }
  1955. }
  1956. void FixedValue_Switch(void)
  1957. {
  1958.     if(L_Screen_state!=315)
  1959.      {  
  1960.        
  1961.        L_Screen_state=315;
  1962.           Dlg_Frame_View();
  1963.            LCDPrintf(1, 4, 64, "定值组经", 10);
  1964.           Bcd_show(1, 3, 80, System_Info.DZ_Area,0, 0, 0, 3);
  1965.          LCDPrintf(1, 5, 80, "切换到", 6);
  1966.           Bcd_show(0, 12, 80, FixedValue_Switch_Num,0, 0, 0, 3);
  1967.        
  1968.      }
  1969.     
  1970.    if((Key_ADD==0)&&(L_Key_ADD==1))
  1971.      {
  1972.       L_Key_ADD=Key_ADD;
  1973.       if(FixedValue_Switch_Num>=3)  FixedValue_Switch_Num=0;
  1974.        else  FixedValue_Switch_Num++;
  1975.        Bcd_show(0, 12, 80, FixedValue_Switch_Num,0, 0, 0, 3);
  1976.       
  1977.    }
  1978. if((Key_SUB==0)&&(L_Key_SUB==1))
  1979.      {
  1980.      L_Key_SUB=Key_SUB;
  1981.       if(FixedValue_Switch_Num==0)  FixedValue_Switch_Num=3;
  1982.        else  FixedValue_Switch_Num--;
  1983.        Bcd_show(0, 12, 80, FixedValue_Switch_Num,0, 0, 0, 3);
  1984.       
  1985. }
  1986.   if((Key_OK==0 )&&(L_Key_OK==1))
  1987.      {  
  1988.          L_Key_OK = Key_OK;
  1989.          Screen_state =119;
  1990.          Returnto_Save=130;
  1991.          SubMenuPosition = 0;
  1992.          SubMenuPosition_temp=0;
  1993.         
  1994. }
  1995.    
  1996. }
  1997. void FixedValue_Copy(void)
  1998. {
  1999.     if(L_Screen_state!=316)
  2000.      {  
  2001.        
  2002.        L_Screen_state=316;
  2003.        SubMenuPosition=0;
  2004.         SourceArea=0;
  2005.         TargetArea=1;
  2006.       
  2007.           Dlg_Frame_View();
  2008.            LCDPrintf(1, 4, 64, "定值组经", 10);
  2009.           Bcd_show(0, 3, 80, SourceArea,0, 0, 0, 3);
  2010.          LCDPrintf(1, 5, 80, "复制到", 6);
  2011.           Bcd_show(1, 12, 80, TargetArea,0, 0, 0, 3);
  2012.        
  2013.      }
  2014.  if((Key_LEFT==0 )&&(L_Key_LEFT==1))
  2015.      { 
  2016.         L_Key_LEFT= Key_LEFT;
  2017.         if(SubMenuPosition==0)    SubMenuPosition=1;
  2018.         else  SubMenuPosition=0;
  2019.        if(SubMenuPosition==0)
  2020.      {
  2021.        Bcd_show(0, 3, 80, SourceArea,0, 0, 0, 3);
  2022.          Bcd_show(1, 12, 80, TargetArea,0, 0, 0, 3);
  2023.      }
  2024.      else 
  2025.      {
  2026.        Bcd_show(1, 3, 80, SourceArea,0, 0, 0, 3);
  2027.         Bcd_show(0, 12, 80, TargetArea,0, 0, 0, 3);
  2028.      }
  2029.  }
  2030.  if((Key_RIGHT==0 )&&(L_Key_RIGHT==1))
  2031.      { 
  2032.         L_Key_RIGHT= Key_RIGHT;
  2033.         if(SubMenuPosition==0)    SubMenuPosition=1;
  2034.         else  SubMenuPosition=0;
  2035.         if(SubMenuPosition==0)
  2036.      {
  2037.        Bcd_show(0, 3, 80, SourceArea,0, 0, 0, 3);
  2038.          Bcd_show(1, 12, 80, TargetArea,0, 0, 0, 3);
  2039.      }
  2040.      else 
  2041.      {
  2042.        Bcd_show(1, 3, 80, SourceArea,0, 0, 0, 3);
  2043.         Bcd_show(0, 12, 80, TargetArea,0, 0, 0, 3);
  2044.      }
  2045.  }
  2046.  
  2047.     
  2048.     
  2049.     
  2050.    if((Key_ADD==0)&&(L_Key_ADD==1))
  2051.      {
  2052.       L_Key_ADD=Key_ADD;
  2053.     
  2054.     
  2055.         if(SubMenuPosition==0)
  2056.          {
  2057.           if(SourceArea>=3)  SourceArea=0;
  2058.        else  SourceArea++;
  2059.        Bcd_show(0, 3, 80, SourceArea,0, 0, 0, 3);
  2060.      Bcd_show(1, 12, 80, TargetArea,0, 0, 0, 3);
  2061.      }
  2062.         
  2063.         if(SubMenuPosition==1)
  2064.          {
  2065.           if(TargetArea>=3)  TargetArea=0;
  2066.        else  TargetArea++;
  2067.        if(System_Info.DZ_Area==TargetArea)  TargetArea++;
  2068.        //  if(TargetArea>=3)  TargetArea=0;
  2069.        Bcd_show(1, 3, 80, SourceArea,0, 0, 0, 3);
  2070.      Bcd_show(0, 12, 80, TargetArea,0, 0, 0, 3);
  2071.      }
  2072.    }
  2073. if((Key_SUB==0)&&(L_Key_SUB==1))
  2074.      {
  2075.      L_Key_SUB=Key_SUB;
  2076.       if(SubMenuPosition==0)
  2077.          {
  2078.           if(SourceArea==0)  SourceArea=3;
  2079.        else  SourceArea--;
  2080.        Bcd_show(0, 3, 80, SourceArea,0, 0, 0, 3);
  2081.      Bcd_show(1, 12, 80, TargetArea,0, 0, 0, 3);
  2082.      }
  2083.         
  2084.         if(SubMenuPosition==1)
  2085.          {
  2086.           if(TargetArea==0)  TargetArea=3;
  2087.        else  TargetArea--;
  2088.        if(System_Info.DZ_Area==TargetArea)  TargetArea--;
  2089.        Bcd_show(1, 3, 80, SourceArea,0, 0, 0, 3);
  2090.      Bcd_show(0, 12, 80, TargetArea,0, 0, 0, 3);
  2091.      }
  2092. }
  2093.   if((Key_OK==0 )&&(L_Key_OK==1))
  2094.      {  
  2095.          L_Key_OK = Key_OK;
  2096.          
  2097.          Screen_state =119;
  2098.          Returnto_Save=131;
  2099.          SubMenuPosition = 0;
  2100.          SubMenuPosition_temp=0;
  2101.         
  2102. }
  2103.    
  2104.      if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  2105.      {
  2106.              SubMenuPosition = 0;
  2107.              Screen_state =31;
  2108.     
  2109.         L_Key_CANCEL = Key_CANCEL;
  2110.      }
  2111.   
  2112. }
  2113. void FixedValue_Init(void)
  2114. {
  2115. UC i;
  2116.     if(L_Screen_state!=317)
  2117.      {  
  2118.        
  2119.        L_Screen_state=317;
  2120.           Dlg_Frame_View();
  2121.            LCDPrintf(1, 3, 72, "写定值组", 10);
  2122.           Bcd_show(0, 12, 72,  FixedValue_Switch_Num,0, 0, 0, 3);
  2123.              
  2124.      }
  2125.     
  2126.    if((Key_ADD==0)&&(L_Key_ADD==1))
  2127.      {
  2128.       L_Key_ADD=Key_ADD;
  2129.       if(FixedValue_Switch_Num>=3)  FixedValue_Switch_Num=0;
  2130.        else  FixedValue_Switch_Num++;
  2131.        Bcd_show(0, 12, 72, FixedValue_Switch_Num,0, 0, 0, 3);
  2132.       
  2133.    }
  2134. if((Key_SUB==0)&&(L_Key_SUB==1))
  2135.      {
  2136.      L_Key_SUB=Key_SUB;
  2137.       if(FixedValue_Switch_Num==0)  FixedValue_Switch_Num=3;
  2138.        else  FixedValue_Switch_Num--;
  2139.        Bcd_show(0, 12, 72, FixedValue_Switch_Num,0, 0, 0, 3);
  2140.       
  2141. }
  2142.   if((Key_OK==0 )&&(L_Key_OK==1))
  2143.      {  
  2144.          L_Key_OK = Key_OK;
  2145.          Screen_state =119;
  2146.          Returnto_Save=132;
  2147.  for(i=0;i<SETTING_NUM;i++)
  2148.   System_setting[i]=Setting_Init[i];
  2149.          SubMenuPosition = 0;
  2150.          SubMenuPosition_temp=0;
  2151.         
  2152. }
  2153.  if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  2154.      {  
  2155.          L_Key_CANCEL= Key_CANCEL;
  2156.          Screen_state =31;
  2157.          SubMenuPosition = 0;
  2158.          SubMenuPosition_temp=0;
  2159.         
  2160. }
  2161.   
  2162.    
  2163. }
  2164. //++++++++++++++++++++++++保护定值结束+++++++++++++++++++++++++++++
  2165. //----------------------------系统信息---------------------------------------------
  2166. //校准系数
  2167. //遥信参数
  2168. //端口信息
  2169. //修改密码
  2170. //时钟调整
  2171. //写初始配置
  2172. void  System_Config(void)
  2173. {
  2174.     if(L_Screen_state!=41)
  2175.      {  
  2176.           L_Screen_state=41;
  2177. Command_Flag=0;
  2178.        menupage=Father2_page; 
  2179.   SubMenuPosition_temp=0;
  2180.   SubMenuPosition = Father2_MenuPosition;
  2181.   if(menupage>1) menupage=0;
  2182.   if(SubMenuPosition>5) SubMenuPosition=0;
  2183.  
  2184.             
  2185.      System_Config_Show(menupage, SubMenuPosition);
  2186.        }
  2187.     if((Key_UP==0 )&&(L_Key_UP==1))
  2188.      { 
  2189.        L_Key_UP    = Key_UP;
  2190.   if(SubMenuPosition==0)
  2191.      SubMenuPosition=5;
  2192. else 
  2193. SubMenuPosition--;
  2194.        /* if((SubMenuPosition==5)||(SubMenuPosition==8))
  2195.   {  if( menupage== 0)  menupage = 1;
  2196.         else              menupage--;
  2197.        
  2198.        }*/
  2199.        
  2200. System_Config_Show(menupage, SubMenuPosition);
  2201.  
  2202.      } 
  2203.     if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  2204.      { 
  2205.        L_Key_DOWN  = Key_DOWN;
  2206.         if(SubMenuPosition>=5)
  2207.      SubMenuPosition=0;
  2208. else 
  2209. SubMenuPosition++;
  2210.         /*if((SubMenuPosition==6)||(SubMenuPosition==0))
  2211.   {  if( menupage>= 1)  menupage = 0;
  2212.         else                       menupage++;
  2213.        
  2214.        }*/
  2215.        
  2216. System_Config_Show(menupage, SubMenuPosition);
  2217.             
  2218.      } 
  2219.     if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  2220.      {     
  2221.         
  2222. if((Returnto_Save==30)||(Returnto_Save==35)||(Returnto_Save==6))
  2223. {Screen_state =119;Returnto_Save=30;}
  2224.         else  
  2225. Screen_state =1;
  2226.      Flag_Password_True=0;
  2227.         SubMenuPosition = 0;
  2228.         L_Key_CANCEL = Key_CANCEL;
  2229.      }
  2230.   if((Key_OK==0 )&&(L_Key_OK==1))
  2231.      {  
  2232.         L_Key_OK = Key_OK;
  2233.        Father2_MenuPosition=SubMenuPosition;
  2234. Father2_page=menupage;
  2235. Command_Flag=0;
  2236.         switch(SubMenuPosition)
  2237.          {
  2238.              case 0:  
  2239.     case 1:  
  2240.       Screen_state=413+SubMenuPosition;
  2241. break;
  2242.    case 2:
  2243.    Screen_state=416;
  2244.                    break;
  2245.        
  2246.             
  2247.             case 3:  
  2248.         Screen_state =110;//密码修改
  2249.              Returnto_Modify=0;
  2250.            break;
  2251.             case 4: 
  2252. if(Flag_Password_True==1)
  2253. Screen_state=418;
  2254. else
  2255.                         Screen_state =110;//时钟调整
  2256.                       Returnto_Modify=6;
  2257.                      break;
  2258.         case 5:
  2259.    if(Flag_Password_True==1)
  2260. Screen_state=419;
  2261.    else
  2262.              Screen_state =110;
  2263.              Returnto_Modify=133;
  2264.                       break;
  2265.              default: 
  2266.                      break;
  2267.          };
  2268.        
  2269.         L_Key_OK = Key_OK;
  2270. }
  2271.  
  2272.   
  2273.     
  2274. }
  2275. void  System_Config_Show(UC page,UC select)
  2276. {
  2277. UC i,temp=0;
  2278.   cls();Logo_Title();
  2279. LCDPrintf( 0,0,0,(char *)(&mainMenu[3][0]),12);
  2280.         for(i=0;i<6;i++)
  2281.          LCDPrintf( 1,1,(i+1)*16,(char *)secondMenu_sysconfg[page*6+i],20);
  2282.         
  2283. switch(page)
  2284.         {
  2285.         case 0:
  2286.         temp=3;
  2287.         for(i=0;i<6;i++)
  2288.         {
  2289.         if(select==i)
  2290.         LCDPrintf( 0,1,(i+1)*16,(char *)secondMenu_sysconfg[i],20);
  2291.         else 
  2292.         LCDPrintf( 1,1,(i+1)*16,(char *)secondMenu_sysconfg[i],20);
  2293.         }
  2294.         break;
  2295.         case 1:
  2296.         temp=1;
  2297.         for(i=6;i<11;i++)
  2298.         {
  2299.         if(SubMenuPosition==i)
  2300.         LCDPrintf( 0,1,(i-6+1)*16,(char *)secondMenu_sysconfg[i],20);
  2301.         else 
  2302.         LCDPrintf( 1,1,(i-6+1)*16,(char *)secondMenu_sysconfg[i],20);
  2303.         }
  2304.         break;
  2305.         default: break;       
  2306.         }
  2307. Frame_Show(temp);
  2308. }
  2309. void   Channel_Adjust_Value(void)
  2310. {
  2311.     if(L_Screen_state!=413)
  2312.      {  
  2313.       
  2314.        L_Screen_state=413; 
  2315.    cls();
  2316.      Logo_Title();
  2317.       SubMenuPosition=0;
  2318.    if((SubMenuPosition>2)||(SubMenuPosition==0)) SubMenuPosition=1;
  2319.         Channel_Adjust_Value_show(SubMenuPosition);
  2320.      }
  2321.     if((Key_UP==0 )&&(L_Key_UP==1))
  2322.      { 
  2323.        L_Key_UP    = Key_UP;
  2324.        if( SubMenuPosition == 1) SubMenuPosition =2;
  2325.          
  2326.         else    SubMenuPosition--;
  2327.        
  2328.         Channel_Adjust_Value_show(SubMenuPosition);
  2329.       
  2330.      } 
  2331.     if((Key_DOWN==0 )&&(L_Key_DOWN==1))
  2332.      { 
  2333.        L_Key_DOWN  = Key_DOWN;
  2334.        
  2335.        if( SubMenuPosition == 2) SubMenuPosition = 1;
  2336.        
  2337.         else       SubMenuPosition++;
  2338.        
  2339.        Channel_Adjust_Value_show(SubMenuPosition);
  2340.        } 
  2341.       if((Key_OK==0 )&&(L_Key_OK==1))
  2342.       {
  2343.       L_Key_OK=Key_OK;
  2344. Father3_MenuPosition=SubMenuPosition;
  2345.         switch(SubMenuPosition)
  2346.          {
  2347.           
  2348.             case 1:   if(Flag_Password_True==1)
  2349.     Screen_state=4131;
  2350. else
  2351.      Screen_state =110;
  2352.              Returnto_Modify=32;//自动调整5A
  2353.              Auto_CT_Type=0x21;
  2354. //Select_CT_Type=0x81;
  2355.              CT_Type=0x01;
  2356.                       break;
  2357.          /*   case 2:   if(Flag_Password_True==1)
  2358.     Screen_state=4131;
  2359. else
  2360.      Screen_state =110;
  2361.                Returnto_Modify=33;//自动调整1A
  2362.                Auto_CT_Type=0x22;
  2363. //Select_CT_Type=0x82;
  2364.                CT_Type=0x02;
  2365.                       break;*/
  2366.             case 2:   if(Flag_Password_True==1)
  2367.     Screen_state=4132;
  2368. else
  2369.      Screen_state =110;
  2370.              Returnto_Modify=34;//手动调整5A
  2371.              Select_CT_Type=0x81;
  2372.              CT_Type=0x01;
  2373.                       break;
  2374.           /*  case 4:   if(Flag_Password_True==1)
  2375.     Screen_state=4132;
  2376. else
  2377.      Screen_state =110;
  2378. Returnto_Modify=35;//手动调整1A
  2379.              Select_CT_Type=0x82;
  2380.              CT_Type=0x02;
  2381.                       break;*/
  2382.             default: 
  2383.                      break;
  2384.          };
  2385.       }
  2386.    
  2387.      if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  2388.      {
  2389.         Screen_state =41;
  2390.         SubMenuPosition = 0;
  2391.         L_Key_CANCEL = Key_CANCEL;
  2392.      }
  2393. }
  2394. void   Channel_Adjust_Value_show(UC select)
  2395. {
  2396.   UC i;
  2397.     LCDPrintf( 0,0,0,"肆校准系数",12);
  2398.       for(i=0;i<6;i++)
  2399.          LCDPrintf( 1,1,(i+1)*16,(char *)Adjust_Text[i],20);
  2400.   if(select==1)
  2401.          LCDPrintf( 0,1,2*16,(char *)Adjust_Text[1],20);
  2402.            else 
  2403.      LCDPrintf( 1,1,2*16,(char *)Adjust_Text[1],20);
  2404.      if(select==2)
  2405.          LCDPrintf( 0,1,4*16,(char *)Adjust_Text[3],20);
  2406.            else 
  2407.      LCDPrintf( 1,1,4*16,(char *)Adjust_Text[3],20);
  2408.     Frame_Show(0);
  2409. }
  2410. void Channel_Adjust_Auto(void)
  2411. {
  2412. if( L_Screen_state != 4131 )
  2413.      {  
  2414.         L_Screen_state = 4131;
  2415.       Dalog_Info_Show(0, 3, 0);
  2416.          }
  2417. if((Key_OK==0)&&(L_Key_OK==1))
  2418.      {
  2419.       L_Key_OK=Key_OK;
  2420.        MMI_DSP_Instruction(0x0700, Auto_CT_Type, 0);
  2421.        Dalog_Info_Show(0, 7,0);
  2422.        Command_Flag=1;
  2423.      
  2424. }
  2425.   if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  2426.      {
  2427.                 L_Key_CANCEL = Key_CANCEL;
  2428.                 
  2429.      Screen_state=413;
  2430.       }
  2431.   if(Command_Flag>0) 
  2432. {
  2433.        if(Check_Instruction_Statue(0x0700)==0x00)
  2434.                {
  2435.                Command_Flag=0;
  2436.                Screen_state=413;
  2437.                //Dalog_Info_Show(0, 12, 0);
  2438.         }
  2439.                 else  if(Check_Instruction_Statue(0x0700)==0x22)
  2440.                 {
  2441.                 Command_Flag=0;
  2442.                Dalog_Info_Show(1, 12, 0);
  2443.                }
  2444. }
  2445.  
  2446. }
  2447. void Channel_Adjust_Manual(void)
  2448. {
  2449. UC i,fast_step_flag=0;
  2450. UC Fast_Step=10;
  2451.     if( L_Screen_state != 4132 )
  2452.      {  
  2453.          L_Screen_state = 4132;
  2454.           SubMenuPosition=0;CmdExectue_Erro_Flag=0;
  2455.          menupage=0;SubMenuPosition_temp=0;
  2456.              MMI_DSP_Instruction(0x0e00,Select_CT_Type,0);//读取数据
  2457.        Dalog_Info_Show(0, 7,0);
  2458.         Command_Flag=1;
  2459.     }
  2460.      
  2461.      if(((Key_ADD==0)&&(L_Key_ADD==1))||(Key_ADD_Long==1))
  2462.      {
  2463.       L_Key_ADD=Key_ADD;
  2464.       if(Key_ADD_Long==1){Key_ADD_Long=0;fast_step_flag=1;}
  2465.     
  2466.       if(Channel_Ration_Flag.Temp[SubMenuPosition]>=Channel_limit.Up_Limit) 
  2467. Channel_Ration_Flag.Temp[SubMenuPosition]=Channel_limit.Low_Limit;
  2468. else if(fast_step_flag==1)
  2469. Channel_Ration_Flag.Temp[SubMenuPosition]+=Channel_limit.step_Size*Fast_Step;
  2470. Channel_Ration_Flag.Temp[SubMenuPosition]+=Channel_limit.step_Size;
  2471.      fast_step_flag=0;
  2472.         Channel_Value_Show(menupage,SubMenuPosition) ;
  2473.      }
  2474.      
  2475.      
  2476. if(((Key_SUB==0)&&(L_Key_SUB==1))||(Key_SUB_Long==1))
  2477.      {
  2478.      L_Key_SUB=Key_SUB;
  2479.      if(Key_SUB_Long==1)  {fast_step_flag=1;Key_SUB_Long=0;}
  2480.       if((Channel_Ration_Flag.Temp[SubMenuPosition]<=Channel_limit.Low_Limit)||
  2481. (Channel_Ration_Flag.Temp[SubMenuPosition]>=Channel_limit.Up_Limit))
  2482. Channel_Ration_Flag.Temp[SubMenuPosition]=Channel_limit.Up_Limit;
  2483. else  if(fast_step_flag==1)
  2484. Channel_Ration_Flag.Temp[SubMenuPosition]-=Channel_limit.step_Size*Fast_Step;
  2485. Channel_Ration_Flag.Temp[SubMenuPosition]-=Channel_limit.step_Size;
  2486. fast_step_flag=0;
  2487.         Channel_Value_Show(menupage,SubMenuPosition) ;
  2488.      }
  2489.            
  2490.     
  2491.    if((Key_UP==0)&&(L_Key_UP==1))
  2492.      {
  2493.       L_Key_UP=Key_UP;
  2494. if(SubMenuPosition==0)
  2495.      SubMenuPosition=31;
  2496. else 
  2497. SubMenuPosition--;
  2498.  if((SubMenuPosition%6==5)||(SubMenuPosition==31))
  2499.   { if(menupage==0) menupage = 5;
  2500.         else                       menupage--;
  2501.       
  2502.   }
  2503.        
  2504. Channel_Value_Show(menupage,SubMenuPosition) ;
  2505.      }
  2506.      
  2507.      
  2508.    if((Key_DOWN==0)&&((L_Key_DOWN==1)))
  2509.      {
  2510.       L_Key_DOWN=Key_DOWN;
  2511.   if(SubMenuPosition>=31)
  2512.      SubMenuPosition=0;
  2513. else 
  2514. SubMenuPosition++;
  2515.  if((SubMenuPosition%6==0))
  2516.   { if(menupage>=5) menupage = 0;
  2517.         else            menupage++;
  2518.       
  2519.   }
  2520.        
  2521. Channel_Value_Show(menupage,SubMenuPosition) ;
  2522.   
  2523.  
  2524.      } 
  2525.       
  2526.   if(CmdExectue_Erro_Flag==0)
  2527. { if((Key_OK==0)&&(L_Key_OK==1))
  2528.       {
  2529.       L_Key_OK=Key_OK;
  2530.          Screen_state =120;
  2531.        Returnto_Save=35;
  2532.        SubMenuPosition=0;
  2533.        SubMenuPosition_temp=0;
  2534.       } 
  2535.    }
  2536. if((Key_CANCEL==0 )&&(L_Key_CANCEL==1))
  2537.      {
  2538.                 L_Key_CANCEL = Key_CANCEL;
  2539.                 
  2540.      Screen_state=413;
  2541.       }
  2542. if(Command_Flag>0) 
  2543. {
  2544.        if(Check_Instruction_Statue(0x0e00)==0x00)
  2545.                {   Command_Flag=0;
  2546.                 for(i=0;i<TD_NUM;i++)
  2547.          Channel_Ration_Flag.Temp[i]=Channel_Ration_Flag.Value[i];
  2548.                Channel_Value_Show(menupage,SubMenuPosition) ;
  2549.            
  2550.         }
  2551.                 else  if(Check_Instruction_Statue(0x0e00)==0x22)
  2552.                 { CmdExectue_Erro_Flag=1;
  2553.                 Command_Flag=0;
  2554.                Dalog_Info_Show(1, 12, 0);
  2555.                }
  2556. }
  2557. }
  2558. void Channel_Value_Show(UC page,UC select) 
  2559. {
  2560. UC i,temp=0,temp_Erect=8,temp_Line=0;
  2561. cls();
  2562. Logo_Title();
  2563.        LCDPrintf( 0,0,0,"肆手动校准",12);
  2564.          for(i=0;i<6;i++)
  2565.           LCDPrintf( 1,1,(i+1)*16,(char *)Channel_Text[i+page*6],20);
  2566.      
  2567. switch(page)
  2568.       {
  2569. case 0:  
  2570. temp=3;
  2571. temp_Line=1;
  2572. for(i=0;i<6;i++)
  2573. {
  2574.          if(select==i)
  2575.             Bcd_show(0,temp_Erect, temp_Line*16,Channel_Ration_Flag.Temp[i],0,5,0,1);
  2576.        else
  2577.       Bcd_show(1,temp_Erect, temp_Line*16,Channel_Ration_Flag.Temp[i],0,5,0,1);
  2578. temp_Line++;
  2579. }
  2580.      
  2581.       break;
  2582. case 1:  
  2583. temp=2;
  2584. temp_Line=1;
  2585. for(i=6;i<12;i++)
  2586. {
  2587.     if(select==i)
  2588.            Bcd_show(0,temp_Erect, temp_Line*16,Channel_Ration_Flag.Temp[i],0,5,0,1);
  2589.        else
  2590.       Bcd_show(1,temp_Erect, temp_Line*16,Channel_Ration_Flag.Temp[i],0,5,0,1);
  2591. temp_Line++;
  2592. }
  2593.           break;
  2594. case 2:  
  2595. temp=2;
  2596. temp_Line=1;
  2597. for(i=12;i<18;i++)
  2598. {
  2599.     if(select==i)
  2600.            Bcd_show(0,temp_Erect, temp_Line*16,Channel_Ration_Flag.Temp[i],0,5,0,1);
  2601.        else
  2602.       Bcd_show(1,temp_Erect, temp_Line*16,Channel_Ration_Flag.Temp[i],0,5,0,1);
  2603. temp_Line++;
  2604. }
  2605.           break;
  2606.        case 3:  
  2607. temp=2;
  2608. temp_Line=1;
  2609. for(i=18;i<24;i++)
  2610. {
  2611.     if(select==i)
  2612.            Bcd_show(0,temp_Erect, temp_Line*16,Channel_Ration_Flag.Temp[i],0,5,0,1);
  2613.        else
  2614.       Bcd_show(1,temp_Erect, temp_Line*16,Channel_Ration_Flag.Temp[i],0,5,0,1);
  2615. temp_Line++;
  2616. }
  2617.           break;
  2618.     case 4:  
  2619. temp=2;
  2620. temp_Line=1;
  2621. for(i=24;i<30;i++)
  2622. {
  2623.     if(select==i)
  2624.            Bcd_show(0,temp_Erect, temp_Line*16,Channel_Ration_Flag.Temp[i],0,5,0,1);
  2625.        else
  2626.       Bcd_show(1,temp_Erect, temp_Line*16,Channel_Ration_Flag.Temp[i],0,5,0,1);
  2627. temp_Line++;
  2628. }
  2629.           break;
  2630.  case 5:  
  2631. temp=2;