TechnicalReference_InteractionLayer_GMs


 
 
 
 
 
 
 
 
 
 
 
 
Interaction Layer for General Motors 
Technical Reference 
 
Il_Vector_Gm  with GENy 
Version 2.01.02 
 
 
 
 
 
 
 
 
 
 
 
Authors 
Ralf Fritz, Gunnar Meiss, Heiko  Hübler 
Status 
Released 
 
 
 
 
 



Technical Reference Interaction Layer for General Motors  
 
1  Document Information 
This  document  may  be  revised  and  appear  in  several  versions.  The  document  will  be 
classified to permit identification of updates  and versions. 
This  user manual  is related  to the  source  code version  (Il_Vector_Gm)  1.01.00 or higher.   
1.1 
History 
Author 
Date 
Version  Remarks 
Ralf Fritz 
2003-08-05 
1.00 
creation 
Ralf Fritz 
2004-07-02 
1.01 
Changed description for ILSetTxMessageEnable 
Ralf Fritz 
2004-07-16 
1.02 
Sample corrected. Restriction added. 
Ralf Fritz 
2005-04-27 
1.03 
Timeout and Source Learning description extended. 
New Layout. 
Ralf Fritz 
2005-08-01 
1.04 
Adaptation  of return values of several functions.  
Ralf Fritz 
2007-03-29 
1.05 
Corrected chapter 3.1.2.2 
and 3.1.2.3 
Ralf Fritz 
2007-05-01 
1.06 
Switch to new documentation template. 
Gunnar Meiss 
2008-01-17 
2.00 
Added  GENy Support 
Heiko  Hübler 
2012-10-18 
2.01.00  Added  Robustness Changes 
Added  Clearing Flags on Deactivate VN 
(ESCAN00061059) 
Heiko  Hübler 
2012-10-26 
2.01.01  Changed description of Clearing Flags on Deactivate 
VN 
Heiko  Hübler 
2013-01-31 
2.01.02  Updated  GMLAN  version (ESCAN00064595) 
improved the description of Source Address Timeout 
Supervision 
(ESCAN00064519) 
Table 1-1  
History of the Document 
1.2 
Reference Documents 
No.  Source 
Title 
Version 
[1]    Vector 
Technical Reference of Vector’s CAN driver 
2.23.00 
(TechnicalReference_CANDriver.pdf). 
[2]    Vector 
Vector Interaction Layer Technical Reference for GENy. 
2.08.00 
(TechnicalReference_GENy_InteractionLayer.pdf). 
[3]    Vector 
Technical Reference of Vector’s GMLAN  Network Management 
1.07.00 
(TechnicalReference_GMLAN_NM.pdf). 
[4]    OSEK/VDX  OSEK/VDX Communication Specification 3.0.3. 
3.0.3 
Table 1-2  
Reference Documents 
2013, Vector Informatik GmbH 
Version: 2.01.02 
2 / 48 
based on template version 3.6 




Technical Reference Interaction Layer for General Motors  
 
Please note 
We have configured the programs in accordance with your specifications in the  
   
 
questionnaire. Whereas the programs do support other configurations than the one 
specified in your questionnaire, Vector’s release of the programs delivered  to your 
company is expressly restricted to the configuration you have specified in the 
questionnaire. 
2013, Vector Informatik GmbH 
Version: 2.01.02 
3 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Contents 
1 
Document Information ...................................................................................................... 2 
1.1 
History .................................................................................................................... 2 
1.2 
Reference Documents ........................................................................................... 2 
2 
Component History ........................................................................................................... 8 
2.1 
Il_Vector_Gm Version 1.00.00 ............................................................................... 8 
2.1.1 
What is new? ......................................................................................... 8 
2.1.2 
What has changed?............................................................................... 8 
2.2 
Il_Vector_Gm Version 1.01.00 ............................................................................... 8 
2.2.1 
What is new? ......................................................................................... 8 
2.2.2 
What has changed?............................................................................... 8 
3 
Functional Description ..................................................................................................... 9 
3.1 
Data Transmission.................................................................................................. 9 
3.1.1 
Cyclic Transmission ............................................................................... 9 
3.1.2 
Event Based Transmission .................................................................. 10 
3.1.3 
Mixed Transmission ............................................................................. 13 
3.2 
Signal Access ....................................................................................................... 14 
3.3 
Extended CAN Identifiers..................................................................................... 15 
3.3.1 
Source Learning .................................................................................. 15 
3.3.2 
Source Address Timeout Supervision ................................................. 16 
3.4 
Application Controlled Message Filter  ................................................................. 17 
3.5 
Clearing Flags on Deactivate VN......................................................................... 17 
4 
Integration ........................................................................................................................ 18 
4.1 
Include structure ................................................................................................... 18 
4.2 
Initialization........................................................................................................... 18 
4.3 
Cyclic function ...................................................................................................... 19 
5 
Configuration ................................................................................................................... 21 
5.1 
Database Attributes .............................................................................................. 21 
5.1.1 
Send Type ............................................................................................ 21 
5.1.2 
Default Values ...................................................................................... 21 
5.1.3 
Tx NCA Message ................................................................................. 22 
5.1.4 
Timeout Supervision ............................................................................ 23 
6 
API Description ................................................................................................................ 25 
6.1 
Administrative functions ....................................................................................... 25 
2013, Vector Informatik GmbH 
Version: 2.01.02 
4 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
6.1.1.1 
IlInitPowerOn .................................................................... 25 
6.1.1.2 
IlInit.................................................................................... 25 
6.1.1.3 
IlRxTask............................................................................. 26 
6.1.1.4 
IlTxTask ............................................................................. 26 
6.1.1.5 
IlRxStateTask .................................................................... 27 
6.1.1.6 
IlTxStateTask..................................................................... 28 
6.1.1.7 
IlSetOwnNodeAddress ..................................................... 28 
6.2 
Service functions .................................................................................................. 29 
6.2.1.1 
IlSetEvent.......................................................................... 29 
6.2.1.2 
IlGetNodeCommActiveState............................................. 29 
6.2.1.3 
IlSetRxMessageSourceAddress....................................... 30 
6.2.1.4 
IlGetRxMessageSourceAddress ...................................... 30 
6.2.1.5 
IlSetRxMessageEnable .................................................... 31 
6.2.1.6 
IlSetTxMessageEnable..................................................... 31 
6.2.1.7 
IlGetTransmitMessageStatus ........................................... 32 
6.3 
Callback functions ................................................................................................ 32 
6.3.1 
ApplIlSourceAddressLearned.............................................................. 33 
6.3.2 
ApplIlRxMsgSrcAddressLearned ........................................................ 33 
6.3.3 
ApplIlNodeCommActiveRecovery ....................................................... 34 
6.3.4 
ApplIlNodeCommActiveFailed............................................................. 34 
7 
Abbreviations................................................................................................................... 36 
8 
Appendix .......................................................................................................................... 37 
8.1 
Nm_Gmlan_Gm Interface .................................................................................... 37 
8.1.1 
IlRxStart................................................................................................ 37 
8.1.2 
IlTxStart ................................................................................................ 37 
8.1.3 
IlRxStop................................................................................................ 38 
8.1.4 
IlTxStop ................................................................................................ 39 
8.1.5 
IlRxWait ................................................................................................ 39 
8.1.6 
IlTxWait ................................................................................................ 40 
8.1.7 
IlRxRelease.......................................................................................... 40 
8.1.8 
IlTxRelease .......................................................................................... 41 
8.1.9 
IlRxActivateVnMsg............................................................................... 41 
8.1.10 
IlRxDeactivateVnMsg .......................................................................... 42 
8.1.11 
IlTxActivateVnMsg ............................................................................... 43 
8.1.12 
IlTxDeactivateVnMsg........................................................................... 43 
8.1.13 
IlRxStartVnMsgSupervision ................................................................. 44 
8.1.14 
IlRxDeactivateVnMsgSupervision ....................................................... 45 
8.1.15 
IlResetRxTimeoutFlags ....................................................................... 45 
8.1.16 
IlRequeueTransmitMessages .............................................................. 46 
2013, Vector Informatik GmbH 
Version: 2.01.02 
5 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
8.2 
Interaction Layer Internal Interfaces .................................................................... 47 
9 
Contact.............................................................................................................................. 48 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
6 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Illustrations 
Figure 3-1 
Sequence Diagram of Cyclic Transmission ................................................. 10 
Figure 3-2 
Sequence Diagram of Event based Transmission ....................................... 11 
Figure 3-3 
Sequence Diagram of Event based Transmission with Delay ..................... 12 
Figure 3-4 
Sequence Diagram of Cyclic and Event based Transmission in 
combination................................................................................................... 13 

