欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CANoe使用常見問(wèn)題匯總

汽車ECU開發(fā) ? 來(lái)源:汽車ECU開發(fā) ? 2024-04-22 12:28 ? 次閱讀

CANoe使用問(wèn)題匯總。

1.如何將CAPL文件加密

使用CAPL Browser打開需要加密的CAPL文件*.can進(jìn)行編譯,編譯通過(guò)后,點(diǎn)擊菜單欄File -> Save as Encrypted,將*.canencr文件保存到*.can文件相同的路徑中(*.canencr文件就是*.can文件的加密文件),將*.can文件從當(dāng)前路徑移除,CANoe也可以正常運(yùn)行。

d7cba8fa-004f-11ef-a297-92fbcf53809c.png

對(duì)*.cin文件進(jìn)行加密與上述類似,用CAPL Browser打開*.cin文件進(jìn)行編譯,編譯通過(guò)后,在相同路徑下另存為*.cinencr文件,移除*.cin文件即可。

2.CAN報(bào)文中未使用位的檢測(cè)

若想要檢查某個(gè)報(bào)文未使用位的值是否滿足要求,可用ChkStart_PayloadGapsObservation函數(shù)。若想要檢查某個(gè)節(jié)點(diǎn)中所有TX報(bào)文或者RX報(bào)文未使用位的值是否滿足要求,可使用ChkStart_PayloadGapsObservationTx/ChkStart_PayloadGapsObservationRx函數(shù)。關(guān)于函數(shù)的具體介紹請(qǐng)參考CANoe Help文檔。文檔以示例工程Demo_Check_Unused_Bit為例,通過(guò)調(diào)用函數(shù)ChkStart_PayloadGapsObservation來(lái)檢測(cè)CAN報(bào)文未使用位的值是否為0,若為0則測(cè)試通過(guò),否則測(cè)試失敗。測(cè)試代碼(CAPL_Tester節(jié)點(diǎn))示例如圖二所示:

includes
{
}
variables
{
  dword checkId;
}
void MainTest ()
{
  BGCheck_UnusedBits();
}


testcase BGCheck_UnusedBits()   // 報(bào)文的未使用位檢測(cè)
{
  checkId = ChkStart_PayloadGapsObservation(message_1,0); // 檢查報(bào)文的未使用位值是否為0,函數(shù)的第一個(gè)參數(shù)為需檢查報(bào)文的名稱,第二個(gè)參數(shù)為未使用位期望的數(shù)值
  TestAddCondition(checkId); // 添加檢測(cè)條件,若報(bào)文未使用位的數(shù)值不滿足要求,則會(huì)在報(bào)告中記錄下來(lái)
  TestWaitForTimeout(10000);  // 持續(xù)檢測(cè)10s
  TestRemoveCondition(checkId);// 移除檢測(cè)條件
}

運(yùn)行CAPL_Tester測(cè)試模塊,在測(cè)試時(shí)間內(nèi)通過(guò)按鍵‘a(chǎn)’發(fā)送一幀名為message_1(ID為0x123)的報(bào)文,該報(bào)文中未使用位bit15的值為0,未使用位值滿足要求,測(cè)試通過(guò)(報(bào)告如圖二所示)。

d7e4af6c-004f-11ef-a297-92fbcf53809c.png

3.如何安裝和使用CANoe MATLAB插件

首先需要檢查CANoe、插件MATLAB的版本兼容性,以及MATLAB與編譯器的版本兼容性,檢查方法可在CANoe的User Assistance找到:

搜索打開MATLAB Integration Package,之后點(diǎn)擊MATLAB Integration Package Version History查看。

同樣在MATLAB Integration Package頁(yè)面,點(diǎn)擊打開Compiler Configuration查看。

檢查完兼容性后,就是插件安裝了,在CANoe的安裝目錄下,Vector CANoe 17Installer Additional ComponentsMatlab,右擊使用管理員權(quán)限安裝。當(dāng)在Simulink Library Browser看到Vector CANoe分類時(shí),安裝已成功。

