目前,我正在自動化測試案例以測試儀器羣中的量表。我遇到過通過DID將單位從公制更改爲美國。任何人都可以幫助我如何使用CAPL腳本發送診斷相關的東西。如何通過CAPL腳本發送診斷ID(DID)?
回答
試試這可能是它使用SendDiagRequest(reqobj);
1.增加在獨木舟設置 3.You矢量獨木舟 2.設定目標ECU各自的CDD文件已定義服務的內容的每個字節的值,可以得到這些值在可以跟蹤服務的 4.create對象在CAPL中並使用SendDiagRequest(reqobj)發送它;
長DiagSendRequest(diagRequest OBJ)
我試着用消息xxx sendMsg {dlc = 8}發送5個字節的DID; output(sendMsg);這是成功的。 但是當我用超過8字節(在我的情況下是22字節)使用流量控制概念時,你能解釋一下如何在CAPL中實現流量控制概念嗎? –
雖然這段代碼可能有助於解決問題,但它並沒有解釋_why_和/或_how_它是如何回答問題的。提供這種附加背景將顯着提高其長期教育價值。請[編輯]您的答案以添加解釋,包括適用的限制和假設。 –
如果您有加載到獨木舟(CDD/ODX/PDX等)的診斷庫,然後它會通常有傳輸協議定義了將細分Tx和Rx在那裏長度超過8個字節。
你的文章說你正在自動化你的測試用例。這在CANoe的測試模塊中完成得最好。如果您加載了CDD,則可以將CAPL瀏覽器符號窗格(通過診斷過濾)中的DID拖動到CAPL中,例如,在diagRequest之後拖動「DID_01_ReadInfo」。
long size;
byte returnBytes[4096];
diagRequest DID_01_ReadInfo readInfoReq; // diag request object
diagResponse DID_01_ReadInfo readInfoResp; // diag reponse object
diagSendRequest(readInfoReq);
switch (testWaitForDiagResponse(readInfoReq, 2000)) // 2 sec timeout
{
case 0: // timeout
teststepfail("No reply from ECU");
break;
case 1: // response received
if (diaggetLastResponseCode(readInfoReq) == -1)
{
teststepPass("Positive Response");
// Get the number of bytes from the last response and store in 'returnBytes'
diagGetLastResponse(readInfoReq, readInfoResp);
size = diagGetPrimitiveData(readInfoResp, returnBytes, elCount(returnBytes));
}
else
{
teststepfail("Negative Response");
}
break;
}
- 1. 用於診斷服務的CAPL腳本
- 2. Linux診斷腳本
- 3. JQuery:如何獲得DID ID?
- 4. 如何通過網址發送ID
- 5. 通過套接字發送命令到CANalyzer CAPL應用程序
- 6. ActiveMQ通過腳本發送消息
- 7. 發送HTTP請求通過python腳本
- 8. 使用ruby通過ssh發送腳本
- 9. 通過bash腳本發送郵件
- 10. 通過shell腳本發送郵件
- 11. 如何通過CAPL訪問.dll文件?
- 12. 如何通過Celery發送HTML郵件?它不斷髮送文本/平原
- 13. 如何診斷KERN_PROTECTION_FAILURE
- 14. 如何診斷E0000022?
- 15. 如何診斷錯誤:無法添加Cookie,頭已發送
- 16. 如何通過郵件從shell腳本發送特殊字符?
- 17. 如何通過php腳本發送郵件?
- 18. 如何通過Google應用腳本中的URL發送數據?
- 19. 如何通過ajax發送數據到Perl腳本?
- 20. 如何從KSH Unix腳本通過SFTP發送多個文件
- 21. 如何通過send-event.pl腳本發送外部事件?
- 22. WCF:如何診斷故障通道?
- 23. 如何讓Schematron.net觸發診斷?
- 24. 如何通過PC的發送文本
- 25. 如何通過HashMap發送文本?
- 26. 通過shell腳本發送推文到twitter通過
- 27. 是否可以通過smtp通過bash腳本發送郵件?
- 28. 通過沙盒通過腳本橋發送郵件附件
- 29. 如何通過.xcconfig禁用特定的鏗鏘聲診斷?
- 30. 如何通過C#發送郵件時實現發件人ID?
我在CAPL中找不到「SendDiagRequest」命令。它是diagRequestSent嗎? –
DiagSendRequest(req_object) –
我試着用消息xxx sendMsg {dlc = 8}發送5個字節的DID; output(sendMsg);這是成功的。 但是當我用超過8字節(在我的情況下是22字節)使用流量控制概念時,你能解釋一下如何在CAPL中實現流量控制概念嗎? 我對DiagSendRequest(obj)的用法沒有任何意見; –