Figure 4-1 
Including Il_Vector_Gm  ................................................................................ 18 
Figure 4-2 
Call of the Il_Vector cyclic function............................................................... 20 
 
Tables 
Table 1-1  
History of the Document ................................................................................. 2 
Table 1-2  
Reference Documents .................................................................................... 2 
Table 3-1  
Validity Bit Value Interpretation ..................................................................... 14 
Table 3-2  
VDA Bit Value Interpretation ......................................................................... 15 
Table 3-3  
Extended CAN Identifier fields  ..................................................................... 15 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
7 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
2  Component History 
This  chapter  describes  the  implementation  of  the  Vector  Interaction  Layer  for  General 
Motors in GENy. 
2.1 
Il_Vector_Gm  Version 1.00.00 
2.1.1 
What is new? 
>  The  Interaction  Layer  is configured  with  GENy. 
>  API to handle  signal groups. 
>  Mask bit support. 
2.1.2 
What has changed? 
>  The  Validity bit API  is the same API as for Mask bits or signal  groups. 
>  Reduction  of the  code size. 
2.2 
Il_Vector_Gm  Version 1.01.00  
2.2.1 
What is new? 
>  IlRxDeactivateVnMsg  clears  now the  flags of deactivated  messages (see 3.5). 
2.2.2 
What has changed? 
>  The  Rx  timeout  table(IlRxTimeoutTbl)  was moved to gmlcal.c  and can now  be calibrated 
(post build). 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
8 / 48 
based on template version 3.6 





Technical Reference Interaction Layer for General Motors  
 
3  Functional Description 
3.1 
Data Transmission 
This  chapter  describes the data transmission  concept of Il_Vector_Gm. 
 
Caution 
The data transmission differs to the Il_Vector  data transmission described in [2]. 
 
 
3.1.1 
Cyclic Transmission 
The  cyclic  transmission  is  configured  in  the  network  database  with  the  attributes 
GenMsgSendType  and  GenSigSendType  (See  in  chapter  5.1.1  Send  Type).  If  either  the 
message  or  a  signal  of  the  message  is  configured  as  cyclic,  the  message  is  transmitted 
periodically.  The  period  of  the  message  is  defined  with  the  dbc  attribute 
GenMsgCycleTime  (See in [2]). 
The  cyclic  transmission  of  a  message  starts  automatically,  if  the  Il_Vector_Gm  is  initialized 
and  the  transition  IlTxStart  is  performed  for  the  channel  and  a  VN  is  active  which is related 
to a signal within  a message. 
The  following  sequence  diagram describes the  cyclic transmission  of a message. 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
9 / 48 
based on template version 3.6 






Technical Reference Interaction Layer for General Motors  
 
 
Figure 3-1  Sequence Diagram of Cyclic Transmission 
3.1.2 
Event Based Transmission 
If  the  GenSigSendType  OnAnyChange,  OnChangeIfActive,  OnDelta  is  defined  in  the 
network  database  for  signals,  the  application  has  to  take  care  of  the  transmission  event 
and triggers the  transmission  of signals. 
 
Caution 
If the application does not trigger the transmission, data can get lost. 
 
 
To  implement  this  functionality,  the  Il_Vector_Gm  provides  to  the  application  StateOn  Flags 
per  signal  and  the  IlSetEvent  API  (See  in  chapter  6.2.1.1  IlSetEvent).  The  following 
sequence  diagram  shows  the  event  based  transmission  in  detail.  The  application  checks 
the  VN  activity  of  the  signal  and  if  a  related  VN  is  active,  the application calls IlSetEvent to 
set  a  transmission  request.  The  transmission  takes  place  either  within  the  next  call  of  the 
IlTxTask  (See Figure 3-2  Sequence  Diagram  of  Event  based  Transmission),  or  the 
transmission  is  delayed,  until  the  message  delay  time  is  elapsed  (See  Figure  3-3
 

Sequence  Diagram  of  Event  based  Transmission  with  Delay  and  the  description  of  the 
GenMsgDelayTime  in [2]). 
 
Example 
The following  code is an example of a event based transmission. 
   
/* Write the value to the data buffer for the signal 
“EngOilTemp” */ 
IlPutTxEngOilTemp(5); 
/* Check, that the signal is in an active VN */ 
if (IlGetTxEngOilTempStateOn()) 

2013, Vector Informatik GmbH 
Version: 2.01.02 
10 / 48 
based on template version 3.6 




Technical Reference Interaction Layer for General Motors  
 
  /* Perform the transmission request and 
  use the generated signal handle from il_par.h as parameter */ 
  IlSetEvent(IlTxSigEngOilTemp); 

 
The  message  transmission  results  of  the  implemented  signal  transmission  modes.  More 
than  one transmission  type  can be implemented  in one message. 
 
Figure 3-2  Sequence Diagram of Event based Transmission 
2013, Vector Informatik GmbH 
Version: 2.01.02 
11 / 48 
based on template version 3.6 




Technical Reference Interaction Layer for General Motors  
 
 
Figure 3-3  Sequence Diagram of Event based Transmission w ith Delay 
2013, Vector Informatik GmbH 
Version: 2.01.02 
12 / 48 
based on template version 3.6 





Technical Reference Interaction Layer for General Motors  
 
3.1.3 
Mixed Transmission 
The  implementation  of  event  based  transmission  modes  for  signals  can  be  combined  with 
cyclic  transmission.  The  event  based  transmission  does  not  influence  the  periodic 
transmission  event.  If  the  event  transmission  request  is  set  in  the  same  timeslot  as  the 
periodic transmission  event,  the  transmission  request  is merged. 
If  the  GenSigSendType  OnWrite,  OnAnyChange,  OnChangeIfActive,  OnDelta  is  defined  in 
the  network  database  for  signals,  the  application has to take care of the transmission event 
and triggers the  transmission  of signals. 
 
Caution 
If the application does not trigger the transmission, data can get lost. 
 
 
 
Figure 3-4  Sequence Diagram of Cyclic and Event based Transmission in combination 
2013, Vector Informatik GmbH 
Version: 2.01.02 
13 / 48 
based on template version 3.6 




Technical Reference Interaction Layer for General Motors  
 
3.2 
Signal Access 
The  signal  API  for  normal  signals  is  performed  as  described  in  [2].  If  GENy  detects,  that 
the  message  contains  a  signal  with  a  related  validity,  mask  or  VDA  (Virtual  Device 
Availability)  bit,  the  signals  are  merged  into  a  new  created  signal  group,  to  access  the 
signals consistently. 
 
 
Example 
The following  code is an example for a Signal “EngOilTemp” with validity  bit 
  EngOilTempV which is grouped into the signal group EngOilTempGroup. A indication 
flag has been configured for the signal “EngOilTemp”. The shadow buffer for the signal 
group is provided  by the Interaction Layer.  
 
vuint8 data = 0; 
/* Check, that the signal is received */ 
if (IlGetRxEngOilTempIndication()) 

  /* Clear the indication flag */ 
  IlClrRxEngOilTempIndication(); 
  /* Check, that the signal is in an active VN */ 
  if (IlGetRxEngOilTempStateOn()) 
  { 
    /* Read the complete signal group to a temporary buffer */ 
    IlGetRxEngOilTempStateOnGroup(); 
    /* Check the validity bit */ 
    if(IlGetRxEngOilTempV() == 0) 
    { 
      /* Read the signal value and continue data processing */ 
      data = IlGetRxEngOilTemp(); 
    } 
  } 

 
 
