基于QT Embedded系統(tǒng)的字符顯示方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于QT?Embedded系統(tǒng)的字符顯示方法和系統(tǒng),所述字符顯示方法包括:接收顯示字符的請求;從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖;按照預定顯示格式顯示所述位圖。本發(fā)明通過建立字符位圖映射表,在需要顯示字符時查找顯示預定顯示格式的位圖,從而避免了現(xiàn)有技術中需要顯示字符時高頻率地計算字符的尺寸、字符對齊的影響、字符所在位置布局的影響等情況所占用的系統(tǒng)資源問題,能夠節(jié)省系統(tǒng)資源,避免影響其他功能,防止系統(tǒng)出現(xiàn)斷續(xù)及反應慢等現(xiàn)象,改善了用戶體驗。
【專利說明】基于QT Embedded系統(tǒng)的字符顯示方法和系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及顯示【技術領域】,具體是涉及一種基于QT Embedded系統(tǒng)的字符顯示方法,還涉及一種基于QT Embedded系統(tǒng)的字符顯示系統(tǒng)。
【背景技術】
[0002]現(xiàn)有技術中,Qt Embedded系統(tǒng)是圖形化界面開發(fā)工具Qt的嵌入式版本系統(tǒng),即嵌入式圖形化界面開發(fā)工具系統(tǒng),其通過Qt API (Applicat1n Program Interface,應用程序接口)與Linux I/O接口以及Frame buffer (巾貞緩沖,標準顯示設備驅動接口)直接交互,擁有較高的運行效率,而且整體采用面向對象編程,擁有良好地體系架構和編程模式。
[0003]具體而言,QT Embedded系統(tǒng)用于嵌入式硬件架構的常用軟件環(huán)境,其具有跨平臺的優(yōu)勢,相同的代碼可以適用于windows、Iinux等不同操作系統(tǒng)下。
[0004]眾所周知的是,在數(shù)控系統(tǒng)、測試儀器等設備上經(jīng)常需要用到快速變化的字符顯示。譬如機床的軸的坐標信息需要快速在顯示屏上顯示,且這種坐標信息具有格式不變、字符變化、字符個數(shù)變化等特點。而QT Embedded系統(tǒng)使用QLabel (Qt的標簽顯示類)類進行字符顯示,但在頻繁刷新變化的時候,QLabel會占用巨大的嵌入式系統(tǒng)處理器的資源。具體來說,對于QLabel類而言,QT Embedded系統(tǒng)在每一次刷新字符顯示的時候都需要計算字符的尺寸、字符對齊的影響、字符所在位置布局的影響等情況,而這些計算在高刷新頻率下會凸顯其資源占用耗費的問題,甚至影響其他操作和顯示的功能,用戶體驗差。
【發(fā)明內容】
[0005]本發(fā)明主要解決現(xiàn)有技術字符刷新顯示時占用系統(tǒng)資源甚至影響其他功能的技術問題,提供一種基于QT Embedded系統(tǒng)的字符顯示方法和系統(tǒng),能夠節(jié)省系統(tǒng)資源,避免影響其他功能并提高用戶體驗。
[0006]為解決上述技術問題,本發(fā)明米用的一個技術方案是:提供一種基于QT Embedded系統(tǒng)的字符顯示方法,所述字符顯示方法包括:接收顯示字符的請求;從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖;按照預定顯示格式顯示所述位圖以響應所述顯示字符的請求。
[0007]其中,所述按照預定顯示格式顯示所述位圖的步驟,具體包括:調用顯示驅動內存Frame buffer對顯示屏的像素點進行操作,以將所述位圖填充在對應的Frame buffer位置上,進而以所述預定顯示格式在所述顯示屏上顯示所述位圖。
[0008]其中,所述從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖的步驟包括:將所述顯示字符的請求發(fā)送至QT Embedded系統(tǒng)的副線程,以使所述副線程從預存儲的字符位圖映射表中查找與所述字符對應的位圖;所述按照預定顯示格式顯示所述位圖以響應所述顯示字符的請求包括:所述副線程調用顯示驅動內存巾貞緩沖Frame buffer對顯示屏的像素點進行操作,以將所述位圖填充在對應的Frame buffer位置上,進而以所述預定顯示格式在所述顯示屏上顯示所述位圖。
[0009]其中,所述將所述顯示字符的請求發(fā)送至QT Embedded系統(tǒng)的副線程包括:將所述顯示字符的請求發(fā)送至字符顯示任務隊列;向所述副線程發(fā)送有任務的喚醒,以使所述副線程檢查所述字符顯示任務隊列,并按照先入先出的順序執(zhí)行所述字符顯示任務隊列中的請求
[0010]其中,所述從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖的步驟之前,還包括:按照預定字符格式制作字符的位圖;建立所述字符與所述位圖的字符位圖映射表并存儲所述位圖。
[0011]其中,所述預定顯示格式包括所述字符的大小、字體、顏色和對齊方式,所述字符包括以下類型的字符中的至少一種:阿拉伯數(shù)字、英文字母、漢字、符合和特殊符號。
[0012]為解決上述技術問題,本發(fā)明采用的另一個技術方案是:提供一種基于QTEmbedded系統(tǒng)的字符顯示系統(tǒng),所述字符顯示系統(tǒng)包括接收模塊,查找模塊和描繪顯示模塊:所述接收模塊,用于接收顯示字符的請求;所述查找模塊,用于從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖;所述描繪顯示模塊,用于按照預定顯示格式顯示所述位圖以響應所述顯示字符的請求。
[0013]其中,所述描繪顯示模塊具體用于調用顯示驅動內存巾貞緩沖Frame buffe對顯示屏的像素點進行操作,以將所述位圖填充在對應的Frame buffer位置上,進而以所述預定顯示格式在所述顯示屏上顯示所述位圖。
[0014]其中,所述字符顯示系統(tǒng)還包括:發(fā)送模塊,用于將所述顯示字符的請求發(fā)送至QTEmbedded系統(tǒng)的副線程,以使所述副線程從預存儲的字符位圖映射表中查找與所述字符對應的位圖;所述副線程還用于調用顯示驅動內存幀緩沖Frame buffer對顯示屏的像素點進行操作,以將所述位圖填充在對應的Frame buffer位置上,進而以所述預定顯示格式在所述顯示屏上顯示所述位圖。
[0015]其中,所述發(fā)送模塊包括:第一發(fā)送子模塊,用于將所述顯示字符的請求發(fā)送至字符顯示任務隊列;第二發(fā)送子模塊,用于向所述副線程發(fā)送有任務的喚醒,以使所述副線程檢查所述字符顯示任務隊列,并按照先入先出的順序執(zhí)行所述字符顯示任務隊列中的請求。
[0016]本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術的情況,本發(fā)明通過建立字符位圖映射表,在接收到顯示字符的請求時查找需要顯示的字符對應預定顯示格式的位圖,從而避免了現(xiàn)有技術中需要顯示字符時高頻率地計算字符的大小、字符對齊的影響、字符所在位置布局的影響等情況所占用的系統(tǒng)資源問題,能夠節(jié)省系統(tǒng)資源,避免影響其他功能,防止系統(tǒng)出現(xiàn)斷續(xù)及反應慢等現(xiàn)象,改善了用戶體驗。
【專利附圖】
【附圖說明】
[0017]圖1是本發(fā)明字符顯示方法一實施方式的流程圖;
[0018]圖2是本發(fā)明字符顯示方法第一【具體實施方式】的流程圖;
[0019]圖3是本發(fā)明字符顯示方法第二【具體實施方式】的流程圖;
[0020]圖4是本發(fā)明字符顯示系統(tǒng)第一實施方式的流程圖;
[0021]圖5是本發(fā)明字符顯示系統(tǒng)第二實施方式的流程圖。
【具體實施方式】
[0022]參閱圖1,圖1是本發(fā)明字符顯示方法一實施方式的流程圖,本實施方式字符顯示方法可以用于面向對象編程的系統(tǒng)中,譬如為基于QT Embedded的系統(tǒng),具體可以用于數(shù)控系統(tǒng)、測試儀器、秒表等顯示字符讀數(shù)的裝置上,本實施方式字符顯示方法包括但不限于以下步驟。
[0023]步驟S100,接收顯示字符的請求。
[0024]在步驟SlOO中,QT Embedded系統(tǒng)可以根據(jù)用戶的具體操作、待顯示列表等等方式而被動或主動地產(chǎn)生顯示字符的請求。
[0025]步驟S101,從預存儲的字符位圖映射表中查找與字符對應的位圖。
[0026]在步驟SlOl之前,本發(fā)明可以預先進行設置:按照預定字符格式制作字符的位圖,其中每個位圖對應于一個字符或者多個字符;接著,建立字符與位圖的字符位圖映射表并存儲位圖。而在步驟SlOl中,接收到顯示字符的請求而需要顯示字符時,直接根據(jù)字符位圖映射表查找與字符、需要顯示的字符對應的位圖。
[0027]需要說明的是,本實施方式所述的預定字符格式可以包括字符的大小、字體、顏色、背景,譬如大小為“5號”,字體為“宋體”,顏色為“紅色”等等。此外,本實施方式所述的字符具體可以包括以下類型的字符中的至少一種:阿拉伯數(shù)字、英文字母、漢字、符合和特殊符號,譬如“l(fā)、2、3、a、b、c、d、正常、異常、S、A、al、l正常、δ 2a”等類似的單個或組合的方式。相應地,位圖可以為阿拉伯數(shù)字、英文字母、漢字、特殊符號和其中的任意組合,譬如“l(fā)、2、3、a、b、c、d、正常、異常、S、A、al、l正常、δ 2a”等類似的單個或組合的方式。
[0028]舉例而言,在數(shù)控系統(tǒng)中,對于軸坐標變化的“快速”字符,同一個顯示位置的顯示方式和字符的格式可以是固定的,即字符的大小、字體、對齊方式等是不變的,且顯示的字符種類也是有限的,如數(shù)字O?9、大于10的數(shù)字、以及小數(shù)等,均是O?9的字符的排列組合。因此在數(shù)控系統(tǒng)中,要顯示的字符是有限的、比較固定的組合。不難看出,本實施方式把這些有限的顯示格式預先設置固定,每次刷新顯示字符時即可以從至少一個顯示格式表中自動/智能/默認選擇合適的進行排列組合。同理,對于其他字符,本實施方式作類似處理即可,在本【技術領域】人員容易結合理解的范圍內,不作贅述。
[0029]步驟S102,按照預定顯示格式顯示位圖以響應顯示字符的請求。
[0030]舉例來說,預定顯示格式可以包括:位圖(字符)的對齊方式、縮放比例等內容。
[0031]在步驟S102中,本實施方式將查找到的位圖按照預定顯示格式進行顯示,通過“抓取”“描畫”的直接方式,將位圖賦值描繪到顯示屏上,而無需再重新計算字體的大小、對齊和布局等,減少計算過程對系統(tǒng)性能和資源的占用和影響。
[0032]值得注意的是,本實施方式可以采用一般的位圖描畫函數(shù)進行描畫顯示,譬如QTEmbedded的位圖描畫函數(shù)等,在此不作限定。
[0033]本實施方式使用位圖的方式,具體采用位圖列表存儲映射關系的方式,將有限的字符以預定的字體、大小、背景顯示格式等設置存儲,而在需要更新顯示字符、或刷新畫面等時,將字符的字符串拆開成單獨獨立的、已經(jīng)存儲在位圖列表里的圖片格式的字符,就可以在顯示屏合適的位置擺列描畫出來。譬如“l(fā)、2、3、a、b、c、d、正常、異常、S、A、al、l正常、δ 2a”等類似的單個或組合的字符方式。相應地,所描畫的位圖可以為阿拉伯數(shù)字、英文字母、漢字、符號和特殊符號,譬如“1、2、3、&、13、(3、(1、正常、異常、δ、Λ、ει1、1正常、δ 2a”等類似的單個或組合的方式。
[0034]本發(fā)明通過建立字符位圖映射表,在需要顯示字符時查找并按照預定顯示格式顯示與需要顯示的字符對應的位圖,從而避免了現(xiàn)有技術中需要顯示字符時高頻率地計算字符的大小、字符對齊的影響、字符所在位置布局的影響等情況所占用的系統(tǒng)資源問題,能夠節(jié)省系統(tǒng)資源,避免影響其他功能,防止系統(tǒng)出現(xiàn)斷續(xù)及反應慢等現(xiàn)象,有效地提高了用戶體驗。
[0035]需要指出的是,上述實施方式適用于大部分的面向對象編程的系統(tǒng)中,然而對于Qt Embedded系統(tǒng)來說,如果顯示時采用QT Embedded的位圖描畫函數(shù),在每次描畫顯示時,仍需要計算當前位圖和其所在布局的位置影響,這種計算往往會占用大量的系統(tǒng)資源。此夕卜,QTEmbedded系統(tǒng)對于描畫顯示的操作限定在系統(tǒng)的主線程中,即描畫位圖或者顯示字符的操作必須放在和系統(tǒng)其它主要邏輯工作的同一個線程里,如果描畫刷新的操作占用過多系統(tǒng)資源,會明顯的影響到其它的邏輯操作,比如按鍵的響應速度會變慢等。
[0036]針對上述情況以解決上述技術問題,請參閱圖2,圖2是本發(fā)明字符顯示方法第一【具體實施方式】的流程圖,本實施方式字符顯示方法包括但不限于以下幾個步驟。
[0037]步驟S200,接收顯示字符的請求。
[0038]步驟S201,從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖。
[0039]其中,步驟S201請參閱前面實施方式步驟SlOl的相關描述,在本【技術領域】人員理解的范圍內,不作贅述。
[0040]步驟S202,調用顯示驅動內存Frame buffer對顯示屏的像素點進行操作,以將位圖填充在對應的Frame buffer位置上,進而以預定顯示格式在顯示屏上顯示位圖。
[0041]在步驟S202中,本實施方式Frame buffer將與需要顯示的字符對應的位圖按照預定顯示格式進行顯示,通過“抓取”“描畫”的直接方式,將位圖賦值描繪到顯示屏上,而無需再重新計算字體的大小、對齊和布局等,減少計算過程對系統(tǒng)性能和資源的占用和影響。
[0042]本實施方式在需要更新顯示字符、或刷新畫面等時,通過Frame buffer操作將字符的字符串拆開成單獨獨立的、已經(jīng)存儲在位圖列表里的圖片格式的字符,就可以在顯示屏合適的位置擺列描畫出來。在本實施方式中,所描畫的位圖可以為以下類型的字符中的至少一種:阿拉伯數(shù)字、英文字母、漢字、符號和特殊符號,譬如“l(fā)、2、3、a、b、c、d、正常、異常、δ、Λ、ει1、1正常、δ 2a”等類似的單個或組合的方式。
[0043]需要說明的是,本實施方式通過使用Frame buffer操作,可以將描畫位圖或者顯示字符等的操作放在和主線程并列的另一個線程(一般為副線程)里。不難理解的是,在QT Embedded系統(tǒng)中,操作Frame buffer并不屬于QT系統(tǒng)本身的功能,因此無需限制于主線程里,進一步而言,當操作Frame buffer放在另一個副線程之后,即使Frame buffer操作占用再多的資源,也不會干擾影響主線程里面的邏輯計算、響應回饋等,因此在很大程度上提高了系統(tǒng)的整體性能。
[0044]需要指出的是,在圖2所述的實施方式中,由于采用了另一個線程(副線程)執(zhí)行Frame buffer操作描畫顯示位圖,因此需要保證系統(tǒng)主線程的顯示字符的請求與副線程的Frame buffer操作同步,請參閱圖3,圖3是本發(fā)明字符顯示方法第二【具體實施方式】的流程圖,本實施方式字符顯示方法包括但不限于以下幾個步驟。
[0045]步驟S300,接收顯示字符的請求。
[0046]步驟S301,將顯示字符的請求發(fā)送至QT Embedded系統(tǒng)的副線程,以使副線程從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖。
[0047]在步驟S301中,舉例來說,S300中系統(tǒng)檢測到需要顯示字符時,可以首先產(chǎn)生并記錄相應的字符顯示請求。譬如當前字符顯示為“209.23”,而下一時刻需要顯示的字符為“210.55”,此時,系統(tǒng)產(chǎn)生并記錄需要顯示“210.55”的請求。
[0048]接著,在步驟S301中,在記錄顯示字符的請求后,向QT Embedded系統(tǒng)中的副線程發(fā)送有任務的喚醒。
[0049]在記錄需要顯示“210.55”的請求后,同時向副線程發(fā)送有所述“顯示210.55”的喚醒,以備副線程進行跟進處理。
[0050]其中,副線程在被喚醒后,檢查顯示字符的請求。
[0051]當副線程的資源可提供工作服務時,受到喚醒并檢查已記錄的顯示“210.55”的請求。
[0052]需要說明的是,步驟S301中如果請求為多個,則將所述顯示字符的請求發(fā)送至字符顯示任務隊列;接著,向所述副線程發(fā)送有任務的喚醒,以使所述副線程檢查所述字符顯示任務隊列,并按照先入先出的順序執(zhí)行所述字符顯示任務隊列中的請求。
[0053]不難看出,通過這種方式,可以記錄保存所有顯示字符的請求,避免因為雙線程繁忙而導致無法響應顯示字符的請求甚至漏掉其中一個或多個的顯示字符的請求,有效地避免繁忙時無法響應或者漏掉顯示字符的請求。
[0054]本實施方式可以預先進行設置:按照預定字符格式制作字符的位圖;接著,建立字符與位圖的字符位圖映射表并存儲位圖。而在需要顯示字符時,直接根據(jù)字符位圖映射表查找與字符對應的位圖。
[0055]需要說明的是,本實施方式所述的預定字符格式可以包括字符的大小、字體、顏色、背景,譬如大小為“5號”,字體為“宋體”,顏色為“紅色”等等。此外,本實施方式所述的字符具體可以包括阿拉伯數(shù)字、英文字母、漢字、特殊符號和其中的任意組合,譬如“1、2、3、a、b、c、d、正常、異常、δ、Λ、&1、1正常、δ 2a”等類似的單個或組合的方式。相應地,位圖可以為阿拉伯數(shù)字、英文字母、漢字、特殊符號和其中的任意組合,譬如“l(fā)、2、3、a、b、c、d、正常、異常、δ、Λ、&1、1正常、δ 2a”等類似的單個或組合的方式。
[0056]舉例而言,在數(shù)控系統(tǒng)中,對于軸坐標變化的“快速”字符,同一個顯示位置的顯示方式可以是固定的,即字符的大小、字體、對齊方式等是不變的,且顯示的字符種類也是有限的,如數(shù)字O?9、大于10的數(shù)字、以及小數(shù)等,均是O?9的字符的排列組合。因此在數(shù)控系統(tǒng)中,要顯示的字符是有限的、比較固定的組合。不難看出,本實施方式把這些有限的顯示格式預先設置固定,每次刷新顯示字符時即可以從至少一個顯示格式表中自動/智能/默認選擇合適的進行排列組合。同理,對于其他字符,本實施方式作類似處理即可,在本【技術領域】人員容易結合理解的范圍內,不作贅述。
[0057]步驟S302,副線程調用顯示驅動內存巾貞緩沖Frame buffer對顯示屏的像素點進行操作,以將位圖填充在對應的Frame buffer位置上,進而以預定顯示格式在顯示屏上顯示位圖。
[0058]在步驟S302中,如前所述,副線程在被喚醒后,檢查該字符顯示任務隊列,并按照先入先出的順序處理多個顯示字符的請求,直到依序將字符顯示任務隊列中的所有字符的位圖都以預定顯示格式在顯示屏上描畫顯示。
[0059]綜上所述,本發(fā)明實施方式的字符顯示方法將字符映射為固定的位圖,使得每次刷新顯示時無需頻繁地計算字體、大小、對齊等因素,同時,本發(fā)明通過Frame buffer操作避開QT Embedded對位圖描畫時對齊、布局等的計算,此外,本發(fā)明可以通過字符顯示任務隊列和主副線程的配合,提高響應效率并避免顯示字符的請求的遺漏。結合上述多個實施方式,本發(fā)明可以有效地提高基于QT Embedded環(huán)境下的快速的字符顯示的效率,同時,本發(fā)明能夠有效地節(jié)省系統(tǒng)資源,避免影響其他功能,防止系統(tǒng)出現(xiàn)斷續(xù)及反應慢等現(xiàn)象,改善了用戶體驗。
[0060]請參閱圖4,圖4是本發(fā)明字符顯示系統(tǒng)第一實施方式的流程圖,本實施方式提供一種可以用于面向對象編程,譬如基于QT Embedded的字符顯示系統(tǒng),本實施方式的字符顯示系統(tǒng)包括但不限于接收模塊40,查找模塊41和描繪顯示模塊42。
[0061]接收模塊40用于接收顯示字符的請求。其中QT Embedded系統(tǒng)可以根據(jù)用戶的具體操作、待顯示列表等等方式而被動或主動地產(chǎn)生顯示字符的請求。
[0062]在本實施方式中,查找模塊41可以用于根據(jù)接收模塊40接收的顯示字符的請求,從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖,以響應顯示字符的請求。
[0063]其中,本實施方式可以預先進行設置:按照預定顯示格式制作字符的位圖;接著,建立字符與位圖的字符位圖映射表并存儲位圖。通過這種方式,查找模塊41,在需要顯示字符時,直接根據(jù)字符位圖映射表查找與需要顯示的字符對應的位圖。
[0064]需要說明的是,本實施方式所述的預定顯示格式可以包括字符的大小、字體、顏色、背景,譬如大小為“5號”,字體為“宋體”,顏色為“紅色”等等。此外,本實施方式所述的字符具體可以包括阿拉伯數(shù)字、英文字母、漢字、特殊符號和其中的任意組合,譬如“1、2、3、
a、b、c、d、正常、異常、δ、Λ、&1、1正常、δ 2a”等類似的單個或組合的方式。相應地,位圖可以為阿拉伯數(shù)字、英文字母、漢字、特殊符號和其中的任意組合,譬如“l(fā)、2、3、a、b、c、d、正常、異常、δ、Λ、&1、1正常、δ 2a”等類似的單個或組合的方式。
[0065]舉例而言,在數(shù)控系統(tǒng)中,對于軸坐標變化的“快速”字符,同一個顯示位置的顯示方式可以是固定的,即字符的大小、字體、對齊方式等是不變的,且顯示的字符種類也是有限的,如數(shù)字O?9、大于10的數(shù)字、以及小數(shù)等,均是O?9的字符的排列組合。因此在數(shù)控系統(tǒng)中,要顯示的字符是有限的、比較固定的組合。不難看出,本實施方式把這些有限的顯示格式預先設置固定,每次刷新顯示字符時即可以從至少一個顯示格式表中自動/智能/默認選擇合適的進行排列組合。同理,對于其他字符,本實施方式作類似處理即可,在本【技術領域】人員容易結合理解的范圍內,不作贅述。
[0066]描繪顯示模塊42可以用于按照預定顯示格式顯示位圖以響應顯示字符的請求。本實施方式描繪顯示模塊42根據(jù)查找到的位圖的預定顯示格式進行顯示,譬如通過“抓取” “描畫”的直接方式,將位圖賦值描繪到顯示屏上,而無需再重新計算字體的大小、對齊和布局等,減少計算過程對系統(tǒng)性能和資源的占用和影響。
[0067]本實施方式使用位圖的方式,具體采用位圖列表存儲映射關系的方式,將有限的字符以預定的字體、大小、背景顯示格式等設置存儲,而在需要更新顯示字符、或刷新畫面等時,將字符的字符串拆開成單獨獨立的、已經(jīng)存儲在位圖列表里的圖片格式的字符,就可以在顯示屏合適的位置擺列描畫出來。譬如“l(fā)、2、3、a、b、c、d、正常、異常、S、A、al、l正常、δ 2a”等類似的單個或組合的字符方式。相應地,所描畫的位圖可以為阿拉伯數(shù)字、英文字母、漢字、特殊符號和其中的任意組合,譬如“l(fā)、2、3、a、b、c、d、正常、異常、δ、A、al、l正常、δ 2a”等類似的單個或組合的方式。
[0068]本發(fā)明通過建立字符位圖映射表,在需要顯示字符時查找顯示預定顯示格式的位圖,從而避免了現(xiàn)有技術中需要顯示字符時高頻率地計算字符的大小、字符對齊的影響、字符所在位置布局的影響等情況所占用的系統(tǒng)資源問題,能夠節(jié)省系統(tǒng)資源,避免影響其他功能,防止系統(tǒng)出現(xiàn)斷續(xù)及反應慢等現(xiàn)象,有效地提高了用戶體驗。
[0069]請參閱圖5,圖5是本發(fā)明字符顯示系統(tǒng)第二實施方式的流程圖,本實施方式字符顯示系統(tǒng)包括但不限于接收模塊40、發(fā)送模塊50、查找模塊41、描繪顯示模塊42和顯示屏43等。
[0070]需要說明的是,本實施方式字符顯示系統(tǒng)可以為嵌入式圖形化界面開發(fā)工具QTEmbedded 系統(tǒng)。
[0071]接收模塊40用于接收顯示字符的請求。其中QT Embedded系統(tǒng)可以根據(jù)用戶的具體操作、待顯示列表等等方式而被動或主動地產(chǎn)生顯示字符的請求。
[0072]在本實施方式中,發(fā)送模塊50可以用于將所述顯示字符的請求發(fā)送至QTEmbedded系統(tǒng)的副線程,以使所述副線程從預存儲的字符位圖映射表中查找與所述字符對應的位圖;接著,副線程還用于調用顯示驅動內存幀緩沖Frame buffer對顯示屏的像素點進行操作,以將位圖填充在對應的Frame buffer位置上,進而以預定顯示格式在顯示屏43上顯示所述位圖。
[0073]優(yōu)選的,字符顯示任務隊列可以為多個并按時間先后順序記錄到字符顯示任務隊列中,發(fā)送模塊50具體可以包括:第一發(fā)送子模塊,用于將顯示字符的請求發(fā)送至字符顯示任務隊列;第二發(fā)送子模塊,用于向副線程發(fā)送有任務的喚醒,以使副線程檢查所述字符顯示任務隊列,并按照先入先出的順序執(zhí)行所述字符顯示任務隊列中的請求。本實施方式通過主、副線程以及字符顯示任務隊列的方式,可以有效地保證系統(tǒng)主線程的顯示字符的請求與副線程的Frame buffer操作同步。
[0074]描繪顯示模塊42具體用于調用顯示驅動內存幀緩沖Frame buffe對顯示屏43的像素點進行操作,以將位圖填充在對應的Frame buffer位置上,進而以預定顯示格式在顯示屏43上顯示位圖。
[0075]不難理解的是,本實施方式通過使用Frame buffer操作,可以將描畫位圖或者顯示字符等的操作放在和主線程并列的另一個線程(一般為副線程)里進行執(zhí)行。不難理解的是,在QT Embedded系統(tǒng)中,操作Frame buffer并不屬于QT系統(tǒng)本身的功能,因此無需限制于主線程里,進一步而言,當操作Frame buffer放在另一個副線程之后,即使Framebuffer操作占用再多的資源,也不會干擾影響主線程里面的邏輯計算、響應回饋等,因此在很大程度上提高了系統(tǒng)的整體性能。
[0076]此外,本實施方式字符顯示系統(tǒng)的具體實現(xiàn)方式可以參閱前面實施方式字符顯示方法的相關描述,在本【技術領域】人員容易結合理解的范圍內,不再贅述。
[0077]本發(fā)明實施方式的字符顯示系統(tǒng)將字符映射為固定的位圖,使得每次刷新顯示時無需頻繁地計算字體、大小、對齊等,同時,本發(fā)明通過Frame buffer操作避開QT Embedded對位圖描畫時對齊、布局等的計算,此外,本發(fā)明可以通過字符顯示任務隊列和主副線程的配合,提高響應效率并避免顯示字符的請求的遺漏。結合上述多個實施方式,本發(fā)明可以有效地提高基于QT Embedded環(huán)境下的快速字符顯示的效率,同時,本發(fā)明能夠有效地節(jié)省系統(tǒng)資源,避免影響其他功能,防止系統(tǒng)出現(xiàn)斷續(xù)及反應慢等現(xiàn)象,改善了用戶體驗。
[0078]以上所述僅為本發(fā)明的實施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的【技術領域】,均同理包括在本發(fā)明的專利保護范圍內。
【權利要求】
1.一種基于QT Embedded系統(tǒng)的字符顯示方法,其特征在于,所述字符顯示方法包括: 接收顯示字符的請求; 從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖; 按照預定顯示格式顯示所述位圖以響應所述顯示字符的請求。
2.根據(jù)權利要求1所述的字符顯示方法,其特征在于,所述按照預定顯示格式顯示所述位圖的步驟,具體包括: 調用顯示驅動內存幀緩沖Frame buffer對顯示屏的像素點進行操作,以將所述位圖填充在對應的Frame buffer位置上,進而以所述預定顯示格式在所述顯示屏上顯示所述位圖。
3.根據(jù)權利要求2所述的字符顯示方法,其特征在于,所述從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖的步驟包括: 將所述顯示字符的請求發(fā)送至QT Embedded系統(tǒng)的副線程,以使所述副線程從預存儲的字符位圖映射表中查找與所述字符對應的位圖; 所述按照預定顯示格式顯示所述位圖以響應所述顯示字符的請求包括: 所述副線程調用顯示驅動內存幀緩沖Frame buffer對顯示屏的像素點進行操作,以將所述位圖填充在對應的Frame buffer位置上,進而以所述預定顯示格式在所述顯示屏上顯示所述位圖。
4.根據(jù)權利要求3所述的字符顯示方法,其特征在于,所述將所述顯示字符的請求發(fā)送至QT Embedded系統(tǒng)的副線程包括: 將所述顯示字符的請求發(fā)送至字符顯示任務隊列; 向所述副線程發(fā)送有任務的喚醒,以使所述副線程檢查所述字符顯示任務隊列,并按照先入先出的順序執(zhí)行所述字符顯示任務隊列中的請求。
5.根據(jù)權利要求1-4任一項所述的字符顯示方法,其特征在于,所述從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖的步驟之前,還包括: 按照預定字符格式制作字符的位圖; 建立所述字符與所述位圖的字符位圖映射表并存儲所述位圖。
6.根據(jù)權利要求5所述的字符顯示方法,其特征在于,所述預定字符格式包括所述字符的大小、字體、顏色,所述字符包括以下類型的字符中的至少一種:阿拉伯數(shù)字、英文字母、漢字、符號和特殊符號。
7.一種基于QT Embedded系統(tǒng)的字符顯示系統(tǒng),其特征在于,所述字符顯示系統(tǒng)包括: 接收模塊,用于接收顯示字符的請求; 查找模塊,用于從預存儲的字符位圖映射表中查找與需要顯示的字符對應的位圖; 描繪顯示模塊,用于按照預定顯示格式顯示所述位圖以響應所述顯示字符的請求。
8.根據(jù)權利要求7所述的字符顯示系統(tǒng),其特征在于,所述描繪顯示模塊具體用于調用顯示驅動內存幀緩沖Frame buffe對顯示屏的像素點進行操作,以將所述位圖填充在對應的Frame buffer位置上,進而以所述預定顯示格式在所述顯示屏上顯示所述位圖。
9.根據(jù)權利要求8所述的字符顯示系統(tǒng),其特征在于,所述字符顯示系統(tǒng)還包括: 發(fā)送模塊,用于將所述顯示字符的請求發(fā)送至QT Embedded系統(tǒng)的副線程,以使所述副線程從預存儲的字符位圖映射表中查找與所述字符對應的位圖; 所述副線程還用于調用顯示驅動內存幀緩沖Frame buffer對顯示屏的像素點進行操作,以將所述位圖填充在對應的Frame buffer位置上,進而以所述預定顯示格式在所述顯示屏上顯示所述位圖。
10.根據(jù)權利要求9所述的字符顯示系統(tǒng),其特征在于, 所述發(fā)送模塊包括: 第一發(fā)送子模塊,用于將所述顯示字符的請求發(fā)送至字符顯示任務隊列; 第二發(fā)送子模塊,用于向所述副線程發(fā)送有任務的喚醒,以使所述副線程檢查所述字符顯示任務隊列,并按照先入先出的順序執(zhí)行所述字符顯示任務隊列中的請求。
【文檔編號】G06F3/14GK104199628SQ201410386727
【公開日】2014年12月10日 申請日期:2014年8月7日 優(yōu)先權日:2014年8月7日
【發(fā)明者】周國麟 申請人:北京配天技術有限公司