| /****************************************************************************** |
| * 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 |
| } |
| |
| } |