d7febcf4-004f-11ef-a297-92fbcf53809c.png

d81ced8c-004f-11ef-a297-92fbcf53809c.png

插件的使用可以查詢CANoe自帶的使用說(shuō)明文檔,Using_MATLAB_with_CANoe.pdf。

4.使用CANoe比較兩個(gè)記錄文件的信號(hào)

關(guān)于如何使用Graphics窗口直觀地比較兩個(gè)不同的CAN記錄文件中的相同信號(hào)??梢园凑障旅嫣岬降乃膫€(gè)步驟進(jìn)行:

1.打開CANoe:使用兩個(gè)CAN通道的模板來(lái)創(chuàng)建一個(gè)新的CANoe工程(CAN 500 kBaud 2ch)。

2.配置為Offline模式:在Measurement Setup窗口中右鍵單擊離線文件列表,打開Offline Mode Configuration對(duì)話框。跳轉(zhuǎn)到Channel mapping 并添加一個(gè)新的設(shè)置。配置Bus Type為CAN,Source Channel設(shè)置為1(或任何一個(gè)有所需信號(hào)的通道)以及Destination Channel設(shè)置為2(或其他除Source Channel以外的數(shù)字),然后點(diǎn)擊OK。

3.添加所需文件:在兩個(gè)通道上添加相同的DBC文件。在Measurement Setup窗口的離線文件列表中添加兩個(gè)記錄文件。對(duì)于其中一個(gè)記錄文件,選擇步驟2中創(chuàng)建的通道匹配設(shè)置。

3.查看圖形:在Measurement Setup窗口中打開Graphics窗口。添加兩個(gè)通道中的同一個(gè)信號(hào),添加時(shí)請(qǐng)確保分別選擇了對(duì)應(yīng)的通道。運(yùn)行工程,觀察從兩個(gè)記錄文件中得出的兩個(gè)信號(hào)圖形。

d834e856-004f-11ef-a297-92fbcf53809c.png

5.如何為DoIP Tester定義特定TCP源端口

要為DoIP Tester發(fā)送的數(shù)據(jù)包定義特定的TCP源端口,請(qǐng)按照以下步驟操作:

進(jìn)入CANoe Options并打開應(yīng)用程序數(shù)據(jù)位置:

d846dd40-004f-11ef-a297-92fbcf53809c.png

然后關(guān)閉CANoe。應(yīng)用程序數(shù)據(jù)文件夾包含一個(gè)名為DoIP.ini的文件。用文本編輯器打開該文件。在文件末尾添加以下部分,以設(shè)置特定的TCP端口:[Connection] ForceTesterTCPSendPort=[Port],然后保存。

d85f0ea6-004f-11ef-a297-92fbcf53809c.png

6.CAN TP 如何接收超過(guò)4095字節(jié)的數(shù)據(jù)?

CAN TP中默認(rèn)的接收緩存是4095字節(jié),可以使用CAPL 函數(shù)CanTpSetMaximumReceiveLength 來(lái)增加TP層接收緩存區(qū)的大小,如下,目前CANoe 支持最大16MB的數(shù)據(jù)傳輸。

on start
{
  dword maxLength =8000;
  CanTpSetMaximumReceiveLength(gRxHandle,maxLength); // gRxHandle: 用于建立CAN TP層連接的句柄
}
7.如何在CAPL中訪問(wèn)信號(hào)和系統(tǒng)變量的Value Table條目

信號(hào)和系統(tǒng)變量可以具有描述特定值的Value Table。這些Value Description也可以在CAPL中訪問(wèn),以獲得更好的可讀性/對(duì)實(shí)際CAPL代碼的解釋。引用Value Description(而不是實(shí)際值)和查找特定值的Value Description都是可行的。

在Switch/Case中引用Value Description(而不是實(shí)際值)的示例:

