Forráskód Böngészése

F427 bug 提交。。。

liyi 9 hónapja%!(EXTRA string=óta)
szülő
commit
60b17118f6

+ 1 - 0
f427/applications/datadef.h

@@ -256,6 +256,7 @@ typedef struct {
     uint8_t             led;
     uint8_t             beep;
     uint16_t            rotate;
+		uint8_t             lang;
 }misc_data_t;
 
 typedef struct {

+ 1 - 0
f427/applications/net.c

@@ -405,6 +405,7 @@ int net_ipaddr_set(network_data_t *data)
 			sleep(1);
 			ip_set_static();
 			LOG_D("mode dhcp 2 static\n");
+			ip_save(data);
 		}else
 		{
 //			netifapi_dhcp_stop(handle_net.netif);

+ 20 - 0
f427/applications/paras.c

@@ -1180,6 +1180,25 @@ static int proc_misc(dictionary *dic, int op, misc_data_t *misc)
             return -1;
         }
     }
+		token = "misc:language";
+    if(op==PARAS_READ) {
+        r = iniparser_getint(dic, token, -1);
+        if(r==-1) {
+            LOGE("___ iniparser_getint %s failed\n", token);
+            return -1;
+        } else {
+            misc->lang = r;
+        }
+    }
+    else {
+        sprintf(temp, "%d", misc->lang);
+        r = iniparser_set(dic, token, temp);
+        if(r) {
+            LOGE("___ iniparser_set %s failed\n", token);
+            return -1;
+        }
+    }		
+		
 
     token = "misc:fliptime";
     if(op==PARAS_READ) {
@@ -3697,6 +3716,7 @@ static int ini_reset(paras_handle_t *h)
     fprintf(fp, "led         = \"%d\"\n", p->misc.led);
     fprintf(fp, "beep        = \"%d\"\n", p->misc.beep);
     fprintf(fp, "rotate      = \"%d\"\n", p->misc.rotate);
+		fprintf(fp, "language      = \"%d\"\n", p->misc.lang);
     fprintf(fp, "\n");
 		
 		fprintf(fp, "[sensor_1]\n");

+ 8 - 2
f427/applications/ui/font.c

@@ -298,7 +298,6 @@ static const uint8_t font_en_1608[95][16] =
 {0x02,0x40,0x02,0x40,0xFC,0x3E,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
 {0x00,0x00,0x02,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x04,0x00,0x02,0x00,0x00,0x00},/*"~",94*/
 
-
 };
 static const uint8_t font_en_2412[95][36] =
 {
@@ -400,7 +399,7 @@ static const uint8_t font_en_2412[95][36] =
 };
 
 //新宋体▶→
-static const char *font_cn_str="→输出入通道状态率耗电压流量功率因素温湿度数据版本日期时间地址模式保存退出取消设置开关主从网络自手动掩码门禁传感器浓区基旋转语言中文";
+static const char *font_cn_str="→输出入通道状态率耗电压流量功率因素温湿度数据版本日期时间地址模式保存退出取消设置开关主从网络自手动掩码门禁传感器浓区基旋转语言中文℃";
 static const uint8_t font_cn_1212[][24] =
 {
 {0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0xA8,0x00,0x70,0x00,0x70,0x00,0x20,0x00,0x20,0x00,0x00,0x00},/*"→",0*/
@@ -474,6 +473,10 @@ static const uint8_t font_cn_1212[][24] =
 
 {0x00,0x00,0xF8,0x01,0x88,0x00,0x88,0x00,0x88,0x00,0xFF,0x0F,0x88,0x00,0x88,0x00,0x88,0x00,0xF8,0x01,0x00,0x00,0x00,0x00},/*"中",0*/
 {0x04,0x08,0x04,0x08,0x1C,0x04,0x64,0x04,0x85,0x02,0x06,0x01,0x84,0x02,0x64,0x04,0x1C,0x04,0x04,0x08,0x04,0x08,0x00,0x00},/*"文",1*/
+
+{0x02,0x00,0x05,0x00,0x02,0x00,0xF8,0x00,0x04,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x04,0x02,0x0E,0x01,0x80,0x00,0x00,0x00},/*"℃",0*/
+
+
 	
 };
 static const uint8_t font_cn_1616[][32] =
@@ -553,6 +556,8 @@ static const uint8_t font_cn_1616[][32] =
 {0x00,0x00,0x00,0x00,0xF0,0x0F,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0xFF,0xFF,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0xF0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00},/*"中",0*/
 {0x08,0x80,0x08,0x80,0x08,0x40,0x38,0x40,0xC8,0x20,0x08,0x11,0x09,0x0A,0x0E,0x04,0x08,0x0A,0x08,0x11,0xC8,0x20,0x38,0x40,0x08,0x40,0x08,0x80,0x08,0x80,0x00,0x00},/*"文",1*/
 
+
+{0x06,0x00,0x09,0x00,0x09,0x00,0xE6,0x07,0xF8,0x1F,0x0C,0x30,0x04,0x20,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x02,0x40,0x04,0x20,0x1E,0x10,0x00,0x00,0x00,0x00},/*"℃",0*/
 	
 };
 static const uint8_t font_cn_2424[][72] =
