/*
 * Academic License - for use in teaching, academic research, and meeting
 * course requirements at degree granting institutions only.  Not for
 * government, commercial, or other organizational use.
 *
 * File: GearPosition.h
 *
 * Code generated for Simulink model 'GearPosition'.
 *
 * Model version                  : 13.12
 * Simulink Coder version         : 24.1 (R2024a) 19-Nov-2023
 * C/C++ source code generated on : Wed May  7 16:00:58 2025
 *
 * Target selection: ert.tlc
 * Embedded hardware selection: NXP->Cortex-M4
 * Code generation objectives:
 *    1. Execution efficiency
 *    2. RAM efficiency
 * Validation result: Not run
 */

#ifndef GearPosition_h_
#define GearPosition_h_
#ifndef GearPosition_COMMON_INCLUDES_
#define GearPosition_COMMON_INCLUDES_
#include <stdbool.h>
#include <stdint.h>
#include "math.h"
#endif                                 /* GearPosition_COMMON_INCLUDES_ */

/* Macros for accessing real-time model data structure */
#ifndef rtmGetErrorStatus
#define rtmGetErrorStatus(rtm)         ((rtm)->errorStatus)
#endif

#ifndef rtmSetErrorStatus
#define rtmSetErrorStatus(rtm, val)    ((rtm)->errorStatus = (val))
#endif

/* Forward declaration for rtModel */
typedef struct GearPosition_tag_RTM GearPosition_RT_MODEL;

/* Block signals and states (default storage) for system '<Root>' */
typedef struct {
  double GearPosition_Memory_DSTATE;   /* '<S1>/Memory' */
} GearPosition_DW;

/* External inputs (root inport signals with default storage) */
typedef struct {
  double GearPosition_GEAR_POSITION_CMD;/* '<Root>/GEAR_POSITION_CMD' */
  double GearPosition_BS_CMD;          /* '<Root>/BS_CMD' */
  double GearPosition_Vehicle_Speed;   /* '<Root>/Vehicle_Speed' */
} GearPosition_ExtU;

/* External outputs (root outports fed by signals with default storage) */
typedef struct {
  double GearPosition_G_Position_output;/* '<Root>/G_Position_output' */
} GearPosition_ExtY;

/* Real-time Model Data Structure */
struct GearPosition_tag_RTM {
  const char * volatile errorStatus;
};

/* Block signals and states (default storage) */
extern GearPosition_DW GearPosition_DW_l;

/* External inputs (root inport signals with default storage) */
extern GearPosition_ExtU GearPosition_U;

/* External outputs (root outports fed by signals with default storage) */
extern GearPosition_ExtY GearPosition_Y;

/* Model entry point functions */
extern void GearPosition_initialize(void);
extern void GearPosition_step(void);

/* Real-time Model object */
extern GearPosition_RT_MODEL *const GearPosition_M;

/*-
 * The generated code includes comments that allow you to trace directly
 * back to the appropriate location in the model.  The basic format
 * is <system>/block_name, where system is the system number (uniquely
 * assigned by Simulink) and block_name is the name of the block.
 *
 * Use the MATLAB hilite_system command to trace the generated code back
 * to the model.  For example,
 *
 * hilite_system('<S3>')    - opens system 3
 * hilite_system('<S3>/Kp') - opens and selects block Kp which resides in S3
 *
 * Here is the system hierarchy for this model
 *
 * '<Root>' : 'GearPosition'
 * '<S1>'   : 'GearPosition/Gear_System'
 * '<S2>'   : 'GearPosition/Gear_System/Compare To Constant'
 * '<S3>'   : 'GearPosition/Gear_System/Gear_FUNCTION1'
 */
#endif                                 /* GearPosition_h_ */

/*
 * File trailer for generated code.
 *
 * [EOF]
 */