Validity  Bit Value 
Description 

The signal value is valid. 

The signal value is NOT valid. 
Table 3-1  
Validity Bit Value Interpretation 
2013, Vector Informatik GmbH 
Version: 2.01.02 
14 / 48 
based on template version 3.6 




Technical Reference Interaction Layer for General Motors  
 
VDA  Bit Value 
Description 

The virtual  device is NOT available. 

The virtual  device is available. 
Table 3-2  
VDA Bit Value Interpretation 
 
Caution 
Due to historical compatibility reasons, the interpretation of validity and VDA bit value is 
  different. 
 
3.3 
Extended CAN Identifiers 
GMLAN V3.1 is intended  to be used with  standard and extended  CAN identifiers. 
This  extended  CAN  Identifiers  are  introduced  to  provide  the  so  called  Source  Learning 
with  Supervision  mechanism.  This  is  an  extension  to  the  already  provided  timeout  and 
fault  recovery  functions. 
3.3.1 
Source Learning 
The  29-bit header of an extended  CAN Identifier  is separated into different  fields: 
Priority Field 
Bit 28-26  3 bit field used to adjust a message's importance when the 
transmitter arbitrates for the bus. 
The value  is specified in the network database and cannot 
be changed at runtime. 
Parameter Field 
Bit 25-13  13 bit field used to identify  the parameter(s) contained 
within the data field of the message. The parameter(s) will 
be assigned as ID as they are added to the network 
database.  
The value  is specified in the network database and cannot 
be changed at runtime. 
Reserved 
Bit 12-8 
All remaining bits within the 29 bit header shall be 
reserved for future use. All reserved bits are set to zero by 
the CAN  Driver. 
Source Address Field 
Bit 7-0 
8 bit field used to identify  the module which transmitted the 
message. 
The source address of an ECU is set by the application in 
the startup code at runtime via the API 
IlSetOwnNodeAddress  (See in chapter 6.1.1.7 
IlSetOwnNodeAddress).
 
Table 3-3  
Extended CAN Identifier fields 
If  an  extended  CAN  Identifier  is  received  by  an  ECU,  the  priority  and  source  address  are 
filtered  by  the  use  of  masks  generated  by  the  generation  tool.  The  filter  for  CAN  identifier 
of  the  CAN  controller  ignores  the  parameter  values and reserved bits when the message is 
2013, Vector Informatik GmbH 
Version: 2.01.02 
15 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
received.  This  enables  the  system  to  learn  the  source  address  for  a  specific  message. I.e. 
the  source address can be set dynamically.   
The  application  is  notified  by  the  call  of ApplIlSourceAddressLearned (See in chapter 6.3.1 
ApplIlSourceAddressLearned),
  if a new  source  address has been learned  by the  ECU. 
If  the  source  address  of  message  changes  or  the  message  is  received  the  first  time  the 
callback 
function 
ApplIlRxMsgSrcAddressLearned 
(See 
in 
chapter 
6.3.2 
ApplIlRxMsgSrcAddressLearned)  is  called  additional  to  indicate  the  relationship  between 
the  message and the  current  ECU, which  transmits  the  message. 
No  source  address  is  learned  at  the  first  ECU  start  up.  The  source  addresses  of  all  RX 
messages  are set by default to either 254 or 255. A message with a source address of 254 
is  not  mandatory.  Messages  with  a  source  address  of  255  will  be  mandatory.  The  source 
address  can  be  read  by  the  function  IlGetRxMessageSourceAddress  (See  in  chapter 
6.2.1.4 IlGetRxMessageSourceAddress). 
If  the  application  needs  to  identify  the  current  communication  state  of  a  learned  node  the 
function  IlGetNodeCommActiveState  (See  in  chapter  6.2.1.2  IlGetNodeCommActiveState) 
is provided by the  Interaction  Layer. 
During  the  reception  of  messages  the  Interaction  Layer  learns  and  stores  the  source 
address  of  each received message. The application has to store the source addresses in a 
permanent  memory  location  to  avoid  a  new  learning  phase  of  the  system.  If  the  system  is 
powered  up  again,  the  application  has  to  program  the  previously  learned  Source 
addresses 
via 
IlSetRxMessageSourceAddress 
(See 
in 
chapter 
6.2.1.3 
IlSetRxMessageSourceAddress).  An  example  of  the  relearning  is  provided  in  chapter  4.2 
Initialization. 

3.3.2 
Source Address Timeout Supervision 
The  Node  Communication Active  message  (NCA  message)  is  transmitted  by  each ECU in 
the  network,  if  the  communication  is  active  for  a  VN  (Except  VN  0,  this  one is reserved for 
diagnosis).  With  this  message  it  is  possible to learn the source address of an ECU, even if 
no other  extended  Identifier  message is transmitted. 
The  node  timeout  supervision  starts  with  the  reception  of  the  first  extened  id  message  that 
is  no  NCA  message.  If  no  extended  Identifier  message  with  the  already  learned  source 
address  is  received,  a  timeout  occurs.  The  timeout  is  notified  to  the  application  by  the  call 
of  ApplIlNodeCommActiveFailed  (See  in  chapter  6.3.4 ApplIlNodeCommActiveFailed)  with 
the  missing  source  address.  The  timeout  supervision  is  performed  even  for  messages, 
which  are  not  learned  by  the  ECU.  If  mandatory  messages  are  missing,  the  source 
address  255  is  passed  and  254  for  optional  messages.  If  the  timeout  of a source address 
is  detected,  it  can  be  assumed,  that  all  signals  related  to  that  source  address  are  in 
timeout.  Additional  timeout  notifications  for  extended  Identifier  messages  (message 
timeout  function,  signal  timeout  flags  or  timeout  function)  are  called  or  set  and  timeout 
default  values  are set if they  are configured. 
If  an  extended  Identifier  message  with  the  already  learned  source  address  is  received 
again  (e.g.  the  NCA  message),  the  application  is  notified  with  the  call  of 
ApplIlNodeCommActiveRecovery  (See in chapter  6.3.3 ApplIlNodeCommActiveRecovery). 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
16 / 48 
based on template version 3.6 






Technical Reference Interaction Layer for General Motors  
 
3.4 
Application  Controlled Message Filter 
The  application  can  enable  and  disable  the  transmission  and  the  reception  of  messages, 
which  affects  all  signals  included  in  that  messages.  See  in  chapter  6.2.1.5 
IlSetRxMessageEnable  
and chapter  6.2.1.6 IlSetTxMessageEnable. 
 
Example 
Here is an example implementation of the message filter that has been prepared for 
  you. 
void ApplIlInit(void) 

  /* Disable the reception of the message RPM_F */ 
  vError = IlSetRxMessageEnable(IlRxMsgRPM_F, 
kIlMessageDisabled ); 
 
  /* Disable the transmission of the message Vspeed */ 
  vError = IlSetTxMessageEnable(IlTxMsgVSpeed, 
kIlMessageDisabled );  

 
3.5 
Clearing Flags on Deactivate VN 
The  switch  “Enable  Clearing  Flags  on  Deactivate  VN”,  in  the  GENy  GUI,  enables  clearing 
flags  if  the  function  IlRxDeactivateVnMsg  is  called.  This  function  is  called  by  the  NM  to 
deactivate a VN. 
These  flags  are  cleared:  first  value  flags,  timeout  flags,  node  timeout  flags  and  indication 
flags. 
Only  flags  of messages which  have  been deactivated  in IlRxDeactivateVnMsg  are cleared. 
A message gets deactivated if all VNs a message is in are deactivated.   
Info 
If you have an old project and activate this feature you may have to adapt your 
 
application. 
 
Info 
The flags for a signal are cleared when all VNs associated to any signal of the message 
 
are deactivated 
 
 
 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
17 / 48 
based on template version 3.6 





Technical Reference Interaction Layer for General Motors  
 
