3dwoo大學簡體電腦書店
CANoe開發從入門到精通
( 簡體 字)
作者:楊金升、張可晨、唐新宇類別:1. -> 程式設計 -> 綜合
出版社:清華大學出版社CANoe開發從入門到精通 3dWoo書號: 51025
詢問書籍請說出此書號!
有庫存
NT售價: 445
出版日:5/1/2019
頁數:
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302522898 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
基礎篇
第1章車載網絡概述 3
1.1車載網絡起源 3
1.2CAN總線概述 4
1.2.1CAN總線簡史 4
1.2.2CAN總線特點 4
1.2.3CAN總線主要應用 5
1.2.4CAN-FD協議簡介 6
1.3LIN總線概述 6
1.3.1LIN總線簡史 6
1.3.2LIN總線特點 7
1.3.3LIN總線主要應用 7
1.4目前典型車載網絡架構 7
1.4.1緊湊型 8
1.4.2豪華型 8
1.5主要的車載網絡 9
1.6車載網絡發展趨勢 11
第2章CANoe概述 12
2.1關于Vector公司 12
2.2CANoe簡介 13
2.3CANoe在ECU項目開發中的作用 13
2.3.1第一階段:全仿真網絡系統 13
2.3.2第二階段:真實節點和部分仿真節點共存 14
2.3.3第三階段:全真實節點的網絡系統 14
2.4CANoe不同版本的區別 15
2.4.1CANoepex版本 15
2.4.2CANoerun版本 15
2.4.3CANoefull版本 16
2.4.4關于Demo版本CANoe 16
2.4.5關于64bit版本CANoe 17
2.5CANoe安裝 17
2.5.1系統配置要求 17
2.5.2常見硬件接口卡 18
2.5.3安裝過程 18
2.6CANoe常見的總線授權選項 23
2.7CANoe的授權管理 24
2.8CANoe的硬件配置 25
2.8.1硬件信息查看 25
2.8.2硬件配置 27
2.8.3通道數量設置 28
第3章CANoe開發環境 29
3.1CANoe主界面 29
3.2CANoe選項卡和功能區 30
3.2.1File菜單 30
3.2.2Home功能區 31
3.2.3Analysis功能區 32
3.2.4Simulation功能區 33
3.2.5Test功能區 34
3.2.6Diagnostics功能區 35
3.2.7Environment功能區 36
3.2.8Hardware功能區 37
3.2.9Tools功能區 38
3.2.10Layout功能區 39
3.3常用仿真窗口 40
3.3.1SimulationSetup窗口 40
3.3.2StartValues窗口 40
3.4常見診斷窗口 41
3.4.1DiagnosticConsole窗口 41
3.4.2DiagnosticSessionControl窗口 42
3.4.3FaultMemory窗口 42
3.5常見測試窗口 43
3.5.1TestUnit窗口 43
3.5.2TestModule窗口 45
第4章CANoe總線測量和分析 46
4.1CANoe總線測量和分析概述 46
4.2MeasurementSetup窗口 47
4.2.1主要功能 48
4.2.2插入分析窗口或數據記錄模塊 48
4.2.3插入功能模塊 49
4.3常見分析窗口 49
4.3.1Write窗口 49
4.3.2Trace窗口 51
4.3.3Graphic窗口 52
4.3.4StateTracker窗口 52
4.3.5Data窗口 53
4.3.6Statistics窗口 53
4.3.7Scope窗口 54
4.3.8Video窗口 55
4.3.9GPS窗口 55
4.4測量數據記錄設置及處理 56
4.4.1Logging文件設置 56
4.4.2Logging文件格式 57
4.4.3Filter設置 57
4.4.4Trigger設置 58
4.4.5Trace導入和導出 60
4.4.6Trace查看和編輯 63
4.4.7Trace回放 64
4.5離線分析 67
4.6發生器模塊 68
4.6.1CANIG模塊 68
4.6.2IG模塊 69
第5章CANoe仿真工程配置及運行 71
5.1配置仿真工程 71
5.1.1物理通道分配問題 71
5.1.2波特率設置問題 71
5.1.3授權或相關選項缺失問題 74
5.1.4虛擬通道設置問題 75
5.1.5硬件連接問題 76
5.2不同版本工程文件之間的兼容性處理 76
5.3仿真工程個性化設置 78
5.3.1添加/修改的Desktop設置 78
5.3.2保存不同的工程配置文件 78
5.4仿真工程文件夾的命名習慣 79
  入門篇
