/*
 * File: s32k312_uart_async_s32ct.h
 *
 * Code generated for Simulink model 's32k312_uart_async_s32ct'.
 *
 * Model version                   : 8.39
 * Simulink Coder version          : 23.2 (R2023b) 01-Aug-2023
 * MBDT for S32K3 Series Version  :  Version 1.6.0 (R2021a-R2024b) 27-Jan-2025
 * C/C++ source code generated on  : Sat Sep 27 20:43:36 2025
 *
 * Target selection: ert.tlc
 * Embedded hardware selection: ARM Compatible->ARM Cortex
 * Code generation objectives: Unspecified
 * Validation result: Not run
 */

#ifndef RTW_HEADER_s32k312_uart_async_s32ct_h_
#define RTW_HEADER_s32k312_uart_async_s32ct_h_
#ifndef s32k312_uart_async_s32ct_COMMON_INCLUDES_
#define s32k312_uart_async_s32ct_COMMON_INCLUDES_
#include "rtwtypes.h"
#include "Mcl.h"
#include "Dio.h"
#include "Dio_Cfg.h"
#include "CDD_Uart.h"
#endif                           /* s32k312_uart_async_s32ct_COMMON_INCLUDES_ */

#include "s32k312_uart_async_s32ct_types.h"
#include "StandardTypes.h"
#include <stddef.h>
#include "zero_crossing_types.h"

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

/* Block signals (default storage) */
typedef struct {
  Std_VersionInfoType Uart_GetVersionInfo;/* '<S3>/Uart_GetVersionInfo' */
  uint32_T Hardware_Interrupt_Handler2_o3;
                                      /* '<Root>/Hardware_Interrupt_Handler2' */
  uint32_T Uart_GetStatus_o1;          /* '<S5>/Uart_GetStatus' */
  uint32_T Uart_GetStatus_o2;          /* '<S5>/Uart_GetStatus' */
  uint8_T DIO_ReadChannel_SW0;         /* '<Root>/DIO_ReadChannel_SW0' */
  uint8_T DIO_ReadChannel_SW1;         /* '<Root>/DIO_ReadChannel_SW1' */
  uint8_T Hardware_Interrupt_Handler2_o2;
                                      /* '<Root>/Hardware_Interrupt_Handler2' */
  uint8_T Uart_SendMessage;            /* '<S3>/Uart_SendMessage' */
  uint8_T VectorConcatenate[109];      /* '<S3>/Vector Concatenate' */
  uint8_T Uart_AsyncReceive_o1;        /* '<S7>/Uart_AsyncReceive' */
  uint8_T Uart_AsyncReceive_o2;        /* '<S7>/Uart_AsyncReceive' */
  uint8_T Uart_AsyncSend;              /* '<S8>/Uart_AsyncSend' */
  uint8_T Uart_AsyncReceive_o1_p;      /* '<S6>/Uart_AsyncReceive' */
  uint8_T Uart_AsyncReceive_o2_m;      /* '<S6>/Uart_AsyncReceive' */
  uint8_T Uart_AsyncSend_j;            /* '<S9>/Uart_AsyncSend' */
  uint8_T Uart_SendMessage_k;          /* '<S2>/Uart_SendMessage' */
  uint8_T VectorConcatenate_i[39];     /* '<S2>/Vector Concatenate' */
} B_s32k312_uart_async_s32ct_T;

/* Zero-crossing (trigger) state */
typedef struct {
  ZCSigState DMAResume_Trig_ZCE;       /* '<Root>/DMA Resume' */
  ZCSigState DMAPause_Trig_ZCE;        /* '<Root>/DMA Pause' */
} PrevZCX_s32k312_uart_async_s3_T;

