日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Etas标定工具-Incacome.dll二次开发

發布時間:2023/12/8 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Etas标定工具-Incacome.dll二次开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?先粘貼一個INCA軟件官網介紹:


????????ETAS通過INCA軟件產品,為汽車電子系統的標定、診斷和驗證提供靈活的工具。

????????INCA工具用于ECU開發和試驗,以及車輛、試驗臺、工作臺或電腦虛擬環境中電子控制系統的驗證和標定。在全球范圍內,超過35000臺用于開發和省擦痕那個項目的裝置使用INCA工具。INCA工具具有多種功能,包括計算機上功能模型的預標定、ECU閃存編程、測量數據分析、標定數據管理以及ECU參數的自動優化。生成的標定和測量數據可以進行持續處理和評估。

????????這里直接進入主題,本篇主要是運用INCA官方提供的接口組件庫incacome.dll,通過c#語言在VS2013平臺上開發一個一鍵記錄相關的變量的值。實際上標定過程中,常常需要記錄一些變量的值,比如主預后噴角度和油量,TVA、EGR開度,進氣量,進氣溫度,增壓壓力,NOx,煙度等。在一些設備比較老舊,相關功能的情況下,就需要自己一邊標定,一邊記錄。所以說,你會發現,標定工程師的工作時的電腦一直都會掛著Excel表格,這就是為了記錄數據。像現在AVL、Horiba公司的臺架設備,一般都能自動記錄數據,如果運用asap3協議、或者借助網線和相關通訊協議可以實現將電腦的數據轉發到臺架電腦上,這樣一來就可以實現自動記錄數據了,甚至更進一步可以實現自動標定和在線優化。

喜歡的朋友歡迎加個收藏點個贊,感謝。也歡迎各位關注公眾號,謝謝。

希望能給各位帶來靈感。

????????不多說,先上預覽效果: ????

????????具體操作,我這里只講主要部分,關于UI界面和事件處理這里略過。

????????關于一些類的一些設置,我在stackflow找到一些信息,供大家理解,這里想給文字附帶原文鏈接,那和不能富文本操作(https://stackoverflow.com/questions/17932147/in-etas-inca-what-classes-correspond-to-each-type-of-database-item?r=SearchResults):

????????首先需要創建一個Inca實例,實際上就是一個類。這類里面有個方法可以實現連接電腦inca軟件。

????????incacom.dll里面有兩個命名空間,我們主要使用用下面這一個。

????????廢話不多說,上代碼。

????????定義一些需要用到的變量。

  • private Inca m_Inca = null; private Experiment m_Experiment = null; private CalibrationScalarData m_CalibrationScalarData; private MeasureScalarData m_MeasureScalarData; string[] Measure_Lable =new string[] {}; MeasureElement[] measureArray; IList<InfoMeasureItem> MeasureSelectList = new List<InfoMeasureItem>(); IList<string> MesureList = new List<string>(); DataTable dt = new DataTable(); System.Data.DataSet ds = new System.Data.DataSet();

????? ?

初始化inca實例,意義就是使這個app連接電腦inca軟件。

  • ?
public void Connect_Inca() { if (m_Inca != null) { this.ConnectInca.Text = "連接成功"; } else { m_Inca = new Inca(); this.ConnectInca.Text = "連接成功"; } }

????????

連接試驗環境,注意這里需要事先先打開實驗:

  • ?
public void experienceGetIn() { if (m_Inca != null && m_Experiment == null) { m_Experiment = m_Inca.GetOpenedExperiment(); this.experienceIn.Text = "試驗中"; //getAllMeasureElecmentPrint(); } else { this.experienceIn.Text = "試驗中"; //getAllMeasureElecmentPrint(); } }

?

通過變量名字獲取標定變量的值:

CalibrationScalarData calibrationData = m_Experiment.GetCalibrationElement(labelname).GetValue() as CalibrationScalarData; //this.textBox2.Text = calibrationData.GetDoublePhysValue().ToString(); return Math.Round(calibrationData.GetDoublePhysValue(),2).ToString(); //this.textBox2.Text = m_CalibrationScalarData.GetDoublePhysValue().ToString();

?

獲取測量變量的值同理,需要注意的是,不連接Ecu起動發動機進入試驗環境,直接獲取測量變量的值會報錯,編程的時候需要特別注意:

MeasureScalarData measureData = m_Experiment.GetMeasureElement(labelname).GetValue() as MeasureScalarData; //this.textBox3.Text = measureData.GetDoublePhysValue().ToString(); return Math.Round(measureData.GetDoublePhysValue(),2).ToString();

?

獲取所有變量:???????

CalibrationElement[]?calibrationArray?=?MExperiment.GetAllCalibrationElements(); MeasureElement[] measureArray = m_Experiment.GetAllMeasureElements();

?

設置標定變量的值:

  • ?
?MCalibrationScalarData.SetDoublePhysValue(double.Parse(Text2number));

?

有一點需要深入了解一下,關于Map,cur結尾的變量數據該怎么處理。這里我還是一個標定新人,學習bosch策略文檔時間比較緊,目前還沒有時間去了解。等弄明白了再發文。

?

表格的設計用到一個插件:ReoGrid-2.1.0.0-All-Packages,開源免費,有需要大家可以去了解一下。

?

關于源代碼,由于本文編程格式比較隨意(其實是奇差),這里就不放GitHub了。

關于入門參考:《汽車軟件技術》這個公眾號也發表過相關文章。

下一篇應該是講一些標定的事。

總結

以上是生活随笔為你收集整理的Etas标定工具-Incacome.dll二次开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。