本發(fā)明屬于半導(dǎo)體設(shè)備技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)更新方法及系統(tǒng)、半導(dǎo)體設(shè)備。
背景技術(shù):
半導(dǎo)體設(shè)備的控制系統(tǒng)不僅需要接收用戶下發(fā)的操作指令,還要將設(shè)備的狀態(tài)等信息反饋給用戶,為了保證數(shù)據(jù)的準(zhǔn)確性,需要實(shí)時(shí)數(shù)據(jù)更新,并將更新的數(shù)據(jù)顯示在界面上供用戶觀察或者存儲至數(shù)據(jù)庫中待用戶后期查閱。
為實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)更新,現(xiàn)有技術(shù)中采用的數(shù)據(jù)更新系統(tǒng)為:對應(yīng)每個(gè)界面窗體模塊或者類模塊(可稱之為:訂閱者)定義有下位機(jī)的數(shù)據(jù)類型(即,data類型),且訂閱有更新事件,這樣,在每個(gè)數(shù)據(jù)類型發(fā)生變化時(shí),觸發(fā)訂閱者的更新事件通知給該訂閱者,該訂閱者接收到該更新事件后調(diào)用相應(yīng)接口類型的更新方法(update)進(jìn)行數(shù)據(jù)更新。
采用上述數(shù)據(jù)更新系統(tǒng)在實(shí)際應(yīng)用中發(fā)現(xiàn):第一,當(dāng)上位機(jī)和下位機(jī)斷開連接后需要重新連接時(shí),需要重新查找每個(gè)訂閱者的更新事件來進(jìn)行訂閱,這樣查找量較大,會影響系統(tǒng)性能;第二,每訂閱一個(gè)更新事件都需要建立一個(gè)相關(guān)類型的委托,因此,訂閱大量更新事件就需要建立大量的委托,這會增加系統(tǒng)的開銷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題之一,提出了一種數(shù)據(jù)更新方法及系統(tǒng)、半導(dǎo)體設(shè)備,可以降低系統(tǒng)開銷和保證系統(tǒng)性能。
為解決上述問題之一,本發(fā)明提供了一種數(shù)據(jù)更新方法,包括以 下步驟:預(yù)先設(shè)置配置文件,所述配置文件中定義有所有數(shù)據(jù)類型對應(yīng)的更新事件;讀取所述配置文件來訂閱所述更新事件;根據(jù)任一所述數(shù)據(jù)類型需要更新時(shí)觸發(fā)的所述更新事件進(jìn)行數(shù)據(jù)更新。
優(yōu)先地,所述更新方法,包括以下步驟:實(shí)時(shí)緩存最新數(shù)據(jù);按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)進(jìn)行更新。
優(yōu)先地,在所述配置文件中定義每個(gè)所述數(shù)據(jù)類型的屬性為顯示屬性或存儲屬性;在所述緩存更新數(shù)據(jù)步驟之前,還包括:識別當(dāng)前數(shù)據(jù)類型的屬性,若為顯示屬性,則緩存最新數(shù)據(jù),按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)進(jìn)行更新;若為存儲屬性,則直接更新數(shù)據(jù)。
優(yōu)先地,所述按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)進(jìn)行更新,包括以下步驟:將按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)廣播至所有的界面窗體模塊,每個(gè)所述界面窗體模塊對應(yīng)至少一個(gè)所述數(shù)據(jù)類型,以供所述界面窗體模塊識別該最新數(shù)據(jù)所屬的數(shù)據(jù)類型是否與自身對應(yīng),若是,則更新顯示該最新數(shù)據(jù)。
本發(fā)明還提供一種數(shù)據(jù)更新系統(tǒng),包括:預(yù)設(shè)模塊,用于預(yù)先設(shè)置配置文件,所述配置文件中定義有所有數(shù)據(jù)類型對應(yīng)的更新事件;更新模塊,用于進(jìn)行數(shù)據(jù)更新;訂閱模塊,用于讀取所述配置文件來訂閱所述更新事件,以及根據(jù)任一所述數(shù)據(jù)類型需要更新時(shí)觸發(fā)的所述更新事件,調(diào)用所述更新模塊進(jìn)行數(shù)據(jù)更新。
優(yōu)先地,所述更新模塊包括:緩存子模塊,用于實(shí)時(shí)緩存最新數(shù)據(jù);更新子模塊,用于按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)進(jìn)行更新。
優(yōu)先地,所述預(yù)設(shè)模塊,還用于在所述配置文件中定義每個(gè)所述數(shù)據(jù)類型的屬性為顯示屬性或存儲屬性;所述更新模塊還包括:識別子模塊,用于識別當(dāng)前數(shù)據(jù)類型的屬性;所述緩存子模塊,用于在所述識別子模塊識別當(dāng)前數(shù)據(jù)類型的屬性為顯示屬性時(shí)緩存最新數(shù)據(jù);所述更新子模塊,用于在所述識別子模塊識別當(dāng)前數(shù)據(jù)類型的屬性為顯示屬性時(shí),按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)進(jìn)行更新;以及在所述識別子模塊識別當(dāng)前數(shù)據(jù)類型的屬性為存儲屬性時(shí),直接更新數(shù)據(jù)。
優(yōu)先地,所述更新子模塊,用于將按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)廣播至所有的界面窗體模塊,每個(gè)所述界面窗體模塊對應(yīng)至少一 個(gè)所述數(shù)據(jù)類型,以供所述界面窗體模塊識別該最新數(shù)據(jù)所屬的數(shù)據(jù)類型是否與自身對應(yīng),若是,則更新顯示該最新數(shù)據(jù)。
本發(fā)明還提供一種半導(dǎo)體設(shè)備,包括數(shù)據(jù)更新系統(tǒng),所述數(shù)據(jù)更新系統(tǒng)采用本發(fā)明上述提供的數(shù)據(jù)更新系統(tǒng)。
本發(fā)明具有以下有益效果:
本發(fā)明提供的數(shù)據(jù)更新方法,由于所有的數(shù)據(jù)類型對應(yīng)配置一個(gè)更新事件,因此,僅需要一個(gè)訂閱者讀取該配置文件來訂閱該更新事件即可,這樣,可實(shí)現(xiàn)多種數(shù)據(jù)類型集中管理,與現(xiàn)有技術(shù)相比,不僅只需訂閱一個(gè)更新事件,也即建立一次委托;而且還在上位機(jī)和下位機(jī)斷連后重新連接時(shí)不需要查找訂閱每個(gè)訂閱者的更新事件,因而可以降低系統(tǒng)開銷和保證系統(tǒng)性能。
本發(fā)明提供的數(shù)據(jù)更新系統(tǒng),由于通過預(yù)設(shè)模塊預(yù)先設(shè)置所有的數(shù)據(jù)類型對應(yīng)配置一個(gè)更新事件的配置文件,因此,僅需要一個(gè)訂閱模塊(即,訂閱者)讀取該配置文件來訂閱該更新事件即可,這樣,可實(shí)現(xiàn)多種數(shù)據(jù)類型集中管理,與現(xiàn)有技術(shù)相比,不僅只需訂閱一個(gè)更新事件,也即建立一次委托;而且還在上位機(jī)和下位機(jī)斷連后重新連接時(shí)不需要查找訂閱每個(gè)訂閱者的更新事件,因而可以降低系統(tǒng)開銷和保證系統(tǒng)性能。
本發(fā)明提供的半導(dǎo)體設(shè)備,其采用本發(fā)明提供的數(shù)據(jù)更新系統(tǒng),可以降低系統(tǒng)開銷和保證系統(tǒng)性能。
附圖說明
圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)更新方法的流程圖;
圖2為圖1中步驟s3的流程圖;
圖3為本發(fā)明實(shí)施例提供的數(shù)據(jù)更新系統(tǒng)的原理框圖;
圖4為圖3中更新模塊的一種原理框圖;以及
圖5為圖3中更新模塊的另一種原理框圖。
具體實(shí)施方式
為使本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明的技術(shù)方案,下面結(jié)合 附圖來對本發(fā)明提供的數(shù)據(jù)更新方法及系統(tǒng)、半導(dǎo)體設(shè)備進(jìn)行詳細(xì)描述。
圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)更新方法的流程圖,請參閱圖1,本實(shí)施例提供的數(shù)據(jù)更新方法包括以下步驟:
s1,預(yù)先設(shè)置配置文件,配置文件中定義有所有數(shù)據(jù)類型對應(yīng)的更新事件。其中,數(shù)據(jù)類型為需要數(shù)據(jù)更新的數(shù)據(jù)類型。
s2,讀取配置文件來訂閱上述更新事件。
s3,根據(jù)任一所述數(shù)據(jù)類型需要更新時(shí)觸發(fā)的所述更新事件進(jìn)行數(shù)據(jù)更新。
具體地,所謂數(shù)據(jù)類型需要更新時(shí)可以設(shè)置為在數(shù)據(jù)類型的數(shù)據(jù)發(fā)生變化時(shí),還可以設(shè)置為在數(shù)據(jù)類型的數(shù)據(jù)發(fā)生一定程度變化時(shí)。具體地,進(jìn)行數(shù)據(jù)更新可調(diào)用更新方法來進(jìn)行數(shù)據(jù)更新,更具體地,是按照更新數(shù)據(jù)和數(shù)據(jù)類型對應(yīng)的規(guī)則來更新。
本發(fā)明實(shí)施例提供的數(shù)據(jù)更新方法,由于所有的數(shù)據(jù)類型對應(yīng)配置一個(gè)更新事件,因此,僅需要一個(gè)訂閱者讀取該配置文件來訂閱該更新事件即可,這樣,可實(shí)現(xiàn)多種數(shù)據(jù)類型集中管理,與現(xiàn)有技術(shù)相比,不僅只需訂閱一個(gè)更新事件,也即建立一次委托;而且還在上位機(jī)和下位機(jī)斷連后重新連接時(shí)不需要查找訂閱每個(gè)訂閱者的更新事件,因而可以降低系統(tǒng)開銷和保證系統(tǒng)性能。
在本實(shí)施例中,優(yōu)選地,步驟s3包括以下步驟:
s31,實(shí)時(shí)緩存最新數(shù)據(jù)。
s32,按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)進(jìn)行更新。
具體地,預(yù)設(shè)周期為人為預(yù)先設(shè)置的時(shí)間,該預(yù)設(shè)時(shí)間的倒數(shù)則為數(shù)據(jù)更新頻率,例如,預(yù)設(shè)周期可以為500毫秒。
借助上述步驟s31~s32可實(shí)現(xiàn)按照一定周期或頻率進(jìn)行數(shù)據(jù)更新,這與現(xiàn)有技術(shù)相比,可避免出現(xiàn)數(shù)據(jù)變化頻繁而有些更新是不必要的問題,從而可進(jìn)一降低系統(tǒng)的開銷。
另外,優(yōu)選地,在配置文件中定義每個(gè)數(shù)據(jù)類型的屬性為顯示屬性或存儲屬性;在此情況下,如圖2所示,在步驟s31之前還包括:
s30,識別當(dāng)前數(shù)據(jù)類型的屬性,若為顯示屬性,則執(zhí)行步驟s31; 若為存儲屬性,則進(jìn)入步驟s33。
s33,直接更新數(shù)據(jù)。
借助上述步驟s30~步驟s33,可在數(shù)據(jù)類型的屬性為顯示屬性時(shí)按照一定周期或頻率進(jìn)行數(shù)據(jù)更新,這樣不僅可使界面上數(shù)據(jù)的更新頻率在肉眼可識別的范圍內(nèi),因而可避免出現(xiàn)沒有意義、更新頻率超出肉眼可識別的范圍的更新,從而可進(jìn)一步降低開銷,而且還可避免出現(xiàn)更新線程和ui線程(即,顯示線程)之間頻繁切換引發(fā)回調(diào)超時(shí)的問題;在此之外,考慮數(shù)據(jù)類型的屬性為存儲屬性時(shí)不需要考慮顯示的上述情況,因此,可直接將更新數(shù)據(jù)進(jìn)行更新,以保證存儲在數(shù)據(jù)庫內(nèi)數(shù)據(jù)的實(shí)時(shí)性、準(zhǔn)確性。
具體地,步驟s32包括:
將按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)廣播至所有的界面窗體模塊,每個(gè)界面窗體模塊對應(yīng)至少一個(gè)數(shù)據(jù)類型,以供界面窗體模塊識別該最新數(shù)據(jù)所屬的數(shù)據(jù)類型是否與自身對應(yīng),若是,則更新顯示該最新數(shù)據(jù)。
具體地,將該更新數(shù)據(jù)以事件的形式廣播出去,界面窗體模塊根據(jù)廣播的事件,識別隨事件而來的更新數(shù)據(jù)所屬的數(shù)據(jù)類型是否與自身對應(yīng)。
圖3為本發(fā)明實(shí)施例提供的數(shù)據(jù)更新系統(tǒng)的原理框圖,請參閱圖3,本發(fā)明實(shí)施例提供的數(shù)據(jù)更新系統(tǒng)包括:
預(yù)設(shè)模塊10,用于預(yù)先設(shè)置配置文件,所述配置文件中定義有所有數(shù)據(jù)類型對應(yīng)的更新事件。
更新模塊11,用于進(jìn)行數(shù)據(jù)更新。
訂閱模塊12,用于讀取所述配置文件來訂閱所述更新事件,以及根據(jù)任一數(shù)據(jù)類型需要更新時(shí)觸發(fā)的所述更新事件,調(diào)用更新模塊11進(jìn)行數(shù)據(jù)更新。
具體地,訂閱模塊12不僅可以為界面窗體模塊或類模塊,當(dāng)然,也可以為除去界面窗體模塊或類模塊另外設(shè)置的模塊。
本發(fā)明實(shí)施例提供的數(shù)據(jù)更新系統(tǒng),由于通過預(yù)設(shè)模塊10預(yù)先設(shè)置所有的數(shù)據(jù)類型對應(yīng)配置一個(gè)更新事件的配置文件,因此,僅需要 一個(gè)訂閱模塊(即,訂閱者)讀取該配置文件來訂閱該更新事件即可,這樣,可實(shí)現(xiàn)多種數(shù)據(jù)類型集中管理,與現(xiàn)有技術(shù)相比,不僅只需訂閱一個(gè)更新事件,也即建立一次委托;而且還在上位機(jī)和下位機(jī)斷連后重新連接時(shí)不需要查找訂閱每個(gè)訂閱者的更新事件,因而可以降低系統(tǒng)開銷和保證系統(tǒng)性能。
優(yōu)選地,如圖4所示,更新模塊11包括:
緩存子模塊111,用于實(shí)時(shí)緩存最新數(shù)據(jù)。
更新子模塊112,用于按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)進(jìn)行更新。
進(jìn)一步優(yōu)選地,預(yù)設(shè)模塊10,還用于在所述配置文件中定義每個(gè)所述數(shù)據(jù)類型的屬性為顯示屬性或存儲屬性。在此情況下,如圖5所示,更新模塊11還包括:
識別子模塊113,用于識別當(dāng)前數(shù)據(jù)類型的屬性.
緩存子模塊111,用于在識別子模塊識別當(dāng)前數(shù)據(jù)類型的屬性為顯示屬性時(shí)緩存最新數(shù)據(jù)。
更新子模塊112,用于在識別子模塊識別當(dāng)前數(shù)據(jù)類型的屬性為顯示屬性時(shí),按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)進(jìn)行更新;以及在所述識別子模塊識別當(dāng)前數(shù)據(jù)類型的屬性為存儲屬性時(shí),直接更新數(shù)據(jù)。
具體地,更新子模塊,用于將按照預(yù)設(shè)周期讀取緩存的最新數(shù)據(jù)廣播至所有的界面窗體模塊,每個(gè)界面窗體模塊對應(yīng)至少一個(gè)數(shù)據(jù)類型,以供界面窗體模塊識別該最新數(shù)據(jù)所屬的數(shù)據(jù)類型是否與自身對應(yīng),若是,則更新顯示該最新數(shù)據(jù)。
作為另外一個(gè)技術(shù)方案,本發(fā)明實(shí)施例還提供一種半導(dǎo)體設(shè)備,包括數(shù)據(jù)更新系統(tǒng),所述數(shù)據(jù)更新系統(tǒng)采用本發(fā)明上述實(shí)施例提供的數(shù)據(jù)更新系統(tǒng)。
本發(fā)明實(shí)施例提供的半導(dǎo)體設(shè)備,其通過采用本發(fā)明上述實(shí)施例提供上述數(shù)據(jù)更新系統(tǒng),可以數(shù)據(jù)更新系統(tǒng)的開銷。
可以理解的是,以上實(shí)施方式僅僅是為了說明本發(fā)明的原理而采用的示例性實(shí)施方式,然而本發(fā)明并不局限于此。對于本領(lǐng)域內(nèi)的普通技術(shù)人員而言,在不脫離本發(fā)明的精神和實(shí)質(zhì)的情況下,可以做出 各種變型和改進(jìn),這些變型和改進(jìn)也視為本發(fā)明的保護(hù)范圍。