@@ -629,6 +634,7 @@ static const uint8_t font_cn_2424[][72] =
 
 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0x00,0xC0,0x7F,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0xFE,0xFF,0x7F,0x44,0x20,0x30,0x40,0x20,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0xC0,0xFF,0x00,0xC0,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"中",0*/
 {0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x40,0x00,0x40,0x40,0x00,0x20,0x40,0x00,0x20,0x40,0x00,0x10,0xC0,0x01,0x10,0x40,0x0E,0x08,0x40,0x30,0x0C,0x44,0xC0,0x04,0x58,0x00,0x03,0x70,0x80,0x03,0x40,0xE0,0x04,0x40,0x38,0x0C,0xC0,0x0F,0x18,0xC0,0x01,0x18,0x40,0x00,0x30,0x40,0x00,0x30,0x40,0x00,0x30,0x60,0x00,0x60,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00},/*"文",1*/
+{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x88,0x00,0x00,0x88,0x00,0x00,0x70,0x00,0x00,0x00,0x7E,0x00,0x80,0xFF,0x03,0xC0,0x00,0x07,0x60,0x00,0x0C,0x30,0x00,0x08,0x10,0x00,0x18,0x10,0x00,0x10,0x10,0x00,0x10,0x10,0x00,0x10,0x10,0x00,0x08,0x20,0x00,0x08,0x20,0x00,0x04,0xC0,0x00,0x02,0xE0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"℃",0*/
 	
 };
 

+ 5 - 4
f427/applications/ui/lang.c

