添加工厂测试
diff --git a/supwisdom/sp_menu.c b/supwisdom/sp_menu.c
index 4447d52..7ab685e 100644
--- a/supwisdom/sp_menu.c
+++ b/supwisdom/sp_menu.c
@@ -115,7 +115,7 @@
}
}
-static uint8 sp_link_test(sp_pos_t* pos)
+static void test_link(sp_pos_t* pos)
{
uint8 ret;
sp_protocol_request_t req;
@@ -137,17 +137,16 @@
if(sp_check_time_valid(resp.data +2))
{
disp_hint_info_two(pos, "Á´Â·¼ì²â³É¹¦","ʱÖÓ²»ºÏ·¨", DELAY_TIME3s);
- return ret;
+ return;
}
sp_set_bcdtime(resp.data +2);
disp_hint_info_two(pos, "Á´Â·¼ì²â³É¹¦","ÒÑͬ²½Ê±ÖÓ", DELAY_TIME3s);
- return ret;
+ return;
}
disp_hint_info_two(pos, "Á´Â·¼ì²âʧ°Ü","ÊÕµ½´íÎó°ü", DELAY_TIME3s);
- return 1;
+ return;
}
disp_hint_info_two(pos, "Á´Â·¼ì²âʧ°Ü","Çë¼ì²âÏß·", DELAY_TIME3s);
- return ret;
}
static void show_keyboard_test(sp_pos_t* pos, uint8 offset)
@@ -158,7 +157,14 @@
disp_hint_info_three(pos, "¼üÅÌÒÀ´ÎÊäÈë","0123456789C",temp,0);
}
-static uint8 sp_keyboard_test(sp_pos_t* pos)
+static void do_keyboard_calibrate(sp_pos_t* pos)
+{
+ disp_hint_info_two("УÑé¼üÅÌ","ÇëÉÔµÈ...",0);
+ sp_key_calibrate();
+ disp_hint_info_two(pos, "¼üÅÌУÑéÍê³É","Çë¼ì²â",DELAY_TIME3s);
+}
+
+static uint8 do_keyboard_test(sp_pos_t* pos)
{
uint8 kcode;
uint32 tick;
@@ -276,12 +282,6 @@
}
-static void sp_factory_check(sp_pos_t* pos)
-{
- sp_link_test(pos);
- sp_keyboard_test(pos);
-}
-
static void sp_set_devtime(sp_pos_t* pos)
{
uint32 ticker;
@@ -582,6 +582,120 @@
}
}
+static void test_valve_on(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();
+ count = 0;
+ while(sp_get_ticker() -ticker < DELAY_TIME60s)
+ {
+ sp_valve_control();
+ kcode = sp_get_key();
+ if(kcode != SP_KEY_NONE)
+ {
+ if(kcode == SP_KEY_CLEAR)
+ {
+ return;
+ }
+ ticker = sp_get_ticker();
+ }
+ temp = sp_flowsensor_get_count();
+ if(temp != count)
+ {
+ count = temp;
+ sprintf(msg,"Á÷Á¿¼ÆÊý:%d",count);
+ 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);
+}
+
+static void test_factory_options(sp_pos_t* pos)
+{
+ uint32 ticker = 0;
+ uint8 keycode;
+ uint8 page;
+ uint8 max_cnt;
+ uint8 key_press = 1;
+
+ menu_t menus[] =
+ {
+ {"1.°´¼üУ׼", do_keyboard_calibrate},
+ {"2.°´¼ü²âÊÔ", do_keyboard_test},
+ {"3.¿ªÆô·§ÃÅ", test_valve_on},
+ {"4.¹Ø±Õ·§ÃÅ", test_valve_off},
+ {"5.ͨѶ²âÊÔ", test_link}
+ };
+ max_cnt = sizeof(menus)/sizeof(menu_t)/3;
+ page = 0;
+ ticker = sp_get_ticker();
+ while(sp_get_ticker()-ticker <= DELAY_TIME60s*5)
+ {
+ sp_feed_dog();
+ keycode = sp_get_key();
+ if(keycode != SP_KEY_NONE)
+ {
+ key_press = 1;
+ switch(keycode)
+ {
+ case SP_KEY_0:
+ if(page < (max_cnt-1))
+ {
+ page++;
+ }
+ break;
+ case SP_KEY_1:
+ case SP_KEY_2:
+ case SP_KEY_3:
+ case SP_KEY_4:
+ case SP_KEY_5:
+ case SP_KEY_6:
+ case SP_KEY_7:
+ case SP_KEY_8:
+ case SP_KEY_9:
+ if(menus[keycode-SP_KEY_1].func != NULL)
+ {
+ menus[keycode-SP_KEY_1].func(pos);
+ }
+ break;
+ case SP_KEY_CLEAR:
+ if(page == 0)
+ {
+ return;
+ }
+ page--;
+ break;
+ default:
+ break;
+ }
+ }
+ if(key_press)
+ {
+ disp_hint_info_three(pos, menus[page*3].hit, menus[page*3+1].hit, menus[page*3+2].hit, 0);
+ key_press = 0;
+ ticker = sp_get_ticker();
+ }
+ }
+}
+
void sp_menu_options(sp_pos_t* pos)
{
uint32 ticker = 0;
@@ -593,7 +707,7 @@
menu_t menus[] =
{
{"1.²é¿´²ÎÊý", sp_show_syspara},
- {"2.¹¤³§²âÊÔ", sp_factory_check},
+ {"2.¹¤³§²âÊÔ", test_factory_options},
{"3.ÉèÖÃʱ¼ä", sp_set_devtime},
{"4.ÊÖ¶¯µÇ¼", sp_manual_login},
{"5.ÉèÖÃÎïÀíid", sp_set_devphyid},
@@ -653,3 +767,5 @@
}
}
}
+
+