| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | #include "mywin_inc.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_menu.h"
 | 
					
						
							|  |  |  |  | #include "flash_manager.h"
 | 
					
						
							|  |  |  |  | #include "ff.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_set.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_tool.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_home.h"
 | 
					
						
							|  |  |  |  | #include "date.h"
 | 
					
						
							|  |  |  |  | #include "system_file.h"
 | 
					
						
							|  |  |  |  | #include "system_updata.h"
 | 
					
						
							|  |  |  |  | #include "mp3play.h"
 | 
					
						
							|  |  |  |  | #include "math.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_lock.h"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | #define WIN_HOME_TYPE "WIN_HomeStruct"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | static WIN_TouchWinStruct *creat_menu(WIN_TouchWinStruct *base); | 
					
						
							|  |  |  |  | static WIN_TouchWinStruct *creat_tool(WIN_TouchWinStruct *base); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | static	const char *g_week[7]={"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ","<EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD>","<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"}; | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | WIN_HomeStruct *WIN_CreatHome (WIN_WindowStruct *base, | 
					
						
							|  |  |  |  | 			void (*msgLoop)(struct _WIN_WindowStruct *win,WIN_MsgStruct *msg), | 
					
						
							|  |  |  |  | 			int x,int y,int x_size,int y_size) | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣѭ<CFA2><D1AD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	if (msgLoop==0) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 		msgLoop=(void (*)(struct _WIN_WindowStruct *win,WIN_MsgStruct *msg))HOME_DefaultMsgLoop; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	WIN_HomeStruct *ret=mymalloc (sizeof ( WIN_HomeStruct)); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	//<2F><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9>캯<EFBFBD><ECBAAF>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	if (ret) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		mymemset (ret,0,sizeof ( WIN_HomeStruct)); | 
					
						
							|  |  |  |  | //		if (0==WIN_CreatWindowExt((WIN_WindowStruct *)ret,base,msgLoop,x,y,x_size,y_size))
 | 
					
						
							|  |  |  |  | 		if (0==WIN_CreatTouchEx((WIN_TouchWinStruct *)ret,base,msgLoop,x,y,x_size,y_size)) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 			//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 			myfree (ret); | 
					
						
							|  |  |  |  | 			ret=0; | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		else | 
					
						
							|  |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 			//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 			((WIN_WindowStruct *)ret)->winType=WIN_HOME_TYPE; | 
					
						
							|  |  |  |  | 			((WIN_WindowStruct *)ret)->bkcolor=0; | 
					
						
							|  |  |  |  | 			((WIN_WindowStruct *)ret)->color=0xd7c1ac; | 
					
						
							|  |  |  |  | 			ret->color1=0x7d7064; | 
					
						
							|  |  |  |  | 			ret->timerId= WIN_CreatTimer ((WIN_WindowStruct *)ret,100); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 			WIN_TouchWinStruct *t=(WIN_TouchWinStruct *)ret; | 
					
						
							|  |  |  |  | 			WIN_WindowStruct *w=(WIN_WindowStruct *)ret; | 
					
						
							|  |  |  |  | //			TOUCHWIN_AddChild(t,TOUCH_CON_DOWN_PAR(w->x_size,w->y_size,creat_menu));
 | 
					
						
							|  |  |  |  | //			TOUCHWIN_AddChild(t,TOUCH_CON_LEFT_PAR(w->x_size,w->y_size,creat_tool));
 | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	return ret; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | int HOME_Updata (WIN_HomeStruct *home,HOME_DataStruct *data) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (data->structType==STRUCT_TYPE_HOME) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		mymemcpy (home->date,data->date,strlen(data->date)+1); | 
					
						
							|  |  |  |  | 		mymemcpy (home->time,data->time,strlen(data->time)+1); | 
					
						
							|  |  |  |  | 		return 1; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	return 0; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | static WIN_TouchWinStruct *creat_menu(WIN_TouchWinStruct *base) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	WIN_WindowStruct *temp=0; | 
					
						
							|  |  |  |  | 	temp=(WIN_WindowStruct *)MENU_Setting ((WIN_WindowStruct *)base,&((WIN_WindowStruct *)base)->pic); | 
					
						
							|  |  |  |  | 	WIN_SetBkColor (temp,((WIN_WindowStruct *)base)->bkcolor); | 
					
						
							|  |  |  |  | 	WIN_SetColor (temp,((WIN_WindowStruct *)base)->color); | 
					
						
							|  |  |  |  | 	WIN_TouchWinStruct *t=(WIN_TouchWinStruct *)temp; | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | //	WIN_TouchWinStruct *t=(WIN_TouchWinStruct *)CreatPicSet((WIN_WindowStruct *)base);
 | 
					
						
							|  |  |  |  | 	return t; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | static WIN_TouchWinStruct *creat_tool(WIN_TouchWinStruct *base) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	WIN_WindowStruct *temp=0; | 
					
						
							|  |  |  |  | 	temp=(WIN_WindowStruct *)MENU_Tool ((WIN_WindowStruct *)base,&((WIN_WindowStruct *)base)->pic); | 
					
						
							|  |  |  |  | 	WIN_SetBkColor (temp,((WIN_WindowStruct *)base)->bkcolor); | 
					
						
							|  |  |  |  | 	WIN_SetColor (temp,((WIN_WindowStruct *)base)->color); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	WIN_TouchWinStruct *t=(WIN_TouchWinStruct *)temp; | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	return t; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | <EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  | 	<EFBFBD>̰<EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɡѵ | 
					
						
							|  |  |  |  | 	<EFBFBD>̰<EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  | 	<EFBFBD>̰<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  | 	<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | */ | 
					
						
							|  |  |  |  | int HOME_KeyBord (WIN_HomeStruct *home,WIN_KeyStruct *k) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	if (k->shortPress&KEY_VALUE_ENTER) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		creat_menu((WIN_TouchWinStruct *)home); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	else if (k->shortPress&KEY_VALUE_UP) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	else if (k->shortPress&KEY_VALUE_HOME) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		creat_tool((WIN_TouchWinStruct *)home); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	else if (k->longPress&KEY_VALUE_ENTER) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	return 0; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | int HOME_TouchBord (WIN_HomeStruct *home,WIN_MsgStruct *msg) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	switch (msg->data.v) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		case CHID_DELETE: | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 		case CHID_USER: | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			if (msg->data2.v==BUTTON_PRESSED) | 
					
						
							|  |  |  |  | 			{ | 
					
						
							|  |  |  |  | 				if (msg->srcWin==home->key_menu) | 
					
						
							|  |  |  |  | 				{ | 
					
						
							|  |  |  |  | 					creat_menu((WIN_TouchWinStruct *)home); | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 				else if (msg->srcWin==home->key_tool) | 
					
						
							|  |  |  |  | 				{ | 
					
						
							|  |  |  |  | 					creat_tool((WIN_TouchWinStruct *)home); | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 		default: | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	return 0; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>Ϣ
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | int HOME_TouchMove(WIN_HomeStruct *home,WIN_MoveStruct *m) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	WIN_WindowStruct *win=(WIN_WindowStruct *)home; | 
					
						
							|  |  |  |  | 	switch(m->moveType) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		case MOVE_DATA_MOVED: | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 		case MOVE_DATA_TOUCHIN: | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 		case MOVE_DATA_TOUCHOUT: | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	return 0; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //Ĭ<>ϻ<EFBFBD><CFBB>ƺ<EFBFBD><C6BA><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | void HOME_DefaultPaint (WIN_HomeStruct *home) | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	int x=0; | 
					
						
							|  |  |  |  | 	int y=0; | 
					
						
							|  |  |  |  | 	int x_size=((WIN_WindowStruct *)home)->x_size; | 
					
						
							|  |  |  |  | 	int y_size=((WIN_WindowStruct *)home)->y_size; | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	WIN_PaintBackGround ((WIN_WindowStruct *)home); | 
					
						
							|  |  |  |  | 	u32 font_type=WIN_SetFontSize(24); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	WIN_SetLcdBkColor (((WIN_WindowStruct *)home)->bkcolor); | 
					
						
							|  |  |  |  | 	WIN_SetLcdColor (((WIN_WindowStruct *)home)->color); | 
					
						
							|  |  |  |  | 	WIN_SetFontMode (WIN_DRAWMODE_ALONE); | 
					
						
							|  |  |  |  | 	char txt_dat[20]={0}; | 
					
						
							|  |  |  |  | 	int dat_x=156; | 
					
						
							|  |  |  |  | 	int dat_y=190+20; | 
					
						
							|  |  |  |  | 	mymemcpy (txt_dat,home->date,10); | 
					
						
							|  |  |  |  | 	WIN_DrawTxtHCenterAt (home->date,x_size/2,dat_y); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	//<2F><>ʾʱ<CABE><CAB1>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	char txt_min[10]={0}; | 
					
						
							|  |  |  |  | 	int time_x=0; | 
					
						
							|  |  |  |  | 	int time_y=60+20; | 
					
						
							|  |  |  |  | 	mymemcpy (txt_min,home->time,5); | 
					
						
							|  |  |  |  | 	WIN_SetFontSize(100); | 
					
						
							|  |  |  |  | 	int min_xsize=strlen(txt_min)*WIN_GetFontWidth()/2; | 
					
						
							|  |  |  |  | 	WIN_SetFontSize(35); | 
					
						
							|  |  |  |  | 	int sec_xsize=strlen(home->time+5)*WIN_GetFontWidth()/2; | 
					
						
							|  |  |  |  | 	time_x=x_size/2-(min_xsize+sec_xsize)/2; | 
					
						
							|  |  |  |  | 	WIN_SetFontSize(100); | 
					
						
							|  |  |  |  | 	WIN_DrawTxtAt(txt_min,time_x,time_y); | 
					
						
							|  |  |  |  | 	time_x+=min_xsize; | 
					
						
							|  |  |  |  | 	time_y+=WIN_GetFontHight(); | 
					
						
							|  |  |  |  | 	WIN_SetFontSize(35); | 
					
						
							|  |  |  |  | 	time_y-=WIN_GetFontHight(); | 
					
						
							|  |  |  |  | 	WIN_DrawTxtAt(home->time+5,time_x,time_y); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	WIN_SetFontSize(font_type); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	//<2F><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | //	static int angle=0;
 | 
					
						
							|  |  |  |  | //	angle++;if(angle>=360) angle=0;
 | 
					
						
							|  |  |  |  | //	int p_x=sinf(angle*3.14159f/180.0f)*50;
 | 
					
						
							|  |  |  |  | //	int p_y=cosf(angle*3.14159f/180.0f)*50;
 | 
					
						
							|  |  |  |  | //	WIN_DrawLine(350+50,136,350+50+p_x,136+p_y);
 | 
					
						
							|  |  |  |  | //	WIN_DrawLineAA(350+50,136+50,350+50+p_x,136+50+p_y,4);
 | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | static const char *g_fileSaveItem[]= | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	"<EFBFBD><EFBFBD><EFBFBD>浽ϵͳ<EFBFBD>ռ<EFBFBD>", | 
					
						
							|  |  |  |  | 	"<EFBFBD><EFBFBD><EFBFBD>浽SD<EFBFBD><EFBFBD>", | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ƶ<EFBFBD>SD<53><44><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | static int savefile_to_sd (void *ptr) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	SysFile_RecvedStruct *t=ptr; | 
					
						
							|  |  |  |  | 	int ret_int=0; | 
					
						
							|  |  |  |  | 	FIL *file=mymalloc (sizeof (FIL)); | 
					
						
							|  |  |  |  | 	char *file_name=mymalloc (256); | 
					
						
							|  |  |  |  | 	FRESULT ret=FR_OK; | 
					
						
							|  |  |  |  | 	int file_name_len=strlen(t->name); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	//ֻ֧<D6BB><D6A7>3<EFBFBD><33><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>β
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	if(t->name[file_name_len-4]!='.') | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		myfree(file); | 
					
						
							|  |  |  |  | 		myfree(file_name); | 
					
						
							|  |  |  |  | 		return 0; | 
					
						
							|  |  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	//<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	sprintf (file_name,"0:/%s/%s",&t->name[file_name_len-3],t->name); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	open: | 
					
						
							|  |  |  |  | 	ret=f_open (file,file_name,FA_CREATE_NEW|FA_WRITE); | 
					
						
							|  |  |  |  | 	if(ret==FR_NO_PATH) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		char path[20]={0}; | 
					
						
							|  |  |  |  | 		sprintf(path,"0:/%s",&t->name[file_name_len-3]); | 
					
						
							|  |  |  |  | 		ret=f_mkdir(path); | 
					
						
							|  |  |  |  | 		if(ret==FR_OK) goto open; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	if (ret==FR_OK) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		UINT real=0; | 
					
						
							|  |  |  |  | 		ret=f_write (file,t->data,t->dataLen,&real); | 
					
						
							|  |  |  |  | 		if (ret!=FR_OK) | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 			while (1); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 		else ret_int=1;//<2F><><EFBFBD><EFBFBD>1<EFBFBD>ɹ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	} | 
					
						
							|  |  |  |  | 	else ret_int=0; | 
					
						
							|  |  |  |  | 	f_close (file); | 
					
						
							|  |  |  |  | 	myfree(file); | 
					
						
							|  |  |  |  | 	myfree(file_name); | 
					
						
							|  |  |  |  | 	return ret_int; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | static int savefile_to_sys (void *ptr) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	SysFile_RecvedStruct *r=ptr; | 
					
						
							|  |  |  |  | 	return FLASH_SaveFile(r->name,r->data,r->dataLen); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | typedef struct | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	u8 *data; | 
					
						
							|  |  |  |  | 	u32 dataSize; | 
					
						
							|  |  |  |  | }DataInfo_Struct; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | static int g_alarmRingWork (void *ptr) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	DataInfo_Struct *dat=ptr; | 
					
						
							|  |  |  |  | 	return mp3_play_song (dat->data,dat->dataSize); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | void HOME_AlarmRun (WIN_HomeStruct *home) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	WIN_WindowStruct *win=(WIN_WindowStruct *)home; | 
					
						
							|  |  |  |  | 	char *txt_buff=mymalloc (256); | 
					
						
							|  |  |  |  | 	RTC_TimeTypeDef rtc_time={0}; | 
					
						
							|  |  |  |  | 	RTC_DateTypeDef rtc_date={0}; | 
					
						
							|  |  |  |  | 	RTC_GetTime (RTC_Format_BIN,&rtc_time); | 
					
						
							|  |  |  |  | 	RTC_GetDate (RTC_Format_BIN,&rtc_date); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	sprintf (txt_buff,"%04d<34><64>%02d<32><64>%02d<32><64> %s\n%02d:%02d",rtc_date.RTC_Year+2000,rtc_date.RTC_Month,rtc_date.RTC_Date,g_week[rtc_date.RTC_WeekDay-1], | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 			rtc_time.RTC_Hours,rtc_time.RTC_Minutes); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	u32 size=0; | 
					
						
							|  |  |  |  | 	u8 *data=SysFile_GetFileByName(SysFile_GetSysFile()->alarmRing,&size); | 
					
						
							|  |  |  |  | 	WIN_WorkFunStruct *work; | 
					
						
							|  |  |  |  | 	int work_ret=0; | 
					
						
							|  |  |  |  | 	DataInfo_Struct mp3Data={0}; | 
					
						
							|  |  |  |  | 	if (data) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 		//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 		mp3Data.data=data;mp3Data.dataSize=size; | 
					
						
							|  |  |  |  | 		work=WIN_CreatThreadPro ((int (*)(void *))g_alarmRingWork,&mp3Data,&work_ret,17); | 
					
						
							|  |  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	MSGBOX_TipsTime ((WIN_WindowStruct *)win,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䵽",txt_buff,"ȷ<EFBFBD><EFBFBD>",5*60*1000); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	if (data) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		if (WIN_GetExWorkFunStat(work)) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			WIN_ExWorkFunClear(work); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		else | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			mp3_stop(); | 
					
						
							|  |  |  |  | 			while (1) | 
					
						
							|  |  |  |  | 			{ | 
					
						
							|  |  |  |  | 				if (WIN_GetExWorkFunStat(work)) break; | 
					
						
							|  |  |  |  | 				WIN_Delay_ms(100); | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 			WIN_ExWorkFunClear(work); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		myfree(data); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 	} | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	myfree(txt_buff); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //<2F><><EFBFBD>ܵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | void HOME_RecvFile (WIN_HomeStruct *home,SysFile_RecvedStruct *r) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	WIN_WindowStruct *win=(WIN_WindowStruct *)home; | 
					
						
							|  |  |  |  | 	if (r->recved) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		char *txt=mymalloc (256); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 		sprintf(txt,"<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s\n<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>%ld Byte",r->name,r->dataLen); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 		if (MSGBOX_Inquiry ((WIN_WindowStruct *)win,"<EFBFBD>Ƿ棿",txt,"<EFBFBD><EFBFBD>","<EFBFBD><EFBFBD>")==0) | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 			int index=MSGBOX_Select ((WIN_WindowStruct *)win,"<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>",(char **)g_fileSaveItem, | 
					
						
							|  |  |  |  | 				2,"ȷ<EFBFBD><EFBFBD>","ȡ<EFBFBD><EFBFBD>"); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 			if (index==0) | 
					
						
							|  |  |  |  | 			{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 				if (WORKING_DoWork((WIN_WindowStruct *)win,"<EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD>浽ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",savefile_to_sys,r)==0) | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 				{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 					MSGBOX_TipsTime ((WIN_WindowStruct *)win,"<EFBFBD><EFBFBD>ʾ","<EFBFBD>ļ<EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD>","ȷ<EFBFBD><EFBFBD>",5000); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 				else	MSGBOX_TipsTime ((WIN_WindowStruct *)win,"<EFBFBD><EFBFBD>ʾ","<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>","ȷ<EFBFBD><EFBFBD>",5000); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 			} | 
					
						
							|  |  |  |  | 			else if (index==1) | 
					
						
							|  |  |  |  | 			{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 				if (WORKING_DoWork((WIN_WindowStruct *)win,"<EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD>浽SD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",savefile_to_sd,r)==1) | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 				{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 					MSGBOX_TipsTime ((WIN_WindowStruct *)win,"<EFBFBD><EFBFBD>ʾ","<EFBFBD>ļ<EFBFBD><EFBFBD>ѱ<EFBFBD><EFBFBD><EFBFBD>","ȷ<EFBFBD><EFBFBD>",5000); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 				else	MSGBOX_TipsTime ((WIN_WindowStruct *)win,"<EFBFBD><EFBFBD>ʾ","<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>","ȷ<EFBFBD><EFBFBD>",5000); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 			} | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		myfree(txt); | 
					
						
							|  |  |  |  | 		myfree(r->data); | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | 	else | 
					
						
							|  |  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 		MSGBOX_Inquiry ((WIN_WindowStruct *)win,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>",r->name,"ȷ<EFBFBD><EFBFBD>","<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //Ĭ<><C4AC><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | void HOME_DefaultMsgLoop (WIN_HomeStruct *home,WIN_MsgStruct *msg) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	HOME_DataStruct *d=0; | 
					
						
							|  |  |  |  | 	WIN_KeyStruct *k=0; | 
					
						
							|  |  |  |  | 	WIN_MoveStruct *m; | 
					
						
							|  |  |  |  | 	switch (msg->msg) | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 		case WIN_MSG_PAINT: | 
					
						
							|  |  |  |  | 			HOME_DefaultPaint(home); | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 		case WIN_MSG_INIT: | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			int y_size=((WIN_WindowStruct *)home)->y_size; | 
					
						
							|  |  |  |  | 			int x_size=((WIN_WindowStruct *)home)->x_size; | 
					
						
							|  |  |  |  | 			home->key_menu=WIN_CreatButton(((WIN_WindowStruct *)home),0,0,y_size-30,65,30); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 			BUTTON_SetKeyString(home->key_menu,"<EFBFBD>˵<EFBFBD>"); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 			home->key_tool=WIN_CreatButton(((WIN_WindowStruct *)home),0,x_size-65,y_size-30,65,30); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 			BUTTON_SetKeyString(home->key_tool,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  |             LOCK_EnterLock("0:/PIC/3.pic"); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  |         case WIN_MSG_RUN: | 
					
						
							|  |  |  |  |             WIN_RunMsgFunction(msg); | 
					
						
							|  |  |  |  |         break; | 
					
						
							|  |  |  |  | 		case WIN_MSG_TIMER: | 
					
						
							|  |  |  |  | 		if (msg->data.v==home->timerId) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			RTC_TimeTypeDef rtc_time={0}; | 
					
						
							|  |  |  |  | 			RTC_DateTypeDef rtc_date={0}; | 
					
						
							|  |  |  |  | 			RTC_GetTime (RTC_Format_BIN,&rtc_time); | 
					
						
							|  |  |  |  | 			RTC_GetDate (RTC_Format_BIN,&rtc_date); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 			if (home->sec!=rtc_time.RTC_Seconds) | 
					
						
							|  |  |  |  | 			{ | 
					
						
							|  |  |  |  | 				home->sec=rtc_time.RTC_Seconds; | 
					
						
							|  |  |  |  | 				if (home->hour!=rtc_time.RTC_Hours) | 
					
						
							|  |  |  |  | 				{ | 
					
						
							|  |  |  |  | 					home->hour=rtc_time.RTC_Hours; | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 				sprintf (home-> date,"%04d-%02d-%02d %s",rtc_date.RTC_Year+2000,rtc_date.RTC_Month,rtc_date.RTC_Date,g_week[rtc_date.RTC_WeekDay-1]); | 
					
						
							|  |  |  |  | 				sprintf (home->time,"%02d:%02d:%02d",rtc_time.RTC_Hours,rtc_time.RTC_Minutes,rtc_time.RTC_Seconds); | 
					
						
							|  |  |  |  | 				WIN_SetInvalidWhenTop ((WIN_WindowStruct *)home); | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 			} | 
					
						
							|  |  |  |  | 			//if (WIN_FindTopWin(WIN_GetBaseWindow())==(WIN_WindowStruct *)home)
 | 
					
						
							|  |  |  |  | 			{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 				//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 				u32 data_size=0; | 
					
						
							|  |  |  |  | 				void *data=WIN_GetExtData (&data_size); | 
					
						
							|  |  |  |  | 				if (data) | 
					
						
							|  |  |  |  | 				{ | 
					
						
							|  |  |  |  | 					SysFile_RecvedStruct *r=data; | 
					
						
							|  |  |  |  | 					if (r->structType==SYSFILE_TYPE_RECVFILE) | 
					
						
							|  |  |  |  | 					{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 						//<2F><><EFBFBD>յ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 						HOME_RecvFile (home,r); | 
					
						
							|  |  |  |  | 					} | 
					
						
							|  |  |  |  | 					else if (r->structType==SYSFILE_TYPE_ALARM) | 
					
						
							|  |  |  |  | 					{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 						//<2F><><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 						HOME_AlarmRun(home); | 
					
						
							|  |  |  |  | 					} | 
					
						
							|  |  |  |  | 					myfree (data); | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 		case WIN_MSG_EXTMSG: | 
					
						
							|  |  |  |  | 			d=msg->data.p; | 
					
						
							|  |  |  |  | 			if (HOME_Updata (home,d)==1) | 
					
						
							|  |  |  |  | 			{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 				//<2F><><EFBFBD>Ӵ<EFBFBD><D3B4>ڵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫˢ<D2AA><CBA2>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 				if (((WIN_WindowStruct *)home)->chidWinNum==0) | 
					
						
							|  |  |  |  | 				{ | 
					
						
							|  |  |  |  | 					WIN_SetInvalid ((WIN_WindowStruct *)home); | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 		case WIN_MSG_CHID: | 
					
						
							|  |  |  |  | 			HOME_TouchBord (home,msg); | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 		case WIN_MSG_KEY: | 
					
						
							|  |  |  |  | 			k=msg->data.p; | 
					
						
							|  |  |  |  | 			HOME_KeyBord (home,k); | 
					
						
							|  |  |  |  | 		break;//case WIN_MSG_KEY:
 | 
					
						
							|  |  |  |  | 		case WIN_MSG_MOVE: | 
					
						
							|  |  |  |  | 			m=msg->data.p; | 
					
						
							|  |  |  |  | 			HOME_TouchMove(home,m); | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 		default: | 
					
						
							|  |  |  |  | 			WIN_DefaultMsgLoop((WIN_WindowStruct *)home,msg); | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 |