/******************************************************************* * * _DemoProgBar */ static void _DemoProgBar(void) { int i; PROGBAR_Handle ahProgBar[2]; GUI_SetBkColor(GUI_BLACK); GUI_Clear(); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font24_ASCII); GUI_DispStringHCenterAt("WIDGET_Progbar - Sample", 160, 5); GUI_SetFont(&GUI_Font8x16); GUI_DispStringAt("Progress bar", 100,80); // // Create the progbars // ahProgBar[0] = PROGBAR_Create(100,100,100,20, WM_CF_SHOW); ahProgBar[1] = PROGBAR_Create( 80,150,140,10, WM_CF_SHOW); // // Use memory device (optional, for better looks) // PROGBAR_EnableMemdev(ahProgBar[0]); PROGBAR_EnableMemdev(ahProgBar[1]); PROGBAR_SetMinMax(ahProgBar[1], 0, 500); PROGBAR_SetFont(ahProgBar[0], &GUI_Font8x16); GUI_Delay(500); while(1) { PROGBAR_SetFont(ahProgBar[0], &GUI_Font8x16); if (LCD_GetDevCap(LCD_DEVCAP_BITSPERPIXEL) <= 4) { PROGBAR_SetBarColor(ahProgBar[0], 0, GUI_DARKGRAY); PROGBAR_SetBarColor(ahProgBar[0], 1, GUI_LIGHTGRAY); } else { PROGBAR_SetBarColor(ahProgBar[0], 0, GUI_GREEN); PROGBAR_SetBarColor(ahProgBar[0], 1, GUI_RED); } PROGBAR_SetTextAlign(ahProgBar[0], GUI_TA_HCENTER); PROGBAR_SetText(ahProgBar[0], NULL); for (i=0; i<=100; i++) { PROGBAR_SetValue(ahProgBar[0], i); PROGBAR_SetValue(ahProgBar[1], i); GUI_Delay(5); } PROGBAR_SetText(ahProgBar[0], "Tank empty"); for (; i>=0; i--) { PROGBAR_SetValue(ahProgBar[0], i); PROGBAR_SetValue(ahProgBar[1], 200-i); GUI_Delay(5); } PROGBAR_SetText(ahProgBar[0], "Any text..."); PROGBAR_SetTextAlign(ahProgBar[0], GUI_TA_LEFT); for (; i<=100; i++) { PROGBAR_SetValue(ahProgBar[0], i); PROGBAR_SetValue(ahProgBar[1], 200+i); GUI_Delay(5); } PROGBAR_SetTextAlign(ahProgBar[0], GUI_TA_RIGHT); for (; i>=0; i--) { PROGBAR_SetValue(ahProgBar[0], i); PROGBAR_SetValue(ahProgBar[1], 400-i); GUI_Delay(5); } PROGBAR_SetFont(ahProgBar[0], &GUI_FontComic18B_1); PROGBAR_SetText(ahProgBar[0], "Any font..."); for (; i<=100; i++) { PROGBAR_SetValue(ahProgBar[0], i); PROGBAR_SetValue(ahProgBar[1], 400+i); GUI_Delay(5); } GUI_Delay(500); } }
void GUIDEMO_DemoProgBar(void) { int i, iRep; int XMid = LCD_GetXSize() / 2; int YMid = LCD_GetYSize() / 2; int Length[2] = {100, 140}; int Height[2] = {20, 10}; #if GUIDEMO_LARGE int MaxReps = 2; #else int MaxReps = 1; #endif PROGBAR_Handle ahProgBar[2]; GUIDEMO_ShowIntro("Widgets", "\nProgressbars in" "\nall variations"); GUI_Clear(); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font8x16); GUI_DispStringHCenterAt("Progress bar", XMid, YMid - 40); /* Create `em */ ahProgBar[0] = PROGBAR_Create(XMid - Length[0] / 2, YMid - 15, Length[0], Height[0], WM_CF_SHOW); ahProgBar[1] = PROGBAR_Create(XMid - Length[1] / 2, YMid + 20, Length[1], Height[1], WM_CF_SHOW); /* Use memory device (optional, for better looks) */ #if GUI_SUPPORT_MEMDEV PROGBAR_EnableMemdev(ahProgBar[0]); PROGBAR_EnableMemdev(ahProgBar[1]); #endif GUIDEMO_Delay (1000); PROGBAR_SetMinMax(ahProgBar[1], 0, 500); for (iRep = 0; iRep < MaxReps; iRep++) { PROGBAR_SetFont(ahProgBar[0], &GUI_Font8x16); #if (LCD_BITSPERPIXEL == 2) PROGBAR_SetBarColor(ahProgBar[0], 0, GUI_BLACK); PROGBAR_SetBarColor(ahProgBar[1], 0, GUI_BLACK); PROGBAR_SetBarColor(ahProgBar[0], 1, GUI_LIGHTGRAY); #elif (LCD_BITSPERPIXEL <= 4) PROGBAR_SetBarColor(ahProgBar[0], 0, GUI_DARKGRAY); PROGBAR_SetBarColor(ahProgBar[0], 1, GUI_LIGHTGRAY); #else PROGBAR_SetBarColor(ahProgBar[0], 0, GUI_GREEN); PROGBAR_SetBarColor(ahProgBar[0], 1, GUI_RED); #endif for (i = 0; (i <= 100) && !GUIDEMO_CheckCancel(); i++) { PROGBAR_SetValue(ahProgBar[0], i); PROGBAR_SetValue(ahProgBar[1], i); GUI_Delay(5); } PROGBAR_SetText(ahProgBar[0], "Tank empty"); for (; (i >= 0)&& !GUIDEMO_CheckCancel(); i--) { PROGBAR_SetValue(ahProgBar[0], i); PROGBAR_SetValue(ahProgBar[1], 200 - i); GUI_Delay(5); } PROGBAR_SetText(ahProgBar[0], "Any text ..."); PROGBAR_SetTextAlign(ahProgBar[0], GUI_TA_LEFT); for (; (i <= 100)&& !GUIDEMO_CheckCancel(); i++) { PROGBAR_SetValue(ahProgBar[0], i); PROGBAR_SetValue(ahProgBar[1], 200 + i); GUI_Delay(5); } for (; (i >= 0)&& !GUIDEMO_CheckCancel(); i--) { PROGBAR_SetValue(ahProgBar[0], i); PROGBAR_SetValue(ahProgBar[1], 400 - i); GUI_Delay(5); } PROGBAR_SetFont(ahProgBar[0], &GUI_FontComic18B_1); PROGBAR_SetText(ahProgBar[0], "Any font ..."); for (; (i <= 100)&& !GUIDEMO_CheckCancel(); i++) { PROGBAR_SetValue(ahProgBar[0], i); PROGBAR_SetValue(ahProgBar[1], 400 + i); GUI_Delay(5); } GUIDEMO_Delay(1000); } GUIDEMO_Delay(1000); PROGBAR_Delete(ahProgBar[0]); PROGBAR_Delete(ahProgBar[1]); GUIDEMO_Delay(1000); GUI_SetFont(&GUI_Font10S_ASCII); }
static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; char * buffer = rt_malloc(64); static GRAPH_DATA_Handle _ahData[4]; rt_uint8_t major, minor; rt_uint32_t total, used, max_used; switch (pMsg->MsgId) { case WM_TIMER: cpu_usage_get(&major, &minor); rt_memory_info(&total, &used, &max_used); sprintf(buffer, "CPU :%d.%2d%%", major, minor); TEXT_SetText(WM_GetDialogItem(pMsg->hWin, ID_TEXT_0), buffer); PROGBAR_SetValue(WM_GetDialogItem(pMsg->hWin, ID_PROGBAR_0), major); sprintf(buffer, "Used mem:%d%%", used*100/total); TEXT_SetText(WM_GetDialogItem(pMsg->hWin, ID_TEXT_1), buffer); PROGBAR_SetValue(WM_GetDialogItem(pMsg->hWin, ID_PROGBAR_1), used*100/total); GRAPH_DATA_YT_AddValue(_ahData[0], major); GRAPH_DATA_YT_AddValue(_ahData[1], used*100/total); rt_device_t dev; enet_phy_data phy_data; dev = rt_device_find("e0"); if(dev) { dev->control(dev, NIOCTL_GET_PHY_DATA, &phy_data); GRAPH_DATA_YT_AddValue(_ahData[2], phy_data.tx_fcnt); GRAPH_DATA_YT_AddValue(_ahData[3], phy_data.rx_fcnt); } WM_RestartTimer(pMsg->Data.v, 20); break; case WM_INIT_DIALOG: WM_CreateTimer(WM_GetClientWindow(pMsg->hWin), 0, 300, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_PROGBAR_0); PROGBAR_SetBarColor(hItem, 1, GUI_GREEN); PROGBAR_SetBarColor(hItem, 0, GUI_RED); hItem = WM_GetDialogItem(pMsg->hWin, ID_PROGBAR_1); PROGBAR_SetBarColor(hItem, 1, GUI_GREEN); PROGBAR_SetBarColor(hItem, 0, GUI_RED); // GRAPH _ahData[0] = GRAPH_DATA_YT_Create(GUI_DARKGREEN, 500, 0, 0); _ahData[1] = GRAPH_DATA_YT_Create(GUI_BLUE, 500, 0, 0); _ahData[2] = GRAPH_DATA_YT_Create(GUI_YELLOW, 500, 0, 0); _ahData[3] = GRAPH_DATA_YT_Create(GUI_BROWN, 500, 0, 0); WM_HWIN hGRAPH[4]; int i; hGRAPH[0] = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0); hGRAPH[1] = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_1); hGRAPH[2] = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_2); hGRAPH[3] = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_3); for(i=0;i<GUI_COUNTOF(hGRAPH);i++) { GRAPH_SetBorder(hGRAPH[i], 1, 1, 1, 1); GRAPH_SetGridVis(hGRAPH[i], 1); GRAPH_SetGridDistX(hGRAPH[i], 10); GRAPH_SetGridDistY(hGRAPH[i], 10); GRAPH_AttachData(hGRAPH[i], _ahData[i]); } break; default: WM_DefaultProc(pMsg); break; } rt_free(buffer); }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; int key_num; // USER START (Optionally insert additional variables) // USER END int i; switch (pMsg->MsgId) { case WM_INIT_DIALOG: // // Initialization of 'Edit' // GUI_UC_SetEncodeUTF8(); #if 1 hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_2); BUTTON_SetBkColor(hItem,0,GUI_GREEN); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); #endif hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_3); BUTTON_SetBkColor(hItem,0,GUI_YELLOW); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_4); BUTTON_SetBkColor(hItem,0,GUI_CYAN); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_1); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); BUTTON_SetBkColor(hItem,0,GUI_CYAN); hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_0); BUTTON_SetBkColor(hItem,0,GUI_CYAN); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0); WM_DisableWindow(hItem); EDIT_SetText(hItem, (const char *)GUI_hex2MeterAddrStr(g_sys_ctrl.recentMeterAddr, 6)); for(i = 0;i < 5; i++) { hItem=WM_GetDialogItem(pMsg->hWin,(ID_EDIT_3+i)); EDIT_SetText(hItem, "0"); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); WM_DisableWindow(hItem); } PUB_InitFreq(pMsg,ID_EDIT_2); hItem = WM_GetDialogItem(pMsg->hWin,ID_EDIT_2); WM_DisableWindow(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_1); if(DL645_2007 == g_rom_para.protocol) { //EDIT_SetText(hItem, pReadSel_07[g_sys_ctrl.data_item_index]); EDIT_SetText(hItem, pReadSel_07[0]); memcpy(g_gui_para.dataItem, &c_645dataItemDef[g_rom_para.protocol][0], 4); g_gui_para.ctrlCode=0x11; } else if(DL645_1997 == g_rom_para.protocol) { //EDIT_SetText(hItem, pReadSel_97[g_sys_ctrl.data_item_index]); EDIT_SetText(hItem, pReadSel_97[0]); memcpy(g_gui_para.dataItem, &c_645dataItemDef[g_rom_para.protocol][0], 2); g_gui_para.ctrlCode=0x01; } WM_DisableWindow(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_PROGBAR_0); PROGBAR_SetBarColor(hItem,0,GUI_GREEN); break; case WM_KEY: Id = WM_GetId(pMsg->hWinSrc); if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt) == 1) { switch(((WM_KEY_INFO*)(pMsg->Data.p))->Key) { case GUI_KEY_YELLOW: WM_DeleteWindow(g_hWin_ReadMeter); g_hWin_ReadMeter=HBWIN_NULL; WM_BringToBottom(g_hWin_msg); WM_HideWindow(g_hWin_msg); WM_ShowWindow(g_hWin_TimeBar); WM_ShowWindow(g_hWin_Date); WM_SetFocus(g_hWin_menu); RMD_key_cnt = 0; g_gui_para.state = GUI_STATE_IDLE; break; case GUI_KEY_GREEN: g_hWin_MeterTime = CreateExtFnct(); hItem = MTD_GetMeterAddr(); WM_SetFocus(hItem); MTD_SetAddrBkColor(hItem); break; case GUI_KEY_F1: /*获取表号*/ if(CHANNEL_RF != g_rom_para.channel) { g_gui_para.ctrlCode = 0x13; g_gui_para.cmd = GUI_CMD_BROAD_READ_ADDR; g_gui_para.state = GUI_STATE_AMR; OSMboxPost(g_sys_ctrl.up_mbox, (void*)&g_gui_para); } else { ERR_NOTE(g_hWin_ReadMeter,GUI_MSBOX_FUN_DISALE_ERROR); } break; case '#': WM_BringToTop(g_hWin_msg); WM_ShowWindow(g_hWin_msg); WM_SetFocus(g_hWin_msg); break; case GUI_KEY_F2: /*抄表*/ if(DEV_OK == RMD_Get_Para(pMsg))//获取参数数据 { g_gui_para.state = GUI_STATE_AMR; OSMboxPost(g_sys_ctrl.up_mbox, (void*)&g_gui_para); } break; case GUI_KEY_UP: RMD_SelEdt_Up(pMsg); //RMD_Color_Change(); GUI_Color_Change(g_hWin_ReadMeter, ID_EDIT_0, 3); break; case GUI_KEY_DOWN: RMD_SelEdt_Down(pMsg); //RMD_Color_Change(); GUI_Color_Change(g_hWin_ReadMeter, ID_EDIT_0, 3); break; case GUI_KEY_ENTER: switch(Id) { case ID_EDIT_0: g_sys_ctrl.selectWidget=EDIT_METER_NUM; g_hWin_Input=Create_Edit_Set(g_hWin_ReadMeter); WM_SetFocus(g_hWin_Input); break; case ID_EDIT_1: g_sys_ctrl.selectWidget=LISTBOX_READ_SEL; g_hWin_Input=Create_ListBox_Set(g_hWin_ReadMeter); WM_SetFocus(g_hWin_Input); break; case ID_EDIT_2: //g_sys_ctrl.selectWidget=LISTBOX_SPEED; //g_hWin_Input=Create_ListBox_Set(g_hWin_ReadMeter); //WM_SetFocus(g_hWin_Input); g_hWin_freq = CreateSpeed(g_hWin_ReadMeter); //WM_SetFocus(g_hWin_freq); break; } } } break; #if 0 if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==1)//按键点击。 { switch(Id) { case ID_EDIT_0: if(key_num==GUI_KEY_ENTER) { g_sys_ctrl.selectWidget=EDIT_METER_NUM; g_hWin_Input=Create_Edit_Set(g_hWin_ReadMeter); WM_SetFocus(g_hWin_Input); } break; case ID_EDIT_1: if(key_num==GUI_KEY_ENTER) { g_sys_ctrl.selectWidget=LISTBOX_READ_SEL; g_hWin_Input=Create_ListBox_Set(g_hWin_ReadMeter); WM_SetFocus(g_hWin_Input); } break; case ID_EDIT_2: if(key_num==GUI_KEY_ENTER) { //g_sys_ctrl.selectWidget=LISTBOX_SPEED; //g_hWin_Input=Create_ListBox_Set(g_hWin_ReadMeter); //WM_SetFocus(g_hWin_Input); g_hWin_freq = CreateSpeed(g_hWin_ReadMeter); //WM_SetFocus(g_hWin_freq); } break; } } switch(((WM_KEY_INFO *)(pMsg->Data.p))->Key) { case GUI_KEY_YELLOW: if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==1) { WM_DeleteWindow(g_hWin_ReadMeter); g_hWin_ReadMeter=HBWIN_NULL; WM_BringToBottom(g_hWin_msg); WM_HideWindow(g_hWin_msg); WM_ShowWindow(g_hWin_TimeBar); WM_ShowWindow(g_hWin_Date); WM_SetFocus(g_hWin_menu); RMD_key_cnt = 0; g_gui_para.state = GUI_STATE_IDLE; } break; case GUI_KEY_F1: /*获取表号*/ if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { if(CHANNEL_RF != g_rom_para.channel) { g_gui_para.cmd = GUI_CMD_BROAD_READ_ADDR; g_gui_para.state = GUI_STATE_AMR; OSMboxPost(g_sys_ctrl.up_mbox, (void*)&g_gui_para); } } break; case '#': if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { WM_BringToTop(g_hWin_msg); WM_ShowWindow(g_hWin_msg); WM_SetFocus(g_hWin_msg); } break; case GUI_KEY_F2: /*抄表*/ if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { if(DEV_OK == RMD_Get_Para(pMsg))//获取参数数据 { g_gui_para.state = GUI_STATE_AMR; OSMboxPost(g_sys_ctrl.up_mbox, (void*)&g_gui_para); } } break; case GUI_KEY_UP: if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { RMD_SelEdt_Up(pMsg); //RMD_Color_Change(); } break; case GUI_KEY_DOWN: if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { RMD_SelEdt_Down(pMsg); //RMD_Color_Change(); GUI_Color_Change(g_hWin_ReadMeter, ID_EDIT_0, 3); } break; case GUI_KEY_TAB: if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { //RMD_Sel_Down(pMsg); RMD_Color_Change(); } break; #endif case WM_MSG_CLOSE: WM_DeleteWindow(g_hWin_ReadMeter); break; default: WM_DefaultProc(pMsg); break; } } /********************************************************************* * * CreateReadMeter */ WM_HWIN CreateReadMeter(void); WM_HWIN CreateReadMeter(void) { WM_HWIN hWin; hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, g_hWin_menu, 0, 0); return hWin; }
/********************************************************************* * * MainTask * ********************************************************************** */ void MainTask(void) { GUI_Init(); WM_SetCreateFlags(WM_CF_MEMDEV); /* Use memory devices on all windows to avoid flicker */ WM_EnableMemdev(WM_HBKWIN); WM_SetCallback(WM_HBKWIN, &_cbBkWin); GUI_SetBkColor(GUI_BLUE); GUI_SetFont(&GUI_Font16B_1); GUI_Clear(); ahButton[0] = BUTTON_Create(318-52,152,75-21, 20, GUI_ID_ADC, BUTTON_CF_SHOW ); BUTTON_SetTextColor(ahButton[0],BUTTON_CI_UNPRESSED,GUI_GREEN); BUTTON_SetFont(ahButton[0],&GUI_Font16B_1); BUTTON_SetText(ahButton[0],"Inc"); ahButton[1] = BUTTON_Create(318-52,174,75-21, 20, GUI_ID_DAC, BUTTON_CF_SHOW ); BUTTON_SetTextColor(ahButton[1],BUTTON_CI_UNPRESSED,GUI_GREEN); BUTTON_SetFont(ahButton[1],&GUI_Font16B_1); BUTTON_SetText(ahButton[1],"Dec"); ahButton[2] = BUTTON_Create(318-52,196,75-21, 20, GUI_ID_FFT, BUTTON_CF_SHOW ); BUTTON_SetTextColor(ahButton[2],BUTTON_CI_UNPRESSED,GUI_GREEN); BUTTON_SetFont(ahButton[2],&GUI_Font16B_1); BUTTON_SetText(ahButton[2],"Switch"); ahButton[3] = BUTTON_Create(318-52,218,75-21, 20, GUI_ID_Spectrum, BUTTON_CF_SHOW ); BUTTON_SetTextColor(ahButton[3],BUTTON_CI_UNPRESSED,GUI_GREEN); BUTTON_SetFont(ahButton[3],&GUI_Font16B_1); BUTTON_SetText(ahButton[3],"Spectr"); ahProgbar[0]=PROGBAR_Create(318-52,2,75-21,20,WM_CF_SHOW); PROGBAR_SetBarColor(ahProgbar[0],0,GUI_MAGENTA); PROGBAR_SetBarColor(ahProgbar[0],1,GUI_RED); PROGBAR_SetFont(ahProgbar[0],&GUI_Font16B_1); PROGBAR_SetMinMax(ahProgbar[0],0,100); WIDGET_SetEffect(ahProgbar[0], &WIDGET_Effect_3D); ahScrollbar[0]=SCROLLBAR_Create(0,11,12,217,0,GUI_ID_OSCLevel,WM_CF_SHOW,SCROLLBAR_CF_VERTICAL); SCROLLBAR_SetNumItems(ahScrollbar[0],200); SCROLLBAR_SetValue(ahScrollbar[0],100); DispButton(); DispChInfo(); ConfigRefresh=0; fRefresh =1; while(1) { if(ConfigRefresh == 0) { if (fRefresh) { fRefresh = 0; if(g_DSO.HoldEn == 1) { DispChInfo(); } } if (g_DSO.HoldEn == 0) { StopADC(); /* 暂停采样 */ DispFrame(); DispChInfo(); DispCh1Wave(); FFT_Convert(); StartADC(); /* 开始采样 */ } PROGBAR_SetValue(ahProgbar[0],OSCPUUsage); } GUI_Delay(50); } }