|
|
@@ -28,7 +28,7 @@ enum {
|
|
|
MENU_SENSOR,
|
|
|
MENU_MODBUS,
|
|
|
MENU_NET,
|
|
|
-
|
|
|
+ MENU_BASE_SET,
|
|
|
MENU_MAX
|
|
|
};
|
|
|
enum {
|
|
|
@@ -51,7 +51,16 @@ enum {
|
|
|
NET_ITEM_MAX
|
|
|
};
|
|
|
|
|
|
-
|
|
|
+enum{
|
|
|
+ BASE_ITEM_LANG,
|
|
|
+ BASE_ITEM_ROUTE,
|
|
|
+ BASE_ITEM_ZONE,
|
|
|
+ BASE_ITEM_DATE,
|
|
|
+ BASE_ITEM_TIME,
|
|
|
+ BASE_ITEM_SAVE,
|
|
|
+ BASE_ITEM_QUIT,
|
|
|
+ BASE_ITEM_MAX,
|
|
|
+};
|
|
|
|
|
|
|
|
|
enum {
|
|
|
@@ -89,7 +98,8 @@ typedef struct {
|
|
|
int fliptime;
|
|
|
|
|
|
modbus_data_t mb;
|
|
|
- menu_net_t m_net;
|
|
|
+ menu_net_t m_net;
|
|
|
+ menu_base_t m_base;
|
|
|
}menu_handle_t;
|
|
|
static int lang_id=LANG_ID_CHINESE;
|
|
|
//static int lang_id=LANG_ID_ENGLISH;
|
|
|
@@ -249,14 +259,22 @@ static void menu_input_paint(menu_handle_t *h, int font1, int font2, int item_h,
|
|
|
sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_FACTOR), pttl->total[0].factor);
|
|
|
lcd_draw_string(LCD_WIDTH/2, item_h*2, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
#else
|
|
|
- sprintf(tmp, "%s:%0.2f %s:%0.2f", lang_get_str(h->lang, STR_ID_VOLTAGE), pttl->voltage, lang_get_str(h->lang, STR_ID_CURRENT), pttl->current);
|
|
|
- lcd_draw_string(0, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_VOLTAGE), pttl->voltage);
|
|
|
+ lcd_draw_string(5, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+
|
|
|
+ sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_CURRENT), pttl->current);
|
|
|
+ lcd_draw_string(5, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- sprintf(tmp, "%s:%0.2f %s:%0.2f", lang_get_str(h->lang, STR_ID_POWER), pttl->power, lang_get_str(h->lang, STR_ID_FACTOR), pttl->factor);
|
|
|
- lcd_draw_string(0, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_POWER), pttl->power);
|
|
|
+ lcd_draw_string(5, item_h*3, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+
|
|
|
+ sprintf(tmp, "%s:%0.2f",lang_get_str(h->lang, STR_ID_FACTOR), pttl->factor);
|
|
|
+ lcd_draw_string(5, item_h*4, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
#endif
|
|
|
sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_CONSUMP), pttl->consump);
|
|
|
- lcd_draw_string(0, item_h*3, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ lcd_draw_string(5, item_h*5, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
|
|
|
//lcd_refresh();
|
|
|
|
|
|
@@ -285,7 +303,7 @@ static void menu_output_paint(menu_handle_t *h, int font1, int font2, int item_h
|
|
|
lcd_draw_string(0, 0, LCD_WIDTH, item_h, tmp, font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_CENTER, VERTICAL_CENTER);
|
|
|
sprintf(tmp, "%s:%s %s:0.00", lang_get_str(h->lang, STR_ID_SWITCH), lang_get_str(h->lang, STR_ID_OFF), lang_get_str(h->lang, STR_ID_CURRENT));
|
|
|
lcd_draw_string(0, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
- sprintf(tmp, "%s:.0.00 %s:0.00", lang_get_str(h->lang, STR_ID_POWER), lang_get_str(h->lang, STR_ID_FACTOR));
|
|
|
+ sprintf(tmp, "%s:0.00 %s:0.00", lang_get_str(h->lang, STR_ID_POWER), lang_get_str(h->lang, STR_ID_FACTOR));
|
|
|
lcd_draw_string(0, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
sprintf(tmp, "%s:0.00", lang_get_str(h->lang, STR_ID_CONSUMP));
|
|
|
lcd_draw_string(0, item_h*3, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
@@ -307,15 +325,21 @@ static void menu_output_paint(menu_handle_t *h, int font1, int font2, int item_h
|
|
|
sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_FACTOR), pwr->factor);
|
|
|
lcd_draw_string(LCD_WIDTH/2, item_h*2, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
#else
|
|
|
- sprintf(tmp, "%s:%s %s:%0.2f", lang_get_str(h->lang, STR_ID_SWITCH), pon, lang_get_str(h->lang, STR_ID_CURRENT), ((float)all->pch[h->ch_out+1].power[0].current/10.0));
|
|
|
- lcd_draw_string(0, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ sprintf(tmp, "%s:%s", lang_get_str(h->lang, STR_ID_SWITCH), pon);
|
|
|
+ lcd_draw_string(5, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ sprintf(tmp, "%s:%0.2f",lang_get_str(h->lang, STR_ID_CURRENT), ((float)all->pch[h->ch_out+1].power[0].current/10.0));
|
|
|
+ lcd_draw_string(5, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
|
|
|
- sprintf(tmp, "%s:%0.2f %s:%0.2f", lang_get_str(h->lang, STR_ID_POWER), (((float)all->pch[h->ch_out+1].power[0].power)/1000.0), lang_get_str(h->lang, STR_ID_FACTOR),
|
|
|
- (all->pch[h->ch_out+1].power[0].factor)/100.0);
|
|
|
- lcd_draw_string(0, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+
|
|
|
+ sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_POWER), (((float)all->pch[h->ch_out+1].power[0].power)/1000.0));
|
|
|
+ lcd_draw_string(5, item_h*3, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+
|
|
|
+
|
|
|
+ sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_FACTOR),(all->pch[h->ch_out+1].power[0].factor)/100.0);
|
|
|
+ lcd_draw_string(5, item_h*4, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
#endif
|
|
|
sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_CONSUMP), (all->pch[h->ch_out+1].power[0].consump)/1000.0);
|
|
|
- lcd_draw_string(0, item_h*3, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ lcd_draw_string(5, item_h*5, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
|
|
|
//lcd_refresh();
|
|
|
|
|
|
@@ -366,6 +390,182 @@ static void menu_sensor_paint(menu_handle_t *h, int font1, int font2, int item_h
|
|
|
//lcd_refresh();
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+static void menu_base_paint(menu_handle_t *h, int font1, int font2, int item_h, key_val_t *kv)
|
|
|
+{
|
|
|
+ int r,font_color=COLOR_WHITE;
|
|
|
+ char tmp[100];
|
|
|
+ uint32_t base = 0;
|
|
|
+
|
|
|
+ base_set_t *dat = &h->m_base.n_bak;
|
|
|
+ static uint8_t flash_cnt=0;
|
|
|
+ if(h->uflag&UFLAG_TIMER) {
|
|
|
+ flash_cnt++;
|
|
|
+ }
|
|
|
+ sprintf(tmp, "%s",lang_get_str(h->lang, STR_ID_BASE_SET));
|
|
|
+ lcd_draw_string(0, 0, LCD_WIDTH, item_h, tmp, font1, COLOR_YELLOW, COLOR_BLACK, HORIZONTAL_CENTER, VERTICAL_CENTER);
|
|
|
+
|
|
|
+ //lang
|
|
|
+ if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==BASE_ITEM_LANG) {
|
|
|
+ if(h->uflag&UFLAG_TIMER && h->menu.menu_lv==2) {
|
|
|
+ font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
|
|
|
+ }
|
|
|
+ sprintf(tmp, ">%s:", lang_get_str(h->lang, STR_ID_LANG));
|
|
|
+ }else{
|
|
|
+ sprintf(tmp, "%s:", lang_get_str(h->lang, STR_ID_LANG));
|
|
|
+ }
|
|
|
+ lcd_draw_string(5, item_h, 84, item_h, tmp, font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ sprintf(tmp,"%s",dat->lang ? "English" : lang_get_str(dat->lang, STR_ID_CN) );
|
|
|
+
|
|
|
+ lcd_draw_string(90, item_h, 120, item_h, tmp, font1, font_color, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ //route
|
|
|
+
|
|
|
+ if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id == BASE_ITEM_ROUTE) {
|
|
|
+ if(h->uflag&UFLAG_TIMER && h->menu.menu_lv==2) {
|
|
|
+ font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
|
|
|
+ }
|
|
|
+ sprintf(tmp, ">%s:",lang_get_str(h->lang, STR_ID_ROUTE));
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ sprintf(tmp, "%s:",lang_get_str(h->lang, STR_ID_ROUTE));
|
|
|
+ }
|
|
|
+ lcd_draw_string(5, (item_h)*2, 84, item_h, tmp, font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ sprintf(tmp,"%d",dat->route);
|
|
|
+ if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id == BASE_ITEM_ROUTE) {
|
|
|
+ lcd_draw_string(90, (item_h)*2, 60, item_h, tmp, font1, font_color, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ lcd_draw_string(90, (item_h)*2, 60, item_h, tmp, font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ }
|
|
|
+
|
|
|
+ //zone
|
|
|
+ if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id == BASE_ITEM_ZONE) {
|
|
|
+
|
|
|
+ sprintf(tmp, ">%s:",lang_get_str(h->lang, STR_ID_ZONE));
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ sprintf(tmp, "%s:",lang_get_str(h->lang, STR_ID_ZONE));
|
|
|
+ }
|
|
|
+ lcd_draw_string(5, (item_h)*3, 84, item_h, tmp, font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id == BASE_ITEM_ZONE) {
|
|
|
+ if(h->uflag&UFLAG_TIMER && h->menu.menu_lv==2) {
|
|
|
+ font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
|
|
|
+ }
|
|
|
+ for(int i = 0; i < 3;i++)
|
|
|
+ {
|
|
|
+ uint32_t _index =90+i*12;
|
|
|
+ //char data= h->m_base.n_show.show_data[i];
|
|
|
+ sprintf(tmp, "%c",h->m_base.n_show.show_data[i]);
|
|
|
+ if(h->m_base.n_show.flash_index == i)
|
|
|
+ {
|
|
|
+ lcd_draw_string(_index, (item_h)*3, 12, item_h, tmp,font1, font_color, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ lcd_draw_string(_index, (item_h)*3, 12, item_h, tmp,font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ if(dat->zone > 0)
|
|
|
+ sprintf(tmp, "+%d",dat->zone);
|
|
|
+ else
|
|
|
+ sprintf(tmp, "%d",dat->zone);
|
|
|
+ lcd_draw_string(90, (item_h)*3, 36, item_h, tmp, font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ }
|
|
|
+
|
|
|
+ //date
|
|
|
+ if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==BASE_ITEM_DATE) {
|
|
|
+ if(h->uflag&UFLAG_TIMER && h->menu.menu_lv==2) {
|
|
|
+ font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
|
|
|
+ }
|
|
|
+ sprintf(tmp, ">%s:", lang_get_str(h->lang, STR_ID_TIME));
|
|
|
+ }else{
|
|
|
+ sprintf(tmp, "%s:", lang_get_str(h->lang, STR_ID_TIME));
|
|
|
+ }
|
|
|
+ lcd_draw_string(5, (item_h)*4, 84, item_h, tmp, font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id == BASE_ITEM_DATE) {
|
|
|
+ if(h->uflag&UFLAG_TIMER && h->menu.menu_lv==2) {
|
|
|
+ font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
|
|
|
+ }
|
|
|
+ for(int i = 0; i < 10;i++)
|
|
|
+ {
|
|
|
+ uint32_t _index =90+i*12;
|
|
|
+ //char data= h->m_base.n_show.show_data[i];
|
|
|
+ sprintf(tmp, "%c",h->m_base.n_show.show_data[i]);
|
|
|
+ if(h->m_base.n_show.flash_index == i)
|
|
|
+ {
|
|
|
+ lcd_draw_string(_index, (item_h)*4, 12, item_h, tmp,font1, font_color, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ lcd_draw_string(_index, (item_h)*4, 12, item_h, tmp,font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ sprintf(tmp, "%s",dat->date);
|
|
|
+ lcd_draw_string(90, (item_h)*4, 140, item_h, tmp, font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ }
|
|
|
+
|
|
|
+ //date
|
|
|
+ if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==BASE_ITEM_TIME) {
|
|
|
+ if(h->uflag&UFLAG_TIMER && h->menu.menu_lv==2) {
|
|
|
+ font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
|
|
|
+ }
|
|
|
+ sprintf(tmp, ">%s:", lang_get_str(h->lang, STR_ID_DATE));
|
|
|
+ }else{
|
|
|
+ sprintf(tmp, "%s:", lang_get_str(h->lang, STR_ID_DATE));
|
|
|
+ }
|
|
|
+ lcd_draw_string(5, (item_h)*5, 84, item_h, tmp, font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id == BASE_ITEM_TIME) {
|
|
|
+ if(h->uflag&UFLAG_TIMER && h->menu.menu_lv==2) {
|
|
|
+ font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
|
|
|
+ }
|
|
|
+ for(int i = 0; i < 10;i++)
|
|
|
+ {
|
|
|
+ uint32_t _index =90+i*12;
|
|
|
+ //char data= h->m_base.n_show.show_data[i];
|
|
|
+ sprintf(tmp, "%c",h->m_base.n_show.show_data[i]);
|
|
|
+ if(h->m_base.n_show.flash_index == i)
|
|
|
+ {
|
|
|
+ lcd_draw_string(_index, (item_h)*5, 12, item_h, tmp,font1, font_color, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ lcd_draw_string(_index, (item_h)*5, 12, item_h, tmp,font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ sprintf(tmp, "%s",dat->time);
|
|
|
+ lcd_draw_string(90, (item_h)*5, 140, item_h, tmp, font1, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==BASE_ITEM_SAVE) {
|
|
|
+ sprintf(tmp, ">%s", lang_get_str(h->lang, STR_ID_SAVE));
|
|
|
+ if(h->uflag&UFLAG_TIMER && h->menu.menu_lv==2) {
|
|
|
+ font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ sprintf(tmp, "%s", lang_get_str(h->lang, STR_ID_SAVE));
|
|
|
+ }
|
|
|
+
|
|
|
+ lcd_draw_string(0, (item_h)*6, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_CENTER, VERTICAL_CENTER);
|
|
|
+
|
|
|
+ if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==BASE_ITEM_QUIT) {
|
|
|
+ sprintf(tmp, ">%s", lang_get_str(h->lang, STR_ID_QUIT));
|
|
|
+ if(h->uflag&UFLAG_TIMER && h->menu.menu_lv==2) {
|
|
|
+ font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ sprintf(tmp, "%s", lang_get_str(h->lang, STR_ID_QUIT));
|
|
|
+ }
|
|
|
+ lcd_draw_string(LCD_WIDTH/2, (item_h)*6, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_CENTER, VERTICAL_CENTER);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
static void menu_net_paint(menu_handle_t *h, int font1, int font2, int item_h, key_val_t *kv)
|
|
|
{
|
|
|
int r,font_color=COLOR_WHITE;
|
|
|
@@ -853,6 +1053,518 @@ static void ip_change(menu_net_t *net,uint8_t key_type)
|
|
|
|
|
|
|
|
|
|
|
|
+static int menu_base_key_handle(menu_handle_t *h, key_val_t *kv)
|
|
|
+{
|
|
|
+ int r = 0;
|
|
|
+ if(h->menu.menu_lv==0) {
|
|
|
+ //h->m_net.n_bak = paras_get()->netwk;
|
|
|
+ /// get new ip
|
|
|
+ //net_get_ip(&h->m_net.n_bak);
|
|
|
+ h->m_base.n_bak.route = paras_get()->misc.rotate;
|
|
|
+ h->m_base.n_bak.lang = paras_get()->sys.lang;
|
|
|
+ h->m_base.n_bak.zone = paras_get()->sys.tzone;
|
|
|
+ time_t t=time(NULL);
|
|
|
+ struct tm *tm=localtime(&t);
|
|
|
+ get_date(h->m_base.n_bak.date,sizeof(h->m_base.n_bak.date),tm);
|
|
|
+ get_time(h->m_base.n_bak.time,sizeof(h->m_base.n_bak.time),tm);
|
|
|
+ }
|
|
|
+ switch(kv->key)
|
|
|
+ {
|
|
|
+ case KEY_UP:
|
|
|
+ {
|
|
|
+ if(h->menu.menu_lv==0) {
|
|
|
+ if(kv->type==TYPE_SHORT) {
|
|
|
+ h->menu.menu_id--;
|
|
|
+ }
|
|
|
+ }else if(h->menu.menu_lv==1)
|
|
|
+ {
|
|
|
+ if(h->menu.page[h->menu.menu_id].item_id > 0) {
|
|
|
+ h->menu.page[h->menu.menu_id].item_id--;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ h->menu.page[h->menu.menu_id].item_id = BASE_ITEM_QUIT;
|
|
|
+ }
|
|
|
+ switch(h->menu.page[h->menu.menu_id].item_id)
|
|
|
+ {
|
|
|
+ case BASE_ITEM_ZONE:
|
|
|
+ {
|
|
|
+ if(h->m_base.n_bak.zone >= 0)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_bak.zone >= 10)
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"+%d",h->m_base.n_bak.zone);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"+0%d",h->m_base.n_bak.zone);
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ if(h->m_base.n_bak.zone <= -10)
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"%d",h->m_base.n_bak.zone);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"-0%d",abs(h->m_base.n_bak.zone));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_DATE:
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"%s",h->m_base.n_bak.date);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_TIME:
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"%s",h->m_base.n_bak.time);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }else if(h->menu.menu_lv==2)
|
|
|
+ {
|
|
|
+ switch(h->menu.page[h->menu.menu_id].item_id)
|
|
|
+ {
|
|
|
+ case BASE_ITEM_LANG:
|
|
|
+ {
|
|
|
+ h->m_base.n_bak.lang = h->m_base.n_bak.lang == 0 ? 1 : 0;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_ROUTE:
|
|
|
+ {
|
|
|
+ if(h->m_base.n_bak.route == 0)
|
|
|
+ {
|
|
|
+ h->m_base.n_bak.route = 270;
|
|
|
+ }else
|
|
|
+ h->m_base.n_bak.route -= 90;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_ZONE:
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.flash_index == 0)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '+')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '-';
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '+';
|
|
|
+ }
|
|
|
+ }else if(h->m_base.n_show.flash_index == 1)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '0')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = h->m_base.n_show.max_char_1;
|
|
|
+ }else
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index]--;
|
|
|
+ }else if(h->m_base.n_show.flash_index == 2)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '0')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = h->m_base.n_show.max_char_2;
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index]--;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_DATE:
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.flash_index == 5 || h->m_base.n_show.flash_index == 8)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '0')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = h->m_base.n_show.max_char_1;
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] --;
|
|
|
+ }
|
|
|
+ }else if(h->m_base.n_show.flash_index == 6 || h->m_base.n_show.flash_index == 9)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '0')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = h->m_base.n_show.max_char_2;
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] --;
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '0')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '9';
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] --;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_TIME:
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.flash_index == 6 || h->m_base.n_show.flash_index == 3)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '0')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '5';
|
|
|
+ }else
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] --;
|
|
|
+ }
|
|
|
+ if(h->m_base.n_show.flash_index == 7 || h->m_base.n_show.flash_index == 4)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '0')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '9';
|
|
|
+ }else
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] --;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case KEY_DOWN:
|
|
|
+ {
|
|
|
+ if(h->menu.menu_lv==0) {
|
|
|
+ h->menu.menu_id = MENU_SYSTEM;
|
|
|
+ }else if(h->menu.menu_lv==1)
|
|
|
+ {
|
|
|
+ if(h->menu.page[h->menu.menu_id].item_id < BASE_ITEM_QUIT) {
|
|
|
+ h->menu.page[h->menu.menu_id].item_id++;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ h->menu.page[h->menu.menu_id].item_id = 0;
|
|
|
+ }
|
|
|
+ memset(h->m_base.n_show.show_data,0,16);
|
|
|
+ switch(h->menu.page[h->menu.menu_id].item_id)
|
|
|
+ {
|
|
|
+ case BASE_ITEM_ZONE:
|
|
|
+ {
|
|
|
+ if(h->m_base.n_bak.zone >= 0)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_bak.zone >= 10)
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"+%d",h->m_base.n_bak.zone);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"+0%d",h->m_base.n_bak.zone);
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ if(h->m_base.n_bak.zone <= -10)
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"%d",h->m_base.n_bak.zone);
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"-0%d",abs(h->m_base.n_bak.zone));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_DATE:
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"%s",h->m_base.n_bak.date);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_TIME:
|
|
|
+ {
|
|
|
+ sprintf(h->m_base.n_show.show_data,"%s",h->m_base.n_bak.time);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }else if(h->menu.menu_lv==2)
|
|
|
+ {
|
|
|
+ switch(h->menu.page[h->menu.menu_id].item_id)
|
|
|
+ {
|
|
|
+ case BASE_ITEM_LANG:
|
|
|
+ {
|
|
|
+ h->m_base.n_bak.lang = h->m_base.n_bak.lang == 1 ? 0 : 1;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_ROUTE:
|
|
|
+ {
|
|
|
+ if(h->m_base.n_bak.route == 270)
|
|
|
+ {
|
|
|
+ h->m_base.n_bak.route = 0;
|
|
|
+ }else
|
|
|
+ h->m_base.n_bak.route += 90;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_ZONE:
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.flash_index == 0)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '+')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '-';
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '+';
|
|
|
+ }
|
|
|
+ }else if(h->m_base.n_show.flash_index == 1)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == h->m_base.n_show.max_char_1)
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '0';
|
|
|
+ }else
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index]++;
|
|
|
+ }else if(h->m_base.n_show.flash_index == 2)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == h->m_base.n_show.max_char_2)
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '0';
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index]++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_DATE:
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.flash_index == 5 || h->m_base.n_show.flash_index == 8)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == h->m_base.n_show.max_char_1)
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '0';
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] ++;
|
|
|
+ }
|
|
|
+ }else if(h->m_base.n_show.flash_index == 6 || h->m_base.n_show.flash_index == 9)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == h->m_base.n_show.max_char_2)
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '0';
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] ++;
|
|
|
+ }
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '9')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '0';
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] ++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_TIME:
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.flash_index == 6 || h->m_base.n_show.flash_index == 3)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '5')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '0';
|
|
|
+ }else
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] ++;
|
|
|
+ }
|
|
|
+ if(h->m_base.n_show.flash_index == 7 || h->m_base.n_show.flash_index == 4)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '9')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = '0';
|
|
|
+ }else
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] ++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case KEY_OK:
|
|
|
+ {
|
|
|
+ if(h->menu.menu_lv==1) {
|
|
|
+ if(h->menu.page[h->menu.menu_id].item_id==BASE_ITEM_SAVE || h->menu.page[h->menu.menu_id].item_id==BASE_ITEM_QUIT) {
|
|
|
+ if(h->menu.page[h->menu.menu_id].item_id==BASE_ITEM_SAVE) {
|
|
|
+ //save net base data
|
|
|
+ paras_get()->misc.rotate = h->m_base.n_bak.route;
|
|
|
+ paras_get()->sys.lang = h->m_base.n_bak.lang;
|
|
|
+ paras_get()->sys.tzone = h->m_base.n_bak.zone;
|
|
|
+ h->lang = h->m_base.n_bak.lang;
|
|
|
+
|
|
|
+ lcd_rotate(h->m_base.n_bak.route);
|
|
|
+ lcd_fill(COLOR_BLACK);
|
|
|
+ //time and date
|
|
|
+
|
|
|
+ }
|
|
|
+ h->menu.page[h->menu.menu_id].item_id = 0;
|
|
|
+ h->menu.menu_lv = 0;
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->menu.menu_lv = 2;
|
|
|
+ h->m_base.n_show.flash_index = 0;
|
|
|
+ switch(h->menu.page[h->menu.menu_id].item_id)
|
|
|
+ {
|
|
|
+ case BASE_ITEM_ZONE:
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.flash_index == 0)
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_1 = '1';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_DATE:
|
|
|
+ {
|
|
|
+ //sprintf(h->m_base.n_show.show_data,"%s",h->m_base.n_bak.date);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_TIME:
|
|
|
+ {
|
|
|
+ //sprintf(h->m_base.n_show.show_data,"%s",h->m_base.n_bak.time);
|
|
|
+ if(h->m_base.n_show.flash_index == 0)
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_1 = '2';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }else if(h->menu.menu_lv == 2 && (kv->type==TYPE_SHORT || kv->type==TYPE_LONG))
|
|
|
+ {
|
|
|
+ switch(h->menu.page[h->menu.menu_id].item_id)
|
|
|
+ {
|
|
|
+ case BASE_ITEM_ROUTE:
|
|
|
+ case BASE_ITEM_LANG:
|
|
|
+ {
|
|
|
+ h->menu.menu_lv = 1;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_ZONE:
|
|
|
+ {
|
|
|
+ h->m_base.n_show.flash_index++;
|
|
|
+ if(h->m_base.n_show.flash_index == 2)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index-1] == '0')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_2 = '9';
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_2 = '2';
|
|
|
+ }
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] > h->m_base.n_show.max_char_2)
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = h->m_base.n_show.max_char_2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(h->m_base.n_show.flash_index>= 3)
|
|
|
+ {
|
|
|
+ //save zone
|
|
|
+ h->m_base.n_bak.zone = atoi(h->m_base.n_show.show_data);
|
|
|
+ h->menu.menu_lv = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_DATE:
|
|
|
+ {
|
|
|
+ h->m_base.n_show.flash_index++;
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == '/')
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.flash_index == 4)
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_1 = '1';
|
|
|
+ }else if(h->m_base.n_show.flash_index == 7)
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_1 = '3';
|
|
|
+ }
|
|
|
+ h->m_base.n_show.flash_index++;
|
|
|
+ }
|
|
|
+ if(h->m_base.n_show.flash_index == 6)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index-1] == '1')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_2 = '2';
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_2 = '9';
|
|
|
+ }
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] >h->m_base.n_show.max_char_2)
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = h->m_base.n_show.max_char_2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(h->m_base.n_show.flash_index == 9)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index-1] == '3')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_2 = '1';
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_2 = '9';
|
|
|
+ }
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] >h->m_base.n_show.max_char_2)
|
|
|
+ {
|
|
|
+ h->m_base.n_show.show_data[h->m_base.n_show.flash_index] = h->m_base.n_show.max_char_2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(h->m_base.n_show.flash_index>= 10)
|
|
|
+ {
|
|
|
+ //save date
|
|
|
+ strcpy(h->m_base.n_bak.date,h->m_base.n_show.show_data);
|
|
|
+ h->menu.menu_lv = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case BASE_ITEM_TIME:
|
|
|
+ {
|
|
|
+ h->m_base.n_show.flash_index++;
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index] == ':')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.flash_index++;
|
|
|
+ }
|
|
|
+ if(h->m_base.n_show.flash_index == 1)
|
|
|
+ {
|
|
|
+ if(h->m_base.n_show.show_data[h->m_base.n_show.flash_index-1]== '2')
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_2 ='3';
|
|
|
+ }else
|
|
|
+ {
|
|
|
+ h->m_base.n_show.max_char_2 ='9';
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(h->m_base.n_show.flash_index >= 8)
|
|
|
+ {
|
|
|
+ //save time
|
|
|
+ strcpy(h->m_base.n_bak.time,h->m_base.n_show.show_data);
|
|
|
+ h->menu.menu_lv = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(kv->type==TYPE_LONG) {
|
|
|
+ h->menu.menu_lv = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+ return r;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
|
|
|
static int menu_net_key_handle(menu_handle_t *h, key_val_t *kv)
|
|
|
{
|
|
|
@@ -926,7 +1638,7 @@ static int menu_net_key_handle(menu_handle_t *h, key_val_t *kv)
|
|
|
case KEY_DOWN:
|
|
|
{
|
|
|
if(h->menu.menu_lv==0) {
|
|
|
- h->menu.menu_id = MENU_SYSTEM;
|
|
|
+ h->menu.menu_id ++;
|
|
|
}else if(h->menu.menu_lv==1)
|
|
|
{
|
|
|
if(h->menu.page[h->menu.menu_id].item_id < NET_ITEM_QUIT) {
|
|
|
@@ -1138,6 +1850,8 @@ static int menu_net_key_handle(menu_handle_t *h, key_val_t *kv)
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
+ return r;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1289,6 +2003,11 @@ static int menu_key_handle(menu_handle_t *h, key_val_t *kv)
|
|
|
r = menu_net_key_handle(h, kv);
|
|
|
}
|
|
|
break;
|
|
|
+ case MENU_BASE_SET:
|
|
|
+ {
|
|
|
+ r = menu_base_key_handle(h, kv);
|
|
|
+ }
|
|
|
+ break;
|
|
|
case MENU_SENSOR:
|
|
|
{
|
|
|
if(h->menu.menu_lv==0) {
|
|
|
@@ -1402,8 +2121,9 @@ static int menu_key_handle(menu_handle_t *h, key_val_t *kv)
|
|
|
r = menu_modbus_key_handle(h, kv);
|
|
|
}
|
|
|
break;
|
|
|
-
|
|
|
- break;
|
|
|
+
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
if(menu_id!=h->menu.menu_id) {
|
|
|
@@ -1430,12 +2150,22 @@ int menu_handle(void)
|
|
|
{
|
|
|
if(kv.type==TYPE_SHORT) {
|
|
|
if(h->menu.menu_lv==0) {
|
|
|
- #if 0
|
|
|
+ #if 1
|
|
|
if(rotate==0) {
|
|
|
- lcd_rotate(180);
|
|
|
- }
|
|
|
+ lcd_rotate(90);
|
|
|
+ lcd_fill(COLOR_BLACK);
|
|
|
+ }else if(rotate == 90)
|
|
|
+ {
|
|
|
+ lcd_rotate(180);
|
|
|
+ lcd_fill(COLOR_BLACK);
|
|
|
+ }else if(rotate == 180)
|
|
|
+ {
|
|
|
+ lcd_rotate(270);
|
|
|
+ lcd_fill(COLOR_BLACK);
|
|
|
+ }
|
|
|
else {
|
|
|
lcd_rotate(0);
|
|
|
+ lcd_fill(COLOR_BLACK);
|
|
|
}
|
|
|
#endif
|
|
|
}
|
|
|
@@ -1483,12 +2213,14 @@ int menu_handle(void)
|
|
|
|
|
|
case MENU_INPUT:
|
|
|
{
|
|
|
+ item_h=LCD_HEIGHT/6;
|
|
|
menu_input_paint(h, font1, font2, item_h, &kv);
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case MENU_OUTPUT:
|
|
|
{
|
|
|
+ item_h=LCD_HEIGHT/6;
|
|
|
menu_output_paint(h, font1, font2, item_h, &kv);
|
|
|
}
|
|
|
break;
|
|
|
@@ -1510,6 +2242,11 @@ int menu_handle(void)
|
|
|
menu_net_paint(h, font1, font2, item_h, &kv);
|
|
|
}
|
|
|
break;
|
|
|
+ case MENU_BASE_SET:
|
|
|
+ {
|
|
|
+ item_h=LCD_HEIGHT/7;
|
|
|
+ menu_base_paint(h, font1, font2, item_h, &kv);
|
|
|
+ }
|
|
|
}
|
|
|
h->uflag = 0;
|
|
|
//printf("___ menu_id: %d, menu_lv: %d\n", h->menu.menu_id, h->menu.menu_lv);
|