blob: 7a4c706189e3a84742140d4660a3415da9e4bd61 [file] [log] [blame]
/******************************************************************************
* 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
******************************************************************************/
//Revision R1A
module Bcm
{
import from Can all;
import from General_Types all;
const integer CAN_FRAME_MAX_NUMBER := 256;
type enumerated BcmFlagsBitIndex_enum {
e_CAN_BCM_SETTIMER_BITINDEX (0),
e_CAN_BCM_STARTTIMER_BITINDEX (1),
e_CAN_BCM_TX_COUNTEVT_BITINDEX (2),
e_CAN_BCM_TX_ANNOUNCE_BITINDEX (3),
e_CAN_BCM_TX_CP_CAN_ID_BITINDEX (4),
e_CAN_BCM_RX_FILTER_ID_BITINDEX (5),
e_CAN_BCM_RX_CHECK_DLC_BITINDEX (6),
e_CAN_BCM_RX_NO_AUTOTIMER_BITINDEX (7),
e_CAN_BCM_RX_ANNOUNCE_RESUME_BITINDEX (8),
e_CAN_BCM_TX_RESET_MULTI_IDX_BITINDEX (9),
e_CAN_BCM_RX_RTR_FRAME_BITINDEX (10)
}
type enumerated BcmFlags_enum {
e_CAN_BCM_SETTIMER (1),
e_CAN_BCM_STARTTIMER (2),
e_CAN_BCM_TX_COUNTEVT (4),
e_CAN_BCM_TX_ANNOUNCE (8),
e_CAN_BCM_TX_CP_CAN_ID (16),
e_CAN_BCM_RX_FILTER_ID (32),
e_CAN_BCM_RX_CHECK_DLC (64),
e_CAN_BCM_RX_NO_AUTOTIMER (128),
e_CAN_BCM_RX_ANNOUNCE_RESUME (256),
e_CAN_BCM_TX_RESET_MULTI_IDX (512),
e_CAN_BCM_RX_RTR_FRAME (1024)
}
type enumerated BcmOpcode_enum {
e_CAN_BCM_TX_SETUP (1), // create (cyclic) transmission task
e_CAN_BCM_TX_DELETE (2), // remove (cyclic) transmission task
e_CAN_BCM_TX_READ (3), // read properties of (cyclic) transmission task
e_CAN_BCM_TX_SEND (4), // send one CAN frame
e_CAN_BCM_RX_SETUP (5), // create RX content filter subscription
e_CAN_BCM_RX_DELETE (6), // remove RX content filter subscription
e_CAN_BCM_RX_READ (7), // read properties of RX content filter subscription
e_CAN_BCM_TX_STATUS (8), // reply to TX_READ request
e_CAN_BCM_TX_EXPIRED (9), // notification on performed transmissions (count=0)
e_CAN_BCM_RX_STATUS (10), // reply to RX_READ request
e_CAN_BCM_RX_TIMEOUT (11), // cyclic message is absent
e_CAN_BCM_RX_CHANGED (12) // updated CAN frame (detected content change)
}
type integer Bcm_long (-2147483648 .. +2147483647);
type record Bcm_timeval {
Bcm_long tv_sec,
Bcm_long tv_usec
}
//type record length (0 .. CAN_FRAME_MAX_NUMBER) of CAN_frame Can_frame;
type record SocketCAN_bcm_frame {
OCT4 opcode,
bitstring flags length (32),
LIN4_BO_LAST count,
Bcm_timeval ival1,
Bcm_timeval ival2,
CAN_id can_id,
union {
record length (0 .. CAN_FRAME_MAX_NUMBER) of CAN_frame can_frame,
record length (0 .. CAN_FRAME_MAX_NUMBER) of CANFD_frame canfd_frame
} frames // should become optional and the records have at least the length 1
}
}