/* Parameters (default storage) */
struct P_s32k312_uart_async_s32ct_T_ {
  Std_VersionInfoType DataStoreMemory7_InitialValue;
                            /* Computed Parameter: DataStoreMemory7_InitialValue
                             * Referenced by: '<Root>/Data Store Memory7'
                             */
  int32_T Hardware_Interrupt_Handler2_P1[7];/* Expression: funcParams
                                             * Referenced by: '<Root>/Hardware_Interrupt_Handler2'
                                             */
  uint32_T Mcl8_P1;                    /* Expression: funcParam
                                        * Referenced by: '<S1>/Mcl8'
                                        */
  uint32_T _P1[2];                     /* Expression: funcParams
                                        * Referenced by: '<S1>/ '
                                        */
  uint32_T _P1_b[2];                   /* Expression: funcParams
                                        * Referenced by: '<S1>/   '
                                        */
  uint32_T Mcl8_P1_g;                  /* Expression: funcParam
                                        * Referenced by: '<S2>/Mcl8'
                                        */
  uint32_T Constant4_Value;            /* Computed Parameter: Constant4_Value
                                        * Referenced by: '<S2>/Constant4'
                                        */
  uint32_T Constant3_Value;            /* Computed Parameter: Constant3_Value
                                        * Referenced by: '<S2>/Constant3'
                                        */
  uint32_T _P1_c[2];                   /* Expression: funcParams
                                        * Referenced by: '<S2>/ '
                                        */
  uint32_T _P1_a[2];                   /* Expression: funcParams
                                        * Referenced by: '<S2>/   '
                                        */
  uint32_T Uart_SendMessage_P1[2];     /* Expression: funcParams
                                        * Referenced by: '<S2>/Uart_SendMessage'
                                        */
  uint32_T Constant3_Value_f;          /* Computed Parameter: Constant3_Value_f
                                        * Referenced by: '<S9>/Constant3'
                                        */
  uint32_T Uart_AsyncSend_P1[2];       /* Expression: funcParams
                                        * Referenced by: '<S9>/Uart_AsyncSend'
                                        */
  uint32_T Constant1_Value;            /* Computed Parameter: Constant1_Value
                                        * Referenced by: '<S6>/Constant1'
                                        */
  uint32_T Constant_Value;             /* Computed Parameter: Constant_Value
                                        * Referenced by: '<S6>/Constant'
                                        */
  uint32_T Uart_AsyncReceive_P1[2];    /* Expression: funcParams
                                        * Referenced by: '<S6>/Uart_AsyncReceive'
                                        */
  uint32_T Constant3_Value_e;          /* Computed Parameter: Constant3_Value_e
                                        * Referenced by: '<S8>/Constant3'
                                        */
  uint32_T Uart_AsyncSend_P1_g[2];     /* Expression: funcParams
                                        * Referenced by: '<S8>/Uart_AsyncSend'
                                        */
  uint32_T Constant1_Value_m;          /* Computed Parameter: Constant1_Value_m
                                        * Referenced by: '<S7>/Constant1'
                                        */
  uint32_T Constant_Value_p;           /* Computed Parameter: Constant_Value_p
                                        * Referenced by: '<S7>/Constant'
                                        */
  uint32_T Uart_AsyncReceive_P1_f[2];  /* Expression: funcParams
                                        * Referenced by: '<S7>/Uart_AsyncReceive'
                                        */
  uint32_T Uart_GetStatus_P1[2];       /* Expression: funcParams
                                        * Referenced by: '<S5>/Uart_GetStatus'
                                        */
  uint32_T Uart_SendMessage_P1_l[2];   /* Expression: funcParams
                                        * Referenced by: '<S3>/Uart_SendMessage'
                                        */
  uint32_T Constant2_Value;            /* Computed Parameter: Constant2_Value
                                        * Referenced by: '<S3>/Constant2'
                                        */
  uint32_T Uart_GetVersionInfo_P1[2];  /* Expression: funcParams
                                        * Referenced by: '<S3>/Uart_GetVersionInfo'
                                        */
  uint32_T DIO_ReadChannel_SW0_P1[2];  /* Expression: funcParams
                                        * Referenced by: '<Root>/DIO_ReadChannel_SW0'
                                        */
  uint32_T DIO_ReadChannel_SW1_P1[2];  /* Expression: funcParams
                                        * Referenced by: '<Root>/DIO_ReadChannel_SW1'
                                        */
  uint32_T DataStoreMemory5_InitialValue;
                            /* Computed Parameter: DataStoreMemory5_InitialValue
                             * Referenced by: '<Root>/Data Store Memory5'
                             */
  uint32_T DataStoreMemory6_InitialValue;
                            /* Computed Parameter: DataStoreMemory6_InitialValue
                             * Referenced by: '<Root>/Data Store Memory6'
                             */
  uint32_T DataStoreMemory8_InitialValue;
                            /* Computed Parameter: DataStoreMemory8_InitialValue
                             * Referenced by: '<Root>/Data Store Memory8'
                             */
  uint8_T Constant2_Value_o;           /* Computed Parameter: Constant2_Value_o
                                        * Referenced by: '<S1>/Constant2'
                                        */
  uint8_T Constant_Value_g;            /* Computed Parameter: Constant_Value_g
                                        * Referenced by: '<S1>/Constant'
                                        */
  uint8_T Constant_Value_gk;           /* Computed Parameter: Constant_Value_gk
                                        * Referenced by: '<S2>/Constant'
                                        */
  uint8_T Constant2_Value_d;           /* Computed Parameter: Constant2_Value_d
                                        * Referenced by: '<S2>/Constant2'
                                        */
  uint8_T ConstantLFandCR_Value[2]; /* Computed Parameter: ConstantLFandCR_Value
                                     * Referenced by: '<S2>/Constant LF and CR '
                                     */
  uint8_T ConstantLFandCR_Value_c[2];
                                  /* Computed Parameter: ConstantLFandCR_Value_c
                                   * Referenced by: '<S2>/Constant LF and CR  '
                                   */
  uint8_T Constant1_Value_d[35];
                     /* Expression: uint8('The DMA Logic Instance was resumed.')
                      * Referenced by: '<S2>/Constant1'
                      */
  uint8_T Input4_Y0;                   /* Computed Parameter: Input4_Y0
                                        * Referenced by: '<S6>/Input4'
                                        */
  uint8_T Input4_Y0_l;                 /* Computed Parameter: Input4_Y0_l
                                        * Referenced by: '<S7>/Input4'
                                        */
  uint8_T Constant3_Value_d[105];
  /* Expression: uint8('This is a welcome message sent via DMA. Keep typing, and the entered characters will be returned via DMA.')
   * Referenced by: '<S3>/Constant3'
   */
  uint8_T ConstantLFandCR1_Value[2];
                                   /* Computed Parameter: ConstantLFandCR1_Value
                                    * Referenced by: '<S3>/Constant LF and CR1'
                                    */
  uint8_T ConstantLFandCR_Value_j[2];
                                  /* Computed Parameter: ConstantLFandCR_Value_j
                                   * Referenced by: '<S3>/Constant LF and CR'
                                   */
  uint8_T DataStoreMemory19_InitialValue[105];
                           /* Computed Parameter: DataStoreMemory19_InitialValue
                            * Referenced by: '<Root>/Data Store Memory19'
                            */
};

