优化工厂测试
diff --git a/supwisdom/sp_menu.c b/supwisdom/sp_menu.c
index 7ab685e..4af06a3 100644
--- a/supwisdom/sp_menu.c
+++ b/supwisdom/sp_menu.c
@@ -159,12 +159,12 @@
 
 static void do_keyboard_calibrate(sp_pos_t* pos)
 {
-  disp_hint_info_two("УÑé¼üÅÌ","ÇëÉÔµÈ...",0);
+  disp_hint_info_two(pos,"УÑé¼üÅÌ","ÇëÉÔµÈ...",0);
   sp_key_calibrate();
   disp_hint_info_two(pos, "¼üÅÌУÑéÍê³É","Çë¼ì²â",DELAY_TIME3s);
 }
 
-static uint8 do_keyboard_test(sp_pos_t* pos)
+static void do_keyboard_test(sp_pos_t* pos)
 {
   uint8 kcode;
   uint32 tick;
@@ -258,7 +258,7 @@
         if(offset == 0)
         {
           disp_hint_info(pos, "È¡Ïû°´¼ü¼ì²â",DELAY_TIME2s);
-          return 1;
+          return;
         }
         if(keybuf[offset] == SP_KEY_CLEAR)
         {
@@ -270,7 +270,7 @@
         if(keybuf[offset] == SP_KEY_ENTER)
         {
           disp_hint_info_two(pos, "¼üÅ̼ì²âÕýÈ·","¼üÅÌУ׼Õý³£",DELAY_TIME3s);
-          return 0;
+          return;
         }
         break;
       default:
@@ -278,8 +278,6 @@
       }
     }
   }
-  return 1;
-
 }
 
 static void sp_set_devtime(sp_pos_t* pos)
@@ -584,17 +582,28 @@
 
 static void test_valve_on(sp_pos_t* pos)
 {
+  sp_valve_on();
+  disp_hint_info_two(pos,"·§ÃÅ¿ªÆôÖÐ","ÇëÈ·ÈÏ",DELAY_TIME2s);
+}
+
+static void test_valve_off(sp_pos_t* pos)
+{
+  sp_valve_off();
+  disp_hint_info_two(pos,"·§ÃÅÒѹرÕ","ÇëÈ·ÈÏ",DELAY_TIME3s);
+}
+static void test_flowsensor(sp_pos_t* pos)
+{
   uint32 ticker;
   uint8 kcode;
   uint32 count;
   uint32 temp;
   char msg[32];
 
-  disp_hint_info_two(pos,"·§ÃÅ¿ªÆôÖÐ","È¡Ïû¼üÍ˳ö",DELAY_TIME2s);
-  ticker = sp_get_ticker();
   sp_flowsensor_count_clear();
   sp_valve_on();
+  disp_hint_info_two(pos,"Á÷Á¿²âÊÔÖÐ","ÇëÈ·ÈÏ",0);
   count = 0;
+  ticker = sp_get_ticker();
   while(sp_get_ticker() -ticker < DELAY_TIME60s)
   {
     sp_valve_control();
@@ -612,20 +621,11 @@
     {
       count = temp;
       sprintf(msg,"Á÷Á¿¼ÆÊý:%d",count);
-      disp_hint_info_two(pos,"·§ÃŲâÊÔÖÐ",msg,DELAY_TIME100ms);
+      disp_hint_info_two(pos,"Á÷Á¿²âÊÔÖÐ",msg,DELAY_TIME100ms);
     }
   }
-}
-
-static void test_valve_off(sp_pos_t* pos)
-{
-  uint32 count;
-  char msg[32];
-
-  sp_valve_off();
-  count= sp_flowsensor_get_count();
-  sprintf(msg,"Á÷Á¿¼ÆÊý:%d",count);
-  disp_hint_info_two(pos,"·§ÃÅÒѹرÕ",msg,DELAY_TIME3s);
+  sprintf(msg,"Á÷Á¿¼ÆÊý:%d",sp_flowsensor_get_count());
+  disp_hint_info_two(pos,"Á÷Á¿²âÊÔ½áÊø",msg,DELAY_TIME3s);
 }
 
 static void test_factory_options(sp_pos_t* pos)
@@ -642,9 +642,10 @@
     {"2.°´¼ü²âÊÔ", do_keyboard_test},
     {"3.¿ªÆô·§ÃÅ", test_valve_on},
     {"4.¹Ø±Õ·§ÃÅ", test_valve_off},
-    {"5.ͨѶ²âÊÔ", test_link}
+    {"5.Á÷Á¿²âÊÔ", test_flowsensor},
+    {"6.ͨѶ²âÊÔ", test_link}
   };
-  max_cnt = sizeof(menus)/sizeof(menu_t)/3;
+  max_cnt = (sizeof(menus)/sizeof(menu_t) -1)/3 + 1;
   page = 0;
   ticker = sp_get_ticker();
   while(sp_get_ticker()-ticker <= DELAY_TIME60s*5)
@@ -716,7 +717,7 @@
     {"8.ÔÚÏßÉý¼¶", manual_upgrade},
     {"9.»Ö¸´³ö³§", reset_factory}
   };
-  max_cnt = sizeof(menus)/sizeof(menu_t)/3;
+  max_cnt = (sizeof(menus)/sizeof(menu_t) -1)/3 + 1;
   page = 0;
   ticker = sp_get_ticker();
   while(sp_get_ticker()-ticker <= DELAY_TIME60s*5)