日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

Can協(xié)議代碼源文件的生成方法和裝置的制造方法

文檔序號(hào):8512441閱讀:798來(lái)源:國(guó)知局
Can協(xié)議代碼源文件的生成方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及汽車(chē)制造技術(shù)領(lǐng)域,尤其涉及一種控制器局域網(wǎng)(Controller AreaNetwork, CAN)協(xié)議代碼源文件的生成方法和裝置。
【背景技術(shù)】
[0002]當(dāng)今,汽車(chē)電子控制器在汽車(chē)中的應(yīng)用越來(lái)越廣泛,已成為影響汽車(chē)性能的重要組成。汽車(chē)電子控制器程序的開(kāi)發(fā)周期與質(zhì)量作為整車(chē)開(kāi)發(fā)周期與質(zhì)量的一環(huán),越來(lái)越受到汽車(chē)開(kāi)發(fā)商的關(guān)注。
[0003]CAN協(xié)議代碼的開(kāi)發(fā)在控制器底層軟件開(kāi)發(fā)項(xiàng)目中是一項(xiàng)很重要的工作。這一部分的代碼規(guī)律性較強(qiáng),但牽涉到的變量和文件較多,代碼量大。
[0004]現(xiàn)有技術(shù)中,CAN協(xié)議代碼源文件采用人工編寫(xiě)及修改的方式,但是人工處理方式不僅費(fèi)時(shí)費(fèi)力,而且非常容易出錯(cuò)。

【發(fā)明內(nèi)容】