第6章車載總線仿真基礎 83
6.1ECU硬件/軟件架構介紹 83
6.1.1硬件架構 83
6.1.2軟件架構 84
6.2開發仿真工程的必要性 85
6.2.1軟件開發的V模型 86
6.2.2仿真工程的必要性 86
6.3CANoe仿真工程架構 87
第7章開發第一個CANoe仿真工程 88
7.1創建第一個仿真工程 88
7.2添加CAN數據庫 89
7.2.1新建CAN數據庫 89
7.2.2添加報文和信號 89
7.2.3添加數據庫到工程中 91
7.3定義系統變量 91
7.4創建仿真面板 92
7.4.1創建開關面板 92
7.4.2創建指示燈面板 93
7.5創建網絡節點 93
7.5.1添加網絡節點 93
7.5.2添加HelloWorld代碼 95
7.5.3添加Switch代碼 95
7.5.4添加Light代碼 96
7.6工程運行測試 96
7.7查看Trace信息 97
第8章總線數據庫設計 98
8.1總線數據庫概述 98
8.2CANdb++Editor 98
8.2.1File菜單 99
8.2.2工具欄 100
8.3在X-Vehicle項目中創建CAN總線數據庫 100
8.3.1基于模板新建總線數據庫 100
8.3.2Networks 101
8.3.3ECUs 102
8.3.4NetworkNodes 102
8.3.5Messages 103
8.3.6Signals 105
8.3.7EnvironmentVariable 109
8.3.8Attribute 110
8.3.9ValueTable 113
8.3.10ByteOrder 114
8.4導入數據庫文件 116
8.5LIN總線數據庫編輯器LDFExplorer 117
第9章Panel設計 118
9.1Panel概述 118
9.2Panel設計環境介紹 119
9.2.1File菜單 119
9.2.2Home功能區 120
9.2.3Panel功能區 121
9.2.4Properties功能區 122
9.2.5Toolbox窗口 122
9.2.6SymbolExplorer窗口 122
9.2.7WorkingArea窗口 123
9.2.8Properties窗口 124
9.2.9OutputWindow 124
9.3控件介紹 125
9.3.1Switch/Indicator控件 126
9.3.2LEDControl控件 127
9.3.3Input/OutputBox控件 128
9.3.4Hex/TextEditor控件 130
9.3.5AnalogGauge控件 131
9.3.6Meter控件 132
9.4多幀圖片簡介 133
9.5系統變量簡介 134
9.6在X-Vehicle項目中創建仿真Panel 136
9.6.1添加Control面板 136
9.6.2添加Display面板 140
9.6.3創建一個Desktop 143
第10章CAPL語言設計 145
10.1CAPL概述 145
 10.1.1CAPL主要用途 145
 10.1.2CAPL的特點 146
10.2CAPL開發環境——CAPL瀏覽器簡介 146
 10.2.1File菜單 147
 10.2.2功能區 147
 10.2.3導航區和編輯區 150
 10.2.4函數瀏覽區 150
 10.2.5對象瀏覽區 150
 10.2.6輸出窗口 151
10.3CAPL基礎——數據類型 151
 10.3.1變量的聲明與定義 152
 10.3.2簡單變量 153
 10.3.3復合類型 154
 10.3.4特殊類型 155
10.4CAPL基礎——常見運算 157
10.5CAPL基礎——流程控制 158
 10.5.1if條件語句 158
 10.5.2switch語句 158
 10.5.3while循環語句 159
 10.5.4for循環語句 160
 10.5.5break語句 160
 10.5.6return語句 161
10.6CAPL基礎——程序結構 161
 10.6.1頭文件 161
 10.6.2全局變量聲明 162
 10.6.3事件處理 162
 10.6.4自定義函數 169
10.7CAPL基礎——常用函數庫簡介 170
 10.7.1通用函數 170
 10.7.2計算函數 172
 10.7.3字符串函數 172
 10.7.4CAN總線函數 173
 10.7.5LIN總線函數 174
 10.7.6診斷函數 174
