可配置式圖表應(yīng)用系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種應(yīng)用于圖表顯示場合的應(yīng)用系統(tǒng)架構(gòu)和軟件體系結(jié)構(gòu)。
【背景技術(shù)】
[0002]新的數(shù)學(xué)模型時代雖然各種二維圖表工具越來越多,功能越來越強,但是其基本模式?jīng)Q定了在處理復(fù)雜和實時性要求的情況下難以滿足要求。很多時候仍然需要借助程序編碼實現(xiàn)?,F(xiàn)有的圖表應(yīng)用需求中,主要是采用現(xiàn)成的軟件和控件,如OriginPro和XtremeToolkitPro的TCHART控件,通過硬編碼的方式集成到應(yīng)用中,或者通過商業(yè)軟件加載固定格式的數(shù)據(jù)實現(xiàn)圖表的顯示。但是這些應(yīng)用方式要么都靠硬編碼,要么不能實時顯示,要么只能顯示固定格式的圖表,要么不能顯示海量曲線,要么擴(kuò)展困難,通常很難兼顧通用、易用、穩(wěn)定和可擴(kuò)展。在上述軟件和控件中,OriginPro是一種曲線分析工具,它主要關(guān)注于曲線數(shù)據(jù)的顯示和分析,只支持幾種固定格式的數(shù)據(jù),并且不支持實時顯示以及除曲線外的其它圖表顯示,如餅圖、柱狀圖、星歷圖等。Xtreme ToolkitPro的TCHART控件是一個窗口控件,能實時顯示曲線、柱狀圖和餅圖,但不能高效的顯示海量曲線,而且其開發(fā)過程完全依靠硬編碼,修改非常不便,并且不容易擴(kuò)展。再有就是完全從底層開發(fā),這種方式工作量巨大,而且復(fù)雜,效率極為低下。如何結(jié)合現(xiàn)有技術(shù)的各個優(yōu)點,既要避免硬編碼,又要靈活配置,又要具有良好的可擴(kuò)展性和穩(wěn)定性,還要能實時顯示海量曲線在技術(shù)和實現(xiàn)上是一種挑戰(zhàn),國內(nèi)外迄今還沒有這樣的系統(tǒng)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是針對現(xiàn)有技術(shù)存在的完全依賴硬編碼、工作量巨大且復(fù)雜、不能高效顯示海量曲線、不易擴(kuò)展,開發(fā)效率低下的不足之處,提供了一種配置靈活,圖表開發(fā)具有良好可擴(kuò)展性和穩(wěn)定性、通用性、易用性,能夠提高開發(fā)效率,降低開發(fā)難度的可配置式圖表應(yīng)用系統(tǒng)。
[0004]本發(fā)明的目的可以通過以下措施來達(dá)到。一種可配置式圖表應(yīng)用系統(tǒng),包括配置工具、圖表顯示系統(tǒng)、輔助工具庫,可配置式架構(gòu)和插件式體系結(jié)構(gòu),其特征在于:輔助工具庫提供通信庫、進(jìn)程窗口嵌入工具庫和用于模擬用戶發(fā)送數(shù)據(jù)給圖表顯示系統(tǒng)的數(shù)據(jù)模擬器,輔助用戶進(jìn)行數(shù)據(jù)發(fā)送;配置工具通過圖形化界面實現(xiàn)對配置文件的編輯和生成,在生成配置文件的同時生成數(shù)據(jù)接口文件,所生成的配置文件供圖表顯示系統(tǒng)使用;圖表顯示系統(tǒng)采用插件式架構(gòu),實時驅(qū)動顯示配置的海量曲線、餅圖、柱狀圖、星歷圖,自由縮放、區(qū)域縮放、點信息拾取、十字分析線分析、圖例項控制、滾屏設(shè)置、清屏操作和視圖操作的各種圖表基本操作分析,依靠配置文件進(jìn)行初始化,初始化完成后接收來自數(shù)據(jù)端的驅(qū)動數(shù)據(jù)進(jìn)行顯示,采用OpenGL驅(qū)動圖形顯卡實時顯示圖形,通過插件結(jié)構(gòu)將各種圖表顯示元素分離成獨立的插件,通過一個插件運行框架來運行。
[0005]本發(fā)明相比于現(xiàn)有技術(shù)具有如下有益效果:
本發(fā)明基于插件的可配置式圖表應(yīng)用系統(tǒng)架構(gòu),在應(yīng)用架構(gòu)上,采用了可配置式的架構(gòu),將應(yīng)用分成圖表顯示系統(tǒng)、配置工具和輔助工具庫,用戶只需要在配置工具上通過“所見即所得”的方式編輯圖表,生成配置文件供圖表顯示系統(tǒng)使用,生成數(shù)據(jù)接口供用戶調(diào)用,屏蔽了底層通信細(xì)節(jié)和圖形的顯示細(xì)節(jié)。這種方式大大簡化了圖表應(yīng)用的開發(fā)難度,提高了開發(fā)效率。將數(shù)據(jù)和顯示隔離,提高了軟件的通用性;生成的數(shù)據(jù)接口文件是根據(jù)配置文件來生成,底層根據(jù)配置可以采用UDP、共享內(nèi)存、反射內(nèi)存等通信方式,由輔助工具庫進(jìn)行封裝,對用戶完全屏蔽了細(xì)節(jié),提高了軟件的易用性。
[0006]本發(fā)明在圖表顯示系統(tǒng)的軟件架構(gòu)上,采用了插件式結(jié)構(gòu),將各種圖表,如曲線、柱狀圖、餅圖等都設(shè)計成了插件,這些插件都是獨立的動態(tài)庫,可以獨立開發(fā),只要將按照規(guī)范開發(fā)的插件放入特定的文件夾,系統(tǒng)就能自動注冊和調(diào)用。采用這種方式,新增功能時,只需要獨立開發(fā)新的插件,不需要更改運行框架的源代碼和以前的插件,大大提高了系統(tǒng)的穩(wěn)定性和擴(kuò)展性。
[0007]本發(fā)明采用OpenGL驅(qū)動圖形顯卡實時顯示,利用顯卡的硬件加速能力,實現(xiàn)高效實時的圖形顯示。
[0008]本發(fā)明輔助工具庫提供對幾種通信模式和嵌入窗口的封裝、以及用于模擬用戶發(fā)送數(shù)據(jù)給圖表顯示系統(tǒng)的數(shù)據(jù)模擬器,方便了測試。
[0009]本發(fā)明插件式架構(gòu)使系統(tǒng)具有很強的可擴(kuò)展性和系統(tǒng)穩(wěn)定性,采用了自動注冊,組件獨立開發(fā)的方式實現(xiàn)這種機(jī)制。通過配置工具“所見即所得”的方式生成配置文件和數(shù)據(jù)接口文件。圖表顯示系統(tǒng)根據(jù)配置文件進(jìn)行初始化,然后接收數(shù)據(jù)接口發(fā)送的數(shù)據(jù)進(jìn)行顯示,輔助工具庫幫助用戶方便的進(jìn)行二次開發(fā)。圖表顯示系統(tǒng)采用了一種便于擴(kuò)展的插件式結(jié)構(gòu),支持圖表的實時驅(qū)動顯示,并且支持海量曲線的顯示。
[0010]本發(fā)明將常見的圖表應(yīng)用的顯示和數(shù)據(jù)分層架構(gòu),通過配置文件進(jìn)行靈活配置,只需要調(diào)用自動生成的數(shù)據(jù)接口就可以驅(qū)動圖表的顯示,做到了靈活、通用、易用、穩(wěn)定和可擴(kuò)展。配置文件由配置工具生成和編輯,通過配置工具進(jìn)行“所見即所得”的操作,可以編輯圖表的窗口、視圖、圖表種類、顏色等等,編輯完成后生成配置文件和數(shù)據(jù)接口文件,所生成的配置文件供圖表顯示系統(tǒng)使用。圖表顯示系統(tǒng)加載配置文件進(jìn)行初始化,完成后就可以接收驅(qū)動數(shù)據(jù)。驅(qū)動數(shù)據(jù)由用戶調(diào)用配置工具生成的數(shù)據(jù)接口發(fā)送,底層屏蔽了實現(xiàn)細(xì)節(jié)。圖表顯示系統(tǒng)采用了一種便于擴(kuò)展的插件式結(jié)構(gòu),各種圖表元素,如曲線圖、柱狀圖、餅圖等都被設(shè)計成了插件,只要將這些插件放入特定的文件目錄,系統(tǒng)會自動進(jìn)行注冊,然后被系統(tǒng)調(diào)用進(jìn)行相應(yīng)的顯示。這種結(jié)構(gòu)大大增強了系統(tǒng)的擴(kuò)展能力和穩(wěn)定性,如果有新的顯示需求,只需要獨立開發(fā)新的插件即可,不需要改動原有代碼。
【附圖說明】
[0011]下面結(jié)合附圖對本發(fā)明專利進(jìn)一步說明。
[0012 ]圖1是本發(fā)明可配置式圖表應(yīng)用系統(tǒng)的架構(gòu)原理示意圖。
[0013]圖2是本發(fā)明可配置式圖表應(yīng)用系統(tǒng)的組成結(jié)構(gòu)示意圖。
[0014]圖3是本發(fā)明可配置式圖表應(yīng)用系統(tǒng)活動流程示意圖。
[0015]圖4是本發(fā)明可配置式圖表應(yīng)用系統(tǒng)的插件式結(jié)構(gòu)原理圖。
【具體實施方式】
[0016]參閱圖1。在以下描述的實施例中,可配置式圖表應(yīng)用系統(tǒng)包括:圖表配置工具、圖表顯示系統(tǒng)、輔助工具庫、可配置式架構(gòu)和插件式體系結(jié)構(gòu)??膳渲檬郊軜?gòu)將圖表應(yīng)用進(jìn)行分層架構(gòu),將圖表應(yīng)用的顯示端和數(shù)據(jù)端分開,顯示端獨立成圖表顯示系統(tǒng),數(shù)據(jù)端由配置工具根據(jù)配置文件生成用戶數(shù)據(jù)接口來添加數(shù)據(jù)。數(shù)據(jù)端是用戶自己的軟件工程,里面只需要添加由配置工具根據(jù)配置文件生成的數(shù)據(jù)接口文件,簡單調(diào)用數(shù)據(jù)接口就可以實現(xiàn)數(shù)據(jù)的發(fā)送,底層的通信細(xì)節(jié)由輔助工具庫進(jìn)行了封裝,對用戶是不透明的。數(shù)據(jù)端里數(shù)據(jù)接口也需要加載配置文件。連接顯示端和數(shù)據(jù)端的紐帶是配置文件和數(shù)據(jù)接口文件,配置工具管理配置文件和生成數(shù)據(jù)接口文件,配置文件設(shè)定了圖表顯示端里圖表的窗口、視圖布局、圖表元素及其屬性、背景屬性、通信方式以及性能平衡,這些設(shè)置都是通過“所見即所得”的方式實現(xiàn)的,人機(jī)交互界面友好,操作簡便。
[0017]配置文件則由提供可視化編輯的配置工具來管理。配置工具以可視化的方式編輯圖表應(yīng)用,生成配置文件和數(shù)據(jù)接口文件,圖表顯示系統(tǒng)加載配置文件進(jìn)行初始化,接收來自用戶通過數(shù)據(jù)接口發(fā)送的圖表數(shù)據(jù)進(jìn)行顯示。輔助工具庫提供底層的通信封裝和嵌入窗口的封裝,輔助用戶進(jìn)行數(shù)據(jù)發(fā)送。
[0018]圖表顯示系統(tǒng)顯示圖表和一些基本操作分析包括:海量曲線顯示、餅圖顯示、柱狀圖顯示、星歷圖顯示、自由縮放、區(qū)域縮放、點信息拾取、十字分析線分析、圖例項控制、滾屏設(shè)置、清屏操作、視圖操作。圖表顯示系統(tǒng)依靠配置文件進(jìn)行初始化,初始化完成就可以正確接收來自于數(shù)據(jù)端的驅(qū)動數(shù)據(jù),從而進(jìn)行圖表的顯示。圖表顯示系統(tǒng)采用了一種插件式架構(gòu),每種圖表元素都是一個插件,這些插件都由專門的系統(tǒng)開發(fā)人員負(fù)責(zé)開發(fā),圖表顯示系統(tǒng)采用了一種便于擴(kuò)展的插件式結(jié)構(gòu),各種圖表元素,如曲線圖、柱狀圖、餅圖等都被設(shè)計成了插件,只要將這些插件放入特定的文件目錄,系統(tǒng)會自動進(jìn)行注冊,然后被系統(tǒng)調(diào)用進(jìn)行相應(yīng)的顯示。
[0019]參閱圖2??膳渲檬綀D表應(yīng)用系統(tǒng)包括了配置工具、圖表顯示系統(tǒng)和輔助工具庫。其中:輔助工具庫用于輔助用戶進(jìn)行圖表應(yīng)用開發(fā),輔助工具庫提供通信庫、進(jìn)程窗口嵌入工具庫和用于模擬用戶發(fā)送數(shù)據(jù)給圖表顯示系統(tǒng)的數(shù)據(jù)模擬器,輔助用戶進(jìn)行數(shù)據(jù)發(fā)送;配置工具用于編輯配置文件和生成數(shù)據(jù)接口文件,配置工具通過圖形化界面實現(xiàn)對配置文件的編輯和生成,在生成配置文件的同時生成數(shù)據(jù)接口文件,所生成的配置文件供圖表顯示系統(tǒng)使用。配置工具進(jìn)行“所見即所得”的操作,可以編輯圖表的窗口、視圖、圖表種類、顏色等等。配置工具由窗口管理器、視圖管理器、文件管理器、布局管理器、圖元管理器和代碼生成器組成,其中窗口管理器負(fù)責(zé)窗口相關(guān)的操作;視圖管理器負(fù)責(zé)視圖相關(guān)的操作;文件管理器負(fù)責(zé)配置文件的操作;布局管理器負(fù)責(zé)窗口和視圖的布局操作;圖元管理器負(fù)責(zé)各種圖表元素的管理,包括圖標(biāo)和屬性;代碼生成器負(fù)責(zé)根據(jù)配置文件生成數(shù)據(jù)接口文件。
[0020]圖表顯示系統(tǒng)用于顯示各種圖表和進(jìn)行一些操作。圖表顯示系統(tǒng)采用插件式架構(gòu),實時驅(qū)動顯示配置的海量曲線、餅圖、柱狀圖、星歷圖,自由縮放、區(qū)域縮放、點信