4  Integration 
This  chapter  includes  an  example  for  the  integration  of  the  Interaction  Layer.  Most 
configurations  depend  on  the  customer’s  environment.  Therefore,  we  can  only  describe  a 
single  simple  configuration  just  to  show  how  it  could  look like. We use pseudo code for our 
example. It  won’t be possible to compile this code. 
4.1 
Include structure 
To  use  the  Vector  Interaction  Layer  for  GMLAN,  only  the  file  il_inc.h  must  be  included  in  all 
application  components  that  want  to  use  Interaction  Layer  functionality.  The  file  can_inc.h 
(which  provides  the  CAN  Driver  interface  and  data  buffers)  must  not  be  included 
separately,  it is automatically  included  by il_inc.h. 
 
Figure 4-1  Including Il_Vector_Gm 
4.2 
Initialization 
If  the  CCL  is  not  used  in  the  software  stack,  the  application  has  to  initialize  the 
components. 
Example 
Here is an example, if the initialization  has to be implemented by the application. 
   
/* Disable interrupts during the initialization of the 
Components */ 
DisableInterrupts(); 
 
/* Initialize all components */ 
CanInitPowerOn(); 
IlInitPowerOn(); 
TpInitPowerOn(); 
2013, Vector Informatik GmbH 
Version: 2.01.02 
18 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
DiagInit(); 
 
IlSetOwnNodeAddress(srcAddress); 
/* Enabling Interrupts is no longer critical, but not 
recommended. */ 
 
/* Relearn already learned source addresses from the  EPROM 
*/ 
for (Hnd = 0 ; Hnd < iNrOfEPROMElements ; Hnd++ ) 

  IlSetRxMessageSourceAddress(ReadRxHandleFromEPROM(Hnd), 
                                    ReadSrcAdressFromEPROM(Hnd)); 

 
/* Enable interrupts */ 
EnableInterrupts(); 
 
4.3 
Cyclic function 
The  IlRxTask  and  IlTxTask  must  be  called  cyclically  as  configured  in  GENy  by  the 
Application, OS or CCL. 
2013, Vector Informatik GmbH 
Version: 2.01.02 
19 / 48 
based on template version 3.6 





Technical Reference Interaction Layer for General Motors  
 
 
Figure 4-2  Call of the Il_Vector cyclic function 
Example 
Here is an example, if the task calls have to be implemented by the application. 
   
for(;;) 

  /* periodic call of IlRxTask() and IlTxTask() */ 
  if (flag_10ms) 
  { 
    IlRxTask(); 
    IlTxTask(); 
    flag_10ms = 0;  /* clear flag which was set by a timer 
*/ 
  } 

 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
20 / 48 
based on template version 3.6 






Technical Reference Interaction Layer for General Motors  
 
5  Configuration 
5.1 
Database Attributes 
This  chapter  describes  the  dbc  network  database  attributes,  which  can  be  used  with 
Il_Vector_Gm. 
Info 
The strings used for the enumerated database attributes are often OEM-specific and 
 
can differ here from general descriptions. Do not change the order of string values in 
enumerated database attributes. The code generator evaluates always the numerical 
indexe of the string list. 
 
Caution 
Don’t mix up the order of enumeration values. Not the value  of the attribute is 
 
interpreted, the position of the selected value. 
 
5.1.1 
Send Type 
Name 
GenMsgSendType 
Description 
Message related transmission mode. 
Type Of Object 
Message 
Value Type 
Enumeration 
Default 
CyclicX 
Values 
CyclicX, SpontanX,  NotUsed, NotUsed, NotUsed,  NotUsed, NotUsed, 
NotUsed, NoMsgSendType 
 
Name 
GenSigSendType 
Description 
Signal related transmission mode. 
Type Of Object 
Signal 
Value Type 
Enumeration 
Default 
NoSigSendType 
Values 
Periodic, NotUsed, NotUsed,  NotUsed, NotUsed, NotUsed, NotUsed, 
NoSigSendType,  NotUsed, NotUsed,  OnAnyChange, OnChangeIfActive, 
OnDelta 
 
5.1.2 
Default Values 
Caution 
Please note, the attribute GenSigStartValue  sets the Default value at initialization  time, 
 
not if IlRxStart or IlTxStart  is called. Due to historical and compatibility reasons, this 
2013, Vector Informatik GmbH 
Version: 2.01.02 
21 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
confusing definition  cannot be changed any more. 
     
Name 
GenSigStartValue 
Description 
This value is the default value for the signal, if IlInitPowerOn  is called. 
The string value type can represent hexadecimal and integer values. 
Type Of Object 
Signal 
Value Type 
String, Integer*,  Float* 
Default 
0x0 
Minimum 
0x0 
Maximum 
0xffffffffffffffff 
 
5.1.3 
Tx NCA Message 
Name 
NodeStatusMsgID 
Description 
This value is the Extended CAN identifier  of the Tx “Node Communication 
Active” message. 
Type Of Object 
Network 
Value Type 
Hex 
Default 
0xFFF800 
Minimum 
0x1FFFFFFF 
Maximum 
0xffffffffffffffff 
 
Name 
NodeStatusMsgCycleTime 
Description 
This value is the cycle time of the Tx “Node Communication Avtive” message. 
The message is transmitted, if a virtual network is active. 
Type Of Object 
Network 
Value Type 
Integer 
Default 
1200 
Minimum 

Maximum 
65535 
 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
22 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Name 
NodeStatusMsgTimeoutTime 
Description 
This value is the timeout time supervision of the Rx Node Communication 
Active message. 
Type Of Object 
Network 
Value Type 
Integer 
Default 
3000 
Minimum 

Maximum 
65535 
 
 
 
5.1.4 
Timeout Supervision 
Name 
GenMsgMandatoryToSupervision 
Description 
This value represents the initial source address, which will  be indicated to the 
application via ApplIlNodeCommActiveFailed,  if no other source address has 
been learned. If No is set, the source address is set to 254, else 255 is set. 
Type Of Object 
Message 
Value Type 
Enumeration 
Default 
No 
Values 
No, Yes 
 
Name 
GenSigSendOnInit 
Description 
If a signal of a message has this value set to Handler,  the SendOnInit  property 
of the message is activated and preconfigurated. 
The message is transmitted, if IlSendOnInitMsg()  or IlQueueVnMsg()  is called 
(Called if an initial  active VN  is activated) or the virtual network is activated (a 
VN can start locally or remotely if a VNMF  message is received). 
Type Of Object 
Signal 
Value Type 
Enumeration 
Default 
NotInitialized 
Values 
NotInitialized,  Application,  Handler 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
23 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Name 
GenSigSuprvResp 
Description 
This value preconfigurates the timeout flag and timeout default value. 
0 : Preconfigure nothing 
1 : A timeout flag is configured for the signal 
2 : A timeout default value is configured for the signal 
3 : A timeout flag and timeout default value  is configured for the signal 
Type Of Object 
Node – Mapped  Rx Signal 
Value Type 
Enumeration 
Default 
None 
Values 
None, Notify,  Substitute, NotifySubstitute 
 
 
Name 
GenSigSuprvRespSubValue 
Description 
This Value is the timeout default value for the signal, if a timeout occurs. 
The integer value allows the definition  of timeout values for signals with a 
maximum Length of 4 Bytes. 
Type Of Object 
Node – Mapped  Rx Signal 
Value Type 
Integer 
Default 
0x0 
Minimum 
0x0 
Maximum 
4294967296 
 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
24 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
6  API Description 
The  following  chapter  extends  or  replaces  API  function  descriptions  provided  in  the 
Technical  Reference  of the  Interaction  Layer  [2]. 
6.1 
Administrative  functions 
6.1.1.1 
IlInitPowerOn 
IlInitPowerOn 
Prototype 
void IlInitPowerOn (void) 
Parameter 
void 
none 
Return code 
void 
none 
Functional Description 
This  method  initializes the Il_Vector  on all channels.  
IlInit  is called for  every  channel. 
Particularities and Limitations 
The  function  is called  by the Application  or  Ccl (Communication  Control  Layer). 
Call context 
The  function  must be called  with disabled  interrupts. 
The  function  must not interrupt  IlRxTask, IlRxStateTask,  IlTxTask,  IlTxStateTask,  IlInit, IlRxStart,  IlTxStart, 
IlRxStop,  IlTxStop. 
 
