一種軟硬件接口定義的源文件自動(dòng)生成方法和裝置制造方法
【專利摘要】本發(fā)明提出一種軟硬件接口定義的源文件自動(dòng)生成方法和裝置,該方法包括:向第一文件中寫入所有的軟、硬件接口變量的變量信息;根據(jù)第一文件生成第一數(shù)組;分別根據(jù)第一排序條件和第二排序條件對(duì)第一數(shù)組進(jìn)行排序,并將以第一排序條件排序后的第一數(shù)組寫入第二文件中且將以第二排序條件排序后的第一數(shù)組寫入第三文件中;根據(jù)第二文件判斷是否具有復(fù)用IO口的變量,并輸出具有復(fù)用IO口的變量;和根據(jù)預(yù)設(shè)條件對(duì)第三文件進(jìn)行篩選,并根據(jù)篩選后變量信息生成相應(yīng)的源文件。通過本發(fā)明實(shí)施例生成源文件的方法和裝置,具有速度快、準(zhǔn)確率高且可降低人力成本的優(yōu)點(diǎn)。
【專利說明】一種軟硬件接口定義的源文件自動(dòng)生成方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及汽車制造【技術(shù)領(lǐng)域】,特別涉及一種軟硬件接口定義的源文件自動(dòng)生成方法和裝置。
【背景技術(shù)】
[0002]當(dāng)今,汽車電子控制器在汽車中的應(yīng)用越來越廣泛,已成為影響汽車性能的重要組成。汽車電子控制器程序的開發(fā)周期與質(zhì)量作為整車開發(fā)周期與質(zhì)量的一環(huán),越來越受到汽車開發(fā)商的關(guān)注。軟硬件接口變量作為底層軟件和上層應(yīng)用程序的接口以及底層軟件與各種外圍設(shè)備的接口,廣泛分布于各個(gè)有關(guān)接口變量定義的源文件中。
[0003]由于軟件硬件接口(上層應(yīng)用軟件與底層軟件以及外圍設(shè)備與底層軟件的接口)的變量及其定義眾多,一個(gè)變量及其某些定義會(huì)在不同的源程序代碼中用到,而其改動(dòng)會(huì)牽扯到許多源文件的改動(dòng),牽一發(fā)而動(dòng)全身,若人工編寫或改動(dòng)這些代碼不僅費(fèi)時(shí)費(fèi)力,而且很容易出錯(cuò),傳統(tǒng)的有關(guān)接口變量定義的源文件是依靠人工來進(jìn)行編寫和修改的。一個(gè)變量或其定義改變了,需要找出引用到它的各個(gè)有關(guān)接口變量定義的源文件,逐一對(duì)它們進(jìn)行修改。可見,依靠人工來進(jìn)行這項(xiàng)工作不僅繁瑣費(fèi)時(shí)、人力成本高,而且極易出錯(cuò)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明旨在至少解決上述技術(shù)問題之一。
[0005]為此,本發(fā)明的一個(gè)目的在于提出一種速度快、準(zhǔn)確率高且可降低人力成本的軟硬件接口定義的源文件自動(dòng)生成方法。
[0006]本發(fā)明的另一目的在于提出一種軟硬件接口定義的源文件自動(dòng)生成裝置。
[0007]為了實(shí)現(xiàn)上述目的,本發(fā)明第一方面的實(shí)施例提出了一種軟硬件接口定義的源文件自動(dòng)生成方法,包括以下步驟:S1:向第一文件中寫入所有的軟、硬件接口變量的變量信息;S2:根據(jù)所述第一文件生成第一數(shù)組;S3:分別根據(jù)第一排序條件和第二排序條件對(duì)所述第一數(shù)組進(jìn)行排序,并將以所述第一排序條件排序后的第一數(shù)組寫入第二文件中且將以所述第二排序條件排序后的第一數(shù)組寫入第三文件中;S4:根據(jù)所述第二文件判斷是否具有復(fù)用IO 口的變量,并輸出具有復(fù)用IO 口的變量;和S5:根據(jù)預(yù)設(shè)條件對(duì)所述第三文件進(jìn)行篩選,并根據(jù)篩選后變量信息生成相應(yīng)的源文件。
[0008]另外,根據(jù)本發(fā)明上述實(shí)施例的軟硬件接口定義的源文件自動(dòng)生成方法還可以具有如下附加的技術(shù)特征:
[0009]在一些示例中,所述第一文件為EXCEL文件。
[0010]在一些示例中,所述變量信息包括IO類型、變量名稱、變量類型、CAN通道、CAN起始比特、接口和接口位。
[0011]在一些示例中,所述第一排序條件為:按照所述變量信息所在的IO 口對(duì)所述第一數(shù)組進(jìn)行排序;以及根據(jù)所述變量類型對(duì)按照所述變量信息所在的IO 口進(jìn)行排列后的第一數(shù)組進(jìn)行排序。[0012]在一些示例中,所述第二排序條件為:按照所述變量名稱對(duì)所述第一數(shù)組進(jìn)行排序;以及根據(jù)所述IO類型對(duì)按照所述變量名稱進(jìn)行排序后的第一數(shù)組進(jìn)行排序。
[0013]在一些示例中,所述步驟S2進(jìn)一步包括:依次從所述第一文件中抽取每一行的變量信息;根據(jù)預(yù)設(shè)的正則表達(dá)式從所述每一行的變量信息中匹配出具有預(yù)定格式的變量信息,并將匹配后的每一行的變量信息依次存入所述第一數(shù)組中。
[0014]在一些示例中,所述步驟S4進(jìn)一步包括:從所述第二文件的第一行開始依次抽取每一行變量信息,并對(duì)抽取的當(dāng)前行的變量信息進(jìn)行如下判斷:
[0015]判斷抽取的當(dāng)前行變量信息的變量名稱是否為預(yù)設(shè)變量名稱,如果是則抽取所述當(dāng)前行變量信息的下一行變形量信息,否則繼續(xù)判斷所述當(dāng)前行變量信息的IO類型是否為第一類型或者第二類型;
[0016]如果判斷所述當(dāng)前行變量信息的IO類型不是所述第一類型或者第二類型,則抽取所述當(dāng)前行變量信息的下一行變量信息,否則繼續(xù)判斷所述當(dāng)前行變量信息的接口和接口位是否與所述當(dāng)前行的上一行變量信息的接口和接口位均相同;
[0017]如果判斷所述當(dāng)前行變量信息的接口和接口位與所述當(dāng)前行的上一行變量信息的接口和接口位均相同,則判定所述當(dāng)前行變量信息對(duì)應(yīng)的變量為具有復(fù)用IO 口的變量;
[0018]如果判斷所述當(dāng)前行變量信息的接口和/或接口位與所述當(dāng)前行的上一行變量信息的接口和/或接口位不同,則抽取所述當(dāng)前行變量信息的下一行變量信息并重復(fù)上述判斷。
[0019]在一些示例中,所述步驟S5進(jìn)一步包括:根據(jù)所述預(yù)設(shè)條件對(duì)所述第三文件進(jìn)行篩選,以保留所述相應(yīng)的源文件中所需的變量對(duì)應(yīng)的所有變量信息;從所述篩選后的所有變量信息中進(jìn)行選擇,以得到所述相應(yīng)的源文件所需的部分變量信息,并根據(jù)所述部分變量信息生成所述相應(yīng)的源文件。
[0020]本發(fā)明第二方面的實(shí)施例還提出了一種軟硬件接口定義的源文件自動(dòng)生成裝置,包括:第一文件生成模塊,用于將所有的軟、硬件接口變量的變量信息寫入第一文件中以生成所述第一文件;第一數(shù)組生成模塊,用于根據(jù)所述第一文件生成所述第一數(shù)組;排序模塊,用于分別根據(jù)第一排序條件和第二排序條件對(duì)所述第一數(shù)組進(jìn)行排序,并將以所述第一排序條件排序后的第一數(shù)組寫入第二文件中且將以所述第二排序條件排序后的第一數(shù)組寫入第三文件中;復(fù)用IO口判斷模塊,用于根據(jù)所述第二文件判斷是否具有復(fù)用IO 口的變量,并輸出具有復(fù)用IO 口的變量;和源文件生成模塊,用于根據(jù)預(yù)設(shè)條件對(duì)所述第三文件進(jìn)行篩選,并根據(jù)篩選后變量信息生成相應(yīng)的源文件。
[0021]根據(jù)本發(fā)明實(shí)施例的軟硬件接口定義的源文件自動(dòng)生成方法和裝置具有如下優(yōu)點(diǎn):
[0022]節(jié)省了人力成本,縮短開發(fā)周期,提高開發(fā)效率。且減少人工處理容易導(dǎo)致出錯(cuò),具有降低出錯(cuò)率,提高開發(fā)質(zhì)量的優(yōu)點(diǎn)。且當(dāng)軟、硬件件接口變量或其定義改動(dòng)時(shí),只要在第一文件,如excel表格中改動(dòng),便可快速地完成相關(guān)源文件的改動(dòng),大大提高了效率與準(zhǔn)確率,具體地,將excel表格中的軟硬件接口變量定義經(jīng)排序、檢查、抽取、改動(dòng)等一系列操作,生成有關(guān)軟硬件接口變量定義的眾多源文件,達(dá)到提高開發(fā)質(zhì)量與效率,節(jié)約開發(fā)成本的目的。
[0023]本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
【專利附圖】
【附圖說明】[0024]本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
[0025]圖1為本發(fā)明實(shí)施例的軟硬件接口定義的源文件自動(dòng)生成方法的流程圖;
[0026]圖2為本發(fā)明一個(gè)實(shí)施例的軟硬件接口定義的源文件自動(dòng)生成方法的流程圖;
[0027]圖3為本發(fā)明另一實(shí)施例的軟硬件接口定義的源文件自動(dòng)生成方法的流程圖;
[0028]圖4為本發(fā)明再一實(shí)施例的軟硬件接口定義的源文件自動(dòng)生成方法的流程圖;以及
[0029]圖5為本發(fā)明一個(gè)實(shí)施例的軟硬件接口定義的源文件自動(dòng)生成裝置的結(jié)構(gòu)圖?!揪唧w實(shí)施方式】
[0030]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。
[0031]在本發(fā)明的描述中,需要理解的是,術(shù)語“中心”、“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”、“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡(jiǎn)化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。此外,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性。
[0032]在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個(gè)元件內(nèi)部的連通。對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
[0033]以下結(jié)合附圖首先描述根據(jù)本發(fā)明實(shí)施例的軟硬件接口定義的源文件自動(dòng)生成方法。
[0034]參考圖1,根據(jù)本發(fā)明實(shí)施例的軟硬件接口定義的源文件自動(dòng)生成方法,包括如下步驟:
[0035]步驟S101,向第一文件中寫入所有的軟、硬件接口變量的變量信息。例如,第一文件為EXCEL文件,變量信息包括但不限于:IO類型、變量名稱、變量類型、CAN通道、CAN起始比特、接口和接口位。作為一個(gè)具體的例子,如表1所示,EXCEL文件的格式為:
[0036]
【權(quán)利要求】
1.一種軟硬件接口定義的源文件自動(dòng)生成方法,其特征在于,包括以下步驟: S1:向第一文件中寫入所有的軟、硬件接口變量的變量信息; 52:根據(jù)所述第一文件生成第一數(shù)組; 53:分別根據(jù)第一排序條件和第二排序條件對(duì)所述第一數(shù)組進(jìn)行排序,并將以所述第一排序條件排序后的第一數(shù)組寫入第二文件中且將以所述第二排序條件排序后的第一數(shù)組寫入第三文件中; 54:根據(jù)所述第二文件判斷是否具有復(fù)用IO 口的變量,并輸出具有復(fù)用IO 口的變量;和 55:根據(jù)預(yù)設(shè)條件對(duì)所述第三文件進(jìn)行篩選,并根據(jù)篩選后變量信息生成相應(yīng)的源文件。
2.根據(jù)權(quán)利要求1所述的軟硬件接口定義的源文件自動(dòng)生成方法,其特征在于,所述第一文件為EXCEL文件。
3.根據(jù)權(quán)利要求1所述的軟硬件接口定義的源文件自動(dòng)生成方法,其特征在于,所述變量信息包括IO類型、變量名稱、變量類型、CAN通道、CAN起始比特、接口和接口位。
4.根據(jù)權(quán)利要求3所述的軟硬件接口定義的源文件自動(dòng)生成方法,其特征在于,所述第一排序條件為: 按照所述變量信息所在的IO 口對(duì)所述第一數(shù)組進(jìn)行排序;以及 根據(jù)所述變量類型對(duì)按照所述變量信息所在的IO 口進(jìn)行排列后的第一數(shù)組進(jìn)行排序。
5.根據(jù)權(quán)利要求3所述的軟硬件接口定義的源文件自動(dòng)生成方法,其特征在于,所述第二排序條件為: 按照所述變量名稱對(duì)所述第一數(shù)組進(jìn)行排序;以及 根據(jù)所述IO類型對(duì)按照所述變量名稱進(jìn)行排序后的第一數(shù)組進(jìn)行排序。
6.根據(jù)權(quán)利要求1所述的軟硬件接口定義的源文件自動(dòng)生成方法,其特征在于,所述步驟S2進(jìn)一步包括: 依次從所述第一文件中抽取每一行的變量信息; 根據(jù)預(yù)設(shè)的正則表達(dá)式從所述每一行的變量信息中匹配出具有預(yù)定格式的變量信息,并將匹配后的每一行的變量信息依次存入所述第一數(shù)組中。
7.根據(jù)權(quán)利要求3所述的軟硬件接口定義的源文件自動(dòng)生成方法,其特征在于,所述步驟S4進(jìn)一步包括: 從所述第二文件的第一行開始依次抽取每一行變量信息,并對(duì)抽取的當(dāng)前行的變量信息進(jìn)行如下判斷: 判斷抽取的當(dāng)前行變量信息的變量名稱是否為預(yù)設(shè)變量名稱,如果是則抽取所述當(dāng)前行變量信息的下一行變形量信息,否則繼續(xù)判斷所述當(dāng)前行變量信息的IO類型是否為第一類型或者第二類型; 如果判斷所述當(dāng)前行變量信息的IO類型不是所述第一類型或者第二類型,則抽取所述當(dāng)前行變量信息的下一行變量信息,否則繼續(xù)判斷所述當(dāng)前行變量信息的接口和接口位是否與所述當(dāng)前行的上一行變量信息的接口和接口位均相同; 如果判斷所述當(dāng)前行變量信息的接口和接口位與所述當(dāng)前行的上一行變量信息的接口和接口位均相同,則判定所述當(dāng)前行變量信息對(duì)應(yīng)的變量為具有復(fù)用IO 口的變量; 如果判斷所述當(dāng)前行變量信息的接口和/或接口位與所述當(dāng)前行的上一行變量信息的接口和/或接口位不同,則抽取所述當(dāng)前行變量信息的下一行變量信息并重復(fù)上述判斷。
8.根據(jù)權(quán)利要求3所述的軟硬件接口定義的源文件自動(dòng)生成方法,其特征在于,所述步驟S5進(jìn)一步包括: 根據(jù)所述預(yù)設(shè)條件對(duì)所述第三文件進(jìn)行篩選,以保留所述相應(yīng)的源文件中所需的變量對(duì)應(yīng)的所有變量信息; 從所述篩選后的所有變量信息中進(jìn)行選擇,以得到所述相應(yīng)的源文件所需的部分變量信息,并根據(jù)所述部分變量信息生成所述相應(yīng)的源文件。
9.一種軟硬件接口定義的源文件自動(dòng)生成裝置,其特征在于,包括: 第一文件生成模塊,用于將所有的軟、硬件接口變量的變量信息寫入第一文件中以生成所述第一文件; 第一數(shù)組生成模塊,用于根據(jù)所述第一文件生成所述第一數(shù)組; 排序模塊,用于分別根據(jù)第一排序條件和第二排序條件對(duì)所述第一數(shù)組進(jìn)行排序,并將以所述第一排序條件排序后的第一數(shù)組寫入第二文件中且將以所述第二排序條件排序后的第一數(shù)組寫入第三文件中; 復(fù)用IO 口判斷模塊,用于根據(jù)所述第二文件判斷是否具有復(fù)用IO 口的變量,并輸出具有復(fù)用IO 口的變量;和 源文件生成模塊,用于根據(jù)預(yù)設(shè)條件對(duì)所述第三文件進(jìn)行篩選,并根據(jù)篩選后變量信息生成相應(yīng)的源文件。
【文檔編號(hào)】G06F17/30GK103488615SQ201210193192
【公開日】2014年1月1日 申請(qǐng)日期:2012年6月12日 優(yōu)先權(quán)日:2012年6月12日
【發(fā)明者】王海燕, 左從兵, 張春淮, 張宗義 申請(qǐng)人:北汽福田汽車股份有限公司