[0005]本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問(wèn)題之一。
[0006]為此,本發(fā)明的一個(gè)目的在于提出一種CAN協(xié)議代碼源文件的生成方法,該方法可以實(shí)現(xiàn)CAN協(xié)議代碼源文件的自動(dòng)生成。
[0007]本發(fā)明的另一個(gè)目的在于提出一種CAN協(xié)議代碼源文件的生成裝置。
[0008]為達(dá)到上述目的,本發(fā)明第一方面實(shí)施例提出的CAN協(xié)議代碼源文件的生成方法,包括:讀入預(yù)設(shè)文件,所述預(yù)設(shè)文件中包含CAN協(xié)議信息;采用預(yù)設(shè)的腳本,解析所述預(yù)設(shè)文件,生成預(yù)設(shè)類別的CAN協(xié)議代碼源文件;輸出所述CAN協(xié)議代碼源文件。
[0009]本發(fā)明第一方面實(shí)施例提出的CAN協(xié)議代碼源文件的生成方法,通過(guò)將CAN協(xié)議信息包含在預(yù)設(shè)文件中,并采用預(yù)設(shè)腳本對(duì)預(yù)設(shè)文件進(jìn)行解析,可以實(shí)現(xiàn)CAN協(xié)議代碼源文件的自動(dòng)生成,并通過(guò)自動(dòng)生成提高效率和準(zhǔn)確率,降低開(kāi)發(fā)周期,降低成本。
[0010]為達(dá)到上述目的,本發(fā)明第二方面實(shí)施例提出的CAN協(xié)議代碼源文件的生成裝置,包括:讀入模塊,用于讀入預(yù)設(shè)文件,所述預(yù)設(shè)文件中包含CAN協(xié)議信息;處理模塊,用于采用預(yù)設(shè)的腳本,解析所述預(yù)設(shè)文件,生成預(yù)設(shè)類別的CAN協(xié)議代碼源文件;輸出模塊,用于輸出所述CAN協(xié)議代碼源文件。
[0011]本發(fā)明第二方面實(shí)施例提出的CAN協(xié)議代碼源文件的生成裝置,通過(guò)將CAN協(xié)議信息包含在預(yù)設(shè)文件中,并采用預(yù)設(shè)腳本對(duì)預(yù)設(shè)文件進(jìn)行解析,可以實(shí)現(xiàn)CAN協(xié)議代碼源文件的自動(dòng)生成,并通過(guò)自動(dòng)生成提高效率和準(zhǔn)確率,降低開(kāi)發(fā)周期,降低成本。
[0012]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
【附圖說(shuō)明】
[0013]本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
[0014]圖1是本發(fā)明一實(shí)施例提出的CAN協(xié)議代碼源文件的生成方法的流程示意圖;
[0015]圖2是本發(fā)明另一實(shí)施例提出的CAN協(xié)議代碼源文件的生成方法的流程示意圖;
[0016]圖3是本發(fā)明另一實(shí)施例提出的CAN協(xié)議代碼源文件的生成方法的流程示意圖;
[0017]圖4是本發(fā)明實(shí)施例中生成var.h文件的流程示意圖;
[0018]圖5是本發(fā)明實(shí)施例中生成can_process.h文件的流程示意圖;
[0019]圖6是本發(fā)明實(shí)施例中生成can_process.c文件的流程示意圖;
[0020]圖7是本發(fā)明另一實(shí)施例提出的CAN協(xié)議代碼源文件的生成裝置的結(jié)構(gòu)示意圖;
[0021]圖8是本發(fā)明另一實(shí)施例提出的CAN協(xié)議代碼源文件的生成裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。相反,本發(fā)明的實(shí)施例包括落入所附加權(quán)利要求書(shū)的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
[0023]圖1是本發(fā)明一實(shí)施例提出的CAN協(xié)議代碼源文件的生成方法的流程示意圖,該方法包括:
[0024]Sll:讀入預(yù)設(shè)文件,所述預(yù)設(shè)文件中包含CAN協(xié)議信息。
[0025]其中,預(yù)設(shè)文件可以具體是包括分隔符的文件,具體如,字符分隔值(Comma-Separated Values,CSV)文件。
[0026]CSV文件也可以稱為逗號(hào)分隔值文件,其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)表格數(shù)據(jù)例如為數(shù)字或文本。純文本意味著該文件是一個(gè)字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見(jiàn)的是逗號(hào)或制表符。通常,所有記錄都有完全相同的字段序列。
[0027]本實(shí)施例中,可以將CAN協(xié)議信息定義在CSV文件中。
[0028]參見(jiàn)圖2,包含CAN協(xié)議信息的CSV文件21可以稱為:32bit_CAN_Definit1n.CSVo
[0029]S12:采用預(yù)設(shè)的腳本,解析所述預(yù)設(shè)文件,生成預(yù)設(shè)類別的CAN協(xié)議代碼源文件。
[0030]可選的,參見(jiàn)圖2,預(yù)設(shè)的腳本22可以是peri腳本。
[0031]peri 一般被稱為實(shí)用報(bào)表提取語(yǔ)言(Practical Extract1n and ReportLanguage),其借取了 C、sed、awk、shell scripting以及很多其他程序語(yǔ)言的特性。其中最重要的特性是它內(nèi)部集成了正則表達(dá)式的功能,以及巨大的第三方代碼庫(kù)CPAN。簡(jiǎn)而言之,peri像C 一樣強(qiáng)大,像awk、sed等腳本描述語(yǔ)言一樣方便。
[0032]可選的,預(yù)設(shè)類別的CAN協(xié)議代碼源文件可以包括:用于變量定義的源文件,用于CAN協(xié)議解析定義的源文件,用于CAN協(xié)議解析處理的源文件,用于接口的源文件,其中,用于接口的源文本包括用于接口定義的源文件或者用于接口處理的源文件。
[0033]本實(shí)施例中,用于變量定義的源文件可以表示為:vars.h文件,用于CAN協(xié)議解析定義的源文件可以表示為:can_process.h文件,用于CAN協(xié)議解析處理的源文件可以表示為:can_process.c文件,用于接口定義的源文件可以表示為:com.h文件,用于接口處理的源文件可以表示為:com.c文件。
[0034]S13:輸出所述CAN協(xié)議代碼源文件。
[0035]參見(jiàn)圖2,輸出的源文件23包括:vars.h文件,can_process.h文件,can_process, c 文件,com.h 文件,和 com.c 文件。
[0036]另外,當(dāng)需要修改CAN協(xié)議信息時(shí),可以在csv文件中修改,之后再采用peri腳本運(yùn)行,得到源文件。
[0037]本實(shí)施例通過(guò)將CAN協(xié)議信息包含在預(yù)設(shè)文件中,并采用預(yù)設(shè)腳本對(duì)預(yù)設(shè)文件進(jìn)行解析,可以實(shí)現(xiàn)CAN協(xié)議代碼源文件的自動(dòng)生成,并通過(guò)自動(dòng)生成提高效率和準(zhǔn)確率,降低開(kāi)發(fā)周期,降低成本。
[0038]圖3是本發(fā)明另一實(shí)施例提出的CAN協(xié)議代碼源文件的生成方法的流程示意圖,本實(shí)施例以預(yù)設(shè)文件是CSV文件為例,該方法包括:
[0039]S31:讀入包含CAN協(xié)議代碼的CSV文件,對(duì)所述CSV文件中的內(nèi)容進(jìn)行排序,生成臨時(shí)文件。
[0040]參見(jiàn)圖3,該步驟可以用sort_1_spec表示。
[0041]具體的,CSV文件中的內(nèi)容可以分為多行和多列,可以按照預(yù)設(shè)列中內(nèi)容的值大小對(duì)每行內(nèi)容進(jìn)行排序,得到臨時(shí)文件,臨時(shí)文件可以表示為temp, csv文件。
[0042]預(yù)設(shè)列例如為如下字段表示的列:Column_1_Type,Column_CAN_ChanneI,Column_ID,或者,Column_CAN_Start_Bit。
[0043]例如,假設(shè)列序號(hào)從O開(kāi)始,行序號(hào)從I開(kāi)始,以Column_1_Type字段的內(nèi)容進(jìn)行升序排列時(shí),其中,CSV文件的第O列表示Column_1_Type,則如果CSV文件的第I行的第O列的值大于第2行第O列的值,則排序后,CSV文件的第I行排序在第2行的后面。
[0044]S32:解析所述臨時(shí)文件,生成每個(gè)所述源文件對(duì)應(yīng)的數(shù)組。
[0045]參見(jiàn)圖3,該步驟可以用creat_can_messages表示。
[0046]—個(gè)實(shí)施例中,當(dāng)所述源文件是用于變量定義的源文件時(shí),所述解析所述臨時(shí)文件,生成每個(gè)所述源文件對(duì)應(yīng)的數(shù)組,包括:
[0047]從所述臨時(shí)文件中分別讀取每行內(nèi)容,對(duì)應(yīng)每行內(nèi)容執(zhí)行:
[0048]在所述臨時(shí)文件的Column_Var_Type字段的內(nèi)容是can_input或者can_out時(shí),用所述臨時(shí)文件的Column_Var_Type字段的內(nèi)容作為所述源文件的類型type字段的內(nèi)容,以及,用所述臨時(shí)文件的Column_Var_Name字段的內(nèi)容作為所述源文件的名稱varname字段的內(nèi)容;
[0049]將所述源文件的類型字段的內(nèi)容以及所述源文件的名稱字段的內(nèi)容作為初始數(shù)組的變量值寫(xiě)入到初始數(shù)組
當(dāng)前第1頁(yè)1 2 3 4 5 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1