vector.com|Contact
Search tips

apple banana
Find rows that contain at least one of the two words.

+apple +juice
Find rows that contain both words.

+apple macintosh
Find rows that contain the word 'apple', but rank rows higher if they also contain 'macintosh'.

+apple -macintosh
Find rows that contain the word 'apple' but not 'macintosh'.

+apple ~macintosh
Find rows that contain the word 'apple', but if the row also contains the word 'macintosh', rate it lower than if row does not. This is "softer" than a search for '+apple -macintosh', for which the presence of 'macintosh' causes the row not to be returned at all.

+apple +(>turnover >strudel)
Find rows that contain the words 'apple' and 'turnover', or 'apple' and 'strudel' (in any order), but rank 'apple turnover' higher than 'apple strudel'.

apple*
Find rows that contain words such as 'apple', 'apples', 'applesauce', or 'applet'.

"some words"
Find rows that contain the exact phrase 'some words' (for example, rows that contain 'some words of wisdom' but not "some noise words").

By continuing to use this site you agree to the use of cookies. For more information and to find out how to change this click here. Accept Cookies
Please enable cookies in your browser for this website.
Search:
Advanced search

Is it Possible to Use a dbc for Ethernet Configuration?

Last updated: 2017-07-27
Question:
Is it possible to use a dbc for Ethernet configuration?
Answer:

Yes it is, but a Signal Protocol dll is necessary for sending and interpreting in Trace/Data/Graphic Window the Ethernet signals that have been previously defined within a dbc.

 
Note 1: You need the Ethernet option for CANoe.

The dll supports the interpretation of signals with fix offset and length, which are contained in an Ethernet packet corresponding to just a single frame out of the dbc. It is not possible, using a dbc as network description, to have several frames payloads contained in one Ethernet packet, or one payload split over several Ethernet packets (TCP or IP fragmentation), the signal protocol is mostly used with proprietary protocols.

Note 2: Meanwhile Ethernet networks are defined by the OEMS using AUTOSAR arxml format, which no more requires any signal protocol dll as CANoe/CANalyzer contains a build-in support for the protocols SOME/IP, AUTOSAR PDU, XCP or DoIP.

 

However if you want to start with a dbc, you can either:

  1. Develop your own dll following the instruction of Online Help page called “Implementation of a Signal Protocol DLL “
    or
  2. Use Vector SignalProtocol.dll delivered as project example in the Sample Configuration EthernetSystemDemo of CANoe/CANalyzer Installation up to version 10. It interprets the UDP frames that have been transmitted on Port 40001. The UDP payload has to begin with a 32 bit identifier, defined as CAN identifier in the dbc. If your proprietary protocol corresponds to this design, then the Signal Protocol can easily be adapted for your usage.

The Signal Protocol dll has to be assigned to the Eth bus (Configuration Menu -> Network Hardware).

Note 3:

If you use CANoe 64 bit, then you additionally need a 64 bit version of your Signal Protocol dll that has to be stored in the same directory than the 32 bit one, that you have configured above. 
Both dlls shall have the same name and the 64 bit version one shall be called Name64.dll, like for instance:

The dbc shall first contain the BusType attribute set to Ethernet to be able to create signals and messages with DLC larger than 8:

Using the Signal Protocol dll, you can in CAPL directly access the signals received within an Ethernet frame like following:

In order to send these Ethernet messages, you have to create the corresponding CAPL data structures. See also the PacketDef.cin included file in the delivered Project Example. It contains this code part:

variables
{
}

In the main program, you shall define a variable of this type:

  long m1_Handle;

Then you are able to use the EthInitPacket function to initialize the packet and then the EthSetToken function to set the protocol fields of this Ethernet frame (here it is a UDP frame):

  localAddressIP=IPv4GetAddress("192.168.0.1");
  netmaskIP=IPv4GetAddress("255.255.255.255.0");
  EthGetMacIdFromString("40:00:00:00:00:04",localMacId);

  // Prepare Message_1 ethernet packet
  m1_Handle=EthInitPacket("vc-sig");
  EthSetTokenData(m1_Handle,"eth","source",elCount(localMacId),localMacId);
  EthSetTokenData(m1_Handle,"eth","destination",elCount(kBroadcastMacId),kBroadcastMacId);

EthSetTokenInt(m1_Handle,"ipv4","source",localAddressIP);
EthSetTokenInt(m1_Handle,"ipv4","destination",kBroadcastIPv4);
EthSetTokenInt(m1_Handle, "udp" , "source"     , 40001 );
EthSetTokenInt(m1_Handle, "udp" , "destination", 40001 );
EthSetTokenInt(m1_Handle,"vc-sig","contentId",0x100); // message ID as defined in DBC
EthResizeToken(m1_Handle,"vc-sig","data",64);         // length of raw message as defined in DBC

The following code sets the signals:

EthSetTokenSignalValue (m1_Handle, EngineSpeed, 1000.0 );        
EthSetTokenSignalValue (m1_Handle, CoolantTemperature, 56.7 );        


      if (EthCompletePacket(m1_Handle)==0)
      {
        EthOutputPacket(m1_Handle);       // sends the frame with the signals
      }
}


For more information on this topic see following CANoe’s online help:

 

 
Article Options
2017-07-27
Views: 4023
Error(s) occurred processing form.
Please complete all required fields. Fields marked with * are required.