一種交互式可編程硬件的緩沖機(jī)制實(shí)現(xiàn)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種交互式可編程硬件的緩沖機(jī)制實(shí)現(xiàn)方法及
目.ο
【背景技術(shù)】
[0002]在Scratch程序運(yùn)行中,如果程序中存在無限循環(huán),通常這個(gè)無限循環(huán)的實(shí)際運(yùn)行速率將超過500Hz,若無限循環(huán)里面有與下位機(jī)通訊的內(nèi)容,若無緩沖機(jī)制,硬件指令將以超過500Hz的速率向下位機(jī)發(fā)送,在多數(shù)硬件連接采用的波特率僅為115200b/s的情況下,上位機(jī)超過500Hz的指令速率易導(dǎo)致下位機(jī)癱瘓而無法繼續(xù)工作。
【發(fā)明內(nèi)容】
[0003]為了解決上述所述的上位機(jī)與下位機(jī)通訊過程中若無緩沖機(jī)制,易導(dǎo)致下位機(jī)癱瘓而無法繼續(xù)工作的問題,本發(fā)明提供一種交互式可編程硬件的緩沖機(jī)制實(shí)現(xiàn)方法及裝置的設(shè)計(jì)方案。
[0004]—種交互式可編程硬件的緩沖機(jī)制實(shí)現(xiàn)方法,包括以下步驟:S1,接收操作指令,并將所述操作指令轉(zhuǎn)換成硬件可識(shí)別指令;S2,比較所述硬件可識(shí)別指令與指令緩沖區(qū)存儲(chǔ)的指令是否存在同類指令,若存在,則將所述硬件可識(shí)別指令替換指令緩沖區(qū)存儲(chǔ)的對應(yīng)的同類指令;若不存在,則判斷指令緩沖區(qū)是否存儲(chǔ)已滿,若存儲(chǔ)已滿,則將所述硬件可識(shí)別指令替換所述指令緩沖區(qū)的第一條指令,若存儲(chǔ)未滿,則將所述硬件可識(shí)別指令寫入所述指令緩沖區(qū)。
[0005]具體的,所述比較所述硬件可識(shí)別指令與指令緩沖區(qū)存儲(chǔ)的每條指令是否為存在同類指令,具體包括:比較所述硬件可識(shí)別指令中對應(yīng)的設(shè)備號(hào)與指令緩沖區(qū)存儲(chǔ)的指令中對應(yīng)的設(shè)備號(hào)是否相同,當(dāng)所述硬件可識(shí)別指令中對應(yīng)的設(shè)備號(hào)與指令緩沖區(qū)存儲(chǔ)的指令中對應(yīng)的設(shè)備號(hào)相同,則存在同類指令;當(dāng)所述硬件可識(shí)別指令中對應(yīng)的設(shè)備號(hào)與指令緩沖區(qū)存儲(chǔ)的指令對應(yīng)的設(shè)備號(hào)均不相同,則不存在同類指令。
[0006]具體的,所述方法還包括:以預(yù)先設(shè)置的定時(shí)查詢頻率定時(shí)查詢指令緩沖區(qū),若查詢結(jié)果不為空,則依次發(fā)送指令緩沖區(qū)中的所有指令至指定下位機(jī),并清空所述指令緩沖區(qū);若查詢結(jié)果為空,則等待下一次查詢。
[0007]更具體的,所述定時(shí)查詢頻率為10?50Hz。
[0008]—種交互式可編程硬件的緩沖機(jī)制實(shí)現(xiàn)裝置,包括:接收模塊,用于通過人機(jī)交互界面接收操作指令;轉(zhuǎn)換模塊,用于將所述操作指令轉(zhuǎn)換成硬件可識(shí)別指令;比較模塊,用于比較所述硬件可識(shí)別指令與指令緩沖區(qū)存儲(chǔ)的每條指令是否存在同類指令;替換模塊,用于當(dāng)比較模塊比較所述硬件可識(shí)別指令與指令緩沖區(qū)存儲(chǔ)的指令存在同類指令時(shí),將所述硬件可識(shí)別指令替換指令緩沖區(qū)存儲(chǔ)的對應(yīng)的同類指令;判斷模塊,當(dāng)比較模塊比較所述硬件可識(shí)別指令與指令緩沖區(qū)存儲(chǔ)的指令不存在同類指令時(shí),用于判斷指令緩沖區(qū)是否存儲(chǔ)已滿;所述替換模塊,還用于當(dāng)判斷模塊判斷指令緩沖區(qū)存儲(chǔ)已滿時(shí),則將所述硬件可識(shí)別指令替換所述指令緩沖區(qū)的第一條指令;寫入模塊,用于當(dāng)判斷模塊判斷指令緩沖區(qū)存儲(chǔ)未滿時(shí),則將所述硬件可識(shí)別指令寫入所述指令緩沖區(qū)。
[0009]具體的,所述比較模塊還具體用于:比較所述硬件可識(shí)別指令中對應(yīng)的設(shè)備號(hào)與指令緩沖區(qū)存儲(chǔ)的指令中對應(yīng)的設(shè)備號(hào)是否相同,當(dāng)所述硬件可識(shí)別指令中對應(yīng)的設(shè)備號(hào)與指令緩沖區(qū)存儲(chǔ)的指令中對應(yīng)的設(shè)備號(hào)相同時(shí),則存在同類指令;當(dāng)所述硬件可識(shí)別指令中對應(yīng)的設(shè)備號(hào)與指令緩沖區(qū)存儲(chǔ)的指令中對應(yīng)的設(shè)備號(hào)均不相同,則不存在同類指令。
[0010]具體的,還包括指令查詢模塊,用于以預(yù)先設(shè)置的定時(shí)器定時(shí)查詢指令緩沖區(qū),若查詢結(jié)果不為空,則依次發(fā)送指令緩沖區(qū)中的所有指令至指定下位機(jī),并清空所述指令緩沖區(qū);若查詢結(jié)果為空,則等待下一次查詢。
[0011]綜上所述,本發(fā)明具有以下有益效果:通過在上位機(jī)與下位機(jī)的通訊過程中設(shè)置指令緩沖機(jī)制,能夠減輕下位機(jī)的硬件壓力,且控制上位機(jī)的指令傳輸速率,避免下位機(jī)的硬件設(shè)備因過快的指令速率而導(dǎo)致癱瘓。
【附圖說明】
[0012]圖1為本發(fā)明實(shí)施例提供的交互式可編程硬件的緩沖機(jī)制實(shí)現(xiàn)方法的流程示意圖。
[0013]圖2為本發(fā)明實(shí)施例提供的又一交互式可編程硬件的緩沖機(jī)制實(shí)現(xiàn)方法的流程示意圖。
[0014]圖3為本發(fā)明實(shí)施例提供的交互式可編程硬件的緩沖機(jī)制實(shí)現(xiàn)裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0015]為了讓本領(lǐng)域的技術(shù)人員能夠更好地了解本發(fā)明的技術(shù)方案,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的闡述。
[0016]如圖1所示,本發(fā)明揭示了一種交互式可編程硬件的緩沖機(jī)制實(shí)現(xiàn)方法,包括以下步驟:
[0017]S1,接收操作指令,并將所述操作指令轉(zhuǎn)換成硬件可識(shí)別指令。
[0018]S2,比較所述硬件可識(shí)別指令與指令緩沖區(qū)存儲(chǔ)的指令是否存在同類指令,若存在,則將所述硬件可識(shí)別指令替換指令緩沖區(qū)存儲(chǔ)的對應(yīng)的同類指令;若不存在,則判斷指令緩沖區(qū)是否存儲(chǔ)已滿,若存儲(chǔ)已滿,則將所述硬件可識(shí)別指令替換所述指令緩沖區(qū)的第一條指令,若存儲(chǔ)未滿,則將所述硬件可識(shí)別指令寫入所述指令緩沖區(qū)。
[0019]具體的,在本發(fā)明實(shí)施例中,比較所述硬件可識(shí)別指令與指令緩沖區(qū)存儲(chǔ)的每條指令是否為存在同類指令,具體包括:比較所述硬件可識(shí)別指令中對應(yīng)的設(shè)備號(hào)與指令緩沖區(qū)存儲(chǔ)的指令中對應(yīng)的設(shè)備號(hào)是否相同,當(dāng)所述硬件可識(shí)別指令中對應(yīng)的設(shè)備號(hào)與指令緩沖區(qū)存儲(chǔ)的指令中對應(yīng)的設(shè)備號(hào)相同,則存在同類指令;當(dāng)所述硬件可識(shí)別指令中對應(yīng)的設(shè)備號(hào)與指令緩沖區(qū)存儲(chǔ)的指令中對應(yīng)的設(shè)備號(hào)均不相同,則不存在同類指令。對于同一硬件的不同設(shè)備(比如實(shí)驗(yàn)箱上的風(fēng)扇、三色燈等設(shè)備)均設(shè)置有不同的設(shè)備號(hào),設(shè)備號(hào)用整數(shù)進(jìn)行表示,設(shè)備號(hào)會(huì)具體體現(xiàn)在硬件可識(shí)別指令中。這樣,本發(fā)明就實(shí)現(xiàn)了硬件可識(shí)別指令與指令緩沖區(qū)中同類指令的判斷和替換。
[0020]在本發(fā)明一種交互式可編程硬件的緩沖機(jī)制實(shí)現(xiàn)方法的另一個(gè)實(shí)施例中,如圖2所示,所述方法包括以下步驟(其中步驟S11、S22與實(shí)施例一中的步驟S1、S2相同,因此不再詳述):
[0021]S11,接收操作指令,并將所述操作指令轉(zhuǎn)換成硬件可識(shí)別指令。
[0022]S22,比較所述硬件可識(shí)別指令與指令緩沖區(qū)存儲(chǔ)的指令是否存在同類指令,若存在,則將所述硬件可識(shí)別指令替換指令緩沖區(qū)存儲(chǔ)的對應(yīng)的同類指令;若不存在,則判斷指令緩沖區(qū)是否存儲(chǔ)已滿,若存儲(chǔ)已滿,則將所述硬件可識(shí)別指令替換所述指令緩沖區(qū)的第一條指令,若存儲(chǔ)未滿,則將所述硬件可識(shí)別指令寫入所述指令緩沖區(qū)。
[0023]S33,以預(yù)先設(shè)置的定時(shí)查詢頻率定時(shí)查詢指令緩沖區(qū),若查詢結(jié)果不為空,則依次發(fā)送指令緩沖區(qū)中的所有指令至指定下位機(jī),并清空所述指令緩沖區(qū);若查詢結(jié)果為空,則等待下一次查詢