Mstar方案軟體執行基本原理

2021-10-25 17:33:35 字數 3671 閱讀 6915

(

1)迴圈;

2、 通過 while(1

3、 while(1

3.1、在剛開機時,首先 entopstate = state_top_digitalinputs 等待使用者輸入;

3.3、當使用者在ir中輸入menu按鍵;

switch

( u8keycode )

case key_menu:

entvstate = state_tv_init;

entvretval = exit_goto_menu;

u8keycode = key_null;

break

;switch((

))case exit_goto_menu:

entopstate = state_top_menu;

break;(

());

(e_osd_main_menu)()

;就可以show出我們想要show出的主介面了。

enmainmenustate = state_menu_wait;

_ezuistate = e_zui_state_running;

(enmainmenustate)時,就要執行:

(u8keycode)

;u8keycode = key_null;

(en_exe_update_signal_informat);了;

(hwnd_mainframe, msg_keydown, vk_code),post message。

switch

(&msg)

;因為我們剛才發的是key的message所以,執行的以下**:

if(pmsg->message == msg_keydown)}}

#if zui_dbg_recursive

_bindispatchmessage =0;

#endif

//zui_dbg_recursive

return iret;

}3.10、由focus =

getwndfocus()

;得到當前win的focus

(getwndprocid

(focus)

, pmsg)兩個引數的說明:

getwndprocid

(focus),得到當前win的型別(有en_zui_defaultwinproc、en_zui_flippage_winproc、en_zui_effect_winproc等型別)

pmsg:收到的訊息,在本例中收到是按鍵。

(u8 u8winprocid, pmsg msg),根據傳過來的引數,執行:effect_winproc

(msg->hwnd, msg)

;直接呼叫:return

defaultwinproc

(hwnd, pmsg);

本例會執行以下語句:if(

getwndkeyevent

(focus)

)keyevent++;}

對這段**的理解,由getwndkeyevent

(focus)得到當前focus定義的keyevent,如果有定義當前所按鍵的事件if

(keyevent->u16exeactid)

;將定義要執行的事件id傳過去。

for example:

static keyevent _zui_tblseg _menu_picture_mode_key=

,,,,

,,,,

};本例只執行:switch

(act)

;3.15、以按左右鍵為例:

switch

(act)

case en_exe_effect_flippage_left:

case en_exe_effect_flippage_right:;

hwnd hwndfocus =()

;hwnd hwndeffect = hwndfocus;

hwnd hwndnext = hwnd_invalid;

en_flippage dir = en_flippage_none;

/******若當前不是第0個index page則 要找到當前功能的首個page 即屬性為en_zui_flippage_winproc的page**************/

while

((hwndeffect=

(hwndeffect)

)!= hwnd_mainframe )

}/******若當前不是第0個index page則 要找到當前功能的首個page 即屬性為en_zui_flippage_winproc的page**************/

if( hwndeffect == hwnd_mainframe )

return true;

u32 u32data =

(hwndeffect);if

( u32data ==0)

return true;

u32 i;

for(i=

0; i<

countof

(hwndtop)

; i++)=

""="" i=

"">=

countof

(hwndtop)

)return true;

if(act == en_exe_effect_flippage_left)

else

if(act == en_exe_effect_flippage_right)

hwnd child, last_succ;

//2008/4/12: get last successor once

hwnd listwn = hwndnext+2;

last_succ =

(listwn)

;for

(child = listwn+

1; child <= last_succ; child++

) gui_data_flippage *windata =

(gui_data_flippage *

) u32data; windata->pvardata->hwndcurrent = hwndeffect;

windata->pvardata->hwndnext = hwndnext;

/*if(windata->pvardata->hwndnext == hwnd_menu_lock_page)

*/#if enable_dtv

if(windata->pvardata->hwndnext == hwnd_menu_lock_page)

stgensetting.g_blocksyssetting.u8enterlockpage =0;

#endif

if(child == last_succ)

windata->pvardata->hwndnextfocus = windata->pvardata->hwndnext+3;

else

windata->pvardata->hwndnextfocus = child;

windata->pvardata->dir = dir;

(windata->pvardata->hwndcurrent, msg_effect,0)

;(hwnd_menu_main_botton_info_bar)

;return true;

Mstar方案軟體執行基本原理

3.1 在剛開機時,首先 entopstate state top digitalinputs 等待使用者輸入 3.3 當使用者在ir中輸入menu按鍵 switch u8keycode case key menu entvstate state tv init entvretval exit go...

軟體測試基本原理

在過去的40多年裡,測試工作中有一些原理已經被普遍接受,廣泛應用。在測試中,應當始終牢記7條基本原理。原理1 測試可以證明缺陷存在,但不能證明缺陷不存在。測試可以證明產品是失敗的,也就是說產品中有缺陷。但測試不能證明程式中沒有缺陷。適當的測試可以減少測試物件中的隱藏缺陷。即使在測試中沒有發現失效,也...

RCP執行的基本原理

第一步 外掛程式類rcpplugin 系統執行後首先在manisfest.mf檔案中找到bundle activator所對應的外掛程式類,通過該類的靜態方法獲得外掛程式物件的引用,然後獲得外掛程式的各種資訊,包括外掛程式所對應的bundle檔案資訊 log日誌物件和工作台物件等。例如 獲取外掛程式...