

/* Copyright (c) 2010, 2016  Ericsson AB
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Michael Josenhans
******************************************************************************/
//
//  File:               Isotp.ttcn
//  Description:        Isotp base 
//


module Isotp {

import from Bcm all
import from Can all
import from Raw all
import from SocketCAN_Types all
import from General_Types all

template SocketCAN_write_isotp_result a_SocketCAN_write_isotp_result(
  template SocketCAN_Result p_result) := { 
  // send ISOTP pdu
  result := p_result
}

template SocketCAN_receive_isotp_pdu a_SocketCAN_receive_isotp_pdu(
  template SocketCAN_socketid p_id, 
  template CAN_id p_can_id,
  template SocketCAN_Isotp_PDU p_isotp_pdu) := { 
  // recieved CAN frame
  id        := p_id,
  ifr       := ?,
  pdu       := p_isotp_pdu
}

} 