10.8CAPL基礎——總線數據庫的使用 175
10.9CAPL基礎——變量和信號的訪問 175
 10.9.1CAPL中訪問信號 175
10.9.2CAPL中訪問系統變量 176
10.9.3CAPL中訪問環境變量 176
10.10在X-Vehicle項目中添加CAPL程序 177
10.10.1創建節點Engine的CAPL程序 178
10.10.2創建節點Door的CAPL程序 178
10.10.3創建節點Display的CAPL程序 180
10.11工程運行測試 181
第11章仿真工程編譯和調試 182
11.1CAPL程序編譯 182
 11.1.1條件編譯 182
 11.1.2編譯CAPL程序 183
11.2CAPL程序的Debug功能調試 184
 11.2.1設置DebugMode 184
 11.2.2Debugger工具欄 185
 11.2.3設置調試斷點 185
 11.2.4變量查看 186
 11.2.5斷點查看 187
11.3使用Write窗口調試CAPL程序 187
第12章仿真工程開發入門——CAN仿真 190
12.1總線仿真工程概述 190
12.2總線仿真工程開發流程及策略 190
 12.2.1開發流程 190
 12.2.2仿真工程開發策略 191
12.3工程實例簡介 192
 12.3.1網絡拓撲圖 192
 12.3.2實現功能 193
12.4工程實現 193
 12.4.1創建仿真工程 194
 12.4.2DBC文件設計與導入 194
 12.4.3系統變量 197
 12.4.4面板設計 198
 12.4.5CAPL代碼實現 207
 12.4.6AutomationSequences 217
 12.4.7分析窗口設置 218
 12.4.8Trace窗口與Logging 220
 12.4.9Desktop布局 221
12.5工程運行測試 223
  進階篇
第13章仿真工程開發進階I——CAN+LIN仿真 227
13.1工程實例簡介 227
 13.1.1網絡拓撲圖 227
 13.1.2實現功能 228
13.2工程實現 229
 13.2.1添加LIN總線支持 229
 13.2.2數據庫LDF文件設計與導入 230
 13.2.3添加環境變量 236
 13.2.4面板設計 237
 13.2.5CAPL實現 248
 13.2.6Trace窗口與Logging 256
 13.2.7設置Desktop布局 257
13.3工程運行測試 257
13.4擴展話題——關于網絡管理 258
第14章仿真工程開發進階II——仿真+測試 260
14.1基于CANoe的自動化測試系統簡介 260
14.2TestFeatureSet功能簡介 261
 14.2.1約束和條件設置函數 261
 14.2.2信號測試函數 261
 14.2.3等待指示函數 262
 14.2.4測試控制函數 263
 14.2.5故障注入函數 263
 14.2.6測試判別函數 264
 14.2.7測試架構函數 264
 14.2.8測試報告函數 265
14.3TestServiceLibrary功能簡介 265
 14.3.1檢測函數 266
 14.3.2狀態報告函數 268
 14.3.3激勵函數 269
 14.3.4檢測控制函數 270
14.4測試單元與測試模塊簡介 270
 14.4.1測試單元與測試模塊的區別 271
 14.4.2測試模塊架構 271
14.5工程實例簡介 272
14.6工程實現 272
 14.6.1添加CAPL測試模塊 272
 14.6.2測試方法分析 274
 14.6.3CAPL測試用例 276
 14.6.4CAPL測試模塊 282
14.7工程運行測試 283
 14.7.1測試執行 283
 14.7.2測試報告 285
14.8擴展話題——關于vTESTstudio 286
第15章仿真工程開發進階III——仿真+診斷 288
15.1汽車診斷技術概述 288
 15.1.1診斷術語 289
 15.1.2OBD診斷與增強型診斷 289
 15.1.3診斷協議 289
 15.1.4診斷接口 290
 15.1.5診斷周期 291
 15.1.6UDS診斷服務 291
 15.1.7Vector診斷工具簡介 292
15.2CANoe診斷功能簡介 293
 15.2.1診斷描述文件 294
 15.2.2安全訪問服務 294
 15.2.3診斷測試窗口 295
15.3CANoe常見診斷函數 295
 15.3.1通信/設定功能函數 295
 15.3.2安全訪問函數 296
 15.3.3對象訪問函數 296
 15.3.4參數訪問函數 297
 15.3.5診斷測試函數 298
