[發明專利]一種結構體定義和結構輸出的方法及裝置無效
| 申請號: | 201310075693.6 | 申請日: | 2013-03-11 |
| 公開(公告)號: | CN103116500A | 公開(公告)日: | 2013-05-22 |
| 發明(設計)人: | 高雷;劉維兆;郭立偉;陳丹;李書昌;王彥輝;趙強;龔彩軍;李亮舉 | 申請(專利權)人: | 北京首鋼自動化信息技術有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 北京華誼知識產權代理有限公司 11207 | 代理人: | 劉建民 |
| 地址: | 100041*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 結構 定義 輸出 方法 裝置 | ||
技術領域
本發明涉及自動代碼生成技術,更具體說利用配置文件模板方法快捷的自動生成用戶自定義結構體文件和結構體內容打印文件的一種方法以及實現這種方法的一種代碼自動生成裝置。
背景技術
在冶金過程控制系統開發過程中,多個系統間進行數據交換,常通過以太網以TCP/IP協議按照二進制字節流方式傳遞數據。對于大量的二進制數據,為了便于解析和管理,通常將這數據以某些結構集合在一起,形成用戶自定義結構體。對于小型系統設計來說,整個系統中定義的數據結構并不是很多,在開發階段可以用人工輸入方式生產這些結構體。但隨著系統越來越復雜,定義結構體也隨著變的復雜,往往是多層結構嵌套等。這對開發人員來說,定義這些結構體變得異常復雜和繁瑣,而且維護管理也很不方便。尤其當系統接口數據發生變化時,修改接口數據結構不但繁瑣而且容易出錯。同時,在程序調試和測試階段,結構體存儲的內容是二進制,想要查看和跟蹤數據非常困難,如果能夠實時將結構體中的內容打印出來,這樣將大大調高程序調試和測試的效率。所以為了提高程序開發,調試,測試效率,簡化維護管理步驟,發明了一種基于文本模板配置的用戶自定義結構體定義和內容打印方法。并提供一種采用了應用代碼生成技術實現上述方法的裝置。
應用代碼生成技術是使用程序生成代碼的一種技術,它最初的用途是把高級語言編譯成匯編代碼,機器指令,是語言轉換,編譯不可缺少的工具,尤其是在XML語言出現時代碼生成器越來越多的應用到高級語言程序代碼的生產中。代碼生成所包含的面非常之廣,有文本模板,正則表達式,XML以及命令行等。但是對于目前最普遍的層生成器,所使用的技術有很多是共通的。本代碼生成裝置就采用了文本模板技術來實現。文本模板代碼生成通常借助一些文本模板工具來產生和維護一個具有復雜結構類型的文件,而應用程序只關注產生代碼格式,這樣可以把邏輯的定義和邏輯的代碼格式相分離,形成符合程序執生成器的簡單性和完整性。
發明內容
本發明提供了一種基于文本配置模板,快速自動產生用戶自定義結構體定義以及結構體內容輸出的方法,同時也提供了實現此方法的代碼自動產生的裝置。該方法的特點在于:
根據使用者需求在Excel模板文件中配置用戶自定義結構的各種屬性。所述配置文檔其特征在于,每個sheet頁中配置一個唯一結構體的屬性,不同結構體屬性配置在不同的sheet頁面中。Sheet頁面的名稱定義為結構體名稱。
對于結構體屬性的設計,其特征在于,結構體屬性中包括結構名稱,標識類型(標識類型名稱和結構體名稱定義相同,它用來在別的結構體成員類型名稱),數據成員個數,數據成員屬性以及結構體描述信息。這些信息大部分作為結構體功能的描述信息最終輸出到結構體定義文件以及內容輸出文件中。
對于結構體數據成員屬性的設計,其特征在于,所述數據成員屬性包括數據成員名稱,數據成員類型,長度,數組標識,數組維數,維數大小,單位,上下限條件及描述信息。上述這些信息大部分作為結構體數據成員功能描述信息在結構體定義文件以及內容輸出文件中體現。
結構體屬性轉換為配置數據庫中的結構體表和結構體類型表。其特征在于,結構體名稱、標識類型和描述映射到結構體表中,主鍵為結構體名稱。所以在配置文件中不能出現相同名稱的結構體。每個結構體本身可能作為其他結構體數據成員的類型,所以結構體的標識類型映射到結構體類型表中。
結構數據成員體屬性轉換為配置數據庫中的結構體數據成員表,其特征在于,結構體數據成員表用數據成員在結構體中的序列號作為主鍵和結構體表中結構體名稱作為外部鍵。數據成員的其他屬性映射為數據成員表中的其他數據列。
配置數據庫映射表產生出符合程序規范(本發明用C/C++規范)的結構體定義文件及內容打印文件的方法,其特征在于:配置數據庫中結構體表,找到結構體名稱,再從結構體數據成員表中查詢到結構體名稱所屬的所有數據成員值,類型等,按照C/C++規范輸出到以結構體名稱命名的文件中,形成結構體定義文件(*.h)。
結構體定義文件,如果結構體數據成員類型為其他數據結構體,則要先迭代產生數據成員類型中結構體的定義文件,并在所述結構體定義文件中包含數據成員結構體類型文件。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京首鋼自動化信息技術有限公司,未經北京首鋼自動化信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310075693.6/2.html,轉載請聲明來源鉆瓜專利網。





