Selaa lähdekoodia

led和beep开关搞反了,改正
增加菜单刷新机制

guohui 1 vuosi sitten
vanhempi
commit
69be59abc9
3 muutettua tiedostoa jossa 26 lisäystä ja 21 poistoa
  1. 1 1
      pro/ui/beep.c
  2. 1 1
      pro/ui/led.c
  3. 24 19
      pro/ui/menu.c

+ 1 - 1
pro/ui/beep.c

@@ -113,7 +113,7 @@ int beep_set_ex(beep_para_t *para)
     beep_handle_t *h=&bpHandle;
     beep_handle_t *h=&bpHandle;
     MiscInfo_t* misc=get_misc();
     MiscInfo_t* misc=get_misc();
 
 
-    if(!misc->led || !para || (para->on_ms<=0 && para->off_ms<=0) || para->times==0) {
+    if(!misc->beep || !para || (para->on_ms<=0 && para->off_ms<=0) || para->times==0) {
         return -1;
         return -1;
     }
     }
     
     

+ 1 - 1
pro/ui/led.c

@@ -143,7 +143,7 @@ int led_set_ex(led_para_t *para)
     led_handle_t *h=&ledHandle;
     led_handle_t *h=&ledHandle;
     MiscInfo_t* misc=get_misc();
     MiscInfo_t* misc=get_misc();
     
     
-    if(!misc->beep || !para || (para->on_ms<=0 && para->off_ms<=0) || para->times==0) {
+    if(!misc->led || !para || (para->on_ms<=0 && para->off_ms<=0) || para->times==0) {
         return -1;
         return -1;
     }
     }
     led_data_t *ld=&h->data[para->led_id];
     led_data_t *ld=&h->data[para->led_id];

+ 24 - 19
pro/ui/menu.c

@@ -13,7 +13,7 @@
 #include "timer.h"
 #include "timer.h"
 #include "cfg.h"
 #include "cfg.h"
 
 
-
+#define REFRESH_TIME   300
 //#define TEXT_ALIGN
 //#define TEXT_ALIGN
 
 
 #if 1
 #if 1
@@ -45,6 +45,7 @@ enum {
     UFLAG_KEY=(1<<0),
     UFLAG_KEY=(1<<0),
     UFLAG_FLIP=(1<<1),
     UFLAG_FLIP=(1<<1),
     UFLAG_TIMER=(1<<2),
     UFLAG_TIMER=(1<<2),
+    UFLAG_REFRESH=(1<<3),
 };
 };
 
 
 typedef struct {
 typedef struct {
@@ -68,7 +69,9 @@ typedef struct {
     int         ch_out_max;
     int         ch_out_max;
     menu_data_t menu;
     menu_data_t menu;
     
     
-    uint64_t    ms;
+    uint64_t    flip_ms;
+    uint64_t    refresh_ms;
+
     uint16_t    uflag;
     uint16_t    uflag;
     int         fliptime;
     int         fliptime;
 
 
@@ -255,10 +258,10 @@ 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), pwr->factor);
     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);
     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
 #else
-    sprintf(tmp, "%s:%0.2f%s:%0.2f", lang_get_str(h->lang, STR_ID_VOLTAGE), pwr->voltage, lang_get_str(h->lang, STR_ID_CURRENT), pwr->current);
+    sprintf(tmp, "%s:%0.2f %s:%0.2f", lang_get_str(h->lang, STR_ID_VOLTAGE), pwr->voltage, lang_get_str(h->lang, STR_ID_CURRENT), pwr->current);
     lcd_draw_string(0, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
     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%s:%0.2f", lang_get_str(h->lang, STR_ID_POWER), pwr->power, lang_get_str(h->lang, STR_ID_FACTOR), pwr->factor);
+    sprintf(tmp, "%s:%0.2f %s:%0.2f", lang_get_str(h->lang, STR_ID_POWER), pwr->power, lang_get_str(h->lang, STR_ID_FACTOR), pwr->factor);
     lcd_draw_string(0, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
     lcd_draw_string(0, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 #endif
 #endif
     sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_CONSUMP), pwr->consumption);
     sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_CONSUMP), pwr->consumption);
