#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[]={ {0, "主题设置"}, {0, "时间和日期" } , {0, "背光设置" } , {0, "重置" } , {0, "关于本机" } , {0, "系统文件" } , {0, "文件管理" } , {0, "迷你音响"}, {0, "调试信息"} }; //进入设置页面 WIN_MenuStruct *MENU_Setting (WIN_WindowStruct *base,WIN_PicStruct *pic) { WIN_MenuStruct *menu=WIN_CreatMenu (base,(void (*)(WIN_WindowStruct *,WIN_MsgStruct *))MENU_SettingMsgLoop, 0,0,base->x_size,base->y_size); ((WIN_WindowStruct *)menu)->intercept=1;//不发送按键消息到父窗口 WIN_SetBackPicPath ((WIN_WindowStruct *)menu,base->pic_path); MENU_SetTitle (menu,0,"设置"); MENU_SetMaxItem(menu,9); for (int i=0;i<9;i++) { MENU_AddItem (menu,ptr[i].img,(char *)ptr[i].txt); } WIN_ShowWindow((WIN_WindowStruct*)menu); return menu; } //定义获取程序下载位置的变量 #define APP_SOURCE (*(u32 *)(0x08020000+4*7)) #define APP_APPNAME (*(char **)(0x08020000+4*8)) #define APP_SIZE (*(u32 *)(0x08020000+4*9)) static void enter_sound(WIN_WindowStruct *base); static void MENU_DoEnter (WIN_MenuStruct *menu) { //选择了一个设置项 if (MENU_GetIndex(menu)==0) MENU_ThemeSet((WIN_WindowStruct *)menu); else if (MENU_GetIndex(menu)==1) TIMEBOX_TimeSet ((WIN_WindowStruct *)menu); else if (MENU_GetIndex(menu)==2) MENU_LightSet((WIN_WindowStruct *)menu);//BACKLIGHTSETBOX_BackLightSet (); else if (MENU_GetIndex(menu)==3) {MSGBOX_Inquiry ((WIN_WindowStruct *)menu,"重置","再按一次确定键重置","确定","返回");} else if (MENU_GetIndex(menu)==4) { char *txt=mymalloc (512); if (APP_SOURCE) { sprintf (txt,"型号:RC520\n软件版本:1.11 Beta1\n编译:%s\n本程序通过IAP升级\n" "程序名:%s\n程序大小:%d Byte" ,__DATE__ " " __TIME__,APP_APPNAME,APP_SIZE); } else { sprintf (txt,"型号:RC520\n软件版本:1.11 Beta1\n编译:%s\n本程序通过SWD下载" ,__DATE__ " " __TIME__); } MSGBOX_TipsTime ((WIN_WindowStruct*)menu,"关于", txt,"确定",5000); myfree(txt); } else if (MENU_GetIndex(menu)==5) SYSFILE_ChooseFile((WIN_WindowStruct *)menu); 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(); else MSGBOX_TipsTime ((WIN_WindowStruct*)menu,"提示",MENU_GetSelectItem(menu) ,"确定",5000); } //消息处理函数 void MENU_SettingMsgLoop (WIN_MenuStruct *menu,WIN_MsgStruct *msg) { WIN_MoveStruct *m=0; WIN_TouchStruct *t=0; WIN_KeyStruct *k=0; switch (msg->msg) { 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; } } // 读取一个值,返回0成功 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(); nrf_set_no_respond(1); 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) { int ret=WORKING_DoWorkPro(base,"正在接收音频",cb_sound_fun,0, cb_sound_bread,0,0,18); }