15.4工程實例簡介 299
15.5工程實現 299
 15.5.1CDD文件導入 299
 15.5.2SecurityDLL文件配置 301
 15.5.3診斷控制臺 301
 15.5.4診斷測試面板 302
 15.5.5添加Tester節點 314
 15.5.6虛擬診斷響應 317
 15.5.7自動化診斷測試方法分析 318
 15.5.8CAPL診斷測試模塊實現 319
 15.5.9制作GenerateKey.dll 332
15.6工程運行測試 332
 15.6.1手動診斷測試面板 332
 15.6.2自動化診斷測試模塊 333
15.7擴展話題——VTSystem在測試中的應用 335
第16章CANoe高級編程——COMServer技術 336
16.1COM接口技術簡介 336
16.2CANoeCOMServer簡介及設置 336
16.3工程實例簡介 337
16.4開發實現——CANoe工程 338
 16.4.1CANoe工程中供調用的系統變量 338
 16.4.2CANoe工程中供調用的總線信號 339
 16.4.3新建CANoeCAPL函數 340
16.5開發實現——VB.NET工程 342
 16.5.1新建VB.NET工程 342
 16.5.2添加CANoe相關引用 342
 16.5.3界面設計 344
 16.5.4全局變量定義 348
 16.5.5CANoe應用和Measurement對象控制 348
 16.5.6CANoe事件處理 349
 16.5.7系統變量操作 349
 16.5.8總線信號操作 350
 16.5.9CAPL函數調用 350
 16.5.10完整代碼 351
16.6工程運行測試 362
16.7擴展話題——Python腳本調用COMServer 362
第17章CANoe高級編程——CAPLDLL技術 363
17.1CAPLDLL技術概述 363
 17.1.1CAPLDLL函數列表 364
 17.1.2CAPL回調函數 365
17.2工程實例簡介 366
17.3工程實現——VC.NET開發CAPLDLL 366
 17.3.1創建用戶自定義函數——CRC算法函數 366
 17.3.2創建用戶自定義函數——讀取MAC地址函數 369
17.4工程實現——CANoe調用CAPLDLL 371
 17.4.1如何添加CAPLDLL 371
 17.4.2DLL路徑搜索順序 372
 17.4.3添加系統變量 372
 17.4.4添加一個測試面板 372
 17.4.5添加CAPL代碼 375
17.5工程運行測試 378
17.6擴展話題——CANoe仿真工程代碼保護 379
 17.6.1編譯后刪除源代碼 379
 17.6.2加密后刪除源代碼 380
 17.6.3加密保護與硬件綁定 380
第18章CANoe高級編程——CLibraryAPI技術 381
18.1CCL庫文件概述 381
18.2常用CCL接口函數介紹 381
18.3工程實例簡介 383
18.4工程實現——VC.NET開發CCL 384
 18.4.1如何創建一個CCL庫文件 384
 18.4.2CCL代碼實現 386
18.5工程實現——CANoe調用CCL 389
 18.5.1如何調用CCLAPI 389
 18.5.2添加系統變量 390
 18.5.3添加測試面板 390
 18.5.4添加IG模塊 392
18.6工程運行測試 392
第19章CANoe高級編程——自定義菜單插件 394
19.1自定義菜單插件概述 394
19.2工程實例簡介 394
19.3開發自定義菜單插件 394
 19.3.1創建和配置工程 395
 19.3.2代碼實現 396
19.4在CANoe中配置自定義菜單插件 401
19.5工程運行測試 401
19.6擴展話題——關于C#語言 402
第20章CANoe高級編程——.NET測試模塊開發 403
20.1.NET測試模塊開發概述 403
20.2.NET測試環境設定 404
 20.2.1配置CANoe的.NET文件編輯器 404
 20.2.2配置VisualC#項目開發模板 405
20.3工程實例簡介 406
20.4工程實現——.NET測試模塊 406
 20.4.1添加.NET測試模塊 406
 20.4.2調用CAPL測試庫中的測試用例 407
 20.4.3新建C#測試模塊工程 409
 20.4.4數據庫和系統變量的訪問方法 409
 20.4.5.NET測試模塊開發 410
 20.4.6.NET測試模塊配置和編譯 414