6.1.1.2 
IlInit 
IlInit 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlInit (void) 
Multi  Channel 
Indexed  (MRC) 
void IlInit (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
2013, Vector Informatik GmbH 
Version: 2.01.02 
25 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Functional Description 
This  method  initializes the Il_Vector  on a channel. 
Rx and  Tx data  buffers  and  flags  are  set to the initial  state. If  no default  value  for  a message  is defined,  the 
data buffer  is set to 0x00. IlNwmInit  of Nm_Gmlan_Gm  is called if  the initialization  is performed.  
Particularities and Limitations 
The  function  is called  by the Application,  Ccl (Communication  Control  Layer)  or  IlInitPowerOn.  
Call context 
The  function  must be called  with disabled  interrupts. 
The  function  must not interrupt  IlRxTask, IlRxStateTask,  IlTxTask,  IlTxStateTask,  IlInitPowerOn,  IlRxStart, 
IlTxStart,  IlRxStop,  IlTxStop. 
 
6.1.1.3 
IlRxTask 
IlRxTask 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlRxTask (void) 
Multi  Channel 
Indexed  (MRC) 
void IlRxTask (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  must be called  periodically  in the  Rx task cycle time configured  in the generation  tool. The 
IlRxTimerTask  and  IlRxStateTask  are  called  by this method.  
Particularities and Limitations 
The  function  is called  by the Application  or  Ccl (Communication  Control  Layer).  
Call context 
The  function  must be called  on task level. 
The  function  must not interrupt  IlRxStateTask,  IlTxTask,  IlTxStateTask,  IlInitPowerOn,  IlInit,  IlRxStart, 
IlTxStart,  IlRxStop,  IlTxStop 
 
6.1.1.4 
IlTxTask 
IlTxTask 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlTxTask (void) 
Multi  Channel 
2013, Vector Informatik GmbH 
Version: 2.01.02 
26 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Indexed  (MRC) 
void IlTxTask (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  must be called  periodically  in the Tx  task cycle time configured  in the generation  tool. The 
IlTxTimerTask  and  IlTxStateTask  are  called  by this method.  
Particularities and Limitations 
The  function  is called  by the Application  or  Ccl (Communication  Control  Layer).  
Call context 
The  function  must be called  on task level. 
The  function  must not interrupt  IlRxStateTask,  IlTxTask,  IlTxStateTask,  IlInitPowerOn,  IlInit,  IlRxStart, 
IlTxStart,  IlRxStop,  IlTxStop 
 
6.1.1.5 
IlRxStateTask 
IlRxStateTask 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlRxStateTask (void) 
Multi  Channel 
Indexed  (MRC) 
void IlRxStateTask (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  is called  periodically  by the IlRxTask.  The  function  can be  called  in a faster  rate than  the 
IlRxTask  to check additionally  for  polled  indication  events.  The  usage  of the  IlRxTask  shall be  preferred. 
- The  source addresses  queued  for  the source  address  learning  are  learned.  
- The  timeout counter  for  the source  address  is started, if the  source address  is not already  known.  
Particularities and Limitations 
The  function  is called  by the Application  or  IlRxTask. 
Call context 
The  function  must be called  on task level. 
The  function  must not interrupt  IlRxStateTask,  IlTxTask,  IlTxStateTask,  IlInitPowerOn,  IlInit,  IlRxStart, 
IlTxStart,  IlRxStop,  IlTxStop 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
27 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
6.1.1.6 
IlTxStateTask 
IlTxStateTask 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlTxStateTask (void) 
Multi  Channel 
Indexed  (MRC) 
void IlTxStateTask (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  is called  periodically  by the IlTxTask.  The  function  can be called  in a faster  rate,  than the 
IlTxTask,  to check additionally  for  polled  confirmation  events.  The  usage  of  the IlTxTask  shall be  preferred.  
Particularities and Limitations 
The  function  is called  by the Application  or  IlTxTask. 
Call context 
The  function  must be called  on task level. 
The  function  must not interrupt  IlRxStateTask,  IlTxTask,  IlTxStateTask,  IlInitPowerOn,  IlInit,  IlRxStart, 
IlTxStart,  IlRxStop,  IlTxStop 
 
6.1.1.7 
IlSetOwnNodeAddress 
IlSetOwnNodeAddress 
Prototype 
Single Channel 
Single  Receive  Channel 
Il_Status IlSetOwnNodeAddress (vuint8 srcAddress) 
Multi  Channel 
Indexed  (MRC) 
Il_Status IlSetOwnNodeAddress (CanChannelHandle 
channel, vuint8 srcAddress) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
srcAddress 
Source  address  of  this ECU,  which  will be  added  to the low  byte of  each 
extended  ID  transmitted by the CAN  driver. 
Return code 
Il_Status 
IL_OK  : the node  address  has been  set. 
IL_ERROR  : the node  is not configured  for  the  usage  of GMLAN  extended 
identifiers  and  the source  address  is not  accepted. 
Functional Description 
This  method  sets the source  address  for  this ECU. 
2013, Vector Informatik GmbH 
Version: 2.01.02 
28 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Particularities and Limitations 
none 
Call context 
The  function  must be called  on task level  after  CanInitPowerOn  is called AND  before  interrupts  are 
activated. 
 
6.2 
Service functions 
6.2.1.1 
IlSetEvent 
IlSetEvent 
Prototype 
void IlSetEvent (IlTransmitHandle ilTxHnd) 
Parameter 
ilTxHnd 
Handle  of  the Tx message. 
Return code 
void 
none 
Functional Description 
This  method  serves  to set a  transmission request  for  a message.  
Particularities and Limitations 
The  function  is called  by the Application  or  by IlPutTx  method.  
Call context 
The  function  can be  called on  task and  interrupt  level. 
 
6.2.1.2 
IlGetNodeCommActiveState 
IlGetNodeCommActiveState 
Prototype 
Single Channel 
Single  Receive  Channel 
vuint8 IlGetNodeCommActiveState (vuint8 srcAddress) 
Multi  Channel 
Indexed  (MRC) 
vuint8 IlGetNodeCommActiveState (CanChannelHandle 
channel, vuint8 srcAddress) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
srcAddress 
Source  address  of  an  ECU. 
2013, Vector Informatik GmbH 
Version: 2.01.02 
29 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Return code 
vuint8 
kIlNodeUnknown  : The  given  node  address  has not been  learnt.  
kIlNodeFailed  : This  node  is in timeout  state. 
kIlNodeActive  : Node  is sending  messages  (at least one  NCA).  
kIlNodeIdle  : Node  address  is in the list, but is currently inactive.  
Functional Description 
This  method  returns  the  state of  an ECU  in the  network. The  Il  searches for  the srcAddress and  returns  the 
status. 
Particularities and Limitations 
none 
Call context 
The  function  must be called  on task level. 
 
6.2.1.3 
IlSetRxMessageSourceAddress 
IlSetRxMessageSourceAddress 
Prototype 
Il_Status IlSetRxMessageSourceAddress (IlReceiveHandle ilRxHnd, vuint8 
srcAddress) 
Parameter 
ilRxHnd 
Handle  of  the Rx message. 
srcAddress 
Source  address  of  an  ECU for  this message. 
Return code 
Il_Status 
IL_OK  : the source  address  is now  configured  for  the Rx message 
IL_ERROR  : ilRxHnd  is invalid  or  ilRxExtIdHnd  is inconsistent or  channel  is 
inconsistent 
Functional Description 
This  method  sets the source  address  as learned  for  a Rx message.  
Particularities and Limitations 
The  function  is only  available  if Extended-Identifiers  are  used. 
Call context 
The  function  must be called  on task level. 
 
6.2.1.4 
IlGetRxMessageSourceAddress 
IlGetRxMessageSourceAddress 
Prototype 
Il_Status IlGetRxMessageSourceAddress (IlReceiveHandle ilRxHnd, vuint8 
*pSrcAddress) 
2013, Vector Informatik GmbH 
Version: 2.01.02 
30 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Parameter 
ilRxHnd 
Handle  of  the Rx message. 
pSrcAddress 
Pointer  to where  the source  address  of  a message  has to be stored.  
Return code 
Il_Status 
IL_OK  : the source  address  is now  returned  for  the  Rx message 
IL_ERROR  : ilRxHnd  is invalid  or  ilRxExtIdHnd  is inconsistent or  channel  is 
inconsistent 
Functional Description 
This  method  returns  the  source address  a  Rx message learnt  in the last session.  
Particularities and Limitations 
The  function  is only  available  if Extended-Identifiers  are  used. 
Call context 
The  function  must be called  on task level. 
 
6.2.1.5 
IlSetRxMessageEnable 
IlSetRxMessageEnable 
Prototype 
Il_Status IlSetRxMessageEnable (IlReceiveHandle ilRxHnd, vuint8 type) 
Parameter 
ilRxHnd 
Handle  of  the Rx message.  Use the message  handle  generated  in il_par.h! 
type 
kIlMsgEnabled  or  kIlMsgDisabled 
Return code 
Il_Status 
IL_OK  : the Rx messages  handle  has  been  activated  or  deactivated 
IL_ERROR  : the Rx messages  handle  is out of  range 
Functional Description 
This  method  activates  or  deactivates  the reception  of  a message.  
Particularities and Limitations 
Only messages  which are  handled  by the  Interaction  Layer  can be enabled  or disabled.  TP  and  NM 
messages  are not  affected  (NCA,  HLVW, VNMF, USDT  and  UUDT  messages).  
Call context 
The  function  must be called  in the context of ApllIlInit().  
 
6.2.1.6 
IlSetTxMessageEnable 
IlSetTxMessageEnable 
Prototype 
Il_Status IlSetTxMessageEnable (IlTransmitHandle ilTxHnd, vuint8 type) 
2013, Vector Informatik GmbH 
Version: 2.01.02 
31 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Parameter 
ilTxHnd 
Handle  of  the Tx message.  Use the  message handle  generated  in il_par.h! 
type 
kIlMsgEnabled  or  kIlMsgDisabled 
Return code 
Il_Status 
IL_OK  : the Tx messages  handle  has been  activated  or  deactivated 
IL_ERROR  : the Tx messages  handle  is out of  range 
Functional Description 
This  method  activates  or  deactivates  the transmission  of  a message.  
Particularities and Limitations 
Only messages  which are  handled  by the  Interaction  Layer  can be enabled  or disabled.  TP  and  NM 
messages  are not  affected  (NCA,  HLVW, VNMF, USDT  and  UUDT  messages).  
Call context 
The  function  must be called  in the context of ApllIlInit().  
 
6.2.1.7 
IlGetTransmitMessageStatus 
IlGetTransmitMessageStatus 
Prototype 
vuint8 IlGetTransmitMessageStatus (IlTransmitHandle ilTxHnd) 
Parameter 
ilTxHnd 
Handle  of  the Tx message.  Do  not use the generated  signal  handles  for  the 
message  indirection! 
Return code 
vuint8 
(vuint8)  0 : the message  is idle  and  no transmission  is expected  from  the  Il 
kIlTxMsgQueued  : the transmission  is requested  to the CAN  Driver  and  wait 
for  confirmation 
kIlTxMsgPending  : the  message  is pending  for  queuing  in the Il.  
Functional Description 
The  function  provides  the status of the  message. 
Particularities and Limitations 
The  function  is called  by the Application. 
Call context 
The  function  can be  called on  task and  interrupt  level. 
 
6.3 
Callback functions 
The  following  functions  have  to  be  implemented  by  the  application  if  the  configuration  in 
GENy  activates  the callback  function. 
2013, Vector Informatik GmbH 
Version: 2.01.02 
32 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
6.3.1 
ApplIlSourceAddressLearned 
ApplIlSourceAddressLearned 
Prototype 
Single Channel 
Single  Receive  Channel 
void ApplIlSourceAddressLearned (vuint8 srcAddress) 
Multi  Channel 
Indexed  (MRC) 
void ApplIlSourceAddressLearned (CanChannelHandle 
channel, vuint8 srcAddress) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
srcAddress 
Source  address  that has been  learned. 
Return code 
void 
none 
Functional Description 
This  method  is called  to indicate, that a new  source  address  had  been  detected  and  learned  from  a node 
on  the network.  This  method  can be  influenced  by the call of  IlSetRxMessageSourceAddress.  If  a node 
transmits the NCA  message  and  other  extended  Ids are  not used, ApplIlRxMsgSrcAddressLearned  will 
never  be  called, but this one  will be called. 
Particularities and Limitations 
The  function  is only  available  if Extended-Identifiers  are  used. 
Call context 
The  function  is called  in the context the IlRxStateTask  or IlSetRxMessageSourceAddress. 
 
6.3.2 
ApplIlRxMsgSrcAddressLearned 
ApplIlRxMsgSrcAddressLearned 
Prototype 
Single Channel 
Single  Receive  Channel 
void ApplIlRxMsgSrcAddressLearned (IlReceiveHandle 
ilRxHnd, vuint8 srcAddress) 
Multi  Channel 
Indexed  (MRC) 
void ApplIlRxMsgSrcAddressLearned (CanChannelHandle 
channel, IlReceiveHandle ilRxHnd, vuint8 srcAddress) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
ilRxHnd 
Handle  of  the Il Rx message,  where  the source  address  has been  learnt  from. 
srcAddress 
Source  address  that has been  learned. 
Return code 
void 
none 
2013, Vector Informatik GmbH 
Version: 2.01.02 
33 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Functional Description 
This  method  is called  to indicate, that a new  source  address  had  been  detected  and  learned  from  a node 
on  the network  from  a specific message. This  method  is not influenced  by the call of 
IlSetRxMessageSourceAddress.  The  function  shall be used,  to store  the learned  value  and  reset it during 
start-up  via  IlSetRxMessageSourceAddress  where  the ilRxHnd  is needed.  
Particularities and Limitations 
The  function  is only  available  if Extended-Identifiers  are  used. 
Call context 
The  function  is called  by the IlRxStateTask. 
 
6.3.3 
ApplIlNodeCommActiveRecovery 
ApplIlNodeCommActiveRecovery 
Prototype 
Single Channel 
Single  Receive  Channel 
void ApplIlNodeCommActiveRecovery (vuint8 
srcAddress) 
Multi  Channel 
Indexed  (MRC) 
void ApplIlNodeCommActiveRecovery (CanChannelHandle 
channel, vuint8 srcAddress) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
srcAddress 
Source  address  of  an  ECU. 
Return code 
void 
none 
Functional Description 
This  method  is called  to indicate, that an  extended  Identifier  from  the source  address  has been  received 
again  after  a communication  failure  had  been  detected. 
Particularities and Limitations 
The  function  is only  available  if Extended-Identifiers  are  used. 
Call context 
The  function  is called  in the context the IlRxStateTask  or IlSetRxMessageSourceAddress.  
 
6.3.4 
ApplIlNodeCommActiveFailed 
ApplIlNodeCommActiveFailed 
Prototype 
Single Channel 
Single  Receive  Channel 
void ApplIlNodeCommActiveFailed (vuint8 srcAddress) 
Multi  Channel 
2013, Vector Informatik GmbH 
Version: 2.01.02 
34 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Indexed  (MRC) 
void ApplIlNodeCommActiveFailed (CanChannelHandle 
channel, vuint8 srcAddress) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
srcAddress 
Source  address  of  an  ECU. 
Return code 
void 
none 
Functional Description 
This  method  is called  to indicate, that timeout  supervision  of  the Node  Communication  Active  message  of  a 
source  address  has been  failed. 
Particularities and Limitations 
The  function  is only  available  if Extended-Identifiers  are  used. 
Call context 
The  function  is called  by the IlRxTimerTask. 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
35 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
7  Abbreviations 
Abbreviation 
Description 
API 
Application  Programming Interface 
CAN 
Controller Area Network 
CCL 
Communication Control Layer 
ECU 
Electronic Control Unit 
HLVW 
High Voltage  Wake Up 
MRC 
Multiple  Receive Channel 
NCA 
Node Communication Active 
NM 
Network Management 
OS 
Operating System 
USDT 
Unacknowledged  and Segmented Data Transfer 
UUDT 
Unacknowledged  and Unsegmented Data Transfer 
VDA 
Virtual Device Availability 
VN 
Virtual Network 
VNMF 
Virtual Network Management  Frame 
 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
36 / 48 
based on template version 3.6 




Technical Reference Interaction Layer for General Motors  
 
8  Appendix 
8.1 
Nm_Gmlan_Gm  Interface 
The  following  methods  are  interface  functions  provided  by  the  Interaction  Layer  for  the 
Gmlan  Network  Management. 
Caution 
Do not use this functions from within the application unless not explicitly  required. 
 
 
8.1.1 
IlRxStart 
IlRxStart 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlRxStart (void) 
Multi  Channel 
Indexed  (MRC) 
void IlRxStart (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  enables  the reception  of  messages. The  transition  "start" of the  Rx state machine  is 
performed. 
- The  flags used  to indicate  virtual  network  activity  are  cleared. 
- Suspend  the timeout counter  for  source address  255  and  254.  
- Suspend  the timeout counter  for  learned  source  addresses  by clearing  the number  of  active  Rx messages 
per  source  address. 
Particularities and Limitations 
The  function  is called  by the Application  or  NM (Network  Management).  
Call context 
The  function  must be called  on task level. 
The  function  must not interrupt  IlRxTask, IlRxStateTask,  IlTxTask,  IlTxStateTask,  IlInitPowerOn,  IlInit, 
IlTxStart,  IlRxStop,  IlTxStop. 
 
8.1.2 
IlTxStart 
IlTxStart 
2013, Vector Informatik GmbH 
Version: 2.01.02 
37 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlTxStart (void) 
Multi  Channel 
Indexed  (MRC) 
void IlTxStart (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  enables  the transmission of  messages  and  starts the transmission of  periodic  messages. The 
transition  "start" of  the Tx state machine  is performed. 
- The  flags used  to indicate  virtual  network  activity  are  cleared.  
- Requests  are  queued  to be  transmitted by the call of  IlSendOnInitMsg.  
Particularities and Limitations 
The  function  is called  by the Application  or  NM (Network  Management).  
Call context 
The  function  must be called  on task level. 
The  function  must not interrupt  IlRxTask, IlRxStateTask,  IlTxTask,  IlTxStateTask,  IlInitPowerOn,  IlInit, 
IlTxStart,  IlRxStop,  IlTxStop. 
 
8.1.3 
IlRxStop 
IlRxStop 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlRxStop (void) 
Multi  Channel 
Indexed  (MRC) 
void IlRxStop (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  disables  the reception  of messages. The  transition  "stop" of  the Rx state machine  is 
performed.  The  method  is used  for  example  to enter  the Sleep  Mode  of  an  ECU.  
- The  timeout flags  for  the application  are  cleared. 
- All Rx virtual  networks  must be deactivated  to call IlRxStop().  
2013, Vector Informatik GmbH 
Version: 2.01.02 
38 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Particularities and Limitations 
The  function  is called  by the Application  or  NM (Network  Management). 
Call context 
The  function  must be called  on task level. 
The  function  must not interrupt  IlRxTask, IlRxStateTask,  IlTxTask,  IlTxStateTask,  IlInitPowerOn,  IlInit, 
IlTxStart,  IlRxStop,  IlTxStop. 
 
8.1.4 
IlTxStop 
IlTxStop 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlTxStop (void) 
Multi  Channel 
Indexed  (MRC) 
void IlTxStop (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  disables  the transmission  of messages  (Sleep  Mode).  The  transition  "stop" of  the Tx state 
machine  is performed.  The  method  is used for  example  to enter  the Sleep  Mode  of  an ECU.  
- All Tx virtual  networks  must be  deactivated  to call IlTxStop.  
Particularities and Limitations 
The  function  is called  by the Application  or  NM (Network  Management).  
Call context 
The  function  must be called  on task level. 
The  function  must not interrupt  IlInitPowerOn,  IlInit,  IlRxTask,  IlRxStateTask,  IlRxTimerTask,  IlTxTask , 
IlTxStateTask,  IlTxTimerTask,  IlRxStart, IlTxStart,  IlRxStop 
 
8.1.5 
IlRxWait 
IlRxWait 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlRxWait (void) 
Multi  Channel 
Indexed  (MRC) 
void IlRxWait (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
2013, Vector Informatik GmbH 
Version: 2.01.02 
39 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Return code 
void 
none 
Functional Description 
This  method  halts the reception  of messages. The  transition  "wait" of  the Rx state machine  is performed. 
The  method  is used  for  example  when  the bus-off  mode  of  an  ECU  was entered. 
Particularities and Limitations 
The  function  is called  by the Application  or  NM (Network  Management).  
Call context 
The  function  can be  called on  task and  interrupt  level. 
 
8.1.6 
IlTxWait 
IlTxWait 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlTxWait (void) 
Multi  Channel 
Indexed  (MRC) 
void IlTxWait (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  halts the transmission  of messages. The  transition  "wait" of  the Tx state machine  is 
performed.  The  method  is used  for  example  when  the bus -off  mode  of  an  ECU  was entered. 
Particularities and Limitations 
The  function  is called  by the Application  or  NM (Network  Management).  
Call context 
The  function  can be  called on  task and  interrupt  level. 
 
8.1.7 
IlRxRelease 
IlRxRelease 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlRxRelease (void) 
Multi  Channel 
Indexed  (MRC) 
void IlRxRelease (CanChannelHandle channel) 
2013, Vector Informatik GmbH 
Version: 2.01.02 
40 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  restarts the reception  of  messages from  the  "Waiting" state. The  transition  "release"  of  the Rx 
state machine  is performed. 
- The  timeout counters  for  all source  addresses  are  restarted. 
Particularities and Limitations 
The  function  is called  by the Application  or  NM (Network  Management).  
Call context 
The  function  can be  called on  task and  interrupt  level. 
 
8.1.8 
IlTxRelease 
IlTxRelease 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlTxRelease (void) 
Multi  Channel 
Indexed  (MRC) 
void IlTxRelease (CanChannelHandle channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  resumes  the transmission  of  messages from  the "Waiting" state. The  transition "release"  of  the 
Tx  state machine  is performed. 
Particularities and Limitations 
The  function  is called  by the Application  or  NM (Network  Management).  
Call context 
The  function  can be  called on  task and  interrupt  level. 
 
 
8.1.9 
IlRxActivateVnMsg   
IlRxActivateVnMsg 
Prototype 
Single Channel 
2013, Vector Informatik GmbH 
Version: 2.01.02 
41 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Single  Receive  Channel 
Il_Status IlRxActivateVnMsg (vuint8 ilVnHnd) 
Multi  Channel 
Indexed  (MRC) 
Il_Status IlRxActivateVnMsg (CanChannelHandle 
channel, vuint8 ilVnHnd) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
ilVnHnd 
Il_Vector_Gm  internal  VN handle. 
Return code 
Il_Status 
IL_ERROR  : a parameter  check has failed  OR the  Rx state machine  of  the 
channel  is not in the running  state 
IL_VN_ALREADY_ACTIVE  : an  already  activated  VN has been  requested  for 
activation 
IL_VN_ACTIVATED  : the  VN is now  activated 
Functional Description 
This  method  starts all Rx messages  of a  VN. 
Particularities and Limitations 
The  function  is called  by Nm_Gmlan_Gm. 
Call context 
The  function  must be called  on task level  and if  the Rx state machine  of  the dependent  channel  is in the 
running  state. 
 
8.1.10  IlRxDeactivateVnMsg 
IlRxDeactivateVnMsg 
Prototype 
Single Channel 
Single  Receive  Channel 
Il_Status IlRxDeactivateVnMsg (vuint8 ilVnHnd) 
Multi  Channel 
Indexed  (MRC) 
Il_Status IlRxDeactivateVnMsg (CanChannelHandle 
channel, vuint8 ilVnHnd) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
ilVnHnd 
Il_Vector_Gm  internal  VN handle. 
Return code 
Il_Status 
IL_ERROR  : a parameter  check has failed  OR the  Rx state machine  of  the 
channel  is not in the running  state 
an  already  deactivated  VN has been  requested  for  deactivation 
IL_VN_DEACTIVATE D  : the VN  is now  deactivated. 
2013, Vector Informatik GmbH 
Version: 2.01.02 
42 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Functional Description 
This  method  stops all Rx messages of  a VN. If  enabled,  the flags  of  the deactivated  messages  are  cleared 
(see  3.5).  
Particularities and Limitations 
The  function  is called  by Nm_Gmlan_Gm. 
Call context 
The  function  must be called  on task level  and if  the Rx state machine  of  the dependent  channel  is in the 
running  state. 
 
8.1.11  IlTxActivateVnMsg 
IlTxActivateVnMsg 
Prototype 
Single Channel 
Single  Receive  Channel 
Il_Status IlTxActivateVnMsg (vuint8 ilVnHnd) 
Multi  Channel 
Indexed  (MRC) 
Il_Status IlTxActivateVnMsg (CanChannelHandle 
channel, vuint8 ilVnHnd) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
ilVnHnd 
Il_Vector_Gm  internal  VN handle. 
Return code 
Il_Status 
IL_ERROR  : a parameter  check has failed  OR the Tx  state machine  of  the 
channel  is not in the running  state 
IL_VN_ALREADY_ACTIVE  : an  already  activated  VN has been  requested  for 
activation 
IL_VN_ACTIVATED  : the  VN is now  activated 
Functional Description 
This  method  starts all Tx messages  of  a VN. 
Particularities and Limitations 
The  function  is called  by Nm_Gmlan_Gm. 
Call context 
The  function  must be called  on task level  and if  the Tx state machine  of  the dependent  channel  is in the 
running  state. 
 
8.1.12  IlTxDeactivateVnMsg 
IlTxDeactivateVnMsg 
Prototype 
Single Channel 
Single  Receive  Channel 
Il_Status IlTxDeactivateVnMsg (vuint8 ilVnHnd) 
2013, Vector Informatik GmbH 
Version: 2.01.02 
43 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Multi  Channel 
Indexed  (MRC) 
Il_Status IlTxDeactivateVnMsg (CanChannelHandle 
channel, vuint8 ilVnHnd) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
ilVnHnd 
Il_Vector_Gm  internal  VN handle. 
Return code 
Il_Status 
IL_ERROR  : a parameter  check has failed  OR the Tx  state machine  of  the 
channel  is not in the running  state OR  an already  deactivated  VN has been 
requested  for  deactivation 
IL_VN_DEACTIVATE D  : the VN  is now  deactivated. 
Functional Description 
This  method  stops all Tx  messages of  a VN. 
Particularities and Limitations 
The  function  is called  by Nm_Gmlan_Gm. 
Call context 
The  function  must be called  on task level  and if  the Tx state machine  of  the dependent  channel  is in the 
running  state. 
 
8.1.13  IlRxStartVnMsgSupervision 
IlRxStartVnMsgSupervision 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlRxStartVnMsgSupervision (vuint8 ilVnHnd) 
Multi  Channel 
Indexed  (MRC) 
void IlRxStartVnMsgSupervision (CanChannelHandle 
channel, vuint8 ilVnHnd) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
ilVnHnd 
Il_Vector_Gm  internal  VN handle. 
Return code 
void 
none 
Functional Description 
This  method  starts the Rx extended  id timeout supervision  for  all Rx messages of  a VN, if 
- The  arguments  are  valid. 
- The  Rx state machine  is in the running  state. 
- The  Rx VN is active. 
- The  Rx extended  id timeout  supervision  is not  already  started.  
2013, Vector Informatik GmbH 
Version: 2.01.02 
44 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
Particularities and Limitations 
The  function  is called  by Nm_Gmlan_Gm. 
Call context 
The  function  must be called  on task level  and if  the Rx state machine  of  the dependent  channel  is in the 
running  state. 
 
8.1.14  IlRxDeactivateVnMsgSupervision 
IlRxDeactivateVnMsgSupervision 
Prototype 
Single Channel 
Single  Receive  Channel 
Il_Status IlRxDeactivateVnMsgSupervision (vuint8 
ilVnHnd) 
Multi  Channel 
Indexed  (MRC) 
Il_Status IlRxDeactivateVnMsgSupervision 
(CanChannelHandle channel, vuint8 ilVnHnd) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
ilVnHnd 
Il_Vector_Gm  internal  VN handle. 
Return code 
Il_Status 
IL_ERROR  : a parameter  check has failed  OR the  Rx VN is not running  OR 
the Rx state machine  of  the channel  is not in the running  state  an already 
supervision  deactivated  VN has  been  requested  for  deactivation 
IL_VN_DEACTIVATE D  : the timeout  supervision  of  the VN is now  deactivated.  
Functional Description 
This  method  stops the Rx timeout supervision  for  all Rx messages of  a VN.  
Particularities and Limitations 
The  function  is called  by Nm_Gmlan_Gm. 
Call context 
The  function  must be called  on task level  and if  the Rx state machine  of  the dependent  channel  is in the 
running  state. 
 
8.1.15  IlResetRxTimeoutFlags 
IlResetRxTimeoutFlags 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlResetRxTimeoutFlags (void) 
Multi  Channel 
Indexed  (MRC) 
void IlResetRxTimeoutFlags (CanChannelHandle 
channel) 
2013, Vector Informatik GmbH 
Version: 2.01.02 
45 / 48 
based on template version 3.6 




Technical Reference Interaction Layer for General Motors  
 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  clears Rx timeout  flags  of  the Application  and  internal  ilNodeCommActiveTimeoutFlags.  
- The  flags used  internal  to indicate  NCA  timeout  are  cleared.  
Particularities and Limitations 
The  function  is called  by the Application. 
Caution 
Do  not call this Il  internal API  from  the application! 
 
Call context 
The  function  can be  called on  task and  interrupt  level. 
 
8.1.16  IlRequeueTransmitMessages 
IlRequeueTransmitMessages 
Prototype 
Single Channel 
Single  Receive  Channel 
void IlRequeueTransmitMessages (void) 
Multi  Channel 
Indexed  (MRC) 
void IlRequeueTransmitMessages (CanChannelHandle 
channel) 
Parameter 
channel  (Indexed) 
Handle  of  the logical  CAN Driver  channel. 
Return code 
void 
none 
Functional Description 
This  method  queues  again  all pending  Tx messages  and  set a  transmission request  for  these Tx 
messages. 
Particularities and Limitations 
The  function  is called  by Nm_Gmlan_Gm  during  a Busoff  to queue  again  all Tx messages  that are  pended 
for  transmission  to the CAN  Driver.  The  transmit queue  is cleared  of  the CAN  Driver  id  cleared  during  a 
bus-off.  Therefore  all issued  messages must be retransmitted  by the Il.  
Call context 
The  function  must be called  on task level. 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
46 / 48 
based on template version 3.6 




Technical Reference Interaction Layer for General Motors  
 
8.2 
Interaction Layer Internal  Interfaces 
APIs  which  are  not  explicitly  described  in  this  or  any  other  documentation  for  the  usage 
shall  not  be called  from the  application. 
Caution 
Do not use internal functions from within the application unless not explicitly required. 
 
 
2013, Vector Informatik GmbH 
Version: 2.01.02 
47 / 48 
based on template version 3.6 



Technical Reference Interaction Layer for General Motors  
 
9  Contact 
Visit our  website for more information  on 
 
>   News 
>   Products 
>   Demo software 
>   Support 
>   Training  data 
>   Addresses 
 
www.vector-informatik.com 
2013, Vector Informatik GmbH 
Version: 2.01.02 
48 / 48 
based on template version 3.6 

Document Outline


Last modified October 12, 2025: Initial commit (1fadfc4)