@@ -24,7 +24,7 @@ const char *lang_str_pool[2][STR_ID_MAX]={
         "电压",     //STR_ID_VOLTAGE
         "电流",     //STR_ID_CURRENT
         "功率",     //STR_ID_POWER
-        "耗电量",   //STR_ID_CONSUMP
+        "电量",   //STR_ID_CONSUMP
         "因数",     //STR_ID_FACTOR
         "开关",     //STR_ID_SWITCH
         "温度",     //STR_ID_TEMP
@@ -50,6 +50,7 @@ const char *lang_str_pool[2][STR_ID_MAX]={
 				"旋转",			//STR_ID_ROUTE
 				"语言",			//STR_ID_LANG
 				"中文",			//STR_ID_CN
+				"℃",				//STR_ID_C
     },
     {
         "Version",  //STR_ID_VERSION
@@ -60,9 +61,9 @@ const char *lang_str_pool[2][STR_ID_MAX]={
         "OUTPUT",   //STR_ID_OUTPUT
         "Volt",     //STR_ID_VOLTAGE
         "Curr",     //STR_ID_CURRENT
-        "Power",    //STR_ID_POWER
-        "Consump",  //STR_ID_CONSUMP
-        "Factor",   //STR_ID_FACTOR
+        "Pwr ",     //STR_ID_POWER
+        "Sum ",     //STR_ID_CONSUMP
+        "Fact",     //STR_ID_FACTOR
         "Switch",   //STR_ID_SWITCH
         "Temp",     //STR_ID_TEMP
         "Humi",     //STR_ID_HUMI

+ 1 - 0
f427/applications/ui/lang.h

@@ -37,6 +37,7 @@ enum {
 		STR_ID_ROUTE,
 		STR_ID_LANG,
 		STR_ID_CN,
+		STR_ID_C,
     STR_ID_MAX,
 };
 

+ 30 - 18
f427/applications/ui/menu.c

@@ -261,7 +261,7 @@ static void menu_input_paint(menu_handle_t *h, int font1, int font2, int item_h,
 #else
 		
 		
-    sprintf(tmp, "%s:", lang_get_str(h->lang, STR_ID_VOLTAGE));
+    sprintf(tmp, "%s(V) :", lang_get_str(h->lang, STR_ID_VOLTAGE));
     lcd_draw_string(5, item_h, LCD_WIDTH/2-5, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		
 		
@@ -270,7 +270,7 @@ static void menu_input_paint(menu_handle_t *h, int font1, int font2, int item_h,
 		
 		
 		
-		sprintf(tmp, "%s:", lang_get_str(h->lang, STR_ID_CURRENT));
+		sprintf(tmp, "%s(A) :", lang_get_str(h->lang, STR_ID_CURRENT));
     lcd_draw_string(5, item_h*2, LCD_WIDTH/2-5, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		
 		sprintf(tmp, "%0.2f",pttl->current);
@@ -279,14 +279,14 @@ static void menu_input_paint(menu_handle_t *h, int font1, int font2, int item_h,
 		
 		
 
-    sprintf(tmp, "%s:", lang_get_str(h->lang, STR_ID_POWER));
+    sprintf(tmp, "%s(W) :", lang_get_str(h->lang, STR_ID_POWER));
     lcd_draw_string(5, item_h*3, LCD_WIDTH/2-5, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		
 		
     sprintf(tmp, "%0.2f",pttl->power);
     lcd_draw_string(LCD_WIDTH/2, item_h*3, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 
-    sprintf(tmp, "%s:",lang_get_str(h->lang, STR_ID_FACTOR));
+    sprintf(tmp, "%s(F) :",lang_get_str(h->lang, STR_ID_FACTOR));
     lcd_draw_string(5, item_h*4, LCD_WIDTH/2-5, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		
 		
@@ -297,11 +297,11 @@ static void menu_input_paint(menu_handle_t *h, int font1, int font2, int item_h,
 
 
 #endif
-    sprintf(tmp, "%s:", lang_get_str(h->lang, STR_ID_CONSUMP));
+    sprintf(tmp, "%s(kW):", lang_get_str(h->lang, STR_ID_CONSUMP));
     lcd_draw_string(5, item_h*5, LCD_WIDTH/2-5, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 
 
-    sprintf(tmp, "%0.2f", pttl->consump);
+		sprintf(tmp, "%0.2f", (pttl->consump > 9999999) ? 9999999 : pttl->consump);
     lcd_draw_string(LCD_WIDTH/2, item_h*5, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 
     //lcd_refresh();
@@ -358,33 +358,42 @@ static void menu_output_paint(menu_handle_t *h, int font1, int font2, int item_h
     sprintf(tmp, "%s:", lang_get_str(h->lang, STR_ID_SWITCH));
     lcd_draw_string(5, item_h, LCD_WIDTH/2-5, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		sprintf(tmp, "%s", pon);
-		lcd_draw_string(LCD_WIDTH/2, item_h, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
-		
-		
+		if(all->pch[h->ch_out+1].status)
+		{
+			lcd_draw_string(LCD_WIDTH/2, item_h, LCD_WIDTH/2, item_h, tmp, font2, COLOR_BLUE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
+		}else
+		{
+			lcd_draw_string(LCD_WIDTH/2, item_h, LCD_WIDTH/2, item_h, tmp, font2, COLOR_RED, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
+		}
 		
-		sprintf(tmp, "%s:",lang_get_str(h->lang, STR_ID_CURRENT));
+		sprintf(tmp, "%s(A) :",lang_get_str(h->lang, STR_ID_CURRENT));
     lcd_draw_string(5, item_h*2,  LCD_WIDTH/2-5, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		sprintf(tmp, "%0.2f", ((float)all->pch[h->ch_out+1].power[0].current)/100.0);
 		lcd_draw_string(LCD_WIDTH/2, item_h*2, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		
 		
 		
-		sprintf(tmp, "%s:",lang_get_str(h->lang, STR_ID_POWER));
+		sprintf(tmp, "%s(W) :",lang_get_str(h->lang, STR_ID_POWER));
     lcd_draw_string(5, item_h*3,  LCD_WIDTH/2-5, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		sprintf(tmp, "%0.2f", ((float)all->pch[h->ch_out+1].power[0].power)/100.0);
 		lcd_draw_string(LCD_WIDTH/2, item_h*3, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		
 		
-		sprintf(tmp, "%s:",lang_get_str(h->lang, STR_ID_FACTOR));
+		sprintf(tmp, "%s(F) :",lang_get_str(h->lang, STR_ID_FACTOR));
     lcd_draw_string(5, item_h*4,  LCD_WIDTH/2-5, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		sprintf(tmp, "%0.2f", ((float)all->pch[h->ch_out+1].power[0].factor)/100.0);
 		lcd_draw_string(LCD_WIDTH/2, item_h*4, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		
 	
 #endif
-		sprintf(tmp, "%s:",lang_get_str(h->lang, STR_ID_CONSUMP));
+		sprintf(tmp, "%s(kW):",lang_get_str(h->lang, STR_ID_CONSUMP));
     lcd_draw_string(5, item_h*5,  LCD_WIDTH/2-5, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
-		sprintf(tmp, "%0.2f", ((float)all->pch[h->ch_out+1].power[0].consump)/100.0);
+		float cosumer = ((float)all->pch[h->ch_out+1].power[0].consump)/100.0;
+		if(cosumer > 9999999.0)
+		{
+			cosumer = 9999999.0;
+		}
+		sprintf(tmp, "%0.2f", cosumer);
 		lcd_draw_string(LCD_WIDTH/2, item_h*5, LCD_WIDTH/2, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);	
     //lcd_refresh();
     
@@ -420,14 +429,15 @@ 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);
 		if(sensor)
 		{
-			sprintf(tmp, "%s:  %.2f", lang_get_str(h->lang, STR_ID_TEMP),sensor->data[0].val[1].value);
+
+			sprintf(tmp, "%s:  %.2f %s", lang_get_str(h->lang, STR_ID_TEMP),sensor->data[0].val[1].value,lang_get_str(0,STR_ID_C));
 		
 			lcd_draw_string(10, item_h, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
-			sprintf(tmp, "%s:  %.2f%%", lang_get_str(h->lang, STR_ID_HUMI),sensor->data[0].val[0].value);
+			sprintf(tmp, "%s:  %.2f %%", lang_get_str(h->lang, STR_ID_HUMI),sensor->data[0].val[0].value);
     //sprintf(tmp, " %s: %0.1f%%", lang_get_str(h->lang, STR_ID_HUMI), h->dm->g_modebus_read.humidity/100.0f);
 			lcd_draw_string(10, item_h*2, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 			
-			sprintf(tmp, "CO2:  %.2f(PPM)",sensor->data[2].val[0].value);
+			sprintf(tmp, "CO2:  %.2f PPM",sensor->data[2].val[0].value);
 			lcd_draw_string(10, item_h*3, LCD_WIDTH, item_h, tmp, font2, COLOR_WHITE, COLOR_BLACK, HORIZONTAL_LEFT, VERTICAL_CENTER);
 		}
 #endif
@@ -862,7 +872,8 @@ int menu_init(void)
     misc_data_t *misc=&paras_get()->misc;
     
     memset(h, 0, sizeof(menu_handle_t));
-    h->lang = paras_get()->sys.lang;
+		h->lang = paras_get()->misc.lang;
+    paras_get()->sys.lang = paras_get()->misc.lang;
     h->tmr = timer_init();
     h->flip_ms = get_ms();
     h->refresh_ms = get_ms();
@@ -1438,6 +1449,7 @@ static int menu_base_key_handle(menu_handle_t *h, key_val_t *kv)
 							//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()->misc.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);

+ 1 - 0
f427/applications/web.c

@@ -535,6 +535,7 @@ static int ws_handle(web_handle_t *h, pkt_hdr_t *hdr, mg_conn_t *c)
                     system_data_t *sys=(system_data_t*)hdr->data;
                     if(sys->lang<LANG_ID_MAX && sys->lang!=para->sys.lang) {
                         para->sys.lang = sys->lang;
+												para->misc.lang = para->sys.lang;
                     }
                     if(sys->tzone<LANG_ID_MAX && sys->tzone!=para->sys.tzone) {
                         para->sys.tzone = sys->tzone;