性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

程序小白
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
所在專(zhuān)題目錄 查看專(zhuān)題
【第十篇】QF框架之事件管理——事件派發(fā)機(jī)制
【第十一篇】QF框架之事件管理——事件內(nèi)存(上)
【第十二篇】QF框架之事件管理——事件內(nèi)存(中)
【第十三篇】QF框架之事件管理——事件內(nèi)存(下)
【第十四篇】QP移植與配置
【第十五篇】利用QM逆向分析ship活動(dòng)對(duì)象
作者動(dòng)態(tài) 更多
基于stm32采用PWM驅(qū)動(dòng)伺服控制器學(xué)習(xí)筆記
5天前
基于STM32驅(qū)動(dòng)TM1638學(xué)習(xí)筆記——軟件篇
04-19 12:42
基于TM1638驅(qū)動(dòng)8位數(shù)碼管設(shè)計(jì)分享
02-24 11:26
RT-Thread驅(qū)動(dòng)之路: Studio創(chuàng)建FAL分區(qū)⑤
01-02 08:30
RT-Thread驅(qū)動(dòng)之路: Studio 掛載通用SPI flash④
2024-12-23 13:41

【第十五篇】利用QM逆向分析ship活動(dòng)對(duì)象

      實(shí)際開(kāi)發(fā)過(guò)程中,是利用QM工具構(gòu)架狀態(tài)圖,并生成活動(dòng)對(duì)象源碼,在這里我們通過(guò)逆向的角度,已經(jīng)有了ship活動(dòng)對(duì)象源碼的情況下,來(lái)分析一下他來(lái)自于QM的哪個(gè)部分,最后我們自建一個(gè)qm的工程一步一步添加代碼,生成整個(gè)工程。

      這完整的QM工程和由QM工程所生成的源碼文件對(duì)比如下:

      活動(dòng)對(duì)象的底層原型就是一個(gè)狀態(tài)機(jī):QActive 就是 QHsm~!

      對(duì)于狀態(tài)機(jī)由兩部分組成:內(nèi)部成員和狀態(tài)圖。

      內(nèi)部成員構(gòu)成類(lèi)比于對(duì)象的屬性:

        狀態(tài)圖主要描述狀態(tài)的遷移以及對(duì)不同狀態(tài)對(duì)于相同事件,

        做出不同的反應(yīng),核心在于狀態(tài)的分析:

      有了狀態(tài)的分析,接下來(lái)看一下那些觸發(fā)轉(zhuǎn)換的事件,初始轉(zhuǎn)換已經(jīng)在上圖中標(biāo)出,這里  不再重復(fù),所有帶箭頭的折線(xiàn)代表著轉(zhuǎn)換,而每個(gè)轉(zhuǎn)換皆有事件觸發(fā):

      事件的作用一部分是用來(lái)觸發(fā)狀態(tài)轉(zhuǎn)換,另一部分用于狀態(tài)內(nèi)部處理,并不觸發(fā)狀態(tài)轉(zhuǎn)換:

       借助QM構(gòu)建工具,讓ship狀態(tài)機(jī)的流程變得更加的清晰,其實(shí)大部分的代碼都是由QM工具幫我們生成的,這并不帶代表著QM能夠自動(dòng)生成所有的代碼細(xì)節(jié),而是幫我們搭好了狀態(tài)機(jī)的框架,利用框架進(jìn)行代碼定位更加清晰。

      基于QM從零開(kāi)始構(gòu)建ship活動(dòng)對(duì)象:

創(chuàng)建一個(gè).C文件,輸入獨(dú)特的命令行:$declare${AOs::Ship}

點(diǎn)擊執(zhí)行生成代碼:

    打開(kāi)你QM的工程目錄,然后對(duì)比一下QM工程中狀態(tài)機(jī)的樣子,一個(gè)是圖形化樣子,一個(gè)是完全可以執(zhí)行的代碼。

    接著輸入命令展開(kāi)狀態(tài)機(jī)定義$define${AOs::Ship}:

     此外狀態(tài)機(jī)還需要一個(gè)給外部框架調(diào)用運(yùn)行的指針,他是一個(gè)QActive類(lèi)型的通用指針,需要單獨(dú)定義及變換。

      要啟動(dòng)一個(gè)狀態(tài)機(jī)之前,除了擁有了其通用活動(dòng)對(duì)象指針以外,還需要一個(gè)構(gòu)造函數(shù):

     真正要讓這個(gè)狀態(tài)機(jī)跑起來(lái),就需要在main函數(shù)中,調(diào)用構(gòu)造函數(shù)對(duì)其進(jìn)行構(gòu)造,并調(diào)用框架提供的START函數(shù),讓他真正的運(yùn)行起來(lái):

       到這里關(guān)于QM與活動(dòng)對(duì)象Ship之間的愛(ài)恨糾葛就結(jié)束了,一個(gè)應(yīng)用需要多個(gè)活動(dòng)對(duì)象協(xié)調(diào)運(yùn)轉(zhuǎn),后面不會(huì)展開(kāi)這么細(xì)致的去分析QM與活動(dòng)對(duì)象, 而是站在QM的角度來(lái)看待整個(gè)應(yīng)用,他或許是一扇新的窗,希望會(huì)有陽(yáng)光。

聲明:本內(nèi)容為作者獨(dú)立觀(guān)點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺(jué)得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 3
收藏 3
關(guān)注 150
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