 /********************************************************************************
 * Copyright (c) 2025-2026 ZF Friedrichshafen AG
 *
 * This program and the accompanying materials are made available under the 
 * terms of the Apache License Version 2.0 which is available at
 * https://www.apache.org/licenses/LICENSE-2.0
 *
 * SPDX-License-Identifier: Apache-2.0 
 ********************************************************************************/

/**
* @file config.h
* @date 2025-09-06 14:55:42
* This file defines the data link object between CAN and the V-API devices.
* This file was generated by the DBC utility from:
*   datalink_4doors_example.dbc
*   DBC file version: 1.0.0.1
*/
#ifndef __DBC_GENERATED__CONFIG_H__20250906_145542_578__
#define __DBC_GENERATED__CONFIG_H__20250906_145542_578__

#include <stdint.h>

// define class name and unique id
#define MODEL_IDENTIFIER Doors4ExampleFMU
#define INSTANTIATION_TOKEN "3fbc9066-6c16-4b98-b5fc-7a7c0735f200"
#define FMI_VERSION 2

#define CO_SIMULATION

// define model size
#define NX 0
#define NZ 0

#define GET_INT32
#define SET_INT32
#define GET_FLAOT64
#define SET_FLOAT64
#define EVENT_UPDATE
#define CLEAN_UP

#define FIXED_SOLVER_STEP 0.04
#define DEFAULT_STOP_TIME 10

typedef enum {

    vr_Door01LeftIsOpen = 0,
    vr_Door01RightIsOpen = 1,
    vr_Door02LeftIsOpen = 2,
    vr_Door02RightIsOpen = 3,
    vr_LockDoor02Right = 4,
    vr_LockDoor02Left = 5,
    vr_LockDoor01Right = 6,
    vr_LockDoor01Left = 7,

} ValueReference;

typedef struct {

    int32_t Door01LeftIsOpen;
    int32_t Door01RightIsOpen;
    int32_t Door02LeftIsOpen;
    int32_t Door02RightIsOpen;
    int32_t LockDoor02Right;
    int32_t LockDoor02Left;
    int32_t LockDoor01Right;
    int32_t LockDoor01Left;

} ModelData;

#endif // !defined __DBC_GENERATED__CONFIG_H__20250906_145542_578__