20.5工程運行測試 415
20.6擴展話題——XML測試模塊 416
第21章CANoe高級編程——TCP/IP通信編程 419
21.1網絡傳輸協議簡介 419
 21.1.1網際層 420
 21.1.2傳輸層 420
 21.1.3Socket編程簡介 421
21.2.NET編程中TCP/IP相關類的簡介 421
21.3CAPL中TCP/IP相關函數的簡介 424
21.4工程實例簡介 426
21.5工程實現——C#TCP/IP服務器端開發 427
 21.5.1新建一個工程 427
 21.5.2界面設計 427
 21.5.3C#代碼實現 429
21.6工程實現——CANoeTCP/IP客戶端開發 434
 21.6.1創建仿真工程 434
 21.6.2新建系統變量 434
 21.6.3Panel設計 435
 21.6.4CAPL實現 438
21.7工程運行測試 446
21.8擴展話題——UDPSocket通信 447
第22章CANoe高級編程——FDX協議與HIL系統通信 449
22.1FDX協議 449
 22.1.1Datagram 450
 22.1.2創建DataGroups和Items 454
 22.1.3FreeRunning模式 455
22.2工程實例簡介 455
22.3工程實現——CANoe項目 456
 22.3.1創建FDXDescription文件 456
 22.3.2配置FDX 457
22.4工程實現——VC.NET項目 458
 22.4.1VC.NET中FDX相關類簡介 458
 22.4.2Datagram結構體定義 459
 22.4.3界面設計 461
 22.4.4代碼實現 463
22.5工程運行測試 480
22.6擴展話題——硬件在環 481
第23章CANoe高級編程——調用LabVIEW 482
23.1LabVIEWIntegration系統設置要求 482
23.2工程實例簡介 482
23.3工程實現——LabVIEW 483
 23.3.1創建共享變量 483
 23.3.2創建DemoVI 484
23.4工程實現——CANoe 485
 23.4.1啟用LabVIEWIntegration設置 485
 23.4.2設置SignalGenerators 486
 23.4.3CAPL調用LabVIEW共享變量 487
 23.4.4添加一個Desktop布局 488
23.5工程運行測試 488
23.6擴展話題——LabVIEW調用CANoe 490
附錄A英文縮寫對照表 491
參考文獻 494
本書遵循由淺入深的原則,將內容分為三篇。基礎篇首先介紹車載網絡的相關知識,接著介紹CANoe開發環境和常見功能的使用,以便初學者掌握使用CANoe進行一般的總線仿真、測試和分析的方法;入門篇首先介紹CANoe開發總線仿真的基礎知識,接著結合實例重點介紹總線數據庫創建、面板設計,以及CAPL語言設計;進階篇結合廣大開發工程師可能面臨的技術難題,由簡單到復雜地介紹一些典型實例,以提高讀者的實戰技術。
中國的汽車工業正在經歷轟轟烈烈的變革和創新,其發展比以往任何時代都迅速,自2009年以來,中國已經連續9年成為世界最大的汽車生產國和第一大汽車市場,穩居世界第一汽車大國地位。中國汽車的自主品牌正受到越來越多購車者的關注和認可,市場份額持續攀升,2017年的市場份額達到43%。中國品牌的強勢崛起將進一步壓縮海外品牌在中國的生存空間。2017年年銷售量超過百萬輛的就有幾家自主品牌整車廠。再經幾年奮起直追,繼電視機、手機之后,汽車也有望成為“中國制造”的杰出代表。
  在中國汽車工業的崛起過程中,我們的自主品牌也面臨眾多的挑戰,其中比較關鍵的是來自技術層面的挑戰。特別是很多自主品牌在積極進軍和搶占高端消費市場的過程中舉步艱難。我們無法擺脫對國外技術的依賴,在研發新的平臺和車型時,過多地依賴國外的設計中心或供應商。
  高端車型的技術門檻,其中重要的一點就體現在車載總線的創新性和復雜性上。如果想在技術上擺脫對國外設計中心或供應商的依賴,必須不斷提高技術水平,充分利用現有的開發工具。CANoe作為全球汽車電子設計、開發和驗證的利器,在汽車行業可謂家喻戶曉。