/* Real-time Model Data Structure */
struct tag_RTM_s32k312_uart_async_s3_T {
  const char_T * volatile errorStatus;
};

/* Block parameters (default storage) */
extern P_s32k312_uart_async_s32ct_T s32k312_uart_async_s32ct_P;

/* Block signals (default storage) */
extern B_s32k312_uart_async_s32ct_T s32k312_uart_async_s32ct_B;

/* Zero-crossing (trigger) state */
extern PrevZCX_s32k312_uart_async_s3_T s32k312_uart_async_s32c_PrevZCX;

/* Model entry point functions */
extern void s32k312_uart_async_s32ct_initialize(void);
extern void s32k312_uart_async_s32ct_step(void);
extern void s32k312_uart_async_s32ct_terminate(void);

/* Exported data declaration */

/* Volatile memory section */
/* Declaration for custom storage class: Volatile */
extern volatile uint32_T remainingBytes;/* '<Root>/Data Store Memory5' */
extern volatile uint32_T status;       /* '<Root>/Data Store Memory6' */
extern volatile uint32_T transfer_flag;/* '<Root>/Data Store Memory8' */
extern volatile Std_VersionInfoType versionInfo;/* '<Root>/Data Store Memory7' */

/* Real-time Model object */
extern RT_MODEL_s32k312_uart_async_s_T *const s32k312_uart_async_s32ct_M;
extern volatile boolean_T stopRequested;
extern volatile boolean_T runModel;

/*-
 * 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>' : 's32k312_uart_async_s32ct'
 * '<S1>'   : 's32k312_uart_async_s32ct/DMA Pause'
 * '<S2>'   : 's32k312_uart_async_s32ct/DMA Resume'
 * '<S3>'   : 's32k312_uart_async_s32ct/Initialize Function'
 * '<S4>'   : 's32k312_uart_async_s32ct/UartCallback'
 * '<S5>'   : 's32k312_uart_async_s32ct/UartCallback/If Action Subsystem'
 * '<S6>'   : 's32k312_uart_async_s32ct/UartCallback/If Action Subsystem/Receive'
 * '<S7>'   : 's32k312_uart_async_s32ct/UartCallback/If Action Subsystem/Receive1'
 * '<S8>'   : 's32k312_uart_async_s32ct/UartCallback/If Action Subsystem/Send'
 * '<S9>'   : 's32k312_uart_async_s32ct/UartCallback/If Action Subsystem/Send1'
 */
#endif                              /* RTW_HEADER_s32k312_uart_async_s32ct_h_ */

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