diff --git a/HVAC_model.c b/HVAC_model.c index 577f041..56dc9db 100644 --- a/HVAC_model.c +++ b/HVAC_model.c @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'HVAC_model'. * - * Model version : 1.846 + * Model version : 1.848 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 - * C/C++ source code generated on : Fri Apr 24 11:56:21 2026 + * C/C++ source code generated on : Fri Apr 24 14:46:20 2026 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex-M @@ -2495,41 +2495,264 @@ void left(uint8_t rtu_idx, uint16_t rty_vals[9]) } } +/* + * System initialize for action system: + * '/If Action Subsystem' + * '/If Action Subsystem' + * '/If Action Subsystem' + */ +void IfActionSubsystem_Init(DW_IfActionSubsystem *localDW) +{ + /* Start for DataStoreMemory: '/Data Store Memory' */ + localDW->Start_timer = 1.0; + + /* SystemInitialize for MATLAB Function: '/MATLAB Function' */ + localDW->t_start_not_empty = false; + localDW->cond_prev = 0.0; +} + +/* + * Output and update for action system: + * '/If Action Subsystem' + * '/If Action Subsystem' + * '/If Action Subsystem' + */ +void IfActionSubsystem(int8_t *rty_Out2, double *rtd_ErrorHomming_private, const + double *rtd_LOGGER_LIN, int8_t *rtd_stepSig_private, const uint32_t *rtd_t_now, + DW_IfActionSubsystem *localDW) +{ + uint32_t rtb_dt_a4; + + /* MATLAB Function: '/MATLAB Function' incorporates: + * DataStoreRead: '/Data Store Read' + * DataStoreRead: '/Data Store Read1' + */ + /* : dt = uint32(0); */ + /* : if isempty(t_start) */ + if (!localDW->t_start_not_empty) { + /* : t_start = t_now; */ + localDW->t_start = *rtd_t_now; + localDW->t_start_not_empty = true; + + /* : cond_prev = 0; */ + } + + /* : if cond > 0.5 && cond_prev <= 0.5 */ + if ((localDW->Start_timer > 0.5) && (localDW->cond_prev <= 0.5)) { + /* : t_start = t_now; */ + localDW->t_start = *rtd_t_now; + } + + /* : if cond > 0.5 */ + if (localDW->Start_timer > 0.5) { + /* : dt = uint32(t_now - t_start); */ + /* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */ + rtb_dt_a4 = *rtd_t_now - /*MW:OvSatOk*/ localDW->t_start; + + /* MW:end MISRA2012:D4.1 CERT-C:INT30-C */ + if (rtb_dt_a4 > *rtd_t_now) { + rtb_dt_a4 = 0U; + } + } else { + /* : else */ + /* : dt = uint32(0); */ + rtb_dt_a4 = 0U; + } + + /* : cond_prev = cond; */ + localDW->cond_prev = localDW->Start_timer; + + /* End of MATLAB Function: '/MATLAB Function' */ + + /* MATLAB Function: '/MAX POSITION' incorporates: + * DataStoreRead: '/Data Store Read5' + */ + /* : if(LOGGER>1) */ + if (*rtd_LOGGER_LIN > 1.0) { + uint32_t tmp; + + /* : fprintf("Homing 3. Start TIme dt = %d \n",int32(data)); */ + tmp = rtb_dt_a4; + if (rtb_dt_a4 > 2147483647U) { + tmp = 2147483647U; + } + + printf("Homing 3. Start TIme dt = %d \n", (int32_t)tmp); + fflush(stdout); + } + + /* End of MATLAB Function: '/MAX POSITION' */ + + /* If: '/If' */ + if (rtb_dt_a4 > 30000U) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: + * ActionPort: '/Action Port' + */ + /* DataStoreWrite: '/Data Store Write' incorporates: + * Constant: '/Constant' + */ + *rtd_stepSig_private = 1; + + /* DataStoreWrite: '/Data Store Write1' incorporates: + * Constant: '/Constant2' + * Sum: '/step inc' + */ + (*rtd_ErrorHomming_private)++; + + /* DataStoreWrite: '/Data Store Write2' incorporates: + * Constant: '/Constant3' + */ + localDW->Start_timer = 0.0; + + /* SignalConversion generated from: '/Out2' incorporates: + * Constant: '/Constant1' + * Merge: '/Merge' + * SignalConversion generated from: '/Out1' + */ + *rty_Out2 = 2; + + /* End of Outputs for SubSystem: '/If Action Subsystem' */ + } else { + /* Outputs for IfAction SubSystem: '/If Action Subsystem1' incorporates: + * ActionPort: '/Action Port' + */ + /* DataStoreWrite: '/Data Store Write2' incorporates: + * Constant: '/Constant3' + */ + localDW->Start_timer = 1.0; + + /* SignalConversion generated from: '/Out2' incorporates: + * Constant: '/Constant1' + * Merge: '/Merge' + * SignalConversion generated from: '/Out1' + */ + *rty_Out2 = 3; + + /* End of Outputs for SubSystem: '/If Action Subsystem1' */ + } + + /* End of If: '/If' */ +} + +/* + * Output and update for action system: + * '/If Action Subsystem1' + * '/If Action Subsystem1' + * '/If Action Subsystem1' + */ +void IfActionSubsystem1(int8_t *rty_Output, uint8_t + *rtd_CCU_ActuatorErrF_Stat_private, uint8_t rtd_COM_private[9], uint8_t + rtd_ErrorActuator[9], uint8_t rtd_ErrorCalibration_private[9], const double + *rtd_LOGGER_LIN, uint8_t rtd_MODE_private[9], uint8_t + rtd_dtc_state_error_model[127]) +{ + int32_t i; + bool tmp; + + /* Logic: '/Logical Operator' incorporates: + * DataStoreRead: '/Data Store Read' + */ + tmp = (rtd_ErrorCalibration_private[0] != 0); + for (i = 0; i < 8; i++) { + tmp = (tmp || (rtd_ErrorCalibration_private[i + 1] != 0)); + } + + /* DataTypeConversion: '/Data Type Conversion' incorporates: + * DataStoreWrite: '/Data Store Write1' + * Logic: '/Logical Operator' + */ + *rtd_CCU_ActuatorErrF_Stat_private = tmp; + for (i = 0; i < 9; i++) { + /* DataStoreWrite: '/Data Store Write2' incorporates: + * DataStoreRead: '/Data Store Read' + */ + rtd_COM_private[i] = rtd_ErrorCalibration_private[i]; + + /* DataStoreWrite: '/Data Store Write' */ + rtd_MODE_private[i] = 2U; + } + + /* MATLAB Function: '/Write ERROR' incorporates: + * DataStoreRead: '/Data Store Read' + * DataStoreRead: '/Data Store Read6' + */ + /* : if(LOGGER==1) */ + if (*rtd_LOGGER_LIN == 1.0) { + /* : for i = 1:numel(ErrCallibration) */ + for (i = 0; i < 9; i++) { + /* : if ErrCallibration(i) == 1 */ + if (rtd_ErrorCalibration_private[i] == 1) { + /* : fprintf('LIN1 Failure with actuator #%d\n', int16(i)); */ + printf("LIN1 Failure with actuator #%d\n", (int16_t)(i + 1)); + fflush(stdout); + } + } + } + + /* End of MATLAB Function: '/Write ERROR' */ + for (i = 0; i < 9; i++) { + uint8_t rtd_ErrorCalibration_private_0; + + /* Logic: '/Logical Operator1' incorporates: + * DataStoreRead: '/Data Store Read' + */ + rtd_ErrorCalibration_private_0 = rtd_ErrorCalibration_private[i]; + + /* DataTypeConversion: '/Data Type Conversion1' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreWrite: '/Data Store Write3' + * Logic: '/Logical Operator1' + */ + rtd_ErrorActuator[i] = (uint8_t)((rtd_ErrorCalibration_private_0 != 0) || + (rtd_ErrorActuator[i] != 0)); + + /* DataStoreWrite: '/Data Store Write' */ + rtd_dtc_state_error_model[i + 54] = rtd_ErrorCalibration_private_0; + + /* DataStoreWrite: '/Data Store Write' */ + rtd_ErrorCalibration_private[i] = 0U; + } + + /* SignalConversion generated from: '/Output' incorporates: + * Constant: '/Constant' + */ + *rty_Output = 4; +} + /* * Output and update for action system: - * '/Stop Mode' * '/Stop Mode' * '/Stop Mode' */ void StopMode(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t - *rtd_Busy_private, uint8_t rtd_COM_private[9], const uint8_t - *rtd_Error_Connect_private, const double *rtd_LOGGER_LIN, uint8_t - rtd_MODE_private[9]) + *rtd_Busy_private_i, uint8_t rtd_COM_private_n[9], const uint8_t + *rtd_Error_Connect_private_m, const double *rtd_LOGGER_LIN, + uint8_t rtd_MODE_private_a[9]) { int32_t i; - /* If: '/If1' incorporates: - * DataStoreRead: '/Data Store Read1' - * DataStoreRead: '/Data Store Read2' + /* If: '/If1' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreRead: '/Data Store Read2' */ - if ((*rtd_Busy_private == 0) && (*rtd_Error_Connect_private == 0)) { - /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: - * ActionPort: '/Action Port' + if ((*rtd_Busy_private_i == 0) && (*rtd_Error_Connect_private_m == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: + * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { - /* DataStoreWrite: '/Data Store Write1' */ - rtd_COM_private[i] = 1U; + /* DataStoreWrite: '/Data Store Write1' */ + rtd_COM_private_n[i] = 1U; - /* DataStoreWrite: '/Data Store Write' */ - rtd_MODE_private[i] = 2U; + /* DataStoreWrite: '/Data Store Write' */ + rtd_MODE_private_a[i] = 2U; } - /* Sum: '/step inc' incorporates: - * Constant: '/Constant' + /* Sum: '/step inc' incorporates: + * Constant: '/Constant' */ *rty_step = (int8_t)(rtu_stepIn + 1); - /* MATLAB Function: '/Write' */ + /* MATLAB Function: '/Write' */ /* : if(LOGGER == 2) */ if (*rtd_LOGGER_LIN == 2.0) { /* : fprintf('Stop Mode\n'); */ @@ -2537,58 +2760,57 @@ void StopMode(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t fflush(stdout); } - /* End of MATLAB Function: '/Write' */ - /* End of Outputs for SubSystem: '/If Action Subsystem2' */ + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem2' */ } else { - /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: - * ActionPort: '/Action Port' + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' */ - /* SignalConversion generated from: '/stepIn' */ + /* SignalConversion generated from: '/stepIn' */ *rty_step = rtu_stepIn; - /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } - /* End of If: '/If1' */ + /* End of If: '/If1' */ } /* * Output and update for action system: - * '/Initial CPOS Min' * '/Initial CPOS Min' * '/Initial CPOS Min' */ void InitialCPOSMin(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t - *rtd_Busy_private, uint8_t rtd_COM_private[9], const uint8_t - *rtd_Error_Connect_private, const double *rtd_LOGGER_LIN, - uint16_t rtd_POS_private[9]) + *rtd_Busy_private_i, uint8_t rtd_COM_private_n[9], const + uint8_t *rtd_Error_Connect_private_m, const double + *rtd_LOGGER_LIN, uint16_t rtd_POS_private_o[9]) { int32_t i; - /* If: '/If' incorporates: - * DataStoreRead: '/Data Store Read' - * DataStoreRead: '/Data Store Read1' + /* If: '/If' incorporates: + * DataStoreRead: '/Data Store Read' + * DataStoreRead: '/Data Store Read1' */ - if ((*rtd_Busy_private == 0) && (*rtd_Error_Connect_private == 0)) { - /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: - * ActionPort: '/Action Port' + if ((*rtd_Busy_private_i == 0) && (*rtd_Error_Connect_private_m == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: + * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { - /* DataStoreWrite: '/Data Store Write' */ - rtd_POS_private[i] = 6000U; + /* DataStoreWrite: '/Data Store Write' */ + rtd_POS_private_o[i] = 6000U; - /* DataStoreWrite: '/Data Store Write1' */ - rtd_COM_private[i] = 2U; + /* DataStoreWrite: '/Data Store Write1' */ + rtd_COM_private_n[i] = 2U; } - /* SignalConversion generated from: '/step' incorporates: - * Constant: '/Constant' - * Merge: '/Merge' - * Sum: '/step inc' + /* SignalConversion generated from: '/step' incorporates: + * Constant: '/Constant' + * Merge: '/Merge' + * Sum: '/step inc' */ *rty_step = (int8_t)(rtu_stepIn + 1); - /* MATLAB Function: '/Write' */ + /* MATLAB Function: '/Write' */ /* : if(LOGGER == 2) */ if (*rtd_LOGGER_LIN == 2.0) { /* : fprintf('Initial CPOS Min\n'); */ @@ -2596,59 +2818,58 @@ void InitialCPOSMin(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t fflush(stdout); } - /* End of MATLAB Function: '/Write' */ - /* End of Outputs for SubSystem: '/If Action Subsystem' */ + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem' */ } else { - /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: - * ActionPort: '/Action Port' + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' */ - /* SignalConversion generated from: '/step' incorporates: - * Merge: '/Merge' - * SignalConversion generated from: '/stepIn1' + /* SignalConversion generated from: '/step' incorporates: + * Merge: '/Merge' + * SignalConversion generated from: '/stepIn1' */ *rty_step = rtu_stepIn; - /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } - /* End of If: '/If' */ + /* End of If: '/If' */ } /* * Output and update for action system: - * '/Normal Mode' * '/Normal Mode' * '/Normal Mode' */ void NormalMode(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t - *rtd_Busy_private, uint8_t rtd_COM_private[9], const uint8_t - *rtd_Error_Connect_private, const double *rtd_LOGGER_LIN, - uint8_t rtd_MODE_private[9]) + *rtd_Busy_private_i, uint8_t rtd_COM_private_n[9], const uint8_t + *rtd_Error_Connect_private_m, const double *rtd_LOGGER_LIN, + uint8_t rtd_MODE_private_a[9]) { int32_t i; - /* If: '/If1' incorporates: - * DataStoreRead: '/Data Store Read1' - * DataStoreRead: '/Data Store Read2' + /* If: '/If1' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreRead: '/Data Store Read2' */ - if ((*rtd_Busy_private == 0) && (*rtd_Error_Connect_private == 0)) { - /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: - * ActionPort: '/Action Port' + if ((*rtd_Busy_private_i == 0) && (*rtd_Error_Connect_private_m == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: + * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { - /* DataStoreWrite: '/Data Store Write' */ - rtd_MODE_private[i] = 0U; + /* DataStoreWrite: '/Data Store Write' */ + rtd_MODE_private_a[i] = 0U; - /* DataStoreWrite: '/Data Store Write1' */ - rtd_COM_private[i] = 1U; + /* DataStoreWrite: '/Data Store Write1' */ + rtd_COM_private_n[i] = 1U; } - /* Sum: '/step inc' incorporates: - * Constant: '/Constant' + /* Sum: '/step inc' incorporates: + * Constant: '/Constant' */ *rty_step = (int8_t)(rtu_stepIn + 1); - /* MATLAB Function: '/Write' */ + /* MATLAB Function: '/Write' */ /* : if(LOGGER == 2) */ if (*rtd_LOGGER_LIN == 2.0) { /* : fprintf('Normal Mode\n'); */ @@ -2656,85 +2877,82 @@ void NormalMode(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t fflush(stdout); } - /* End of MATLAB Function: '/Write' */ - /* End of Outputs for SubSystem: '/If Action Subsystem2' */ + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem2' */ } else { - /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: - * ActionPort: '/Action Port' + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' */ - /* SignalConversion generated from: '/stepIn' */ + /* SignalConversion generated from: '/stepIn' */ *rty_step = rtu_stepIn; - /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } - /* End of If: '/If1' */ + /* End of If: '/If1' */ } /* * Output and update for action system: - * '/Move to position Min' * '/Move to position Min' * '/Move to position Min' */ void MovetopositionMin(int8_t rtu_stepIn, int8_t *rty_step, uint8_t - rtd_Autos_private[9], const uint8_t *rtd_Busy_private, uint8_t - rtd_COM_private[9], uint8_t rtd_Coils_private[9], const uint8_t - *rtd_Error_Connect_private, const double *rtd_LOGGER_LIN, uint8_t - rtd_Lnoise_private[9], uint16_t rtd_POS_private[9], uint8_t rtd_Speed_private - [9], uint8_t rtd_Stall_private[9]) + rtd_Autos_private_a[9], const uint8_t *rtd_Busy_private_i, uint8_t + rtd_COM_private_n[9], uint8_t rtd_Coils_private_e[9], const uint8_t + *rtd_Error_Connect_private_m, const double *rtd_LOGGER_LIN, uint8_t + rtd_Lnoise_private_p[9], uint16_t rtd_POS_private_o[9], uint8_t + rtd_Speed_private_e[9], uint8_t rtd_Stall_private_h[9]) { int32_t i; - /* If: '/If1' incorporates: - * DataStoreRead: '/Data Store Read1' - * DataStoreRead: '/Data Store Read2' + /* If: '/If1' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreRead: '/Data Store Read2' */ - if ((*rtd_Busy_private == 0) && (*rtd_Error_Connect_private == 0)) { - /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: - * ActionPort: '/Action Port' + if ((*rtd_Busy_private_i == 0) && (*rtd_Error_Connect_private_m == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: + * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { - /* DataStoreWrite: '/Data Store Write4' incorporates: - * Constant: '/Constant1' + /* DataStoreWrite: '/Data Store Write4' incorporates: + * Constant: '/Constant1' */ - rtd_Autos_private[i] = 1U; + rtd_Autos_private_a[i] = 1U; - /* DataStoreWrite: '/Data Store Write2' incorporates: - * Constant: '/Constant10' + /* DataStoreWrite: '/Data Store Write2' incorporates: + * Constant: '/Constant10' */ - rtd_Stall_private[i] = 1U; + rtd_Stall_private_h[i] = 1U; - /* DataStoreWrite: '/Data Store Write3' incorporates: - * Constant: '/Constant11' + /* DataStoreWrite: '/Data Store Write3' */ + rtd_Lnoise_private_p[i] = 0U; + + /* DataStoreWrite: '/Data Store Write5' incorporates: + * Constant: '/Constant2' */ - rtd_Lnoise_private[i] = 0U; + rtd_Speed_private_e[i] = 3U; - /* DataStoreWrite: '/Data Store Write6' incorporates: - * Constant: '/Constant14' + /* DataStoreWrite: '/Data Store Write6' incorporates: + * Constant: '/Constant3' */ - rtd_Coils_private[i] = 0U; + rtd_Coils_private_e[i] = 3U; - /* DataStoreWrite: '/Data Store Write5' incorporates: - * Constant: '/Constant2' + /* DataStoreWrite: '/Data Store Write' */ + rtd_POS_private_o[i] = 0U; + + /* DataStoreWrite: '/Data Store Write1' incorporates: + * Constant: '/Constant9' */ - rtd_Speed_private[i] = 3U; - - /* DataStoreWrite: '/Data Store Write' */ - rtd_POS_private[i] = 0U; - - /* DataStoreWrite: '/Data Store Write1' incorporates: - * Constant: '/Constant9' - */ - rtd_COM_private[i] = 3U; + rtd_COM_private_n[i] = 3U; } - /* Sum: '/step inc' incorporates: - * Constant: '/Constant' + /* Sum: '/step inc' incorporates: + * Constant: '/Constant' */ *rty_step = (int8_t)(rtu_stepIn + 1); - /* MATLAB Function: '/Write' */ + /* MATLAB Function: '/Write' */ /* : if(LOGGER == 2) */ if (*rtd_LOGGER_LIN == 2.0) { /* : fprintf('Move to position Min\n'); */ @@ -2742,474 +2960,19 @@ void MovetopositionMin(int8_t rtu_stepIn, int8_t *rty_step, uint8_t fflush(stdout); } - /* End of MATLAB Function: '/Write' */ - /* End of Outputs for SubSystem: '/If Action Subsystem2' */ + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem2' */ } else { - /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: - * ActionPort: '/Action Port' + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' */ - /* SignalConversion generated from: '/stepIn' */ + /* SignalConversion generated from: '/stepIn' */ *rty_step = rtu_stepIn; - /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } - /* End of If: '/If1' */ -} - -/* - * Output and update for action system: - * '/Initial CPOS Max' - * '/Initial CPOS Max' - * '/Initial CPOS Max' - */ -void InitialCPOSMax(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t - *rtd_Busy_private, uint8_t rtd_COM_private[9], const uint8_t - *rtd_Error_Connect_private, const double *rtd_LOGGER_LIN, - uint16_t rtd_POS_private[9]) -{ - int32_t i; - - /* If: '/If1' incorporates: - * DataStoreRead: '/Data Store Read1' - * DataStoreRead: '/Data Store Read2' - */ - if ((*rtd_Busy_private == 0) && (*rtd_Error_Connect_private == 0)) { - /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: - * ActionPort: '/Action Port' - */ - for (i = 0; i < 9; i++) { - /* DataStoreWrite: '/Data Store Write1' */ - rtd_COM_private[i] = 2U; - - /* DataStoreWrite: '/Data Store Write' */ - rtd_POS_private[i] = 0U; - } - - /* Sum: '/step inc' incorporates: - * Constant: '/Constant' - */ - *rty_step = (int8_t)(rtu_stepIn + 1); - - /* MATLAB Function: '/Write' */ - /* : if(LOGGER == 2) */ - if (*rtd_LOGGER_LIN == 2.0) { - /* : fprintf('Initial CPOS Max\n'); */ - printf("Initial CPOS Max\n"); - fflush(stdout); - } - - /* End of MATLAB Function: '/Write' */ - /* End of Outputs for SubSystem: '/If Action Subsystem2' */ - } else { - /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: - * ActionPort: '/Action Port' - */ - /* SignalConversion generated from: '/stepIn' */ - *rty_step = rtu_stepIn; - - /* End of Outputs for SubSystem: '/If Action Subsystem3' */ - } - - /* End of If: '/If1' */ -} - -/* - * Output and update for action system: - * '/Move to position Max' - * '/Move to position Max' - * '/Move to position Max' - */ -void MovetopositionMax(int8_t rtu_stepIn, int8_t *rty_step, uint8_t - rtd_Autos_private[9], const uint8_t *rtd_Busy_private, uint8_t - rtd_COM_private[9], uint8_t rtd_Coils_private[9], const uint8_t - *rtd_Error_Connect_private, const double *rtd_LOGGER_LIN, uint8_t - rtd_Lnoise_private[9], uint16_t rtd_POS_private[9], uint8_t rtd_Speed_private - [9], uint8_t rtd_Stall_private[9]) -{ - int32_t i; - - /* If: '/If1' incorporates: - * DataStoreRead: '/Data Store Read1' - * DataStoreRead: '/Data Store Read2' - */ - if ((*rtd_Busy_private == 0) && (*rtd_Error_Connect_private == 0)) { - /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: - * ActionPort: '/Action Port' - */ - for (i = 0; i < 9; i++) { - /* DataStoreWrite: '/Data Store Write4' incorporates: - * Constant: '/Constant1' - */ - rtd_Autos_private[i] = 1U; - - /* DataStoreWrite: '/Data Store Write2' incorporates: - * Constant: '/Constant10' - */ - rtd_Stall_private[i] = 1U; - - /* DataStoreWrite: '/Data Store Write3' incorporates: - * Constant: '/Constant11' - */ - rtd_Lnoise_private[i] = 0U; - - /* DataStoreWrite: '/Data Store Write6' incorporates: - * Constant: '/Constant14' - */ - rtd_Coils_private[i] = 0U; - - /* DataStoreWrite: '/Data Store Write5' incorporates: - * Constant: '/Constant2' - */ - rtd_Speed_private[i] = 3U; - - /* DataStoreWrite: '/Data Store Write' */ - rtd_POS_private[i] = 6000U; - - /* DataStoreWrite: '/Data Store Write1' incorporates: - * Constant: '/Constant9' - */ - rtd_COM_private[i] = 3U; - } - - /* Sum: '/step inc' incorporates: - * Constant: '/Constant' - */ - *rty_step = (int8_t)(rtu_stepIn + 1); - - /* MATLAB Function: '/Write' */ - /* : if(LOGGER == 2) */ - if (*rtd_LOGGER_LIN == 2.0) { - /* : fprintf('Move to position Max\n'); */ - printf("Move to position Max\n"); - fflush(stdout); - } - - /* End of MATLAB Function: '/Write' */ - /* End of Outputs for SubSystem: '/If Action Subsystem2' */ - } else { - /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: - * ActionPort: '/Action Port' - */ - /* SignalConversion generated from: '/stepIn' */ - *rty_step = rtu_stepIn; - - /* End of Outputs for SubSystem: '/If Action Subsystem3' */ - } - - /* End of If: '/If1' */ -} - -/* - * Output and update for atomic system: - * '/Write ERROR' - * '/Write ERROR' - * '/Write ERROR' - */ -void WriteERROR(const bool rtu_ErrCallibration[9], double rtu_LOGGER) -{ - int32_t i; - - /* : if(LOGGER>=0) */ - if (rtu_LOGGER >= 0.0) { - /* : for i = 1:numel(ErrCallibration) */ - for (i = 0; i < 9; i++) { - /* : if ErrCallibration(i) == 1 */ - if (rtu_ErrCallibration[i]) { - /* : fprintf('LIN1 Failure with actuator #%d\n', int16(i)); */ - printf("LIN1 Failure with actuator #%d\n", (int16_t)(i + 1)); - fflush(stdout); - } - } - } -} - -/* - * System initialize for action system: - * '/Switch Case Action Subsystem3' - * '/Switch Case Action Subsystem3' - * '/Switch Case Action Subsystem3' - */ -void SwitchCaseActionSubsystem3_Init(DW_SwitchCaseActionSubsystem3 *localDW) -{ - /* SystemInitialize for IfAction SubSystem: '/If Action Subsystem' */ - /* Start for DataStoreMemory: '/Data Store Memory' */ - localDW->Start_timer = 1.0; - - /* SystemInitialize for MATLAB Function: '/MATLAB Function' */ - localDW->t_start_not_empty = false; - localDW->cond_prev = 0.0; - - /* End of SystemInitialize for SubSystem: '/If Action Subsystem' */ -} - -/* - * Output and update for action system: - * '/Switch Case Action Subsystem3' - * '/Switch Case Action Subsystem3' - * '/Switch Case Action Subsystem3' - */ -void SwitchCaseActionSubsystem3(int8_t *rty_step, uint8_t - *rtd_CCU_ActuatorErrF_Stat_private, uint8_t rtd_COM_private[9], uint8_t - rtd_ErrorActuator[9], uint8_t rtd_ErrorCalibration_private[9], double - *rtd_ErrorHomming_private, const double *rtd_LOGGER_LIN, uint8_t - rtd_MODE_private[9], uint8_t rtd_dtc_state_error_model[127], int8_t - *rtd_stepSig_private, const uint32_t *rtd_t_now, DW_SwitchCaseActionSubsystem3 - *localDW) -{ - double tmp_1; - int32_t i; - uint32_t rtb_dt_a4; - uint32_t tmp_0; - int16_t tmp_2; - uint8_t rtd_ErrorCalibration_private_0; - bool tmp; - - /* MATLAB Function: '/MAX POSITION' incorporates: - * DataStoreRead: '/Data Store Read1' - * DataStoreRead: '/Data Store Read5' - */ - /* : if(LOGGER>1) */ - if (*rtd_LOGGER_LIN > 1.0) { - /* : fprintf("Homing 3. Start Time on step %d\n",int16(step)); */ - tmp_1 = rt_roundd(*rtd_ErrorHomming_private); - if (tmp_1 < 32768.0) { - if (tmp_1 >= -32768.0) { - tmp_2 = (int16_t)tmp_1; - } else { - tmp_2 = INT16_MIN; - } - } else { - tmp_2 = INT16_MAX; - } - - printf("Homing 3. Start Time on step %d\n", tmp_2); - fflush(stdout); - } - - /* End of MATLAB Function: '/MAX POSITION' */ - - /* If: '/If' incorporates: - * DataStoreRead: '/Data Store Read1' - */ - if (*rtd_ErrorHomming_private < 10.0) { - /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: - * ActionPort: '/Action Port' - */ - /* MATLAB Function: '/MATLAB Function' incorporates: - * DataStoreRead: '/Data Store Read' - */ - /* : dt = uint32(0); */ - /* : if isempty(t_start) */ - if (!localDW->t_start_not_empty) { - /* : t_start = t_now; */ - localDW->t_start = *rtd_t_now; - localDW->t_start_not_empty = true; - - /* : cond_prev = 0; */ - } - - /* : if cond > 0.5 && cond_prev <= 0.5 */ - if ((localDW->Start_timer > 0.5) && (localDW->cond_prev <= 0.5)) { - /* : t_start = t_now; */ - localDW->t_start = *rtd_t_now; - } - - /* : if cond > 0.5 */ - if (localDW->Start_timer > 0.5) { - /* : dt = uint32(t_now - t_start); */ - /* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */ - rtb_dt_a4 = *rtd_t_now - /*MW:OvSatOk*/ localDW->t_start; - - /* MW:end MISRA2012:D4.1 CERT-C:INT30-C */ - if (rtb_dt_a4 > *rtd_t_now) { - rtb_dt_a4 = 0U; - } - } else { - /* : else */ - /* : dt = uint32(0); */ - rtb_dt_a4 = 0U; - } - - /* : cond_prev = cond; */ - localDW->cond_prev = localDW->Start_timer; - - /* End of MATLAB Function: '/MATLAB Function' */ - - /* MATLAB Function: '/MAX POSITION' */ - /* : if(LOGGER>1) */ - if (*rtd_LOGGER_LIN > 1.0) { - /* : fprintf("Homing 3. Start TIme dt = %d \n",int32(data)); */ - tmp_0 = rtb_dt_a4; - if (rtb_dt_a4 > 2147483647U) { - tmp_0 = 2147483647U; - } - - printf("Homing 3. Start TIme dt = %d \n", (int32_t)tmp_0); - fflush(stdout); - } - - /* End of MATLAB Function: '/MAX POSITION' */ - - /* If: '/If' */ - if (rtb_dt_a4 > 30000U) { - /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: - * ActionPort: '/Action Port' - */ - /* DataStoreWrite: '/Data Store Write' incorporates: - * Constant: '/Constant' - */ - *rtd_stepSig_private = 1; - - /* DataStoreWrite: '/Data Store Write1' incorporates: - * Constant: '/Constant2' - * Sum: '/step inc' - */ - (*rtd_ErrorHomming_private)++; - - /* DataStoreWrite: '/Data Store Write2' incorporates: - * Constant: '/Constant3' - */ - localDW->Start_timer = 0.0; - - /* SignalConversion generated from: '/Out2' incorporates: - * Constant: '/Constant1' - * Merge: '/Merge' - * SignalConversion generated from: '/Out1' - */ - *rty_step = 2; - - /* End of Outputs for SubSystem: '/If Action Subsystem' */ - } else { - /* Outputs for IfAction SubSystem: '/If Action Subsystem1' incorporates: - * ActionPort: '/Action Port' - */ - /* DataStoreWrite: '/Data Store Write2' incorporates: - * Constant: '/Constant3' - */ - localDW->Start_timer = 1.0; - - /* SignalConversion generated from: '/Out2' incorporates: - * Constant: '/Constant1' - * Merge: '/Merge' - * SignalConversion generated from: '/Out1' - */ - *rty_step = 3; - - /* End of Outputs for SubSystem: '/If Action Subsystem1' */ - } - - /* End of If: '/If' */ - /* End of Outputs for SubSystem: '/If Action Subsystem' */ - } else { - /* Outputs for IfAction SubSystem: '/If Action Subsystem1' incorporates: - * ActionPort: '/Action Port' - */ - /* Logic: '/Logical Operator' incorporates: - * DataStoreRead: '/Data Store Read' - */ - tmp = (rtd_ErrorCalibration_private[0] != 0); - for (i = 0; i < 8; i++) { - tmp = (tmp || (rtd_ErrorCalibration_private[i + 1] != 0)); - } - - /* DataStoreWrite: '/Data Store Write1' incorporates: - * DataTypeConversion: '/Data Type Conversion' - * Logic: '/Logical Operator' - */ - *rtd_CCU_ActuatorErrF_Stat_private = tmp; - for (i = 0; i < 9; i++) { - /* DataStoreWrite: '/Data Store Write2' incorporates: - * DataStoreRead: '/Data Store Read' - */ - rtd_COM_private[i] = rtd_ErrorCalibration_private[i]; - - /* DataStoreWrite: '/Data Store Write' */ - rtd_MODE_private[i] = 2U; - } - - /* MATLAB Function: '/Write ERROR' incorporates: - * DataStoreRead: '/Data Store Read' - */ - /* : if(LOGGER==1) */ - if (*rtd_LOGGER_LIN == 1.0) { - /* : for i = 1:numel(ErrCallibration) */ - for (i = 0; i < 9; i++) { - /* : if ErrCallibration(i) == 1 */ - if (rtd_ErrorCalibration_private[i] == 1) { - /* : fprintf('LIN1 Failure with actuator #%d\n', int16(i)); */ - printf("LIN1 Failure with actuator #%d\n", (int16_t)(i + 1)); - fflush(stdout); - } - } - } - - /* End of MATLAB Function: '/Write ERROR' */ - for (i = 0; i < 9; i++) { - /* Logic: '/Logical Operator1' incorporates: - * DataStoreRead: '/Data Store Read' - */ - rtd_ErrorCalibration_private_0 = rtd_ErrorCalibration_private[i]; - - /* DataStoreWrite: '/Data Store Write3' incorporates: - * DataStoreRead: '/Data Store Read' - * DataStoreRead: '/Data Store Read1' - * DataTypeConversion: '/Data Type Conversion1' - * Logic: '/Logical Operator1' - */ - rtd_ErrorActuator[i] = (uint8_t)((rtd_ErrorCalibration_private_0 != 0) || - (rtd_ErrorActuator[i] != 0)); - - /* DataStoreWrite: '/Data Store Write' incorporates: - * DataStoreRead: '/Data Store Read' - */ - rtd_dtc_state_error_model[i + 54] = rtd_ErrorCalibration_private_0; - - /* DataStoreWrite: '/Data Store Write' */ - rtd_ErrorCalibration_private[i] = 0U; - } - - /* SignalConversion generated from: '/Output' incorporates: - * Constant: '/Constant' - */ - *rty_step = 4; - - /* End of Outputs for SubSystem: '/If Action Subsystem1' */ - } - - /* End of If: '/If' */ -} - -/* - * Output and update for action system: - * '/Switch Case Action Subsystem4' - * '/Switch Case Action Subsystem4' - * '/Switch Case Action Subsystem4' - */ -void SwitchCaseActionSubsystem4(int8_t *rty_step, const double *rtd_LOGGER_LIN, - int8_t *rtd_stepSig_private) -{ - /* DataStoreWrite: '/Data Store Write' incorporates: - * Constant: '/Constant' - */ - *rtd_stepSig_private = 10; - - /* SignalConversion generated from: '/step' incorporates: - * Constant: '/Constant1' - */ - *rty_step = 5; - - /* MATLAB Function: '/MAX POSITION' incorporates: - * DataStoreRead: '/Data Store Read5' - */ - /* : if(LOGGER>0) */ - if (*rtd_LOGGER_LIN > 0.0) { - /* : fprintf("Homing. Callibration successful \n"); */ - printf("Homing. Callibration successful \n"); - fflush(stdout); - } - - /* End of MATLAB Function: '/MAX POSITION' */ + /* End of If: '/If1' */ } /* @@ -3240,6 +3003,145 @@ void Write(double rtu_LOGGER, const int16_t rtu_data[9]) } } +/* + * Output and update for action system: + * '/Initial CPOS Max' + * '/Initial CPOS Max' + */ +void InitialCPOSMax(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t + *rtd_Busy_private_i, uint8_t rtd_COM_private_n[9], const + uint8_t *rtd_Error_Connect_private_m, const double + *rtd_LOGGER_LIN, uint16_t rtd_POS_private_o[9]) +{ + int32_t i; + + /* If: '/If1' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreRead: '/Data Store Read2' + */ + if ((*rtd_Busy_private_i == 0) && (*rtd_Error_Connect_private_m == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: + * ActionPort: '/Action Port' + */ + for (i = 0; i < 9; i++) { + /* DataStoreWrite: '/Data Store Write1' */ + rtd_COM_private_n[i] = 2U; + + /* DataStoreWrite: '/Data Store Write' */ + rtd_POS_private_o[i] = 0U; + } + + /* Sum: '/step inc' incorporates: + * Constant: '/Constant' + */ + *rty_step = (int8_t)(rtu_stepIn + 1); + + /* MATLAB Function: '/Write' */ + /* : if(LOGGER == 2) */ + if (*rtd_LOGGER_LIN == 2.0) { + /* : fprintf('Initial CPOS Max\n'); */ + printf("Initial CPOS Max\n"); + fflush(stdout); + } + + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem2' */ + } else { + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' + */ + /* SignalConversion generated from: '/stepIn' */ + *rty_step = rtu_stepIn; + + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + } + + /* End of If: '/If1' */ +} + +/* + * Output and update for action system: + * '/Move to position Max' + * '/Move to position Max' + */ +void MovetopositionMax(int8_t rtu_stepIn, int8_t *rty_step, uint8_t + rtd_Autos_private_a[9], const uint8_t *rtd_Busy_private_i, uint8_t + rtd_COM_private_n[9], uint8_t rtd_Coils_private_e[9], const uint8_t + *rtd_Error_Connect_private_m, const double *rtd_LOGGER_LIN, uint8_t + rtd_Lnoise_private_p[9], uint16_t rtd_POS_private_o[9], uint8_t + rtd_Speed_private_e[9], uint8_t rtd_Stall_private_h[9]) +{ + int32_t i; + + /* If: '/If1' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreRead: '/Data Store Read2' + */ + if ((*rtd_Busy_private_i == 0) && (*rtd_Error_Connect_private_m == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: + * ActionPort: '/Action Port' + */ + for (i = 0; i < 9; i++) { + /* DataStoreWrite: '/Data Store Write4' incorporates: + * Constant: '/Constant1' + */ + rtd_Autos_private_a[i] = 1U; + + /* DataStoreWrite: '/Data Store Write2' incorporates: + * Constant: '/Constant10' + */ + rtd_Stall_private_h[i] = 1U; + + /* DataStoreWrite: '/Data Store Write3' */ + rtd_Lnoise_private_p[i] = 0U; + + /* DataStoreWrite: '/Data Store Write5' incorporates: + * Constant: '/Constant2' + */ + rtd_Speed_private_e[i] = 3U; + + /* DataStoreWrite: '/Data Store Write6' incorporates: + * Constant: '/Constant3' + */ + rtd_Coils_private_e[i] = 3U; + + /* DataStoreWrite: '/Data Store Write' */ + rtd_POS_private_o[i] = 6000U; + + /* DataStoreWrite: '/Data Store Write1' incorporates: + * Constant: '/Constant9' + */ + rtd_COM_private_n[i] = 3U; + } + + /* Sum: '/step inc' incorporates: + * Constant: '/Constant' + */ + *rty_step = (int8_t)(rtu_stepIn + 1); + + /* MATLAB Function: '/Write' */ + /* : if(LOGGER == 2) */ + if (*rtd_LOGGER_LIN == 2.0) { + /* : fprintf('Move to position Max\n'); */ + printf("Move to position Max\n"); + fflush(stdout); + } + + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem2' */ + } else { + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' + */ + /* SignalConversion generated from: '/stepIn' */ + *rty_step = rtu_stepIn; + + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + } + + /* End of If: '/If1' */ +} + /* * Output and update for atomic system: * '/Write' @@ -3294,6 +3196,29 @@ void MAXPOSITION(double rtu_LOGGER, const int16_t rtu_MAX[6], const bool } } +/* + * Output and update for atomic system: + * '/Write ERROR' + * '/Write ERROR' + */ +void WriteERROR(const bool rtu_ErrCallibration[9], double rtu_LOGGER) +{ + int32_t i; + + /* : if(LOGGER>=0) */ + if (rtu_LOGGER >= 0.0) { + /* : for i = 1:numel(ErrCallibration) */ + for (i = 0; i < 9; i++) { + /* : if ErrCallibration(i) == 1 */ + if (rtu_ErrCallibration[i]) { + /* : fprintf('LIN1 Failure with actuator #%d\n', int16(i)); */ + printf("LIN1 Failure with actuator #%d\n", (int16_t)(i + 1)); + fflush(stdout); + } + } + } +} + /* * Output and update for atomic system: * '/MAX POSITION' @@ -3352,6 +3277,117 @@ void MAXPOSITION_d(double rtu_LOGGER, const int16_t rtu_MAX[6], const bool } } +/* + * System initialize for action system: + * '/Switch Case Action Subsystem3' + * '/Switch Case Action Subsystem3' + */ +void SwitchCaseActionSubsystem3_Init(DW_SwitchCaseActionSubsystem3 *localDW) +{ + /* SystemInitialize for IfAction SubSystem: '/If Action Subsystem' */ + IfActionSubsystem_Init(&localDW->IfActionSubsystem_e); + + /* End of SystemInitialize for SubSystem: '/If Action Subsystem' */ +} + +/* + * Output and update for action system: + * '/Switch Case Action Subsystem3' + * '/Switch Case Action Subsystem3' + */ +void SwitchCaseActionSubsystem3(int8_t *rty_step, uint8_t + *rtd_CCU_ActuatorErrF_Stat_private, uint8_t rtd_COM_private_n[9], uint8_t + rtd_ErrorActuator_c[9], uint8_t rtd_ErrorCalibration_private_b[9], double + *rtd_ErrorHomming_private_j, const double *rtd_LOGGER_LIN, uint8_t + rtd_MODE_private_a[9], uint8_t rtd_dtc_state_error_model[127], int8_t + *rtd_stepSig_private_j, const uint32_t *rtd_t_now, + DW_SwitchCaseActionSubsystem3 *localDW) +{ + double tmp; + int16_t tmp_0; + + /* MATLAB Function: '/MAX POSITION' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreRead: '/Data Store Read5' + */ + /* : if(LOGGER>1) */ + if (*rtd_LOGGER_LIN > 1.0) { + /* : fprintf("Homing 3. Start Time on step %d\n",int16(step)); */ + tmp = rt_roundd(*rtd_ErrorHomming_private_j); + if (tmp < 32768.0) { + if (tmp >= -32768.0) { + tmp_0 = (int16_t)tmp; + } else { + tmp_0 = INT16_MIN; + } + } else { + tmp_0 = INT16_MAX; + } + + printf("Homing 3. Start Time on step %d\n", tmp_0); + fflush(stdout); + } + + /* End of MATLAB Function: '/MAX POSITION' */ + + /* If: '/If' incorporates: + * DataStoreRead: '/Data Store Read1' + */ + if (*rtd_ErrorHomming_private_j < 10.0) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: + * ActionPort: '/Action Port' + */ + IfActionSubsystem(rty_step, rtd_ErrorHomming_private_j, (double *) + rtd_LOGGER_LIN, rtd_stepSig_private_j, (uint32_t *) + rtd_t_now, &localDW->IfActionSubsystem_e); + + /* End of Outputs for SubSystem: '/If Action Subsystem' */ + } else { + /* Outputs for IfAction SubSystem: '/If Action Subsystem1' incorporates: + * ActionPort: '/Action Port' + */ + IfActionSubsystem1(rty_step, rtd_CCU_ActuatorErrF_Stat_private, + rtd_COM_private_n, rtd_ErrorActuator_c, + rtd_ErrorCalibration_private_b, (double *)rtd_LOGGER_LIN, + rtd_MODE_private_a, rtd_dtc_state_error_model); + + /* End of Outputs for SubSystem: '/If Action Subsystem1' */ + } + + /* End of If: '/If' */ +} + +/* + * Output and update for action system: + * '/Switch Case Action Subsystem4' + * '/Switch Case Action Subsystem4' + */ +void SwitchCaseActionSubsystem4(int8_t *rty_step, const double *rtd_LOGGER_LIN, + int8_t *rtd_stepSig_private_j) +{ + /* DataStoreWrite: '/Data Store Write' incorporates: + * Constant: '/Constant' + */ + *rtd_stepSig_private_j = 10; + + /* SignalConversion generated from: '/step' incorporates: + * Constant: '/Constant1' + */ + *rty_step = 5; + + /* MATLAB Function: '/MAX POSITION' incorporates: + * DataStoreRead: '/Data Store Read5' + */ + /* : if(LOGGER>0) */ + if (*rtd_LOGGER_LIN > 0.0) { + /* : fprintf("Homing. Callibration successful \n"); */ + printf("Homing. Callibration successful \n"); + fflush(stdout); + } + + /* End of MATLAB Function: '/MAX POSITION' */ +} + /* * Output and update for atomic system: * '/g_assSTART_ENTER_INCAR' @@ -9037,17 +9073,6 @@ void HVAC_model_step(void) rtDW.SET_FL = (0.5 * (double)rtDW.FIU_CCU1_MODEL.FIU_TargetTempFL_Val_ro + 15.5) * 10.0; - /* SignalConversion generated from: '/Bus Selector' incorporates: - * DataStoreRead: '/Data Store Read1' - * DataStoreWrite: '/Data Store Write' - */ - rtb_Gain_l = Actuator_Ch0_Status_Model.Busy; - - /* DataStoreWrite: '/Data Store Write1' incorporates: - * DataStoreRead: '/Data Store Read1' - */ - rtb_Gain2 = Actuator_Ch0_Status_Model.Error_Connect; - /* Switch: '/Switch' incorporates: * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' @@ -9067,9 +9092,55 @@ void HVAC_model_step(void) /* Outputs for IfAction SubSystem: '/Stop Mode' incorporates: * ActionPort: '/Action Port' */ - StopMode(rtb_Switch_hx, &rtB.Merge_l, &rtb_Gain_l, rtDW.COM_private, - &rtb_Gain2, &rtDW.LOGGER_LIN, rtDW.MODE_private); + /* If: '/If1' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreWrite: '/Data Store Write1' + * SignalConversion generated from: '/Bus Selector' + */ + if ((Actuator_Ch0_Status_Model.Busy == 0) && + (Actuator_Ch0_Status_Model.Error_Connect == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: + * ActionPort: '/Action Port' + */ + for (i = 0; i < 9; i++) { + /* DataStoreWrite: '/Data Store Write1' */ + rtDW.COM_private[i] = 1U; + /* DataStoreWrite: '/Data Store Write' */ + rtDW.MODE_private[i] = 2U; + } + + /* Merge: '/Merge' incorporates: + * Constant: '/Constant' + * Sum: '/step inc' + */ + rtB.Merge_l = (int8_t)(rtb_Switch_hx + 1); + + /* MATLAB Function: '/Write' incorporates: + * DataStoreRead: '/Data Store Read3' + */ + /* : if(LOGGER == 2) */ + if (rtDW.LOGGER_LIN == 2.0) { + /* : fprintf('[LIN 1] Stop Mode\n'); */ + printf("[LIN 1] Stop Mode\n"); + fflush(stdout); + } + + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem2' */ + } else { + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' + */ + /* Merge: '/Merge' incorporates: + * SignalConversion generated from: '/stepIn' + */ + rtB.Merge_l = rtb_Switch_hx; + + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + } + + /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Stop Mode' */ break; @@ -9077,9 +9148,57 @@ void HVAC_model_step(void) /* Outputs for IfAction SubSystem: '/Initial CPOS Min' incorporates: * ActionPort: '/Action Port' */ - InitialCPOSMin(rtb_Switch_hx, &rtB.Merge_l, &rtb_Gain_l, rtDW.COM_private, - &rtb_Gain2, &rtDW.LOGGER_LIN, rtDW.POS_private); + /* If: '/If' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreWrite: '/Data Store Write1' + * SignalConversion generated from: '/Bus Selector' + */ + if ((Actuator_Ch0_Status_Model.Busy == 0) && + (Actuator_Ch0_Status_Model.Error_Connect == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: + * ActionPort: '/Action Port' + */ + for (i = 0; i < 9; i++) { + /* DataStoreWrite: '/Data Store Write' */ + rtDW.POS_private[i] = 6000U; + /* DataStoreWrite: '/Data Store Write1' */ + rtDW.COM_private[i] = 2U; + } + + /* Merge: '/Merge' incorporates: + * Constant: '/Constant' + * Merge: '/Merge' + * Sum: '/step inc' + */ + rtB.Merge_l = (int8_t)(rtb_Switch_hx + 1); + + /* MATLAB Function: '/Write' incorporates: + * DataStoreRead: '/Data Store Read3' + */ + /* : if(LOGGER == 2) */ + if (rtDW.LOGGER_LIN == 2.0) { + /* : fprintf('[LIN 1] Initial CPOS Min\n'); */ + printf("[LIN 1] Initial CPOS Min\n"); + fflush(stdout); + } + + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem' */ + } else { + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' + */ + /* Merge: '/Merge' incorporates: + * Merge: '/Merge' + * SignalConversion generated from: '/stepIn1' + */ + rtB.Merge_l = rtb_Switch_hx; + + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + } + + /* End of If: '/If' */ /* End of Outputs for SubSystem: '/Initial CPOS Min' */ break; @@ -9087,9 +9206,55 @@ void HVAC_model_step(void) /* Outputs for IfAction SubSystem: '/Normal Mode' incorporates: * ActionPort: '/Action Port' */ - NormalMode(rtb_Switch_hx, &rtB.Merge_l, &rtb_Gain_l, rtDW.COM_private, - &rtb_Gain2, &rtDW.LOGGER_LIN, rtDW.MODE_private); + /* If: '/If1' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreWrite: '/Data Store Write1' + * SignalConversion generated from: '/Bus Selector' + */ + if ((Actuator_Ch0_Status_Model.Busy == 0) && + (Actuator_Ch0_Status_Model.Error_Connect == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: + * ActionPort: '/Action Port' + */ + for (i = 0; i < 9; i++) { + /* DataStoreWrite: '/Data Store Write' */ + rtDW.MODE_private[i] = 0U; + /* DataStoreWrite: '/Data Store Write1' */ + rtDW.COM_private[i] = 1U; + } + + /* Merge: '/Merge' incorporates: + * Constant: '/Constant' + * Sum: '/step inc' + */ + rtB.Merge_l = (int8_t)(rtb_Switch_hx + 1); + + /* MATLAB Function: '/Write' incorporates: + * DataStoreRead: '/Data Store Read3' + */ + /* : if(LOGGER == 2) */ + if (rtDW.LOGGER_LIN == 2.0) { + /* : fprintf('[LIN 1] Normal Mode\n'); */ + printf("[LIN 1] Normal Mode\n"); + fflush(stdout); + } + + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem2' */ + } else { + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' + */ + /* Merge: '/Merge' incorporates: + * SignalConversion generated from: '/stepIn' + */ + rtB.Merge_l = rtb_Switch_hx; + + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + } + + /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Normal Mode' */ break; @@ -9097,11 +9262,80 @@ void HVAC_model_step(void) /* Outputs for IfAction SubSystem: '/Move to position Min' incorporates: * ActionPort: '/Action Port' */ - MovetopositionMin(rtb_Switch_hx, &rtB.Merge_l, rtDW.Autos_private, - &rtb_Gain_l, rtDW.COM_private, rtDW.Coils_private, - &rtb_Gain2, &rtDW.LOGGER_LIN, rtDW.Lnoise_private, - rtDW.POS_private, rtDW.Speed_private, rtDW.Stall_private); + /* If: '/If1' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreWrite: '/Data Store Write1' + * SignalConversion generated from: '/Bus Selector' + */ + if ((Actuator_Ch0_Status_Model.Busy == 0) && + (Actuator_Ch0_Status_Model.Error_Connect == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: + * ActionPort: '/Action Port' + */ + for (i = 0; i < 9; i++) { + /* DataStoreWrite: '/Data Store Write4' incorporates: + * Constant: '/Constant1' + */ + rtDW.Autos_private[i] = 1U; + /* DataStoreWrite: '/Data Store Write2' incorporates: + * Constant: '/Constant10' + */ + rtDW.Stall_private[i] = 1U; + + /* DataStoreWrite: '/Data Store Write3' */ + rtDW.Lnoise_private[i] = 0U; + + /* DataStoreWrite: '/Data Store Write5' incorporates: + * Constant: '/Constant2' + */ + rtDW.Speed_private[i] = 3U; + + /* DataStoreWrite: '/Data Store Write6' incorporates: + * Constant: '/Constant3' + */ + rtDW.Coils_private[i] = 3U; + + /* DataStoreWrite: '/Data Store Write' */ + rtDW.POS_private[i] = 0U; + + /* DataStoreWrite: '/Data Store Write1' incorporates: + * Constant: '/Constant9' + */ + rtDW.COM_private[i] = 3U; + } + + /* Merge: '/Merge' incorporates: + * Constant: '/Constant' + * Sum: '/step inc' + */ + rtB.Merge_l = (int8_t)(rtb_Switch_hx + 1); + + /* MATLAB Function: '/Write' incorporates: + * DataStoreRead: '/Data Store Read3' + */ + /* : if(LOGGER == 2) */ + if (rtDW.LOGGER_LIN == 2.0) { + /* : fprintf('[LIN 1] Move to position Min\n'); */ + printf("[LIN 1] Move to position Min\n"); + fflush(stdout); + } + + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem2' */ + } else { + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' + */ + /* Merge: '/Merge' incorporates: + * SignalConversion generated from: '/stepIn' + */ + rtB.Merge_l = rtb_Switch_hx; + + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + } + + /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Move to position Min' */ break; @@ -9175,8 +9409,8 @@ void HVAC_model_step(void) */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { - /* : fprintf('Check Stall Min\n'); */ - printf("Check Stall Min\n"); + /* : fprintf('[LIN 1] Check Stall Min\n'); */ + printf("[LIN 1] Check Stall Min\n"); fflush(stdout); } @@ -9202,9 +9436,55 @@ void HVAC_model_step(void) /* Outputs for IfAction SubSystem: '/Initial CPOS Max' incorporates: * ActionPort: '/Action Port' */ - InitialCPOSMax(rtb_Switch_hx, &rtB.Merge_l, &rtb_Gain_l, rtDW.COM_private, - &rtb_Gain2, &rtDW.LOGGER_LIN, rtDW.POS_private); + /* If: '/If1' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreWrite: '/Data Store Write1' + * SignalConversion generated from: '/Bus Selector' + */ + if ((Actuator_Ch0_Status_Model.Busy == 0) && + (Actuator_Ch0_Status_Model.Error_Connect == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: + * ActionPort: '/Action Port' + */ + for (i = 0; i < 9; i++) { + /* DataStoreWrite: '/Data Store Write1' */ + rtDW.COM_private[i] = 2U; + /* DataStoreWrite: '/Data Store Write' */ + rtDW.POS_private[i] = 0U; + } + + /* Merge: '/Merge' incorporates: + * Constant: '/Constant' + * Sum: '/step inc' + */ + rtB.Merge_l = (int8_t)(rtb_Switch_hx + 1); + + /* MATLAB Function: '/Write' incorporates: + * DataStoreRead: '/Data Store Read3' + */ + /* : if(LOGGER == 2) */ + if (rtDW.LOGGER_LIN == 2.0) { + /* : fprintf('[LIN 1] Initial CPOS Max\n'); */ + printf("[LIN 1] Initial CPOS Max\n"); + fflush(stdout); + } + + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem2' */ + } else { + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' + */ + /* Merge: '/Merge' incorporates: + * SignalConversion generated from: '/stepIn' + */ + rtB.Merge_l = rtb_Switch_hx; + + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + } + + /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Initial CPOS Max' */ break; @@ -9212,11 +9492,78 @@ void HVAC_model_step(void) /* Outputs for IfAction SubSystem: '/Move to position Max' incorporates: * ActionPort: '/Action Port' */ - MovetopositionMax(rtb_Switch_hx, &rtB.Merge_l, rtDW.Autos_private, - &rtb_Gain_l, rtDW.COM_private, rtDW.Coils_private, - &rtb_Gain2, &rtDW.LOGGER_LIN, rtDW.Lnoise_private, - rtDW.POS_private, rtDW.Speed_private, rtDW.Stall_private); + /* If: '/If1' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreWrite: '/Data Store Write1' + * SignalConversion generated from: '/Bus Selector' + */ + if ((Actuator_Ch0_Status_Model.Busy == 0) && + (Actuator_Ch0_Status_Model.Error_Connect == 0)) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: + * ActionPort: '/Action Port' + */ + for (i = 0; i < 9; i++) { + /* DataStoreWrite: '/Data Store Write4' incorporates: + * Constant: '/Constant1' + */ + rtDW.Autos_private[i] = 1U; + /* DataStoreWrite: '/Data Store Write2' incorporates: + * Constant: '/Constant10' + */ + rtDW.Stall_private[i] = 1U; + + /* DataStoreWrite: '/Data Store Write3' */ + rtDW.Lnoise_private[i] = 0U; + + /* DataStoreWrite: '/Data Store Write5' incorporates: + * Constant: '/Constant2' + */ + rtDW.Speed_private[i] = 3U; + + /* DataStoreWrite: '/Data Store Write' */ + rtDW.POS_private[i] = 6000U; + + /* DataStoreWrite: '/Data Store Write1' incorporates: + * Constant: '/Constant9' + */ + rtDW.COM_private[i] = 3U; + + /* DataStoreWrite: '/Data Store Write6' */ + rtDW.Coils_private[i] = 0U; + } + + /* Merge: '/Merge' incorporates: + * Constant: '/Constant' + * Sum: '/step inc' + */ + rtB.Merge_l = (int8_t)(rtb_Switch_hx + 1); + + /* MATLAB Function: '/Write' incorporates: + * DataStoreRead: '/Data Store Read3' + */ + /* : if(LOGGER == 2) */ + if (rtDW.LOGGER_LIN == 2.0) { + /* : fprintf('[LIN 1] Move to position Max\n'); */ + printf("[LIN 1] Move to position Max\n"); + fflush(stdout); + } + + /* End of MATLAB Function: '/Write' */ + /* End of Outputs for SubSystem: '/If Action Subsystem2' */ + } else { + /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: + * ActionPort: '/Action Port' + */ + /* Merge: '/Merge' incorporates: + * SignalConversion generated from: '/stepIn' + */ + rtB.Merge_l = rtb_Switch_hx; + + /* End of Outputs for SubSystem: '/If Action Subsystem3' */ + } + + /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Move to position Max' */ break; @@ -9290,8 +9637,8 @@ void HVAC_model_step(void) */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { - /* : fprintf('Check Stall MAX\n'); */ - printf("Check Stall MAX\n"); + /* : fprintf('[LIN 1] Check Stall MAX\n'); */ + printf("[LIN 1] Check Stall MAX\n"); fflush(stdout); } @@ -9366,16 +9713,16 @@ void HVAC_model_step(void) */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { - /* : fprintf("Homing 0\n"); */ - printf("Homing 0\n"); + /* : fprintf("[LIN 1] Homing 0\n"); */ + printf("[LIN 1] Homing 0\n"); fflush(stdout); /* : for i = 1:numel(MAX) */ for (i = 0; i < 9; i++) { - /* : fprintf('ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ - printf("ACT%d MAX = %d KOEF = %f Callibration = %d \n", (int16_t)(i + - 1), rtDW.MaxPositionCh0_private[i], rtb_Divide1_gdi[i], - (int16_t)!rtb_LogicalOperator3_a0[i]); + /* : fprintf('[LIN 1] ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ + printf("[LIN 1] ACT%d MAX = %d KOEF = %f Callibration = %d \n", + (int16_t)(i + 1), rtDW.MaxPositionCh0_private[i], + rtb_Divide1_gdi[i], (int16_t)!rtb_LogicalOperator3_a0[i]); fflush(stdout); } } @@ -9455,7 +9802,20 @@ void HVAC_model_step(void) /* MATLAB Function: '/Write ERROR' incorporates: * DataStoreRead: '/Data Store Read6' */ - WriteERROR(rtb_LogicalOperator3_a0, rtDW.LOGGER_LIN); + /* : if(LOGGER>=0) */ + if (rtDW.LOGGER_LIN >= 0.0) { + /* : for i = 1:numel(ErrCallibration) */ + for (i = 0; i < 9; i++) { + /* : if ErrCallibration(i) == 1 */ + if (rtb_LogicalOperator3_a0[i]) { + /* : fprintf('[LIN 1] Failure with actuator #%d\n', int16(i)); */ + printf("[LIN 1] Failure with actuator #%d\n", (int16_t)(i + 1)); + fflush(stdout); + } + } + } + + /* End of MATLAB Function: '/Write ERROR' */ for (i = 0; i < 9; i++) { /* Logic: '/Logical Operator1' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_a0[i]; @@ -9487,18 +9847,18 @@ void HVAC_model_step(void) */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { - /* : fprintf("Homing 1. Start Callibration \n"); */ - printf("Homing 1. Start Callibration \n"); + /* : fprintf("[LIN 1] Homing 1. Start Callibration \n"); */ + printf("[LIN 1] Homing 1. Start Callibration \n"); fflush(stdout); /* : for i = 1:numel(MAX) */ for (i = 0; i < 9; i++) { /* : if(ERRORS(i)==1) */ if (rtDW.ErrorCalibration_private[i] == 1) { - /* : fprintf('ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ - printf("ACT%d MAX = %d KOEF = %f Callibration = %d \n", (int16_t)(i - + 1), rtDW.MaxPositionCh0_private[i], rtb_Divide1_gdi[i], - (int16_t)rtDW.ErrorCalibration_private[i]); + /* : fprintf('[LIN 1] ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ + printf("[LIN 1] ACT%d MAX = %d KOEF = %f Callibration = %d \n", + (int16_t)(i + 1), rtDW.MaxPositionCh0_private[i], + rtb_Divide1_gdi[i], (int16_t)rtDW.ErrorCalibration_private[i]); fflush(stdout); } } @@ -9567,17 +9927,18 @@ void HVAC_model_step(void) */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { - /* : fprintf("Homing 3. Callibration \n"); */ - printf("Homing 3. Callibration \n"); + /* : fprintf("[LIN 1] Homing 3. Callibration \n"); */ + printf("[LIN 1] Homing 3. Callibration \n"); fflush(stdout); /* : for i = 1:numel(MAX) */ for (i = 0; i < 9; i++) { /* : if(ERRORS(i)==1) */ if (rtb_LogicalOperator3_a0[i]) { - /* : fprintf('ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ - printf("ACT%d MAX = %d KOEF = %f Callibration = %d \n", (int16_t)(i - + 1), rtDW.MaxPositionCh0_private[i], rtb_Divide1_gdi[i], 1); + /* : fprintf('[LIN 1] ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ + printf("[LIN 1] ACT%d MAX = %d KOEF = %f Callibration = %d \n", + (int16_t)(i + 1), rtDW.MaxPositionCh0_private[i], + rtb_Divide1_gdi[i], 1); fflush(stdout); } } @@ -9615,13 +9976,55 @@ void HVAC_model_step(void) /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ - SwitchCaseActionSubsystem3(&rtB.Merge_h1, - &rtDW.CCU_ActuatorErrF_Stat_private, rtDW.COM_private, - rtDW.ErrorActuator, rtDW.ErrorCalibration_private, - &rtDW.ErrorHomming_private, &rtDW.LOGGER_LIN, rtDW.MODE_private, - rtDW.dtc_state_error_model, &rtDW.stepSig_private, &rtDW.t_now, - &rtDW.SwitchCaseActionSubsystem3_o); + /* MATLAB Function: '/MAX POSITION' incorporates: + * DataStoreRead: '/Data Store Read1' + * DataStoreRead: '/Data Store Read5' + */ + /* : if(LOGGER>1) */ + if (rtDW.LOGGER_LIN > 1.0) { + /* : fprintf("[LIN 1] Homing 3. Start Time on step %d\n",int16(step)); */ + rtb_Divide1 = rt_roundd(rtDW.ErrorHomming_private); + if (rtb_Divide1 < 32768.0) { + if (rtb_Divide1 >= -32768.0) { + AMB = (int16_t)rtb_Divide1; + } else { + AMB = INT16_MIN; + } + } else { + AMB = INT16_MAX; + } + printf("[LIN 1] Homing 3. Start Time on step %d\n", AMB); + fflush(stdout); + } + + /* End of MATLAB Function: '/MAX POSITION' */ + + /* If: '/If' incorporates: + * DataStoreRead: '/Data Store Read1' + */ + if (rtDW.ErrorHomming_private < 10.0) { + /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: + * ActionPort: '/Action Port' + */ + IfActionSubsystem(&rtB.Merge_h1, &rtDW.ErrorHomming_private, + &rtDW.LOGGER_LIN, &rtDW.stepSig_private, &rtDW.t_now, + &rtDW.IfActionSubsystem_p); + + /* End of Outputs for SubSystem: '/If Action Subsystem' */ + } else { + /* Outputs for IfAction SubSystem: '/If Action Subsystem1' incorporates: + * ActionPort: '/Action Port' + */ + IfActionSubsystem1(&rtB.Merge_h1, &rtDW.CCU_ActuatorErrF_Stat_private, + rtDW.COM_private, rtDW.ErrorActuator, + rtDW.ErrorCalibration_private, &rtDW.LOGGER_LIN, + rtDW.MODE_private, rtDW.dtc_state_error_model); + + /* End of Outputs for SubSystem: '/If Action Subsystem1' */ + } + + /* End of If: '/If' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem3' */ break; @@ -9629,9 +10032,28 @@ void HVAC_model_step(void) /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem4' incorporates: * ActionPort: '/Action Port' */ - SwitchCaseActionSubsystem4(&rtB.Merge_h1, &rtDW.LOGGER_LIN, - &rtDW.stepSig_private); + /* DataStoreWrite: '/Data Store Write' incorporates: + * Constant: '/Constant' + */ + rtDW.stepSig_private = 10; + /* Merge: '/Merge' incorporates: + * Constant: '/Constant1' + * SignalConversion generated from: '/step' + */ + rtB.Merge_h1 = 5; + + /* MATLAB Function: '/MAX POSITION' incorporates: + * DataStoreRead: '/Data Store Read5' + */ + /* : if(LOGGER>0) */ + if (rtDW.LOGGER_LIN > 0.0) { + /* : fprintf("[LIN 1] Homing. Callibration successful \n"); */ + printf("[LIN 1] Homing. Callibration successful \n"); + fflush(stdout); + } + + /* End of MATLAB Function: '/MAX POSITION' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem4' */ break; } @@ -14490,8 +14912,10 @@ void HVAC_model_initialize(void) /* SystemInitialize for IfAction SubSystem: '/Homing' */ /* SystemInitialize for IfAction SubSystem: '/Switch Case Action Subsystem3' */ - SwitchCaseActionSubsystem3_Init(&rtDW.SwitchCaseActionSubsystem3_o); + /* SystemInitialize for IfAction SubSystem: '/If Action Subsystem' */ + IfActionSubsystem_Init(&rtDW.IfActionSubsystem_p); + /* End of SystemInitialize for SubSystem: '/If Action Subsystem' */ /* End of SystemInitialize for SubSystem: '/Switch Case Action Subsystem3' */ /* SystemInitialize for Merge: '/Merge' */ diff --git a/HVAC_model.h b/HVAC_model.h index 5ae6e26..c13101f 100644 --- a/HVAC_model.h +++ b/HVAC_model.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'HVAC_model'. * - * Model version : 1.846 + * Model version : 1.848 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 - * C/C++ source code generated on : Fri Apr 24 11:56:21 2026 + * C/C++ source code generated on : Fri Apr 24 14:46:20 2026 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex-M @@ -40,12 +40,17 @@ /* user code (top of header file) */ #include -/* Block states (default storage) for system '/Switch Case Action Subsystem3' */ +/* Block states (default storage) for system '/If Action Subsystem' */ typedef struct { double Start_timer; /* '/Data Store Memory' */ double cond_prev; /* '/MATLAB Function' */ uint32_t t_start; /* '/MATLAB Function' */ bool t_start_not_empty; /* '/MATLAB Function' */ +} DW_IfActionSubsystem; + +/* Block states (default storage) for system '/Switch Case Action Subsystem3' */ +typedef struct { + DW_IfActionSubsystem IfActionSubsystem_e;/* '/If Action Subsystem' */ } DW_SwitchCaseActionSubsystem3; /* Block states (default storage) for system '/Level 4' */ @@ -279,13 +284,17 @@ typedef struct { /* '/Switch Case Action Subsystem3' */ DW_SwitchCaseActionSubsystem3 SwitchCaseActionSubsystem3_e; /* '/Switch Case Action Subsystem3' */ - DW_SwitchCaseActionSubsystem3 SwitchCaseActionSubsystem3_o; - /* '/Switch Case Action Subsystem3' */ + DW_IfActionSubsystem IfActionSubsystem_p;/* '/If Action Subsystem' */ } DW; -/* Invariant block signals for system '/Switch Case Action Subsystem3' */ +/* Invariant block signals for system '/If Action Subsystem1' */ typedef struct { const uint8_t DataTypeConversion[9]; /* '/Data Type Conversion' */ +} ConstB_IfActionSubsystem1; + +/* Invariant block signals for system '/Switch Case Action Subsystem3' */ +typedef struct { + ConstB_IfActionSubsystem1 IfActionSubsystem1_n;/* '/If Action Subsystem1' */ } ConstB_SwitchCaseActionSubsystem3; /* Invariant block signals (default storage) */ @@ -294,8 +303,7 @@ typedef struct { /* '/Switch Case Action Subsystem3' */ ConstB_SwitchCaseActionSubsystem3 SwitchCaseActionSubsystem3_e; /* '/Switch Case Action Subsystem3' */ - ConstB_SwitchCaseActionSubsystem3 SwitchCaseActionSubsystem3_o; - /* '/Switch Case Action Subsystem3' */ + ConstB_IfActionSubsystem1 IfActionSubsystem1_d;/* '/If Action Subsystem1' */ } ConstB; /* Constant parameters (default storage) */ @@ -924,6 +932,7 @@ extern RT_MODEL *const rtM; * Block '/Display' : Unused code path elimination * Block '/Display' : Unused code path elimination * Block '/Display3' : Unused code path elimination + * Block '/Constant3' : Unused code path elimination * Block '/Display' : Unused code path elimination * Block '/Display' : Unused code path elimination * Block '/Display1' : Unused code path elimination diff --git a/HVAC_model_data.c b/HVAC_model_data.c index 1e747a2..aadd7bb 100644 --- a/HVAC_model_data.c +++ b/HVAC_model_data.c @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'HVAC_model'. * - * Model version : 1.846 + * Model version : 1.848 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 - * C/C++ source code generated on : Fri Apr 24 11:56:21 2026 + * C/C++ source code generated on : Fri Apr 24 14:46:20 2026 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex-M @@ -21,7 +21,11 @@ const ConstB rtConstB = { /* Start of '/Switch Case Action Subsystem3' */ { - { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U }/* '/Data Type Conversion' */ + /* Start of '/If Action Subsystem1' */ + { + { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U }/* '/Data Type Conversion' */ + } + /* End of '/If Action Subsystem1' */ } , @@ -29,17 +33,21 @@ const ConstB rtConstB = { /* Start of '/Switch Case Action Subsystem3' */ { - { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U }/* '/Data Type Conversion' */ + /* Start of '/If Action Subsystem1' */ + { + { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U }/* '/Data Type Conversion' */ + } + /* End of '/If Action Subsystem1' */ } , /* End of '/Switch Case Action Subsystem3' */ - /* Start of '/Switch Case Action Subsystem3' */ + /* Start of '/If Action Subsystem1' */ { { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U }/* '/Data Type Conversion' */ } - /* End of '/Switch Case Action Subsystem3' */ + /* End of '/If Action Subsystem1' */ }; /* Constant parameters (default storage) */ diff --git a/HVAC_model_private.h b/HVAC_model_private.h index 52472ca..32598f1 100644 --- a/HVAC_model_private.h +++ b/HVAC_model_private.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'HVAC_model'. * - * Model version : 1.846 + * Model version : 1.848 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 - * C/C++ source code generated on : Fri Apr 24 11:56:21 2026 + * C/C++ source code generated on : Fri Apr 24 14:46:20 2026 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex-M @@ -108,54 +108,63 @@ extern void g_aucFLOW_AFSM_FOOT_VALVE_MAX_f(uint8_t rtu_LVL, uint8_t extern void Afoot_Summer(int16_t rtu_Amb_Fb, uint8_t rtu_LVL, uint16_t rty_Out1 [9], uint8_t rtu_setTempFL, uint8_t rtu_setTempFR); extern void left(uint8_t rtu_idx, uint16_t rty_vals[9]); -extern void StopMode(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t - *rtd_Busy_private, uint8_t rtd_COM_private[9], const - uint8_t *rtd_Error_Connect_private, const double - *rtd_LOGGER_LIN, uint8_t rtd_MODE_private[9]); -extern void InitialCPOSMin(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t - *rtd_Busy_private, uint8_t rtd_COM_private[9], const uint8_t - *rtd_Error_Connect_private, const double *rtd_LOGGER_LIN, uint16_t - rtd_POS_private[9]); -extern void NormalMode(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t - *rtd_Busy_private, uint8_t rtd_COM_private[9], const uint8_t - *rtd_Error_Connect_private, const double *rtd_LOGGER_LIN, uint8_t - rtd_MODE_private[9]); -extern void MovetopositionMin(int8_t rtu_stepIn, int8_t *rty_step, uint8_t - rtd_Autos_private[9], const uint8_t *rtd_Busy_private, uint8_t - rtd_COM_private[9], uint8_t rtd_Coils_private[9], const uint8_t - *rtd_Error_Connect_private, const double *rtd_LOGGER_LIN, uint8_t - rtd_Lnoise_private[9], uint16_t rtd_POS_private[9], uint8_t rtd_Speed_private - [9], uint8_t rtd_Stall_private[9]); -extern void InitialCPOSMax(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t - *rtd_Busy_private, uint8_t rtd_COM_private[9], const uint8_t - *rtd_Error_Connect_private, const double *rtd_LOGGER_LIN, uint16_t - rtd_POS_private[9]); -extern void MovetopositionMax(int8_t rtu_stepIn, int8_t *rty_step, uint8_t - rtd_Autos_private[9], const uint8_t *rtd_Busy_private, uint8_t - rtd_COM_private[9], uint8_t rtd_Coils_private[9], const uint8_t - *rtd_Error_Connect_private, const double *rtd_LOGGER_LIN, uint8_t - rtd_Lnoise_private[9], uint16_t rtd_POS_private[9], uint8_t rtd_Speed_private - [9], uint8_t rtd_Stall_private[9]); -extern void WriteERROR(const bool rtu_ErrCallibration[9], double rtu_LOGGER); -extern void SwitchCaseActionSubsystem3_Init(DW_SwitchCaseActionSubsystem3 - *localDW); -extern void SwitchCaseActionSubsystem3(int8_t *rty_step, uint8_t +extern void IfActionSubsystem_Init(DW_IfActionSubsystem *localDW); +extern void IfActionSubsystem(int8_t *rty_Out2, double *rtd_ErrorHomming_private, + const double *rtd_LOGGER_LIN, int8_t *rtd_stepSig_private, const uint32_t + *rtd_t_now, DW_IfActionSubsystem *localDW); +extern void IfActionSubsystem1(int8_t *rty_Output, uint8_t *rtd_CCU_ActuatorErrF_Stat_private, uint8_t rtd_COM_private[9], uint8_t - rtd_ErrorActuator[9], uint8_t rtd_ErrorCalibration_private[9], double - *rtd_ErrorHomming_private, const double *rtd_LOGGER_LIN, uint8_t - rtd_MODE_private[9], uint8_t rtd_dtc_state_error_model[127], int8_t - *rtd_stepSig_private, const uint32_t *rtd_t_now, DW_SwitchCaseActionSubsystem3 - *localDW); -extern void SwitchCaseActionSubsystem4(int8_t *rty_step, const double - *rtd_LOGGER_LIN, int8_t *rtd_stepSig_private); + rtd_ErrorActuator[9], uint8_t rtd_ErrorCalibration_private[9], const double + *rtd_LOGGER_LIN, uint8_t rtd_MODE_private[9], uint8_t + rtd_dtc_state_error_model[127]); +extern void StopMode(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t + *rtd_Busy_private_i, uint8_t rtd_COM_private_n[9], const + uint8_t *rtd_Error_Connect_private_m, const double + *rtd_LOGGER_LIN, uint8_t rtd_MODE_private_a[9]); +extern void InitialCPOSMin(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t + *rtd_Busy_private_i, uint8_t rtd_COM_private_n[9], const uint8_t + *rtd_Error_Connect_private_m, const double *rtd_LOGGER_LIN, uint16_t + rtd_POS_private_o[9]); +extern void NormalMode(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t + *rtd_Busy_private_i, uint8_t rtd_COM_private_n[9], const uint8_t + *rtd_Error_Connect_private_m, const double *rtd_LOGGER_LIN, uint8_t + rtd_MODE_private_a[9]); +extern void MovetopositionMin(int8_t rtu_stepIn, int8_t *rty_step, uint8_t + rtd_Autos_private_a[9], const uint8_t *rtd_Busy_private_i, uint8_t + rtd_COM_private_n[9], uint8_t rtd_Coils_private_e[9], const uint8_t + *rtd_Error_Connect_private_m, const double *rtd_LOGGER_LIN, uint8_t + rtd_Lnoise_private_p[9], uint16_t rtd_POS_private_o[9], uint8_t + rtd_Speed_private_e[9], uint8_t rtd_Stall_private_h[9]); extern void Write(double rtu_LOGGER, const int16_t rtu_data[9]); +extern void InitialCPOSMax(int8_t rtu_stepIn, int8_t *rty_step, const uint8_t + *rtd_Busy_private_i, uint8_t rtd_COM_private_n[9], const uint8_t + *rtd_Error_Connect_private_m, const double *rtd_LOGGER_LIN, uint16_t + rtd_POS_private_o[9]); +extern void MovetopositionMax(int8_t rtu_stepIn, int8_t *rty_step, uint8_t + rtd_Autos_private_a[9], const uint8_t *rtd_Busy_private_i, uint8_t + rtd_COM_private_n[9], uint8_t rtd_Coils_private_e[9], const uint8_t + *rtd_Error_Connect_private_m, const double *rtd_LOGGER_LIN, uint8_t + rtd_Lnoise_private_p[9], uint16_t rtd_POS_private_o[9], uint8_t + rtd_Speed_private_e[9], uint8_t rtd_Stall_private_h[9]); extern void Write_c(double rtu_LOGGER, const int16_t rtu_data[9]); extern void MAXPOSITION(double rtu_LOGGER, const int16_t rtu_MAX[6], const bool rtu_ERRORS[9], const double rtu_KOEF[9]); +extern void WriteERROR(const bool rtu_ErrCallibration[9], double rtu_LOGGER); extern void MAXPOSITION_k(double rtu_LOGGER, const int16_t rtu_MAX[6], const uint8_t rtu_ERRORS[9], const double rtu_KOEF[9]); extern void MAXPOSITION_d(double rtu_LOGGER, const int16_t rtu_MAX[6], const bool rtu_ERRORS[9], const double rtu_KOEF[9]); +extern void SwitchCaseActionSubsystem3_Init(DW_SwitchCaseActionSubsystem3 + *localDW); +extern void SwitchCaseActionSubsystem3(int8_t *rty_step, uint8_t + *rtd_CCU_ActuatorErrF_Stat_private, uint8_t rtd_COM_private_n[9], uint8_t + rtd_ErrorActuator_c[9], uint8_t rtd_ErrorCalibration_private_b[9], double + *rtd_ErrorHomming_private_j, const double *rtd_LOGGER_LIN, uint8_t + rtd_MODE_private_a[9], uint8_t rtd_dtc_state_error_model[127], int8_t + *rtd_stepSig_private_j, const uint32_t *rtd_t_now, + DW_SwitchCaseActionSubsystem3 *localDW); +extern void SwitchCaseActionSubsystem4(int8_t *rty_step, const double + *rtd_LOGGER_LIN, int8_t *rtd_stepSig_private_j); extern void g_assSTART_ENTER_INCAR_j(uint8_t rtu_LVL, int16_t *rty_out); extern void g_assSTART_ENTER_COOLANT_p(uint8_t rtu_LVL, int16_t *rty_out); extern void Level4(int8_t *rty_step1, const uint16_t *rtd_ECT, const uint8_t diff --git a/HVAC_model_types.h b/HVAC_model_types.h index 8f496de..5b744a1 100644 --- a/HVAC_model_types.h +++ b/HVAC_model_types.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'HVAC_model'. * - * Model version : 1.846 + * Model version : 1.848 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 - * C/C++ source code generated on : Fri Apr 24 11:56:21 2026 + * C/C++ source code generated on : Fri Apr 24 14:46:20 2026 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex-M