@@ -299,7 +302,7 @@ static void menu_output_paint(menu_handle_t *h, int font1, int font2, int item_h
     sprintf(tmp, "%s:%s  %s:%0.2f", lang_get_str(h->lang, STR_ID_SWITCH), pon, lang_get_str(h->lang, STR_ID_CURRENT), pwr->current);
     sprintf(tmp, "%s:%s  %s:%0.2f", lang_get_str(h->lang, STR_ID_SWITCH), pon, lang_get_str(h->lang, STR_ID_CURRENT), pwr->current);
     lcd_draw_string(0, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
     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%s:%0.2f", lang_get_str(h->lang, STR_ID_POWER), pwr->power, lang_get_str(h->lang, STR_ID_FACTOR), pwr->factor);
+    sprintf(tmp, "%s:%0.2f %s:%0.2f", lang_get_str(h->lang, STR_ID_POWER), pwr->power, lang_get_str(h->lang, STR_ID_FACTOR), pwr->factor);
     lcd_draw_string(0, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
     lcd_draw_string(0, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 #endif
 #endif
     sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_CONSUMP), pwr->consumption);
     sprintf(tmp, "%s:%0.2f", lang_get_str(h->lang, STR_ID_CONSUMP), pwr->consumption);
@@ -330,7 +333,7 @@ static void menu_sensor_paint(menu_handle_t *h, int font1, int font2, int item_h
     sprintf(tmp, " %s: %0.1f", lang_get_str(h->lang, STR_ID_TEMP), h->dm->g_modebus_read.temprature/100.0f);
     sprintf(tmp, " %s: %0.1f", lang_get_str(h->lang, STR_ID_TEMP), h->dm->g_modebus_read.temprature/100.0f);
     lcd_draw_string(0, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
     lcd_draw_string(0, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 
 
-    sprintf(tmp, " %s: %0.1f", lang_get_str(h->lang, STR_ID_HUMI), h->dm->g_modebus_read.humidity/100.0f);
+    sprintf(tmp, " %s: %0.1f%%", lang_get_str(h->lang, STR_ID_HUMI), h->dm->g_modebus_read.humidity/100.0f);
     lcd_draw_string(0, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
     lcd_draw_string(0, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 #endif
 #endif
 
 
@@ -344,7 +347,7 @@ static void menu_modbus_paint(menu_handle_t *h, int font1, int font2, int item_h
     ModbusInfo_t *pmb=get_pmb(h);
     ModbusInfo_t *pmb=get_pmb(h);
     static uint8_t flash_cnt=0;
     static uint8_t flash_cnt=0;
     
     
-    if(kv->key==-1) {
+    if(h->uflag&UFLAG_TIMER) {
         flash_cnt++;
         flash_cnt++;
     }
     }
 
 
@@ -355,7 +358,7 @@ static void menu_modbus_paint(menu_handle_t *h, int font1, int font2, int item_h
 
 
     font_color = COLOR_WHITE;
     font_color = COLOR_WHITE;
     if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==MODBUS_ITEM_ADDR) {
     if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==MODBUS_ITEM_ADDR) {
-        if(h->menu.menu_lv==2) {
+        if(h->uflag&UFLAG_TIMER && h->menu.menu_lv==2) {
             font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
             font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
         }
         }
         sprintf(tmp, ">%s:", lang_get_str(h->lang, STR_ID_ADDR));
         sprintf(tmp, ">%s:", lang_get_str(h->lang, STR_ID_ADDR));
@@ -369,7 +372,7 @@ static void menu_modbus_paint(menu_handle_t *h, int font1, int font2, int item_h
 
 
     font_color = COLOR_WHITE;
     font_color = COLOR_WHITE;
     if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==MODBUS_ITEM_MODE) {
     if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==MODBUS_ITEM_MODE) {
-        if(h->menu.menu_lv==2) {
+        if(h->uflag&UFLAG_TIMER && h->menu.menu_lv==2) {
             font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
             font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
         }
         }
         sprintf(tmp, ">%s:", lang_get_str(h->lang, STR_ID_MODE));
         sprintf(tmp, ">%s:", lang_get_str(h->lang, STR_ID_MODE));
@@ -383,9 +386,6 @@ static void menu_modbus_paint(menu_handle_t *h, int font1, int font2, int item_h
 
 
     font_color = COLOR_WHITE;
     font_color = COLOR_WHITE;
     if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==MODBUS_ITEM_SAVE) {
     if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==MODBUS_ITEM_SAVE) {
-        if(h->menu.menu_lv==2) {
-            font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
-        }
         sprintf(tmp, ">%s", lang_get_str(h->lang, STR_ID_SAVE));
         sprintf(tmp, ">%s", lang_get_str(h->lang, STR_ID_SAVE));
     }
     }
     else {
     else {
@@ -395,9 +395,6 @@ static void menu_modbus_paint(menu_handle_t *h, int font1, int font2, int item_h
     
     
     font_color = COLOR_WHITE;
     font_color = COLOR_WHITE;
     if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==MODBUS_ITEM_QUIT) {
     if(h->menu.menu_lv && h->menu.page[h->menu.menu_id].item_id==MODBUS_ITEM_QUIT) {
-        if(h->menu.menu_lv==2) {
-            font_color = (flash_cnt%2)?COLOR_WHITE:COLOR_BLACK;
-        }
         sprintf(tmp, ">%s", lang_get_str(h->lang, STR_ID_QUIT));
         sprintf(tmp, ">%s", lang_get_str(h->lang, STR_ID_QUIT));
     }
     }
     else {
     else {
@@ -418,8 +415,9 @@ int menu_init(void)
     memset(h, 0, sizeof(menu_handle_t));
     memset(h, 0, sizeof(menu_handle_t));
     h->lang = lang_id;
     h->lang = lang_id;
     h->tmr = timer_init();
     h->tmr = timer_init();
-    h->ms = get_ms();
-    h->uflag = 1;
+    h->flip_ms = get_ms();
+    h->refresh_ms = get_ms();
+    h->uflag |= UFLAG_REFRESH;
     h->dm = get_dm();
     h->dm = get_dm();
     h->fliptime = misc->flip_time*1000;
     h->fliptime = misc->flip_time*1000;
     
     
@@ -660,6 +658,9 @@ static int menu_key_handle(menu_handle_t *h, key_val_t *kv)
                         h->menu.menu_id++;
                         h->menu.menu_id++;
                     }
                     }
                 }
                 }
+                else if(h->uflag&UFLAG_REFRESH) {
+                    //
+                }
                 else {
                 else {
                     h->ph_in = 0;
                     h->ph_in = 0;
                     h->menu.menu_lv = 0;
                     h->menu.menu_lv = 0;
@@ -743,12 +744,16 @@ int menu_handle(void)
         {
         {
 #if 1
 #if 1
             if(h->fliptime>0) {
             if(h->fliptime>0) {
-                if((get_ms()-h->ms)>=h->fliptime) {
+                if((get_ms()-h->flip_ms)>=h->fliptime) {
                     h->uflag |= UFLAG_FLIP;
                     h->uflag |= UFLAG_FLIP;
-                    h->ms = get_ms();
+                    h->flip_ms = get_ms();
                 }
                 }
             }
             }
 #endif
 #endif
+            if((get_ms()-h->refresh_ms)>=REFRESH_TIME) {
+                h->uflag |= UFLAG_REFRESH;
+                h->refresh_ms = get_ms();
+            }
         }
         }
     }
     }
     if(h->uflag==0 && kv.key<0) {
     if(h->uflag==0 && kv.key<0) {