| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | #include "mywin_inc.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_menu.h"
 | 
					
						
							|  |  |  |  | #include "flash_manager.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_timeset.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_backlightset.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_sysfile.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_filder.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_time.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_light.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_theme.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_bluetooth.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_set.h"
 | 
					
						
							|  |  |  |  | #include "mywin_user_debug.h"
 | 
					
						
							|  |  |  |  | #include "dac.h"
 | 
					
						
							|  |  |  |  | #include "nrf.h"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | const static MENU_ItemStruct ptr[]={ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  |     {0,	"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"}, | 
					
						
							|  |  |  |  |     {0,	"ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" } , | 
					
						
							|  |  |  |  |     {0,	"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" } , | 
					
						
							|  |  |  |  |     {0,	"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" } , | 
					
						
							|  |  |  |  |     {0, "<EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD>" } , | 
					
						
							|  |  |  |  |     {0,	"ϵͳ<EFBFBD>ļ<EFBFBD>" } , | 
					
						
							|  |  |  |  |     {0,	"<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" } , | 
					
						
							|  |  |  |  |     {0, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"}, | 
					
						
							|  |  |  |  |     {0, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ"} | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:05:35 +08:00
										 |  |  |  | WIN_MenuStruct *MENU_Setting (WIN_WindowStruct *base,WIN_PicStruct *pic) | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2025-07-05 19:05:35 +08:00
										 |  |  |  | 	WIN_MenuStruct *menu=WIN_CreatMenu (base,(void (*)(WIN_WindowStruct *,WIN_MsgStruct *))MENU_SettingMsgLoop, | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 				0,0,base->x_size,base->y_size); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	((WIN_WindowStruct *)menu)->intercept=1;//<2F><><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD><CDB0><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:05:35 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	WIN_SetBackPicPath ((WIN_WindowStruct *)menu,base->pic_path); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	MENU_SetTitle (menu,0,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:05:35 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	MENU_SetMaxItem(menu,9); | 
					
						
							|  |  |  |  | 	for (int i=0;i<9;i++) | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		MENU_AddItem (menu,ptr[i].img,(char *)ptr[i].txt); | 
					
						
							|  |  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2025-07-05 19:05:35 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	WIN_ShowWindow((WIN_WindowStruct*)menu); | 
					
						
							|  |  |  |  | 	return menu; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õı<C3B5><C4B1><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-07-05 23:48:54 +08:00
										 |  |  |  | // #define APP_SOURCE  	(*(u32 *)(0x08020000+4*7))
 | 
					
						
							|  |  |  |  | // #define APP_APPNAME 	(*(char **)(0x08020000+4*8))
 | 
					
						
							|  |  |  |  | // #define APP_SIZE			(*(u32 *)(0x08020000+4*9))
 | 
					
						
							|  |  |  |  | #define APP_SOURCE  	(*(u32 *)(0x08000000+4*7))
 | 
					
						
							|  |  |  |  | #define APP_APPNAME 	(*(char **)(0x08000000+4*8))
 | 
					
						
							|  |  |  |  | #define APP_SIZE			(*(u32 *)(0x08000000+4*9))
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | static void enter_sound(WIN_WindowStruct *base); | 
					
						
							|  |  |  |  | static void MENU_DoEnter (WIN_MenuStruct *menu) | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	//ѡ<><D1A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	if (MENU_GetIndex(menu)==0) MENU_ThemeSet((WIN_WindowStruct *)menu); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:05:35 +08:00
										 |  |  |  | 	else if (MENU_GetIndex(menu)==1) 	TIMEBOX_TimeSet ((WIN_WindowStruct *)menu); | 
					
						
							|  |  |  |  | 	else if (MENU_GetIndex(menu)==2)  MENU_LightSet((WIN_WindowStruct *)menu);//BACKLIGHTSETBOX_BackLightSet ();
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	else if (MENU_GetIndex(menu)==3) {MSGBOX_Inquiry ((WIN_WindowStruct *)menu,"<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 19:05:35 +08:00
										 |  |  |  | 	else if (MENU_GetIndex(menu)==4) | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		char *txt=mymalloc (512); | 
					
						
							|  |  |  |  | 		if (APP_SOURCE) | 
					
						
							|  |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 			sprintf (txt,"<EFBFBD>ͺţ<EFBFBD>RC520\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>汾<EFBFBD><EFBFBD>1.11 Beta1\n<EFBFBD><EFBFBD><EFBFBD>룺%s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>IAP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n" | 
					
						
							|  |  |  |  | 				"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>%d Byte" | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 				,__DATE__ " " __TIME__,APP_APPNAME,APP_SIZE); | 
					
						
							|  |  |  |  | 		} | 
					
						
							|  |  |  |  | 		else | 
					
						
							|  |  |  |  | 		{ | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 			sprintf (txt,"<EFBFBD>ͺţ<EFBFBD>RC520\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>汾<EFBFBD><EFBFBD>1.11 Beta1\n<EFBFBD><EFBFBD><EFBFBD>룺%s\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>SWD<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 				,__DATE__ " " __TIME__); | 
					
						
							|  |  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 		MSGBOX_TipsTime ((WIN_WindowStruct*)menu,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", txt,"ȷ<EFBFBD><EFBFBD>",5000); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 		myfree(txt); | 
					
						
							|  |  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2025-07-05 19:05:35 +08:00
										 |  |  |  | 	else if (MENU_GetIndex(menu)==5) SYSFILE_ChooseFile((WIN_WindowStruct *)menu); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 	else if (MENU_GetIndex(menu)==6) FILDER_ChooseFile ((WIN_WindowStruct *)menu,"0:"); | 
					
						
							|  |  |  |  |   else if(MENU_GetIndex(menu)==7) enter_sound((WIN_WindowStruct *)menu); | 
					
						
							|  |  |  |  |   else if(MENU_GetIndex(menu)==8) DEBUG_EnterPrint(); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | 	else MSGBOX_TipsTime ((WIN_WindowStruct*)menu,"<EFBFBD><EFBFBD>ʾ",MENU_GetSelectItem(menu) ,"ȷ<EFBFBD><EFBFBD>",5000); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | void MENU_SettingMsgLoop (WIN_MenuStruct *menu,WIN_MsgStruct *msg) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	WIN_MoveStruct *m=0; | 
					
						
							|  |  |  |  | 	WIN_TouchStruct *t=0; | 
					
						
							|  |  |  |  | 	WIN_KeyStruct *k=0; | 
					
						
							|  |  |  |  | 	switch (msg->msg) | 
					
						
							| 
									
										
										
										
											2025-07-05 19:05:35 +08:00
										 |  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | 		case WIN_MSG_KEY: | 
					
						
							|  |  |  |  | 			k=msg->data.p; | 
					
						
							|  |  |  |  | 			if (k->shortPress&KEY_VALUE_ENTER) | 
					
						
							|  |  |  |  | 			{ | 
					
						
							|  |  |  |  | 				MENU_DoEnter(menu); | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 			else | 
					
						
							|  |  |  |  | 			{ | 
					
						
							|  |  |  |  | 				MENU_DefaultMsgLoop (menu,msg); | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 			break;//case WIN_MSG_KEY:
 | 
					
						
							|  |  |  |  | 		case WIN_MSG_MOVE: | 
					
						
							|  |  |  |  | 			m=msg->data.p; | 
					
						
							|  |  |  |  | 			switch (m->moveType) | 
					
						
							|  |  |  |  | 			{ | 
					
						
							|  |  |  |  | 				case MOVE_DATA_SHORT: | 
					
						
							|  |  |  |  | //					if (m->y_move>((WIN_WindowStruct *)menu)->y_size/2-20&&m->y_move<((WIN_WindowStruct *)menu)->y_size/2+20)
 | 
					
						
							|  |  |  |  | //					{
 | 
					
						
							|  |  |  |  | //						MENU_DoEnter(menu);
 | 
					
						
							|  |  |  |  | //					}
 | 
					
						
							|  |  |  |  | 					break; | 
					
						
							|  |  |  |  | 				default: | 
					
						
							|  |  |  |  | 					MENU_DefaultMsgLoop (menu,msg); | 
					
						
							|  |  |  |  | 					break; | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 			break; | 
					
						
							|  |  |  |  | 		case WIN_MSG_CHID: | 
					
						
							|  |  |  |  | 			switch (msg->data.v) | 
					
						
							|  |  |  |  | 			{ | 
					
						
							|  |  |  |  | 				case CHID_DELETE: | 
					
						
							|  |  |  |  | 				break; | 
					
						
							|  |  |  |  | 				case CHID_USER: | 
					
						
							|  |  |  |  | 				{ | 
					
						
							|  |  |  |  | 					if (msg->srcWin==menu->bar) | 
					
						
							|  |  |  |  | 					{ | 
					
						
							|  |  |  |  | 						if (msg->data2.v==SCROLLBAR_PRESSED) | 
					
						
							|  |  |  |  | 						{ | 
					
						
							|  |  |  |  | 							MENU_DoEnter(menu); | 
					
						
							|  |  |  |  | 						} | 
					
						
							|  |  |  |  | 					} | 
					
						
							|  |  |  |  | 					else | 
					
						
							|  |  |  |  | 					{ | 
					
						
							|  |  |  |  | 						MENU_DefaultMsgLoop (menu,msg); | 
					
						
							|  |  |  |  | 					} | 
					
						
							|  |  |  |  | 				} | 
					
						
							|  |  |  |  | 				break; | 
					
						
							|  |  |  |  | 				default: | 
					
						
							|  |  |  |  | 				break; | 
					
						
							|  |  |  |  | 			} | 
					
						
							|  |  |  |  | 			break; | 
					
						
							|  |  |  |  | 		default: | 
					
						
							|  |  |  |  | 			MENU_DefaultMsgLoop (menu,msg); | 
					
						
							|  |  |  |  | 		break; | 
					
						
							|  |  |  |  | 	} | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  | // <20><>ȡһ<C8A1><D2BB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>ɹ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  | static int recv_value(uint16_t *value) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     uint8_t v1=0; | 
					
						
							|  |  |  |  |     uint8_t v2=0; | 
					
						
							|  |  |  |  |     if(nrf_read_byte(&v1)==NRF_OK&&nrf_read_byte(&v2)==NRF_OK) | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         *value=(v2<<8)|v1; | 
					
						
							|  |  |  |  |         return 0; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     else | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         nrf_clear(); | 
					
						
							|  |  |  |  |         return -1; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | static int g_work=0; | 
					
						
							|  |  |  |  | static int cb_sound_fun(void *ptr) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     DAC_FifolInit(); | 
					
						
							|  |  |  |  |     nrf_init(); | 
					
						
							| 
									
										
										
										
											2025-07-05 19:05:35 +08:00
										 |  |  |  |     nrf_set_no_respond(1); | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  |     g_work=1; | 
					
						
							|  |  |  |  |     uint16_t value=0; | 
					
						
							|  |  |  |  |     DAC_SetSetValuwFun(recv_value); | 
					
						
							|  |  |  |  |     while(g_work) | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  | //        while(recv_value(&value)==0)
 | 
					
						
							|  |  |  |  | //        {
 | 
					
						
							|  |  |  |  | //            DAC_SaveValue(value);
 | 
					
						
							|  |  |  |  | //        }
 | 
					
						
							|  |  |  |  |         rt_thread_delay(5); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     DAC_FifoDeInit(); | 
					
						
							|  |  |  |  |     nrf_deinit(); | 
					
						
							|  |  |  |  |     return 0; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | static void cb_sound_bread(void *ptr) | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     g_work=0; | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | static void enter_sound(WIN_WindowStruct *base) | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2025-07-05 19:47:28 +08:00
										 |  |  |  |     int ret=WORKING_DoWorkPro(base,"<EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ",cb_sound_fun,0, | 
					
						
							| 
									
										
										
										
											2025-06-27 00:32:57 +08:00
										 |  |  |  |         cb_sound_bread,0,0,18); | 
					
						
							|  |  |  |  | } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 |