本書結構
  本書遵循由淺入深的原則,將內容分為三篇。基礎篇首先介紹車載網絡的相關知識,接著介紹CANoe的開發環境和常見功能的使用,以便初學者掌握使用CANoe進行一般的總線仿真、測試和分析的方法;入門篇首先介紹CANoe開發總線仿真的基礎知識,接著結合實例重點介紹總線數據庫創建、面板設計,以及CAPL語言設計;進階篇結合廣大開發工程師可能面臨的技術難題,由簡單到復雜地介紹一些典型實例,以提高讀者的實戰 技術。
  本書的具體編寫分工如下:第1、2、7、16~23章由楊金升編寫;第5、6、8、9、11~13章由張可晨編寫;第10、14、15章由唐新宇編寫初稿,張可晨整理;第3、4章由李秀娟編寫;李秀娟通讀了本書的全部內容,并對所有代碼做了測試和驗證。全書由楊金升負責策劃、統稿和審閱。
關于本書中的代碼
  讀者可以在清華大學出版社網站http://www.tup.tsinghua.edu.cn下載相關源代碼。每個章節的實例都給出不同版本CANoe的工程文件,以滿足不同讀者的需求。所有代碼已經在以下版本中測試并驗證通過。
* CANoe Full 11.0(options:CAN + LIN)
* CANoe Demo 11.0(options:CAN + LIN)
* CANoe Full 10.0(options:CAN + LIN)
* CANoe Demo 10.0(options:CAN + LIN)
* CANoe Full 9.0(options:CAN + LIN)
* CANoe Demo 9.0(options:CAN + LIN)
* Visual Studio 2013(VB.NET、VC.NET、C#等代碼)
* LabVIEW 2014
  本書附帶的資源壓縮包中包含相關的源代碼及附送的其他資料文件,各章的文件夾架構說明如下。
  /Chapter_xx/Source —— 本章工程源代碼(含11.0代碼及10.0/9.0
   代碼壓縮包)
  /Chapter_xx/Additional —— 本章相關資源
  /Chapter_xx/Additional/Material —— 本章實例需要使用的資源(如圖片、模板等)
  /Chapter_xx/Additional/Document —— 本章相關參考文檔
  /Chapter_xx/Additional/Example —— 本章相關參考例程
本書目標讀者
  (1)汽車行業的軟硬件研發人員;
  (2)汽車行業的測試驗證人員;
  (3)汽車電子相關專業的高校師生;
  (4)想從事汽車電子開發和測試的工程師。
如何使用本書
  (1)建議初學者由前往后閱讀,盡量不要跳躍。
  (2)對于有一定CANoe使用經驗的讀者,可以跳過基礎篇,直接學習后面兩篇。
  (3)對于已經擁有CANoe正式版授權的讀者,書中的實例可以上機動手實踐,學習效果將更好。
  (4)對于目前沒有正式版CANoe的讀者,可以安裝CANoe的Demo版,本書絕大部分的實例都可以在Demo版上直接實踐。
本書的約定
  由于CANoe軟件目前沒有中文版,所以本書在使用一些相關名稱時,部分以英文為主。英文名稱第一次出現時會附上相關翻譯供讀者參考,例如Option(選項)。為了避免混亂,本書需要將CANoe中常見的術語做如下約定。
  Configuration —— 仿真工程或工程
  Measurement —— 測量
  License —— 授權
  License Option —— 授權選項
  Message —— 報文
  Signal —— 信號
致謝
  在本書的創作過程中,得到了來自家人、朋友、同事以及清華大學出版社的鼓勵和支持,在此表示衷心的感謝。特別感謝上海交通大學劉功申教授的鼓勵和支持,德國同事Thomas Mehring和中國同事黃友新等在技術上不吝指教,使本書得以順利完成。同時,感謝Vector(中國)的技術支持團隊,在以往的技術交流中給予我們的支持和幫助。
  本書雖經多次審稿修訂,但限于作者的水平和條件,書中不足和疏漏之處在所難免,衷心希望讀者批評指正,使之得以不斷提高和完善。
  歡迎讀者通過清華大學出版社網站與我們聯系,也可以通過郵件聯系作者或者加入QQ技術交流群,與我們進一步交流,共同進步。
  僅以此書獻給正在崛起的中國汽車工業!
  
   作 者
  2018年11月
pagetop