Contact us
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

How to Prevent Flow Control Frames in CANoe

Last updated: 2017-11-09
Question:
How can I prevent Flow Control Frames in CANoe? 
Answer:

There are two diagnostic channels available in CANoe:

  • built-in diagnostic channel
  • CAPL Callback Interface (CCI) in combination with the Transport Protocol (TP) DLL

The diagnostic windows (Diagnostic Console, Fault memory, Session Control and OBD-II window) are always using the built-in diagnostic channel. Test Modules and Test Units are able to be used both ways alternatively. While CANoe versions up to 9.0 SPx mandatorily need the CCI for simulating ECU diagnostics, CANoe 10.0 and higher also offers the built-in diagnostic channel for simulation nodes.

Unfortunately it is not possible to prevent the sending of Flow Control Frames within the built-in diagnostic channel as soon as it was opened once e.g. by sending a diagnostics request from the Diagnostics Console. But with the CCI in combination with the TP DLL you can prevent Flow Control Frames issued by a Network Node. Please find below a description how to achieve this with a Network Node simulating a diagnostics tester.

  • Add the necessary TP DLL to the Network Node first.
  • Choose Configuration… from the context menu:
  • Select the tab Components and add the DLL (osek_tp.dll) to the node.
    The DLL resides in the EXEC32-folder of your CANoe installation:
  • Add the following CAPL code to the node:

includes
{
  // Include file for the CAPL Callback Interface (CCI)
  #include "Diagnostics\CCI_CanTP.cin"
}

variables
{
  // Define constants necessary for the CCI reference implementation 
  char gECU[20]="Tester"; // Node Qualifier
  int cIsTester=1;        // This is a tester node
}

on start
{
  diagSetTarget("ECU"); // Set the target ECU

  // Connect the diagnostics channel defined by CCI to the ECU
  // (alternatively, this could be done by simply sending a diagnostics request)

  if (diagConnectChannel()!=0) write("Error when trying to connect the Diag channel!");
  else write("Diag Channel connected!");

  // Prevent Flow Control Frames. gHandle is defined in the CCI
  CanTpUseFlowControlFrames(gHandle, 0);

  // Network node used as diagnostics tester is completely quiet from here ==> a segmented response from the ECU cannot be received anymore
  write("FlowControl switched off for tester node!");
}

on key 'd'
{
  // Activate Flow Control Frames again before resuming diagnostics
  CanTpUseFlowControlFrames(gHandle, 1); 
  write("FlowControl activated again!");

  // Diagnostics communication to be added here, e.g. sending a diagnostics request to ECU
}

 

Now the Tester Node will not send Flow Control Frames anymore.

Note:
If the usage of Flow Control Frames is deactivated, all communication partners must be aware of this deviation from the standard! Otherwise all segmented data transfers will fail. Therefore, the as soon as the Tester Node needs to communicate with an ECU using the CAN Transport Protocol, it will be necessary to activate sending Flow Control Frames again using CanTpUseFlowControlFrames(gHandle, 1); 
 
Article Options
2017-11-09
Views: 69
Rate this article:  
Error(s) occurred processing form.
Please complete all required fields. Fields marked with * are required.