Switch(@SystemVariable)
{
case (sysvar:
// do whatever you want to do"
}

8.關(guān)于CANoe測(cè)試報(bào)告問(wèn)題

1>.如何設(shè)置測(cè)試報(bào)告格式

在CANoe Options | General | Test Feature Set | Reporting File Format處選擇測(cè)試報(bào)告格式。

2>測(cè)試報(bào)告格式轉(zhuǎn)換

Test Report Viewer format轉(zhuǎn)換為PDF格式使用工具Vector CANoe Test Report Viewer打開*.vtestreport文件,點(diǎn)擊File | Export | Export PDF,可以將測(cè)試報(bào)告轉(zhuǎn)為PDF格式

3>Test Report Viewer format轉(zhuǎn)換為XML格式

使用工具Vector CANoe Test Report Viewer打開*.vtestreport文件,點(diǎn)擊File | Export | Export XML,可以將測(cè)試報(bào)告轉(zhuǎn)為XML格式。

9.Ethernet/CAN 網(wǎng)關(guān)

CAPL實(shí)現(xiàn)ETH轉(zhuǎn)CAN,網(wǎng)關(guān)先收到一幀UDP報(bào)文,以表示啟動(dòng)。這幀報(bào)文可以由Ethernet IG 來(lái)進(jìn)行仿真。這幀報(bào)文以兩個(gè)CAN報(bào)文的組成形式,從網(wǎng)關(guān)轉(zhuǎn)發(fā)出去。每幀CAN報(bào)文至少包含14個(gè)字節(jié),內(nèi)容包括CAN-Id, -dlc, -rtr 以及data bytes。

variables
{
  //
  // Constants
  //


  const WORD kPort         = 23; // UDP port number for instance
  const WORD kRxBufferSize = 1500;
  const WORD kTxBufferSize = 1500;


  //
  // Structure of UDP payload
  //


  _align(1) struct CANData
  {
    BYTE  dlc;
    BYTE  flags; // Bit 7 - Frame type (0 = standard, 1 = extended)
                 // Bit 6 - RTR bit ('1' = RTR bit is set)
    DWORD canId;
    BYTE  canData[8];
  };


  //
  // Global variables
  //


  UdpSocket gSocket;
  CHAR      gRxBuffer[kRxBufferSize];
  CHAR      gTxBuffer[kTxBufferSize];
  DWORD     gOwnAddress;
  DWORD     gModuleAddress= 0xFFFFFFFF; // default is the broadcast address 255.255.255.255  and the TCP/IP stack will build the Network broadcast address
}


//
// Measurement start handler
//


on start
{
  DWORD addresses[1];


  // get own IP address of the Windows TCP/IP stack
  IpGetAdapterAddress( 1, addresses, elcount(addresses) );
  gOwnAddress = addresses[0];


  // open UDP socket
  gSocket = UdpSocket::Open( 0, kPort ); 


  if (gSocket.GetLastSocketError() != 0)
  {
    write( "<%BASE_FILE_NAME%> Open UDP socket failed, result %d. Measurement stopped!", gSocket.GetLastSocketError() );
    stop();
    return;
  }


  if (gSocket.ReceiveFrom( gRxBuffer, elcount(gRxBuffer) ) != 0)
  {
    if (gSocket.GetLastSocketError() != 997) // ignore pending IO operation
    {
      write( "<%BASE_FILE_NAME%> UDPReceive failed, result %d. Measurement stopped!", gSocket.GetLastSocketError() );
      stop();
      return;
    }
  }


}


//
// On receive UDP data handler using CAPL Callback 
//


void OnUdpReceiveFrom( dword socket, long result, dword address, dword port, char buffer[], dword size)
{
  DWORD          dataOffset;
  struct CANData canData;
  message *      canMsg;


  if (address == gOwnAddress) return; // ignore own broadcasts


  //
  // Store IP address of module to reach
  //


  if (gModuleAddress == 0)
  {
    gModuleAddress = address;
  }


  //
  // Handle received data
  //


  dataOffset = 0;
  while (dataOffset + __size_of(struct CANData) <= size)
  {
    memcpy( canData, buffer, dataOffset );


    canMsg.id      = (canData.canId & 0x1FFFFFFF) | ((canData.flags & 0x80) ? 0x80000000 : 0);
    canMsg.dlc     = canData.dlc & 0x0f;
    canMsg.rtr     = ((canData.flags & 0x40) ? 1 : 0);
    canMsg.byte(0) = canData.canData[0];
    canMsg.byte(1) = canData.canData[1];
    canMsg.byte(2) = canData.canData[2];
    canMsg.byte(3) = canData.canData[3];
    canMsg.byte(4) = canData.canData[4];
    canMsg.byte(5) = canData.canData[5];
    canMsg.byte(6) = canData.canData[6];
    canMsg.byte(7) = canData.canData[7];


    output( canMsg );


    dataOffset += __size_of(struct CANData);
  }




  //
  // Receive more data
  //
  if (gSocket.ReceiveFrom( gRxBuffer, elcount(gRxBuffer) ) != 0)
  {
    if (gSocket.GetLastSocketError() != 997) // ignore pending IO operation
    {
      write( "<%BASE_FILE_NAME%> UDPReceive failed, result %d. Measurement stopped!", gSocket.GetLastSocketError() );
      stop();
      return;
    }
  }
}


//
// Handler for CAN messages
//


on message *
{
  int i;
  struct CANData canData;


  if ((this.dir == RX) && (gModuleAddress != 0))
  {
    canData.canId = this.id & 0x1FFFFFFF;
    canData.flags = ((this.id & 0x80000000) ? 0x80 : 0x00) | ((this.rtr == 1) ? 0x40 : 0x00);
    canData.dlc   = this.dlc;


    for( i = 0; i < 8; i++ )
    {
      canData.canData[i] = (i < this.dlc) ? this.byte(i) : 0;
    }


    memcpy( gTxBuffer, canData );


    gSocket.SendTo( gModuleAddress, kPort, gTxBuffer, __size_of(struct CANData) );
  }
  else if (gModuleAddress == 0)
  {
    write( "<%BASE_FILE_NAME%> Tx not possible. Module to reach must send packets first." ); //Server simulation
  }
}
審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • matlab
    +關(guān)注

    關(guān)注

    186

    文章

    2981

    瀏覽量

    231105
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1642

    瀏覽量

    49318
  • CANoe
    +關(guān)注

    關(guān)注

    4

    文章

    66

    瀏覽量

    8729

原文標(biāo)題:CANoe使用問(wèn)題匯總

文章出處:【微信號(hào):eng2mot,微信公眾號(hào):汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    PC電源常見問(wèn)題匯總

    PC電源常見問(wèn)題匯總,分享!
    發(fā)表于 04-29 16:03

    飛思卡爾 KL 系列常見問(wèn)題和解答匯總

    KL 系列常見問(wèn)題和解答匯總篇KL 系列 FAQ (十)KL 系列 FAQ (九)KL 系列 FAQ (八)KL 系列 FAQ (七)KL 系列 FAQ (六)KL 系列 FAQ (五)KL 系列 FAQ (四)KL 系列 FAQ (三)KL 系列 FAQ (二)KL 系
    發(fā)表于 01-22 15:42

    C語(yǔ)言常見問(wèn)題

    C語(yǔ)言常見問(wèn)題匯總大集合
    發(fā)表于 05-10 21:37

    Window7遠(yuǎn)程桌面連接Ubuntu14.04常見問(wèn)題?

    Window7遠(yuǎn)程桌面連接Ubuntu14.04常見問(wèn)題匯總
    發(fā)表于 11-09 08:01

    三菱PLC之間的N:N無(wú)線通訊的常見問(wèn)題匯總

    三菱PLC之間的N:N無(wú)線通訊的常見問(wèn)題匯總如下:【需求描述①:佛山陳工】 我有三個(gè)FX3U,一個(gè)主站,兩個(gè)從站。要實(shí)現(xiàn)無(wú)線N:N通訊,應(yīng)該怎么下單,也就是說(shuō)要買幾個(gè)發(fā)射器,幾個(gè)接受器,可以告訴我型號(hào)嗎? 【達(dá)泰技術(shù):無(wú)線PLC】 選擇三菱PLC專用無(wú)線數(shù)據(jù)終端DTD43
    發(fā)表于 07-02 07:08

    C語(yǔ)言常見問(wèn)題合集匯總

    C語(yǔ)言常見問(wèn)題集,學(xué)習(xí)C語(yǔ)言的同學(xué)可以下載。
    發(fā)表于 03-29 10:07

    Keil編譯常見問(wèn)題

    吳鑒鷹總結(jié)的Keil 編譯常見問(wèn)題,吳鑒鷹總結(jié)的Keil 編譯常見問(wèn)題
    發(fā)表于 07-22 15:31 ?10次下載

    SIM900A常見問(wèn)題匯總,奉上解決方案

    SIM900A常見問(wèn)題匯總,奉上SIM900A問(wèn)題的解決辦法。
    發(fā)表于 11-06 10:46 ?1.1w次閱讀

    固德威逆變器wifi設(shè)置_方法步驟教程_常見問(wèn)題匯總

    本文主要介紹的是固德威逆變器wifi設(shè)置的步驟教程以及常見問(wèn)題問(wèn)題匯總,具體的跟隨小編一起來(lái)了解下。
    的頭像 發(fā)表于 05-15 16:03 ?5.8w次閱讀
    固德威逆變器wifi設(shè)置_方法步驟教程_<b class='flag-5'>常見問(wèn)題</b><b class='flag-5'>匯總</b>

    智慧視頻監(jiān)控常見問(wèn)題及解決方法匯總

    智慧視頻監(jiān)控常見問(wèn)題及解決方法匯總 1、錄像機(jī)連接攝像機(jī)經(jīng)常掉線 可能有三個(gè)原因:1.攝像機(jī)供電不穩(wěn)定,比如常在夜間掉線 2.網(wǎng)絡(luò)線路問(wèn)題,交換機(jī)交換性能不足 3.攝像機(jī)故障
    的頭像 發(fā)表于 05-27 11:30 ?1.5w次閱讀

    MES軟件的作用及常見問(wèn)題匯總

    本文主要介紹了MES軟件的作用及常見問(wèn)題匯總。
    發(fā)表于 06-04 08:00 ?4次下載

    灰塵網(wǎng)絡(luò)常見問(wèn)題

    灰塵網(wǎng)絡(luò)常見問(wèn)題
    發(fā)表于 04-28 15:08 ?8次下載
    灰塵網(wǎng)絡(luò)<b class='flag-5'>常見問(wèn)題</b>

    2.4G頻段的SI24R2E無(wú)線單發(fā)芯片技術(shù)問(wèn)答,常見問(wèn)題進(jìn)行匯總解答

    針對(duì)2.4G頻段的無(wú)線單發(fā)芯片——SI24R2E,在開發(fā)過(guò)程中會(huì)遇到的常見問(wèn)題進(jìn)行匯總解答。
    的頭像 發(fā)表于 10-27 14:06 ?1004次閱讀

    TSMaster診斷功能之常見問(wèn)題匯總

    常見問(wèn)題匯總以上幾個(gè)章節(jié)給小伙伴們介紹了TSMaster診斷功能的一些基礎(chǔ)配置問(wèn)題以及操作步驟詳解,那我相信大家在使用TSMaster軟件的過(guò)程中還會(huì)遇到許許多多的問(wèn)題,下面我就挑幾個(gè)熱度比較
    的頭像 發(fā)表于 07-22 14:48 ?2013次閱讀
    TSMaster診斷功能之<b class='flag-5'>常見問(wèn)題</b><b class='flag-5'>匯總</b>

    OpenSSL安裝常見問(wèn)題

    OpenSSL安裝常見問(wèn)題
    的頭像 發(fā)表于 07-07 11:17 ?970次閱讀
    OpenSSL安裝<b class='flag-5'>常見問(wèn)題</b>