/* * File: HVAC_model.c * * Code generated for Simulink model 'HVAC_model'. * * Model version : 1.923 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 * C/C++ source code generated on : Wed May 13 17:12:51 2026 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex-M * Emulation hardware selection: * Differs from embedded hardware (MATLAB Host) * Code generation objectives: Unspecified * Validation result: Not run */ #include "HVAC_model.h" #include #include #include "HVAC_model_private.h" #include #include #include "HVAC_model_types.h" #include "Rs_Cal_Base.h" const CmdBusPWMGet HVAC_model_rtZCmdBusPWMGet = { 0U, /* pwmPercentFront */ 0U, /* pwmPercentRear */ 0U, /* pwmPercentFrontReserved */ 0U /* pwmPercentRearReserved */ }; /* CmdBusPWMGet ground */ const CmdBusError HVAC_model_rtZCmdBusError = { 0U, /* CCU_IncarTempErrF_Stat */ 0U, /* CCU_IncarTempErrR_Stat */ 0U, /* CCU_DuctTempSenErrF_Stat */ 0U, /* CCU_DuctTempSenErrR_Stat */ 0U, /* CCU_EvaTempSenErrF_Stat */ 0U, /* CCU_EvaTempSenErrR_Stat */ 0U, /* CCU_DeflectorSwErrF_Stat */ 0U, /* CCU_DeflectorSwErrR_Stat */ 0U, /* CCU_PressSenErr_Stat */ 0U, /* CCU_AmbienTemptSenErr_Stat */ 0U, /* CCU_SealingValveErr_Stat */ 0U, /* CCU_ETXVerr_Stat */ 0U, /* CCU_HVACfanOrTXVerrF_Stat */ 0U, /* CCU_HVACfanOrTXVerrR_Stat */ 0U, /* CCU_ActuatorErrF_Stat */ 0U, /* CCU_ActuatorErrR_Stat */ 0U, /* CCU_UltravioletErr_Stat */ 0U, /* CCU_VinRecordErr_Stat */ 0U, /* CCU_AirQualSenErr_Stat */ 0U, /* CCU_CommErr_Stat */ 0U, /* CCU_TWVerr_Stat */ 0U, /* CCU_IonizationErr_Stat */ 0U /* CCU_AromaErr_Stat */ }; /* CmdBusError ground */ const ActuatorCmdBusInput HVAC_model_rtZActuatorCmdBusInput = { { 0, 0, 0, 0, 0, 0, 0, 0, 0 } , /* in_CPOS_ALL */ { 0, 0, 0, 0, 0, 0, 0, 0, 0 } , /* in_Act_Emrf_Slave */ { 0, 0, 0, 0, 0, 0, 0, 0, 0 } , /* in_Mode_Slave */ { 0, 0, 0, 0, 0, 0, 0, 0, 0 } , /* in_Act_Err1_Supply */ { 0, 0, 0, 0, 0, 0, 0, 0, 0 } , /* in_Act_Err2_Communication */ { 0, 0, 0, 0, 0, 0, 0, 0, 0 } , /* in_Act_Err3_Temperature */ { 0, 0, 0, 0, 0, 0, 0, 0, 0 } , /* in_Act_Err4_Permanent_Electrical */ { 0, 0, 0, 0, 0, 0, 0, 0, 0 } , /* in_Act_Stall_Slave */ { 0, 0, 0, 0, 0, 0, 0, 0, 0 } , /* in_Act_Reset */ 0U, /* Busy */ 0U /* Error_Connect */ }; /* ActuatorCmdBusInput ground */ const CmdBusStatus HVAC_model_rtZCmdBusStatus = { 0, /* Battery */ 0, /* AMB */ 0, /* Incar_FL */ 0, /* Incar_FR */ 0, /* Incar_RL */ 0, /* Incar_RR */ 0, /* Eva_F */ 0, /* Eva_R */ 0, /* Pressure */ 0, /* Duct_FL_Upper */ 0, /* Duct_FL_Lower */ 0, /* Duct_FR_Upper */ 0, /* Duct_FR_Lower */ 0, /* Duct_RL */ 0, /* Duct_RR */ 0, /* Duct_Side_FL */ 0, /* Duct_Side_FR */ 0, /* Duct_Side_RL */ 0, /* Duct_Side_RR */ 0 /* AQS */ }; /* CmdBusStatus ground */ const ActuatorCmdBus HVAC_model_rtZActuatorCmdBus = { { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U } , /* POS */ { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U } , /* BUS_ADR */ { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U } , /* MODE */ { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U } , /* COM */ { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U } , /* Stall_SET */ { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U } , /* Lnoise_SET */ { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U } , /* Autos_SET */ { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U } , /* Speed_SET */ { 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U } /* Coils_Stop_SET */ }; /* ActuatorCmdBus ground */ /* Exported block states */ ActuatorCmdBusInput Actuator_Ch0_Status_Model;/* '/Data Store Memory61' */ ActuatorCmdBusInput Actuator_Ch1_Status_Model;/* '/Data Store Memory62' */ ActuatorCmdBusInput Actuator_Ch2_Status_Model;/* '/Data Store Memory63' */ ActuatorCmdBus Actuator_Ch0_Command_Model;/* '/Data Store Memory15' */ ActuatorCmdBus Actuator_Ch1_Command_Model;/* '/Data Store Memory15' */ ActuatorCmdBus Actuator_Ch2_Command_Model;/* '/Data Store Memory15' */ CmdBusStatus Status_Sensor_Model; /* '/Data Store Memory' */ CmdBusError CCU_Errors_Model; /* '/Data Store Memory3' */ CmdBusPWMGet PWM_Get; /* '/Data Store Memory128' */ /* Block signals (default storage) */ B rtB; /* Block states (default storage) */ DW rtDW; /* External outputs (root outports fed by signals with default storage) */ ExtY rtY; /* Real-time model */ static RT_MODEL rtM_; RT_MODEL *const rtM = &rtM_; int16_t look1_is16lu64n32tu16Ds32Is16_binlcs(int16_t u0, const int16_t bp0[], const uint16_t table[], uint32_t maxIndex) { uint64_t frac; uint32_t iLeft; uint16_t yL_0d0; /* Column-major Lookup 1-D Search method: 'binary' Use previous index: 'off' Interpolation method: 'Linear point-slope' Extrapolation method: 'Clip' Use last breakpoint for index at or above upper limit: 'off' Remove protection against out-of-range input in generated code: 'off' Rounding mode: 'simplest' */ /* Prelookup - Index and Fraction Index Search method: 'binary' Extrapolation method: 'Clip' Use previous index: 'off' Use last breakpoint for index at or above upper limit: 'off' Remove protection against out-of-range input in generated code: 'off' Rounding mode: 'simplest' */ if (u0 <= bp0[0U]) { iLeft = 0U; frac = 0ULL; } else if (u0 < bp0[maxIndex]) { uint32_t bpIdx; uint32_t iRght; /* Binary Search */ bpIdx = maxIndex >> 1U; iLeft = 0U; iRght = maxIndex; while (iRght - iLeft > 1U) { if (u0 < bp0[bpIdx]) { iRght = bpIdx; } else { iLeft = bpIdx; } bpIdx = (iRght + iLeft) >> 1U; } int16_t bpLeftVar; bpLeftVar = bp0[iLeft]; frac = ((uint64_t)(uint32_t)(u0 - bpLeftVar) << 32) / (uint32_t)(bp0[iLeft + 1U] - bpLeftVar); } else { iLeft = maxIndex - 1U; frac = 4294967296ULL; } /* Column-major Interpolation 1-D Interpolation method: 'Linear point-slope' Use last breakpoint for index at or above upper limit: 'off' Rounding mode: 'simplest' Overflow mode: 'wrapping' */ yL_0d0 = table[iLeft]; return (int16_t)((int16_t)(((table[iLeft + 1U] - yL_0d0) * (int64_t)frac) >> 32) + (int16_t)yL_0d0); } uint32_t binsearch_u32s16(int16_t u_2, const int16_t bp[], uint32_t startIndex, uint32_t maxIndex) { uint32_t bpIdx; uint32_t bpIndex; uint32_t iRght; /* Binary Search */ bpIdx = startIndex; bpIndex = 0U; iRght = maxIndex; while (iRght - bpIndex > 1U) { if (u_2 < bp[bpIdx]) { iRght = bpIdx; } else { bpIndex = bpIdx; } bpIdx = (iRght + bpIndex) >> 1U; } return bpIndex; } uint8_t look2_iu8bu8s16lu64n32_binlcse(uint8_t u0, uint8_t u1, const uint8_t bp0[], const int16_t bp1[], const uint8_t table[], const uint32_t maxIndex[], uint32_t stride) { uint64_t fractions[2]; uint64_t frac; uint32_t bpIndices[2]; uint32_t bpIdx; uint32_t iLeft; uint32_t iRght; uint8_t bpLeftVar; uint8_t y; uint8_t yL_0d0; uint8_t yL_1d; /* Column-major Lookup 2-D Search method: 'binary' Use previous index: 'off' Interpolation method: 'Linear point-slope' Extrapolation method: 'Clip' Use last breakpoint for index at or above upper limit: 'off' Remove protection against out-of-range input in generated code: 'off' Rounding mode: 'simplest' */ /* Prelookup - Index and Fraction Index Search method: 'binary' Extrapolation method: 'Clip' Use previous index: 'off' Use last breakpoint for index at or above upper limit: 'off' Remove protection against out-of-range input in generated code: 'off' Rounding mode: 'simplest' */ if (u0 <= bp0[0U]) { iLeft = 0U; frac = 0ULL; } else if (u0 < bp0[maxIndex[0U]]) { /* Binary Search */ bpIdx = maxIndex[0U] >> 1U; iLeft = 0U; iRght = maxIndex[0U]; while (iRght - iLeft > 1U) { if (u0 < bp0[bpIdx]) { iRght = bpIdx; } else { iLeft = bpIdx; } bpIdx = (iRght + iLeft) >> 1U; } bpLeftVar = bp0[iLeft]; frac = ((uint64_t)((uint32_t)u0 - bpLeftVar) << 32) / ((uint32_t)bp0[iLeft + 1U] - bpLeftVar); } else { iLeft = maxIndex[0U] - 1U; frac = 4294967296ULL; } fractions[0U] = frac; bpIndices[0U] = iLeft; /* Prelookup - Index and Fraction Index Search method: 'binary' Extrapolation method: 'Clip' Use previous index: 'off' Use last breakpoint for index at or above upper limit: 'off' Remove protection against out-of-range input in generated code: 'off' Rounding mode: 'simplest' */ if (u1 < bp1[0U]) { iLeft = 0U; frac = 0ULL; } else if (u1 < bp1[maxIndex[1U]]) { /* Binary Search */ bpIdx = maxIndex[1U] >> 1U; iLeft = 0U; iRght = maxIndex[1U]; while (iRght - iLeft > 1U) { if (u1 < bp1[bpIdx]) { iRght = bpIdx; } else { iLeft = bpIdx; } bpIdx = (iRght + iLeft) >> 1U; } frac = ((uint64_t)(u1 - (uint32_t)bp1[iLeft]) << 32) / (uint32_t)(bp1[iLeft + 1U] - bp1[iLeft]); } else { iLeft = maxIndex[1U] - 1U; frac = 4294967296ULL; } /* Column-major Interpolation 2-D Interpolation method: 'Linear point-slope' Use last breakpoint for index at or above upper limit: 'off' Rounding mode: 'simplest' Overflow mode: 'wrapping' */ bpIdx = iLeft * stride + bpIndices[0U]; bpLeftVar = table[bpIdx + 1U]; yL_0d0 = table[bpIdx]; if (bpLeftVar >= yL_0d0) { yL_1d = (uint8_t)((uint32_t)(uint8_t)(((uint8_t)((uint32_t)bpLeftVar - yL_0d0) * fractions[0U]) >> 32) + yL_0d0); } else { yL_1d = (uint8_t)((uint32_t)yL_0d0 - (uint8_t)(((uint8_t)((uint32_t)yL_0d0 - bpLeftVar) * fractions[0U]) >> 32)); } bpIdx += stride; bpLeftVar = table[bpIdx + 1U]; yL_0d0 = table[bpIdx]; if (bpLeftVar >= yL_0d0) { bpLeftVar = (uint8_t)((uint32_t)(uint8_t)(((uint8_t)((uint32_t)bpLeftVar - yL_0d0) * fractions[0U]) >> 32) + yL_0d0); } else { bpLeftVar = (uint8_t)((uint32_t)yL_0d0 - (uint8_t)(((uint8_t)((uint32_t) yL_0d0 - bpLeftVar) * fractions[0U]) >> 32)); } if (bpLeftVar >= yL_1d) { y = (uint8_t)((uint32_t)(uint8_t)(((uint8_t)((uint32_t)bpLeftVar - yL_1d) * frac) >> 32) + yL_1d); } else { y = (uint8_t)((uint32_t)yL_1d - (uint8_t)(((uint8_t)((uint32_t)yL_1d - bpLeftVar) * frac) >> 32)); } return y; } int16_t look1_iu16tdIs16_binlcs(uint16_t u0, const uint16_t bp0[], const double table[], uint32_t maxIndex) { double frac; double yL_0d0; int32_t tmp_1; uint32_t iLeft; int16_t tmp; int16_t tmp_0; /* Column-major Lookup 1-D Search method: 'binary' Use previous index: 'off' Interpolation method: 'Linear point-slope' Extrapolation method: 'Clip' Use last breakpoint for index at or above upper limit: 'off' Remove protection against out-of-range input in generated code: 'off' */ /* Prelookup - Index and Fraction Index Search method: 'binary' Extrapolation method: 'Clip' Use previous index: 'off' Use last breakpoint for index at or above upper limit: 'off' Remove protection against out-of-range input in generated code: 'off' */ if (u0 <= bp0[0U]) { iLeft = 0U; frac = 0.0; } else if (u0 < bp0[maxIndex]) { uint32_t bpIdx; uint32_t iRght; /* Binary Search */ bpIdx = maxIndex >> 1U; iLeft = 0U; iRght = maxIndex; while (iRght - iLeft > 1U) { if (u0 < bp0[bpIdx]) { iRght = bpIdx; } else { iLeft = bpIdx; } bpIdx = (iRght + iLeft) >> 1U; } uint16_t bpLeftVar; bpLeftVar = bp0[iLeft]; frac = (double)((uint32_t)u0 - bpLeftVar) / (double)((uint32_t)bp0[iLeft + 1U] - bpLeftVar); } else { iLeft = maxIndex - 1U; frac = 1.0; } /* Column-major Interpolation 1-D Interpolation method: 'Linear point-slope' Use last breakpoint for index at or above upper limit: 'off' Overflow mode: 'saturate' */ yL_0d0 = table[iLeft]; if (yL_0d0 < 32768.0) { if (yL_0d0 >= -32768.0) { tmp = (int16_t)yL_0d0; } else { tmp = INT16_MIN; } } else { tmp = INT16_MAX; } frac *= table[iLeft + 1U] - yL_0d0; if (frac < 32768.0) { if (frac >= -32768.0) { tmp_0 = (int16_t)frac; } else { tmp_0 = INT16_MIN; } } else { tmp_0 = INT16_MAX; } tmp_1 = tmp + tmp_0; if (tmp_1 > 32767) { tmp_1 = 32767; } else if (tmp_1 < -32768) { tmp_1 = -32768; } return (int16_t)tmp_1; } double look1_is16td_binlc(int16_t u0, const int16_t bp0[], const double table[], uint32_t maxIndex) { double frac; double yL_0d0; uint32_t iLeft; /* Column-major Lookup 1-D Search method: 'binary' Use previous index: 'off' Interpolation method: 'Linear point-slope' Extrapolation method: 'Clip' Use last breakpoint for index at or above upper limit: 'off' Remove protection against out-of-range input in generated code: 'off' */ /* Prelookup - Index and Fraction Index Search method: 'binary' Extrapolation method: 'Clip' Use previous index: 'off' Use last breakpoint for index at or above upper limit: 'off' Remove protection against out-of-range input in generated code: 'off' */ if (u0 <= bp0[0U]) { iLeft = 0U; frac = 0.0; } else if (u0 < bp0[maxIndex]) { uint32_t bpIdx; uint32_t iRght; /* Binary Search */ bpIdx = maxIndex >> 1U; iLeft = 0U; iRght = maxIndex; while (iRght - iLeft > 1U) { if (u0 < bp0[bpIdx]) { iRght = bpIdx; } else { iLeft = bpIdx; } bpIdx = (iRght + iLeft) >> 1U; } int16_t bpLeftVar; bpLeftVar = bp0[iLeft]; frac = (double)(uint32_t)(u0 - bpLeftVar) / (double)(uint32_t)(bp0[iLeft + 1U] - bpLeftVar); } else { iLeft = maxIndex - 1U; frac = 1.0; } /* Column-major Interpolation 1-D Interpolation method: 'Linear point-slope' Use last breakpoint for index at or above upper limit: 'off' Overflow mode: 'wrapping' */ yL_0d0 = table[iLeft]; return (table[iLeft + 1U] - yL_0d0) * frac + yL_0d0; } int16_t look1_iu16bs16lu64n32ts16Ds32_binlcs(uint16_t u0, const int16_t bp0[], const int16_t table[], uint32_t maxIndex) { uint64_t frac; uint32_t iLeft; int16_t yL_0d0; uint16_t tmp; /* Column-major Lookup 1-D Search method: 'binary' Use previous index: 'off' Interpolation method: 'Linear point-slope' Extrapolation method: 'Clip' Use last breakpoint for index at or above upper limit: 'off' Remove protection against out-of-range input in generated code: 'off' Rounding mode: 'simplest' */ /* Prelookup - Index and Fraction Index Search method: 'binary' Extrapolation method: 'Clip' Use previous index: 'off' Use last breakpoint for index at or above upper limit: 'off' Remove protection against out-of-range input in generated code: 'off' Rounding mode: 'simplest' */ tmp = u0; if (u0 > 32767) { tmp = 32767U; } if (u0 < bp0[0U]) { iLeft = 0U; frac = 0ULL; } else if ((int16_t)tmp < bp0[maxIndex]) { uint32_t bpIdx; uint32_t iRght; /* Binary Search */ bpIdx = maxIndex >> 1U; iLeft = 0U; iRght = maxIndex; while (iRght - iLeft > 1U) { if ((int16_t)tmp < bp0[bpIdx]) { iRght = bpIdx; } else { iLeft = bpIdx; } bpIdx = (iRght + iLeft) >> 1U; } frac = ((uint64_t)(u0 - (uint32_t)bp0[iLeft]) << 32) / (uint32_t)(bp0[iLeft + 1U] - bp0[iLeft]); } else { iLeft = maxIndex - 1U; frac = 4294967296ULL; } /* Column-major Interpolation 1-D Interpolation method: 'Linear point-slope' Use last breakpoint for index at or above upper limit: 'off' Rounding mode: 'simplest' Overflow mode: 'wrapping' */ yL_0d0 = table[iLeft]; return (int16_t)((int16_t)(((table[iLeft + 1U] - yL_0d0) * (int64_t)frac) >> 32) + yL_0d0); } uint32_t plook_u32s16_bincka(int16_t u_3, const int16_t bp[], uint32_t maxIndex) { uint32_t bpIndex; /* Prelookup - Index only Index Search method: 'binary' Extrapolation method: 'Clip' Use previous index: 'off' Use last breakpoint for index at or above upper limit: 'on' Remove protection against out-of-range input in generated code: 'off' */ if (u_3 <= bp[0U]) { bpIndex = 0U; } else if (u_3 < bp[maxIndex]) { bpIndex = binsearch_u32s16(u_3, bp, maxIndex >> 1U, maxIndex); } else { bpIndex = maxIndex; } return bpIndex; } /* * Output and update for atomic system: * '/обычное понижение темп.' * '/обычное повышение темп.' * '/обычное понижение темп.' * '/обычное повышение темп.' * '/обычное понижение темп.' * '/обычное повышение темп.' */ void u(int16_t rtu_lvl, uint8_t *rty_f_g_aucAMBRATE_FALLING) { int32_t tmp; /* : f_g_aucAMBRATE_FALLING = g_aucAMBRATE_FALLING(lvl + 1); */ tmp = rtu_lvl + 1; if (rtu_lvl + 1 > 32767) { tmp = 32767; } *rty_f_g_aucAMBRATE_FALLING = g_aucAMBRATE_FALLING[tmp - 1]; } /* * Output and update for action system: * '/включен ускоренный режим' * '/включен ускоренный режим' * '/включен ускоренный режим' */ void u_d(int16_t rtu_amb_raw, int16_t rtu_lvl, uint8_t *rty_out, const double *rtd_AMB_store, double *rtd_KEEP_FALLING_UNTIL_LIMIT) { int32_t tmp; /* If: '/If' incorporates: * Abs: '/ABS(AMBraw - AMB)' * DataStoreRead: '/Read Amb' * MATLAB Function: '/AMBRATE_RISING_DIFF[8]' * RelationalOperator: '/Relational Operator' * Sum: '/Add' */ /* : f_g_aucAMBRATE_FALLING_DIFF = g_aucAMBRATE_FALLING_DIFF(8); */ if (fabs((double)rtu_amb_raw - *rtd_AMB_store) <= g_aucAMBRATE_FALLING_DIFF[7]) { /* Outputs for IfAction SubSystem: '/Отключаем ускоренный режим' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ *rtd_KEEP_FALLING_UNTIL_LIMIT = 0.0; /* SignalConversion generated from: '/out' incorporates: * MATLAB Function: '/обычное понижение темп.' * Merge: '/Merge' */ u(rtu_lvl, rty_out); /* End of Outputs for SubSystem: '/Отключаем ускоренный режим' */ } else { /* Outputs for IfAction SubSystem: '/Продолжаем в ускоренном' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/ускоренное повышение темп.' */ /* : f_g_aucAMBRATE_FALLING_DIFF = g_aucAMBRATE_FALLING_DIFF(lvl + 1); */ tmp = rtu_lvl + 1; if (rtu_lvl + 1 > 32767) { tmp = 32767; } /* SignalConversion generated from: '/out' incorporates: * MATLAB Function: '/ускоренное повышение темп.' * Merge: '/Merge' */ *rty_out = g_aucAMBRATE_FALLING_DIFF[tmp - 1]; /* End of Outputs for SubSystem: '/Продолжаем в ускоренном' */ } /* End of If: '/If' */ } /* * Output and update for action system: * '/обычный режим' * '/обычный режим' * '/обычный режим' */ void u_c(int16_t rtu_amb_raw, int16_t rtu_lvl, uint8_t *rty_riseperminute, const double *rtd_AMB_store, double *rtd_KEEP_FALLING_UNTIL_LIMIT) { int32_t tmp; /* If: '/If' incorporates: * Abs: '/ABS(AMBraw - AMB)' * DataStoreRead: '/Read Amb' * MATLAB Function: '/AMBRATE_FALLING_DIFF[7]' * RelationalOperator: '/Relational Operator' * Sum: '/Add' */ /* : f_g_aucAMBRATE_FALLING_DIFF = g_aucAMBRATE_FALLING_DIFF(7); */ if (fabs((double)rtu_amb_raw - *rtd_AMB_store) > g_aucAMBRATE_FALLING_DIFF[6]) { /* Outputs for IfAction SubSystem: '/включаем ускоренный режим' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ *rtd_KEEP_FALLING_UNTIL_LIMIT = 1.0; /* MATLAB Function: '/ускоренное повышение темп.' */ /* : f_g_aucAMBRATE_FALLING_DIFF_LVL = g_aucAMBRATE_FALLING_DIFF(lvl + 1); */ tmp = rtu_lvl + 1; if (rtu_lvl + 1 > 32767) { tmp = 32767; } /* SignalConversion generated from: '/rise per minute' incorporates: * MATLAB Function: '/ускоренное повышение темп.' * Merge: '/Merge' */ *rty_riseperminute = g_aucAMBRATE_FALLING_DIFF[tmp - 1]; /* End of Outputs for SubSystem: '/включаем ускоренный режим' */ } else { /* Outputs for IfAction SubSystem: '/обычный режим повышения' incorporates: * ActionPort: '/Action Port' */ /* SignalConversion generated from: '/rise per minute' incorporates: * MATLAB Function: '/обычное повышение темп.' * Merge: '/Merge' */ u(rtu_lvl, rty_riseperminute); /* End of Outputs for SubSystem: '/обычный режим повышения' */ } /* End of If: '/If' */ } /* * Output and update for atomic system: * '/обычное повышение темп.' * '/обычное повышение темп.' * '/обычное повышение темп.' * '/обычное повышение темп.' * '/обычное повышение темп.' * '/обычное повышение темп.' */ void u_b(int16_t rtu_lvl, uint8_t *rty_f_g_aucAMBRATE_RISING) { int32_t tmp; /* : f_g_aucAMBRATE_RISING = g_aucAMBRATE_RISING(lvl + 1); */ tmp = rtu_lvl + 1; if (rtu_lvl + 1 > 32767) { tmp = 32767; } *rty_f_g_aucAMBRATE_RISING = g_aucAMBRATE_RISING[tmp - 1]; } /* * Output and update for atomic system: * '/ускоренное повышение темп.' * '/ускоренное повышение темп.' * '/ускоренное повышение темп.' * '/ускоренное повышение темп.' * '/ускоренное повышение темп.' * '/ускоренное повышение темп.' */ void u_g(int16_t rtu_lvl, uint8_t *rty_f_g_aucAMBRATE_RISING_DIFF_LVL) { int32_t tmp; /* : f_g_aucAMBRATE_RISING_DIFF_LVL = g_aucAMBRATE_RISING_DIFF(lvl + 1); */ tmp = rtu_lvl + 1; if (rtu_lvl + 1 > 32767) { tmp = 32767; } *rty_f_g_aucAMBRATE_RISING_DIFF_LVL = g_aucAMBRATE_RISING_DIFF[tmp - 1]; } /* * Output and update for action system: * '/включен ускоренный режим' * '/включен ускоренный режим' * '/включен ускоренный режим' */ void u_h(int16_t rtu_amb_raw, int16_t rtu_lvl, uint8_t *rty_out, const double *rtd_AMB_store, double *rtd_KEEP_RISING_UNTIL_LIMIT) { /* If: '/If' incorporates: * Abs: '/ABS(AMBraw - AMB)' * DataStoreRead: '/Read Amb' * MATLAB Function: '/AMBRATE_RISING_DIFF[8]' * RelationalOperator: '/Relational Operator' * Sum: '/Add' */ /* : f_g_aucAMBRATE_RISING_DIFF = g_aucAMBRATE_RISING_DIFF(8); */ if (fabs((double)rtu_amb_raw - *rtd_AMB_store) <= g_aucAMBRATE_RISING_DIFF[7]) { /* Outputs for IfAction SubSystem: '/Отключаем ускоренный режим' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ *rtd_KEEP_RISING_UNTIL_LIMIT = 0.0; /* SignalConversion generated from: '/out' incorporates: * MATLAB Function: '/обычное повышение темп.' */ u_b(rtu_lvl, rty_out); /* End of Outputs for SubSystem: '/Отключаем ускоренный режим' */ } else { /* Outputs for IfAction SubSystem: '/Продолжаем в ускоренном' incorporates: * ActionPort: '/Action Port' */ /* SignalConversion generated from: '/out' incorporates: * MATLAB Function: '/ускоренное повышение темп.' */ u_g(rtu_lvl, rty_out); /* End of Outputs for SubSystem: '/Продолжаем в ускоренном' */ } /* End of If: '/If' */ } /* * Output and update for action system: * '/обычный режим' * '/обычный режим' * '/обычный режим' */ void u_a(int16_t rtu_amb_raw, int16_t rtu_lvl, uint8_t *rty_riseperminute, const double *rtd_AMB_store, double *rtd_KEEP_RISING_UNTIL_LIMIT) { /* If: '/If' incorporates: * Abs: '/ABS(AMBraw - AMB)' * DataStoreRead: '/Read Amb' * MATLAB Function: '/AMBRATE_RISING_DIFF[7]' * RelationalOperator: '/Relational Operator' * Sum: '/Add' */ /* : f_g_aucAMBRATE_RISING_DIFF = g_aucAMBRATE_RISING_DIFF(7); */ if (fabs((double)rtu_amb_raw - *rtd_AMB_store) > g_aucAMBRATE_RISING_DIFF[6]) { /* Outputs for IfAction SubSystem: '/включаем ускоренный режим' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ *rtd_KEEP_RISING_UNTIL_LIMIT = 1.0; /* SignalConversion generated from: '/out' incorporates: * MATLAB Function: '/ускоренное повышение темп.' */ u_g(rtu_lvl, rty_riseperminute); /* End of Outputs for SubSystem: '/включаем ускоренный режим' */ } else { /* Outputs for IfAction SubSystem: '/обычный режим повышения' incorporates: * ActionPort: '/Action Port' */ /* SignalConversion generated from: '/out' incorporates: * MATLAB Function: '/обычное повышение темп.' */ u_b(rtu_lvl, rty_riseperminute); /* End of Outputs for SubSystem: '/обычный режим повышения' */ } /* End of If: '/If' */ } /* * Output and update for atomic system: * '/get_tg_FLL_for_LVL' * '/get_tg_FLL_for_LVL' * '/get_tg_for_LVL' * '/get_tg_FLL_for_LVL' * '/get_tg_FLL_for_LVL' * '/get_tg_for_LVL' */ void get_tg_FLL_for_LVL(uint8_t rtu_ambient_Lvl, uint8_t rtu_set_tmp, int16_t *rty_vals) { int32_t i; uint32_t qY; int16_t tmp[78]; /* : table = [ */ /* : g_assTG_FLL_LV0; */ /* : g_assTG_FLL_LV1; */ /* : g_assTG_FLL_LV2; */ /* : g_assTG_FLL_LV3; */ /* : g_assTG_FLL_LV4; */ /* : g_assTG_FLL_LV5 */ /* : ]; */ /* : vals = table(ambient_Lvl + 1, set_tmp - 16); */ for (i = 0; i < 13; i++) { tmp[6 * i] = g_assTG_FLL_LV0[i]; tmp[6 * i + 1] = g_assTG_FLL_LV1[i]; tmp[6 * i + 2] = g_assTG_FLL_LV2[i]; tmp[6 * i + 3] = g_assTG_FLL_LV3[i]; tmp[6 * i + 4] = g_assTG_FLL_LV4[i]; tmp[6 * i + 5] = g_assTG_FLL_LV5[i]; } i = (int32_t)(rtu_ambient_Lvl + 1U); if (rtu_ambient_Lvl + 1U > 255U) { i = 255; } /* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */ qY = rtu_set_tmp - 16U; /* MW:end MISRA2012:D4.1 CERT-C:INT30-C */ if (rtu_set_tmp - 16U > rtu_set_tmp) { qY = 0U; } *rty_vals = tmp[(((int32_t)qY - 1) * 6 + i) - 1]; } /* * Output and update for atomic system: * '/get_tg_FLL_for_LVL' * '/get_tg_FLL_for_LVL' * '/get_tg_FLL_for_LVL' * '/get_tg_FLL_for_LVL' * '/get_tg_FLL_for_LVL' * '/get_tg_FLL_for_LVL' */ void get_tg_FLL_for_LVL_j(uint8_t rtu_ambient_Lvl, uint8_t rtu_set_tmp, int16_t * rty_vals) { int32_t i; uint32_t qY; int16_t tmp[78]; /* : table = [ */ /* : g_assTG_FRL_LV0; */ /* : g_assTG_FRL_LV1; */ /* : g_assTG_FRL_LV2; */ /* : g_assTG_FRL_LV3; */ /* : g_assTG_FRL_LV4; */ /* : g_assTG_FRL_LV5 */ /* : ]; */ /* : vals = table(ambient_Lvl + 1, set_tmp - 16); */ for (i = 0; i < 13; i++) { tmp[6 * i] = g_assTG_FRL_LV0[i]; tmp[6 * i + 1] = g_assTG_FRL_LV1[i]; tmp[6 * i + 2] = g_assTG_FRL_LV2[i]; tmp[6 * i + 3] = g_assTG_FRL_LV3[i]; tmp[6 * i + 4] = g_assTG_FRL_LV4[i]; tmp[6 * i + 5] = g_assTG_FRL_LV5[i]; } i = (int32_t)(rtu_ambient_Lvl + 1U); if (rtu_ambient_Lvl + 1U > 255U) { i = 255; } /* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */ qY = rtu_set_tmp - 16U; /* MW:end MISRA2012:D4.1 CERT-C:INT30-C */ if (rtu_set_tmp - 16U > rtu_set_tmp) { qY = 0U; } *rty_vals = tmp[(((int32_t)qY - 1) * 6 + i) - 1]; } /* * Output and update for atomic system: * '/g_assFLOW_BI_AMB_TGT' * '/g_assFLOW_BI_AMB_TGT' * '/g_assFLOW_BI_AMB_TGT' * '/g_assFLOW_BI_AMB_TGT' */ void g_assFLOW_BI_AMB_TGT_n(uint8_t rtu_LVL, int16_t *rty_c_g_assFLOW_BI_AMB_TGT) { int32_t tmp; /* : c_g_assFLOW_BI_AMB_TGT = g_assFLOW_BI_AMB_TGT(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_c_g_assFLOW_BI_AMB_TGT = g_assFLOW_BI_AMB_TGT[tmp - 1]; } /* * Output and update for action system: * '/Bilevel' * '/Bilevel' */ void Bilevel(int16_t rtu_Amb_Fb, uint8_t rtu_LVL, uint16_t rty_Out1[9], uint8_t rtu_setTempFL, uint8_t rtu_setTempFR) { int32_t tmp; int32_t tmp_0; int16_t rtb_u_fou; uint16_t rtb_FLF_NEW; uint16_t rtb_FRF_NEW; uint16_t rtb_Switch2_a_idx_0; uint16_t rtb_Switch2_a_idx_1; uint16_t rtb_Switch2_c_0; int8_t rtb_X; uint8_t rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN; uint8_t rtb_c_g_aucFLOW_BI_FOOT_VALVE_MAX; uint8_t rtb_c_g_aucFLOW_BI_FOOT_VALVE_MAX_n; uint8_t rtb_c_g_aucFLOW_BI_FOOT_VALVE_MIN; uint8_t rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX; uint8_t rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX_h; uint8_t rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN; uint8_t rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN_a; /* MATLAB Function: '/get_tg_FLL_for_LVL' */ /* : c_g_assFLOW_BI_TEMP_TGT = g_assFLOW_BI_TEMP_TGT(LVL + 1); */ get_tg_FLL_for_LVL(rtu_LVL, rtu_setTempFL, &rtb_u_fou); /* MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } /* Sum: '/ 1' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ rtb_u_fou = (int16_t)(g_assFLOW_BI_TEMP_TGT[tmp_0 - 1] - rtb_u_fou); /* Gain: '/Gain6' */ tmp_0 = 13107 * rtb_u_fou; rtb_X = (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && ((((uint32_t)tmp_0 & 65535U) != 0U) || (tmp_0 > 0))) + (tmp_0 >> 17)); /* Switch: '/Switch1' incorporates: * Gain: '/Gain6' * Sum: '/Add' */ /* : c_g_aucFLOW_BI_FOOT_PLUS = g_aucFLOW_BI_FOOT_PLUS(LVL + 1); */ if (rtb_X >= 0) { rtb_FLF_NEW = rty_Out1[4]; } else { /* MATLAB Function: '/g_aucFLOW_BI_FOOT_PLUS_LEFT' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } /* Gain: '/Gain6' incorporates: * MATLAB Function: '/g_aucFLOW_BI_FOOT_PLUS_LEFT' * Product: '/Product3' */ tmp_0 = g_aucFLOW_BI_FOOT_PLUS[tmp_0 - 1] * rtb_X * 13107; rtb_FLF_NEW = (uint16_t)((int16_t)rty_Out1[4] - (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && (((uint32_t)tmp_0 & 65535U) != 0U)) + (tmp_0 >> 17))); } /* End of Switch: '/Switch1' */ /* MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MAX1' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI_FOOT_VALVE_MAX = g_aucFLOW_BI_FOOT_VALVE_MAX(LVL + 1); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } rtb_c_g_aucFLOW_BI_FOOT_VALVE_MAX_n = g_aucFLOW_BI_FOOT_VALVE_MAX[tmp_0 - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MAX1' */ /* MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MIN1' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI2_FOOT_VALVE_MIN = g_aucFLOW_BI_FOOT_VALVE_MIN(LVL +1); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN = g_aucFLOW_BI_FOOT_VALVE_MIN[tmp_0 - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MIN1' */ /* MATLAB Function: '/get_tg_FLL_for_LVL' */ /* : c_g_assFLOW_BI_TEMP_TGT = g_assFLOW_BI_TEMP_TGT(LVL + 1 + 6); */ get_tg_FLL_for_LVL_j(rtu_LVL, rtu_setTempFR, &rtb_u_fou); /* MATLAB Function: '/g_assFLOW_BI_TEMP_TGT_RIGHT' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } /* Sum: '/ 1' incorporates: * MATLAB Function: '/g_assFLOW_BI_TEMP_TGT_RIGHT' */ rtb_u_fou = (int16_t)(g_assFLOW_BI_TEMP_TGT[tmp - 1] - rtb_u_fou); /* Gain: '/Gain6' */ tmp_0 = 13107 * rtb_u_fou; rtb_X = (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && ((((uint32_t)tmp_0 & 65535U) != 0U) || (tmp_0 > 0))) + (tmp_0 >> 17)); /* Switch: '/Switch3' incorporates: * Gain: '/Gain7' * Sum: '/Add1' */ /* : c_g_aucFLOW_BI_FOOT_PLUS = g_aucFLOW_BI_FOOT_PLUS(LVL + 1 + 6); */ if (rtb_X >= 0) { rtb_FRF_NEW = rty_Out1[6]; } else { /* MATLAB Function: '/g_aucFLOW_BI_FOOT_PLUS_RIGHT' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } /* Gain: '/Gain7' incorporates: * MATLAB Function: '/g_aucFLOW_BI_FOOT_PLUS_RIGHT' * Product: '/Product4' */ tmp_0 = g_aucFLOW_BI_FOOT_PLUS[tmp - 1] * rtb_X * 13107; rtb_FRF_NEW = (uint16_t)((int16_t)rty_Out1[6] - (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && (((uint32_t)tmp_0 & 65535U) != 0U)) + (tmp_0 >> 17))); } /* End of Switch: '/Switch3' */ /* MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MAX2' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI_FOOT_VALVE_MAX = g_aucFLOW_BI_FOOT_VALVE_MAX(LVL + 1 + 6); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } rtb_c_g_aucFLOW_BI_FOOT_VALVE_MAX = g_aucFLOW_BI_FOOT_VALVE_MAX[tmp - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MAX2' */ /* MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MIN2' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI_FOOT_VALVE_MIN = g_aucFLOW_BI_FOOT_VALVE_MIN(LVL + 1 + 6); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } rtb_c_g_aucFLOW_BI_FOOT_VALVE_MIN = g_aucFLOW_BI_FOOT_VALVE_MIN[tmp - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MIN2' */ /* MATLAB Function: '/g_assFLOW_BI_AMB_TGT' */ /* : c_g_aucFLOW_BI_VENT_PLUS = g_aucFLOW_BI_VENT_PLUS(LVL + 1); */ g_assFLOW_BI_AMB_TGT_n(rtu_LVL, &rtb_u_fou); /* MATLAB Function: '/g_aucFLOW_BI_VENT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } /* Gain: '/Gain2' incorporates: * Sum: '/deg' */ tmp = (int16_t)(rtb_u_fou - rtu_Amb_Fb) * 13107; /* Product: '/Умножили' incorporates: * Gain: '/Gain' * Gain: '/Gain2' * MATLAB Function: '/g_aucFLOW_BI_VENT_PLUS' */ rtb_u_fou = (int16_t)((int8_t)(((((uint32_t)tmp & 65536U) != 0U) && ((((uint32_t)tmp & 65535U) != 0U) || (tmp > 0))) + (tmp >> 17)) * (int32_t) ((g_aucFLOW_BI_VENT_PLUS[tmp_0 - 1] * 205U + 1024U) >> 11)); /* DataTypeConversion: '/Data Type Conversion' incorporates: * Sum: '/ ' * Switch: '/Switch2' */ rtb_Switch2_a_idx_0 = (uint16_t)((uint16_t)((rty_Out1[0] - rtb_u_fou) >> 1) << 1); rtb_Switch2_a_idx_1 = (uint16_t)((uint16_t)((rty_Out1[1] - rtb_u_fou) >> 1) << 1); /* MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MAX' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI_VENT_VALVE_MAX = g_aucFLOW_BI_VENT_VALVE_MAX(LVL + 1); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX_h = g_aucFLOW_BI_VENT_VALVE_MAX[tmp_0 - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MAX' */ /* MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MIN' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI_VENT_VALVE_MIN = g_aucFLOW_BI_VENT_VALVE_MIN(LVL + 1); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN_a = g_aucFLOW_BI_VENT_VALVE_MIN[tmp_0 - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MIN' */ /* MATLAB Function: '/g_assFLOW_BI_AMB_TGT' */ /* : c_g_aucFLOW_BI_VENT_PLUS = g_aucFLOW_BI_VENT_PLUS(LVL + 1 + 6); */ g_assFLOW_BI_AMB_TGT_n(rtu_LVL, &rtb_u_fou); /* MATLAB Function: '/g_aucFLOW_BI_VENT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } /* Gain: '/Gain2' incorporates: * Sum: '/deg' */ tmp_0 = (int16_t)(rtb_u_fou - rtu_Amb_Fb) * 13107; /* Product: '/Умножили' incorporates: * Gain: '/Gain' * Gain: '/Gain2' * MATLAB Function: '/g_aucFLOW_BI_VENT_PLUS' */ rtb_u_fou = (int16_t)((int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && ((((uint32_t)tmp_0 & 65535U) != 0U) || (tmp_0 > 0))) + (tmp_0 >> 17)) * (int32_t)((g_aucFLOW_BI_VENT_PLUS[tmp - 1] * 205U + 1024U) >> 11)); /* MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MAX' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI_VENT_VALVE_MAX = g_aucFLOW_BI_VENT_VALVE_MAX(LVL + 1 + 6); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX = g_aucFLOW_BI_VENT_VALVE_MAX[tmp - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MAX' */ /* MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MIN' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI_VENT_VALVE_MIN = g_aucFLOW_BI_VENT_VALVE_MIN(LVL + 1 + 6); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN = g_aucFLOW_BI_VENT_VALVE_MIN[tmp - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MIN' */ /* DataTypeConversion: '/Data Type Conversion' incorporates: * Sum: '/ ' * Switch: '/Switch2' */ rtb_Switch2_c_0 = (uint16_t)((uint16_t)((rty_Out1[0] - rtb_u_fou) >> 1) << 1); /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_Switch2_a_idx_0 > rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX_h) { /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[0] = rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX_h; } else if (rtb_Switch2_a_idx_0 < rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN_a) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [1-2]' * SignalConversion generated from: '/Out1' */ rty_Out1[0] = rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN_a; } else { /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[0] = rtb_Switch2_a_idx_0; } /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_Switch2_c_0 > rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX) { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[2] = rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX; } else if (rtb_Switch2_c_0 < rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [3-4]' * SignalConversion generated from: '/Out1' */ rty_Out1[2] = rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN; } else { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[2] = rtb_Switch2_c_0; } /* DataTypeConversion: '/Data Type Conversion' incorporates: * Sum: '/ ' * Switch: '/Switch2' */ rtb_Switch2_c_0 = (uint16_t)((uint16_t)((rty_Out1[1] - rtb_u_fou) >> 1) << 1); /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_Switch2_a_idx_1 > rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX_h) { /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[1] = rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX_h; } else if (rtb_Switch2_a_idx_1 < rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN_a) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [1-2]' * SignalConversion generated from: '/Out1' */ rty_Out1[1] = rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN_a; } else { /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[1] = rtb_Switch2_a_idx_1; } /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_Switch2_c_0 > rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX) { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[3] = rtb_c_g_aucFLOW_BI_VENT_VALVE_MAX; } else if (rtb_Switch2_c_0 < rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [3-4]' * SignalConversion generated from: '/Out1' */ rty_Out1[3] = rtb_c_g_aucFLOW_BI_VENT_VALVE_MIN; } else { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[3] = rtb_Switch2_c_0; } /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_FLF_NEW > rtb_c_g_aucFLOW_BI_FOOT_VALVE_MAX_n) { /* Assignment: '/Присваивание в [5]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[4] = rtb_c_g_aucFLOW_BI_FOOT_VALVE_MAX_n; } else if (rtb_FLF_NEW < rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [5]' * SignalConversion generated from: '/Out1' */ rty_Out1[4] = rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN; } else { /* Assignment: '/Присваивание в [5]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[4] = rtb_FLF_NEW; } /* End of Switch: '/Switch2' */ /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_FRF_NEW > rtb_c_g_aucFLOW_BI_FOOT_VALVE_MAX) { /* Assignment: '/Присваивание в [7]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[6] = rtb_c_g_aucFLOW_BI_FOOT_VALVE_MAX; } else if (rtb_FRF_NEW < rtb_c_g_aucFLOW_BI_FOOT_VALVE_MIN) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [7]' * SignalConversion generated from: '/Out1' */ rty_Out1[6] = rtb_c_g_aucFLOW_BI_FOOT_VALVE_MIN; } else { /* Assignment: '/Присваивание в [7]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[6] = rtb_FRF_NEW; } /* End of Switch: '/Switch2' */ } /* * Output and update for atomic system: * '/g_assFLOW_BI_AMB_TGT' * '/g_assFLOW_BI_AMB_TGT' * '/g_assFLOW_BI_AMB_TGT' * '/g_assFLOW_BI_AMB_TGT' */ void g_assFLOW_BI_AMB_TGT_e(uint8_t rtu_LVL, int16_t *rty_c_g_assFLOW_BI2_AMB_TGT) { int32_t tmp; /* : c_g_assFLOW_BI2_AMB_TGT = g_assFLOW_B2I_AMB_TGT(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_c_g_assFLOW_BI2_AMB_TGT = g_assFLOW_B2I_AMB_TGT[tmp - 1]; } /* * Output and update for action system: * '/Bilevel2' * '/Bilevel2' */ void Bilevel2(int16_t rtu_Amb_Fb, uint8_t rtu_LVL, uint16_t rty_Out1[9], uint8_t rtu_setTempFL, uint8_t rtu_setTempFR) { int32_t tmp; int32_t tmp_0; int16_t rtb_u_cgj; uint16_t rtb_FLF_NEW; uint16_t rtb_FRF_NEW; uint16_t rtb_Switch2_i_idx_0; uint16_t rtb_Switch2_i_idx_1; uint16_t rtb_Switch2_p_0; int8_t rtb_X; uint8_t rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MAX; uint8_t rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MAX_l; uint8_t rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN; uint8_t rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN_l; uint8_t rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX; uint8_t rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX_k; uint8_t rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN; uint8_t rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN_f; /* MATLAB Function: '/get_tg_FLL_for_LVL' */ /* : c_g_assFLOW_BI2_TEMP_TGT = g_assFLOW_BI2_TEMP_TGT(LVL + 1); */ get_tg_FLL_for_LVL(rtu_LVL, rtu_setTempFL, &rtb_u_cgj); /* MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } /* Sum: '/ 1' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ rtb_u_cgj = (int16_t)(g_assFLOW_BI2_TEMP_TGT[tmp_0 - 1] - rtb_u_cgj); /* Gain: '/Gain6' */ tmp_0 = 13107 * rtb_u_cgj; rtb_X = (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && ((((uint32_t)tmp_0 & 65535U) != 0U) || (tmp_0 > 0))) + (tmp_0 >> 17)); /* Switch: '/Switch1' incorporates: * Gain: '/Gain6' * Sum: '/Add' */ /* : c_g_aucFLOW_BI2_FOOT_PLUS = g_aucFLOW_BI2_FOOT_PLUS(LVL + 1); */ if (rtb_X >= 0) { rtb_FLF_NEW = rty_Out1[4]; } else { /* MATLAB Function: '/g_aucFLOW_BI_FOOT_PLUS_LEFT' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } /* Gain: '/Gain6' incorporates: * MATLAB Function: '/g_aucFLOW_BI_FOOT_PLUS_LEFT' * Product: '/Product3' */ tmp_0 = g_aucFLOW_BI2_FOOT_PLUS[tmp_0 - 1] * rtb_X * 13107; rtb_FLF_NEW = (uint16_t)((int16_t)rty_Out1[4] - (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && (((uint32_t)tmp_0 & 65535U) != 0U)) + (tmp_0 >> 17))); } /* End of Switch: '/Switch1' */ /* MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MAX1' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI2_FOOT_VALVE_MAX = g_aucFLOW_BI2_FOOT_VALVE_MAX(LVL + 1); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MAX_l = g_aucFLOW_BI2_FOOT_VALVE_MAX[tmp_0 - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MAX1' */ /* MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MIN1' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI2_FOOT_VALVE_MIN = g_aucFLOW_BI2_FOOT_VALVE_MIN(LVL + 1); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN = g_aucFLOW_BI2_FOOT_VALVE_MIN[tmp_0 - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MIN1' */ /* MATLAB Function: '/get_tg_FLL_for_LVL' */ /* : c_g_assFLOW_BI2_TEMP_TGT = g_assFLOW_BI2_TEMP_TGT(LVL + 1 + 6); */ get_tg_FLL_for_LVL_j(rtu_LVL, rtu_setTempFR, &rtb_u_cgj); /* MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_RIGHT' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } /* Sum: '/ 1' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_RIGHT' */ rtb_u_cgj = (int16_t)(g_assFLOW_BI2_TEMP_TGT[tmp - 1] - rtb_u_cgj); /* Gain: '/Gain6' */ tmp_0 = 13107 * rtb_u_cgj; rtb_X = (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && ((((uint32_t)tmp_0 & 65535U) != 0U) || (tmp_0 > 0))) + (tmp_0 >> 17)); /* Switch: '/Switch3' incorporates: * Gain: '/Gain7' * Sum: '/Add1' */ /* : c_g_aucFLOW_BI2_FOOT_PLUS = g_aucFLOW_BI2_FOOT_PLUS(LVL + 1 + 6); */ if (rtb_X >= 0) { rtb_FRF_NEW = rty_Out1[6]; } else { /* MATLAB Function: '/g_aucFLOW_BI_FOOT_PLUS_RIGHT' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } /* Gain: '/Gain7' incorporates: * MATLAB Function: '/g_aucFLOW_BI_FOOT_PLUS_RIGHT' * Product: '/Product4' */ tmp_0 = g_aucFLOW_BI2_FOOT_PLUS[tmp - 1] * rtb_X * 13107; rtb_FRF_NEW = (uint16_t)((int16_t)rty_Out1[6] - (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && (((uint32_t)tmp_0 & 65535U) != 0U)) + (tmp_0 >> 17))); } /* End of Switch: '/Switch3' */ /* MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MAX2' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI2_FOOT_VALVE_MAX = g_aucFLOW_BI2_FOOT_VALVE_MAX(LVL + 1 + 6); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MAX = g_aucFLOW_BI2_FOOT_VALVE_MAX[tmp - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MAX2' */ /* MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MIN2' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI2_FOOT_VALVE_MIN = g_aucFLOW_BI2_FOOT_VALVE_MIN(LVL + 1 + 6); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN_l = g_aucFLOW_BI2_FOOT_VALVE_MIN[tmp - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_FOOT_VALVE_MIN2' */ /* MATLAB Function: '/g_assFLOW_BI_AMB_TGT' */ /* : c_g_aucFLOW_BI2_VENT_PLUS = g_aucFLOW_BI2_VENT_PLUS(LVL + 1); */ g_assFLOW_BI_AMB_TGT_e(rtu_LVL, &rtb_u_cgj); /* MATLAB Function: '/g_aucFLOW_BI_VENT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } /* Gain: '/Gain2' incorporates: * Sum: '/deg' */ tmp = (int16_t)(rtb_u_cgj - rtu_Amb_Fb) * 13107; /* Product: '/Умножили' incorporates: * Gain: '/Gain' * Gain: '/Gain2' * MATLAB Function: '/g_aucFLOW_BI_VENT_PLUS' */ rtb_u_cgj = (int16_t)((int8_t)(((((uint32_t)tmp & 65536U) != 0U) && ((((uint32_t)tmp & 65535U) != 0U) || (tmp > 0))) + (tmp >> 17)) * (int32_t) ((g_aucFLOW_BI2_VENT_PLUS[tmp_0 - 1] * 205U + 1024U) >> 11)); /* DataTypeConversion: '/Data Type Conversion' incorporates: * Sum: '/ ' * Switch: '/Switch2' */ rtb_Switch2_i_idx_0 = (uint16_t)((uint16_t)((rty_Out1[0] - rtb_u_cgj) >> 1) << 1); rtb_Switch2_i_idx_1 = (uint16_t)((uint16_t)((rty_Out1[1] - rtb_u_cgj) >> 1) << 1); /* MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MAX' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI2_VENT_VALVE_MAX = g_aucFLOW_BI2_VENT_VALVE_MAX(LVL + 1); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX_k = g_aucFLOW_BI2_VENT_VALVE_MAX[tmp_0 - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MAX' */ /* MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MIN' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI2_VENT_VALVE_MIN = g_aucFLOW_BI2_VENT_VALVE_MIN(LVL + 1); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN_f = g_aucFLOW_BI2_VENT_VALVE_MIN[tmp_0 - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MIN' */ /* MATLAB Function: '/g_assFLOW_BI_AMB_TGT' */ /* : c_g_aucFLOW_BI2_VENT_PLUS = g_aucFLOW_BI2_VENT_PLUS(LVL + 1 + 6); */ g_assFLOW_BI_AMB_TGT_e(rtu_LVL, &rtb_u_cgj); /* MATLAB Function: '/g_aucFLOW_BI_VENT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } /* Gain: '/Gain2' incorporates: * Sum: '/deg' */ tmp_0 = (int16_t)(rtb_u_cgj - rtu_Amb_Fb) * 13107; /* Product: '/Умножили' incorporates: * Gain: '/Gain' * Gain: '/Gain2' * MATLAB Function: '/g_aucFLOW_BI_VENT_PLUS' */ rtb_u_cgj = (int16_t)((int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && ((((uint32_t)tmp_0 & 65535U) != 0U) || (tmp_0 > 0))) + (tmp_0 >> 17)) * (int32_t)((g_aucFLOW_BI2_VENT_PLUS[tmp - 1] * 205U + 1024U) >> 11)); /* MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MAX' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI2_VENT_VALVE_MAX = g_aucFLOW_BI2_VENT_VALVE_MAX(LVL + 1 + 6); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX = g_aucFLOW_BI2_VENT_VALVE_MAX[tmp - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MAX' */ /* MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MIN' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_BI2_VENT_VALVE_MIN = g_aucFLOW_BI2_VENT_VALVE_MIN(LVL + 1 + 6); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN = g_aucFLOW_BI2_VENT_VALVE_MIN[tmp - 1]; /* End of MATLAB Function: '/g_aucFLOW_BI_VENT_VALVE_MIN' */ /* DataTypeConversion: '/Data Type Conversion' incorporates: * Sum: '/ ' * Switch: '/Switch2' */ rtb_Switch2_p_0 = (uint16_t)((uint16_t)((rty_Out1[0] - rtb_u_cgj) >> 1) << 1); /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_Switch2_i_idx_0 > rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX_k) { /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[0] = rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX_k; } else if (rtb_Switch2_i_idx_0 < rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN_f) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [1-2]' * SignalConversion generated from: '/Out1' */ rty_Out1[0] = rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN_f; } else { /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[0] = rtb_Switch2_i_idx_0; } /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_Switch2_p_0 > rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX) { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[2] = rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX; } else if (rtb_Switch2_p_0 < rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [3-4]' * SignalConversion generated from: '/Out1' */ rty_Out1[2] = rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN; } else { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[2] = rtb_Switch2_p_0; } /* DataTypeConversion: '/Data Type Conversion' incorporates: * Sum: '/ ' * Switch: '/Switch2' */ rtb_Switch2_p_0 = (uint16_t)((uint16_t)((rty_Out1[1] - rtb_u_cgj) >> 1) << 1); /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_Switch2_i_idx_1 > rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX_k) { /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[1] = rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX_k; } else if (rtb_Switch2_i_idx_1 < rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN_f) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [1-2]' * SignalConversion generated from: '/Out1' */ rty_Out1[1] = rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN_f; } else { /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[1] = rtb_Switch2_i_idx_1; } /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_Switch2_p_0 > rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX) { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[3] = rtb_c_g_aucFLOW_BI2_VENT_VALVE_MAX; } else if (rtb_Switch2_p_0 < rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [3-4]' * SignalConversion generated from: '/Out1' */ rty_Out1[3] = rtb_c_g_aucFLOW_BI2_VENT_VALVE_MIN; } else { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[3] = rtb_Switch2_p_0; } /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_FLF_NEW > rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MAX_l) { /* Assignment: '/Присваивание в [5]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[4] = rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MAX_l; } else if (rtb_FLF_NEW < rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [5]' * SignalConversion generated from: '/Out1' */ rty_Out1[4] = rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN; } else { /* Assignment: '/Присваивание в [5]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[4] = rtb_FLF_NEW; } /* End of Switch: '/Switch2' */ /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' * RelationalOperator: '/UpperRelop' * Switch: '/Switch' */ if (rtb_FRF_NEW > rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MAX) { /* Assignment: '/Присваивание в [7]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[6] = rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MAX; } else if (rtb_FRF_NEW < rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN_l) { /* Switch: '/Switch' incorporates: * Assignment: '/Присваивание в [7]' * SignalConversion generated from: '/Out1' */ rty_Out1[6] = rtb_c_g_aucFLOW_BI2_FOOT_VALVE_MIN_l; } else { /* Assignment: '/Присваивание в [7]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[6] = rtb_FRF_NEW; } /* End of Switch: '/Switch2' */ } /* * Output and update for atomic system: * '/g_aucFLOW_AF_FOOT_VALVE_MAX' * '/g_aucFLOW_AF_FOOT_VALVE_MAX' * '/g_aucFLOW_AF_FOOT_VALVE_MAX' * '/g_aucFLOW_AF_FOOT_VALVE_MAX' */ void g_aucFLOW_AF_FOOT_VALVE_MAX_e(uint8_t rtu_LVL, uint8_t *rty_c_g_aucFLOW_AF_FOOT_VALVE_MAX) { int32_t tmp; /* : c_g_aucFLOW_AF_FOOT_VALVE_MAX = g_aucFLOW_AF_FOOT_VALVE_MAX(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_c_g_aucFLOW_AF_FOOT_VALVE_MAX = g_aucFLOW_AF_FOOT_VALVE_MAX[tmp - 1]; } /* * Output and update for atomic system: * '/g_assFLOW_AF_AMB_TGT' * '/g_assFLOW_AF_AMB_TGT' * '/g_assFLOW_AF_AMB_TGT' * '/g_assFLOW_AF_AMB_TGT' * '/g_assFLOW_AF_AMB_TGT' * '/g_assFLOW_AF_AMB_TGT' */ void g_assFLOW_AF_AMB_TGT_g(uint8_t rtu_LVL, int16_t *rty_c_g_assFLOW_AF_AMB_TGT) { int32_t tmp; /* : c_g_assFLOW_AF_AMB_TGT = g_assFLOW_AF_AMB_TGT(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_c_g_assFLOW_AF_AMB_TGT = g_assFLOW_AF_AMB_TGT[tmp - 1]; } /* * Output and update for action system: * '/Afoot' * '/Afoot' */ void Afoot(int16_t rtu_Amb_Fb, uint8_t rtu_LVL, uint16_t rty_Out1[9], uint8_t rtu_setTempFL, uint8_t rtu_setTempFR) { int32_t i; int32_t tmp_0; uint32_t qY; int16_t tmp[78]; int16_t rtb_deg_en; uint16_t rtb_FLF_NEW; uint16_t rtb_FRF_NEW; uint16_t rtb_Switch2_ar_idx_0; uint16_t rtb_Switch2_ar_idx_1; uint16_t rtb_Switch2_j_idx_0; uint16_t rtb_Switch2_j_idx_1; int8_t rtb_X; uint8_t rtb_c_g_aucFLOW_AF_FOOT_VALVE_MAX; uint8_t rtb_c_g_aucFLOW_AF_VENT_VALVE_MAX_k; /* MATLAB Function: '/get_tg_for_LVL' */ /* : c_g_aucFLOW_AF_BLR_AF_TGT = g_aucFLOW_AF_BLR_AF_TGT(LVL + 1); */ /* : table = [ */ /* : g_assVTG_FL_LV0; */ /* : g_assVTG_FL_LV1; */ /* : g_assVTG_FL_LV2; */ /* : g_assVTG_FL_LV3; */ /* : g_assVTG_FL_LV4; */ /* : g_assVTG_FL_LV5 */ /* : ]; */ /* : vals = table(ambient_Lvl + 1, set_tmp - 16); */ for (i = 0; i < 13; i++) { tmp[6 * i] = g_assVTG_FL_LV0[i]; tmp[6 * i + 1] = g_assVTG_FL_LV1[i]; tmp[6 * i + 2] = g_assVTG_FL_LV2[i]; tmp[6 * i + 3] = g_assVTG_FL_LV3[i]; tmp[6 * i + 4] = g_assVTG_FL_LV4[i]; tmp[6 * i + 5] = g_assVTG_FL_LV5[i]; } /* MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ i = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { i = 255; } /* MATLAB Function: '/get_tg_for_LVL' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } /* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */ qY = rtu_setTempFL - 16U; /* MW:end MISRA2012:D4.1 CERT-C:INT30-C */ if (rtu_setTempFL - 16U > rtu_setTempFL) { qY = 0U; } /* Gain: '/Gain6' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' * MATLAB Function: '/get_tg_for_LVL' * Sum: '/ 1' */ i = (int16_t)(g_aucFLOW_AF_BLR_AF_TGT[i - 1] - tmp[(((int32_t)qY - 1) * 6 + tmp_0) - 1]) * 13107; rtb_X = (int8_t)(((((uint32_t)i & 65536U) != 0U) && ((((uint32_t)i & 65535U) != 0U) || (i > 0))) + (i >> 17)); /* Switch: '/Switch1' incorporates: * Gain: '/Gain6' * Sum: '/Add' */ /* : c_g_aucFLOW_AF_FOOT_PLUS = g_aucFLOW_AF_FOOT_PLUS(LVL + 1); */ if (rtb_X >= 0) { rtb_FLF_NEW = rty_Out1[4]; } else { /* MATLAB Function: '/g_aucFLOW_AF_FOOT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ i = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { i = 255; } /* Gain: '/Gain6' incorporates: * MATLAB Function: '/g_aucFLOW_AF_FOOT_PLUS' * Product: '/Product3' */ i = g_aucFLOW_AF_FOOT_PLUS[i - 1] * rtb_X * 13107; rtb_FLF_NEW = (uint16_t)((int16_t)rty_Out1[4] - (int8_t)(((((uint32_t)i & 65536U) != 0U) && (((uint32_t)i & 65535U) != 0U)) + (i >> 17))); } /* End of Switch: '/Switch1' */ /* MATLAB Function: '/g_aucFLOW_AF_FOOT_VALVE_MAX' */ g_aucFLOW_AF_FOOT_VALVE_MAX_e(rtu_LVL, &rtb_c_g_aucFLOW_AF_FOOT_VALVE_MAX); /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' */ if (rtb_FLF_NEW > rtb_c_g_aucFLOW_AF_FOOT_VALVE_MAX) { rtb_FLF_NEW = rtb_c_g_aucFLOW_AF_FOOT_VALVE_MAX; } /* End of Switch: '/Switch2' */ /* MATLAB Function: '/get_vtg_for_LVL' */ /* : c_g_aucFLOW_AF_BLR_AF_TGT = g_aucFLOW_AF_BLR_AF_TGT(LVL + 1); */ /* : table = [ */ /* : g_assVTG_FR_LV0; */ /* : g_assVTG_FR_LV1; */ /* : g_assVTG_FR_LV2; */ /* : g_assVTG_FR_LV3; */ /* : g_assVTG_FR_LV4; */ /* : g_assVTG_FR_LV5 */ /* : ]; */ /* : vals = table(ambient_Lvl + 1, set_tmp - 16); */ for (i = 0; i < 13; i++) { tmp[6 * i] = g_assVTG_FR_LV0[i]; tmp[6 * i + 1] = g_assVTG_FR_LV1[i]; tmp[6 * i + 2] = g_assVTG_FR_LV2[i]; tmp[6 * i + 3] = g_assVTG_FR_LV3[i]; tmp[6 * i + 4] = g_assVTG_FR_LV4[i]; tmp[6 * i + 5] = g_assVTG_FR_LV5[i]; } /* MATLAB Function: '/g_aucFLOW_AF_BLR_AF_TGT' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ i = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { i = 255; } /* MATLAB Function: '/get_vtg_for_LVL' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } qY = rtu_setTempFR - 16U; if (rtu_setTempFR - 16U > rtu_setTempFR) { qY = 0U; } /* Sum: '/ 1' incorporates: * MATLAB Function: '/g_aucFLOW_AF_BLR_AF_TGT' * MATLAB Function: '/get_vtg_for_LVL' */ rtb_deg_en = (int16_t)(g_aucFLOW_AF_BLR_AF_TGT[i - 1] - tmp[(((int32_t)qY - 1) * 6 + tmp_0) - 1]); /* Gain: '/Gain6' */ i = 13107 * rtb_deg_en; rtb_X = (int8_t)(((((uint32_t)i & 65536U) != 0U) && ((((uint32_t)i & 65535U) != 0U) || (i > 0))) + (i >> 17)); /* Switch: '/Switch3' incorporates: * Gain: '/Gain7' * Sum: '/Add1' */ /* : c_g_aucFLOW_AF_FOOT_PLUS = g_aucFLOW_AF_FOOT_PLUS(LVL + 1 + 6); */ if (rtb_X >= 0) { rtb_FRF_NEW = rty_Out1[6]; } else { /* MATLAB Function: '/g_aucFLOW_AF_FOOT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ i = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { i = 255; } tmp_0 = (int32_t)((uint32_t)i + 6U); if ((uint32_t)i + 6U > 255U) { tmp_0 = 255; } /* Gain: '/Gain7' incorporates: * MATLAB Function: '/g_aucFLOW_AF_FOOT_PLUS' * Product: '/Product4' */ i = g_aucFLOW_AF_FOOT_PLUS[tmp_0 - 1] * rtb_X * 13107; rtb_FRF_NEW = (uint16_t)((int16_t)rty_Out1[6] - (int8_t)(((((uint32_t)i & 65536U) != 0U) && (((uint32_t)i & 65535U) != 0U)) + (i >> 17))); } /* End of Switch: '/Switch3' */ /* MATLAB Function: '/g_aucFLOW_AF_FOOT_VALVE_MAX' */ g_aucFLOW_AF_FOOT_VALVE_MAX_e(rtu_LVL, &rtb_c_g_aucFLOW_AF_FOOT_VALVE_MAX); /* MATLAB Function: '/g_assFLOW_AF_AMB_TGT' */ /* : c_g_aucFLOW_AF_VENT_PLUS = g_aucFLOW_AF_VENT_PLUS(LVL + 1); */ g_assFLOW_AF_AMB_TGT_g(rtu_LVL, &rtb_deg_en); /* Sum: '/deg' */ rtb_deg_en -= rtu_Amb_Fb; /* Gain: '/Gain2' */ i = 13107 * rtb_deg_en; rtb_X = (int8_t)(((((uint32_t)i & 65536U) != 0U) && ((((uint32_t)i & 65535U) != 0U) || (i > 0))) + (i >> 17)); /* Switch: '/if (deg < 0)' incorporates: * Sum: '/ ' * Switch: '/Switch2' */ if (rtb_X >= 0) { rtb_Switch2_ar_idx_0 = rty_Out1[0]; rtb_Switch2_ar_idx_1 = rty_Out1[1]; } else { /* MATLAB Function: '/g_aucFLOW_AF_VENT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ i = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { i = 255; } /* Product: '/Умножили' incorporates: * Gain: '/Gain' * MATLAB Function: '/g_aucFLOW_AF_VENT_PLUS' */ rtb_deg_en = (int16_t)((int32_t)((g_aucFLOW_AF_VENT_PLUS[i - 1] * 205U + 1024U) >> 11) * rtb_X); rtb_Switch2_ar_idx_0 = (uint16_t)(rty_Out1[0] - rtb_deg_en); rtb_Switch2_ar_idx_1 = (uint16_t)(rty_Out1[1] - rtb_deg_en); } /* End of Switch: '/if (deg < 0)' */ /* MATLAB Function: '/g_aucFLOW_AF_VENT_VALVE_MAX' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_AF_VENT_VALVE_MAX = g_aucFLOW_AF_VENT_VALVE_MAX(LVL + 1); */ i = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { i = 255; } rtb_c_g_aucFLOW_AF_VENT_VALVE_MAX_k = g_aucFLOW_AF_VENT_VALVE_MAX[i - 1]; /* End of MATLAB Function: '/g_aucFLOW_AF_VENT_VALVE_MAX' */ /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' */ if (rtb_Switch2_ar_idx_0 > rtb_c_g_aucFLOW_AF_VENT_VALVE_MAX_k) { rtb_Switch2_ar_idx_0 = rtb_c_g_aucFLOW_AF_VENT_VALVE_MAX_k; } if (rtb_Switch2_ar_idx_1 > rtb_c_g_aucFLOW_AF_VENT_VALVE_MAX_k) { rtb_Switch2_ar_idx_1 = rtb_c_g_aucFLOW_AF_VENT_VALVE_MAX_k; } /* End of Switch: '/Switch2' */ /* MATLAB Function: '/g_assFLOW_AF_AMB_TGT' */ /* : c_g_aucFLOW_AF_VENT_PLUS = g_aucFLOW_AF_VENT_PLUS(LVL + 1 + 6); */ g_assFLOW_AF_AMB_TGT_g(rtu_LVL, &rtb_deg_en); /* Gain: '/Gain2' incorporates: * Sum: '/deg' */ i = (int16_t)(rtb_deg_en - rtu_Amb_Fb) * 13107; rtb_X = (int8_t)(((((uint32_t)i & 65536U) != 0U) && ((((uint32_t)i & 65535U) != 0U) || (i > 0))) + (i >> 17)); /* Switch: '/if (deg < 0)' incorporates: * DataTypeConversion: '/Data Type Conversion' * Sum: '/ ' * Switch: '/Switch2' */ if (rtb_X >= 0) { rtb_Switch2_j_idx_0 = rty_Out1[0]; rtb_Switch2_j_idx_1 = rty_Out1[1]; } else { /* MATLAB Function: '/g_aucFLOW_AF_VENT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ i = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { i = 255; } tmp_0 = (int32_t)((uint32_t)i + 6U); if ((uint32_t)i + 6U > 255U) { tmp_0 = 255; } /* Product: '/Умножили' incorporates: * Gain: '/Gain' * MATLAB Function: '/g_aucFLOW_AF_VENT_PLUS' */ rtb_deg_en = (int16_t)((int32_t)((g_aucFLOW_AF_VENT_PLUS[tmp_0 - 1] * 205U + 1024U) >> 11) * rtb_X); rtb_Switch2_j_idx_0 = (uint16_t)((int16_t)rty_Out1[0] - rtb_deg_en); rtb_Switch2_j_idx_1 = (uint16_t)((int16_t)rty_Out1[1] - rtb_deg_en); } /* End of Switch: '/if (deg < 0)' */ /* MATLAB Function: '/g_aucFLOW_AF_VENT_VALVE_MAX' incorporates: * MATLAB Function: '/g_assFLOW_BI2_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_AF_VENT_VALVE_MAX = g_aucFLOW_AF_VENT_VALVE_MAX(LVL + 1 + 6); */ i = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { i = 255; } tmp_0 = (int32_t)((uint32_t)i + 6U); if ((uint32_t)i + 6U > 255U) { tmp_0 = 255; } rtb_c_g_aucFLOW_AF_VENT_VALVE_MAX_k = g_aucFLOW_AF_VENT_VALVE_MAX[tmp_0 - 1]; /* End of MATLAB Function: '/g_aucFLOW_AF_VENT_VALVE_MAX' */ /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch2' */ rty_Out1[0] = rtb_Switch2_ar_idx_0; /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' */ if (rtb_Switch2_j_idx_0 > rtb_c_g_aucFLOW_AF_VENT_VALVE_MAX_k) { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[2] = rtb_c_g_aucFLOW_AF_VENT_VALVE_MAX_k; } else { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[2] = rtb_Switch2_j_idx_0; } /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch2' */ rty_Out1[1] = rtb_Switch2_ar_idx_1; /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' */ if (rtb_Switch2_j_idx_1 > rtb_c_g_aucFLOW_AF_VENT_VALVE_MAX_k) { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[3] = rtb_c_g_aucFLOW_AF_VENT_VALVE_MAX_k; } else { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[3] = rtb_Switch2_j_idx_1; } /* Assignment: '/Присваивание в [5]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[4] = rtb_FLF_NEW; /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' */ if (rtb_FRF_NEW > rtb_c_g_aucFLOW_AF_FOOT_VALVE_MAX) { /* Assignment: '/Присваивание в [7]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[6] = rtb_c_g_aucFLOW_AF_FOOT_VALVE_MAX; } else { /* Assignment: '/Присваивание в [7]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[6] = rtb_FRF_NEW; } /* End of Switch: '/Switch2' */ } /* * Output and update for atomic system: * '/g_aucFLOW_AFSM_FOOT_VALVE_MAX' * '/g_aucFLOW_AF_FOOT_VALVE_MAX' * '/g_aucFLOW_AFSM_FOOT_VALVE_MAX' * '/g_aucFLOW_AF_FOOT_VALVE_MAX' */ void g_aucFLOW_AFSM_FOOT_VALVE_MAX_f(uint8_t rtu_LVL, uint8_t *rty_c_g_aucFLOW_AFSM_FOOT_VALVE_MAX) { int32_t tmp; /* : c_g_aucFLOW_AFSM_FOOT_VALVE_MAX = g_aucFLOW_AFSM_FOOT_VALVE_MAX(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_c_g_aucFLOW_AFSM_FOOT_VALVE_MAX = g_aucFLOW_AFSM_FOOT_VALVE_MAX[tmp - 1]; } /* * Output and update for action system: * '/Afoot_Summer' * '/Afoot_Summer' */ 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) { int32_t tmp; int32_t tmp_0; int16_t rtb_deg_c; uint16_t rtb_FLF_NEW; uint16_t rtb_FRF_NEW; uint16_t rtb_Switch2_j1_idx_0; uint16_t rtb_Switch2_j1_idx_1; uint16_t rtb_Switch2_l_idx_0; uint16_t rtb_Switch2_l_idx_1; int8_t rtb_X; uint8_t rtb_c_g_aucFLOW_AFSM_FOOT_VALVE_MAX; uint8_t rtb_c_g_aucFLOW_AFSM_VENT_VALVE_MAX_g; /* MATLAB Function: '/get_tg_for_LVL' */ /* : c_g_assFLOW_AFSM_TEMP_TGT = g_assFLOW_AFSM_TEMP_TGT(LVL + 1); */ get_tg_FLL_for_LVL(rtu_LVL, rtu_setTempFL, &rtb_deg_c); /* MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } /* Sum: '/ 1' incorporates: * MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT_LEFT' */ rtb_deg_c = (int16_t)(g_assFLOW_AFSM_TEMP_TGT[tmp_0 - 1] - rtb_deg_c); /* Gain: '/Gain6' */ tmp_0 = 13107 * rtb_deg_c; rtb_X = (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && ((((uint32_t)tmp_0 & 65535U) != 0U) || (tmp_0 > 0))) + (tmp_0 >> 17)); /* Switch: '/Switch1' incorporates: * Gain: '/Gain6' * Sum: '/Add' */ /* : c_g_aucFLOW_AFSM_FOOT_PLUS = g_aucFLOW_AFSM_FOOT_PLUS(LVL + 1); */ if (rtb_X >= 0) { rtb_FLF_NEW = rty_Out1[4]; } else { /* MATLAB Function: '/g_aucFLOW_AFSM_FOOT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } /* Gain: '/Gain6' incorporates: * MATLAB Function: '/g_aucFLOW_AFSM_FOOT_PLUS' * Product: '/Product3' */ tmp_0 = g_aucFLOW_AFSM_FOOT_PLUS[tmp_0 - 1] * rtb_X * 13107; rtb_FLF_NEW = (uint16_t)((int16_t)rty_Out1[4] - (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && (((uint32_t)tmp_0 & 65535U) != 0U)) + (tmp_0 >> 17))); } /* End of Switch: '/Switch1' */ /* MATLAB Function: '/g_aucFLOW_AFSM_FOOT_VALVE_MAX' */ g_aucFLOW_AFSM_FOOT_VALVE_MAX_f(rtu_LVL, &rtb_c_g_aucFLOW_AFSM_FOOT_VALVE_MAX); /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' */ if (rtb_FLF_NEW > rtb_c_g_aucFLOW_AFSM_FOOT_VALVE_MAX) { rtb_FLF_NEW = rtb_c_g_aucFLOW_AFSM_FOOT_VALVE_MAX; } /* End of Switch: '/Switch2' */ /* MATLAB Function: '/get_tg_FLL_for_LVL' */ /* : c_g_assFLOW_AFSM_TEMP_TGT = g_assFLOW_AFSM_TEMP_TGT(LVL + 1 + 6); */ get_tg_FLL_for_LVL_j(rtu_LVL, rtu_setTempFR, &rtb_deg_c); /* MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT' incorporates: * MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } /* Gain: '/Gain6' incorporates: * MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT' * Sum: '/ 1' */ tmp_0 = (int16_t)(g_assFLOW_AFSM_TEMP_TGT[tmp - 1] - rtb_deg_c) * 13107; rtb_X = (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && ((((uint32_t)tmp_0 & 65535U) != 0U) || (tmp_0 > 0))) + (tmp_0 >> 17)); /* Switch: '/Switch3' incorporates: * Gain: '/Gain7' * Sum: '/Add1' */ /* : c_g_aucFLOW_AFSM_FOOT_PLUS = g_aucFLOW_AFSM_FOOT_PLUS(LVL + 1 + 6); */ if (rtb_X >= 0) { rtb_FRF_NEW = rty_Out1[6]; } else { /* MATLAB Function: '/g_aucFLOW_AFSM_FOOT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } /* Gain: '/Gain7' incorporates: * MATLAB Function: '/g_aucFLOW_AFSM_FOOT_PLUS' * Product: '/Product4' */ tmp_0 = g_aucFLOW_AFSM_FOOT_PLUS[tmp - 1] * rtb_X * 13107; rtb_FRF_NEW = (uint16_t)((int16_t)rty_Out1[6] - (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && (((uint32_t)tmp_0 & 65535U) != 0U)) + (tmp_0 >> 17))); } /* End of Switch: '/Switch3' */ /* MATLAB Function: '/g_aucFLOW_AF_FOOT_VALVE_MAX' */ g_aucFLOW_AFSM_FOOT_VALVE_MAX_f(rtu_LVL, &rtb_c_g_aucFLOW_AFSM_FOOT_VALVE_MAX); /* MATLAB Function: '/g_assFLOW_AFSM_AMB_TGT' incorporates: * MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_AFSM_VENT_PLUS = g_aucFLOW_AFSM_VENT_PLUS(LVL + 1); */ /* : c_g_assFLOW_AFSM_AMB_TGT = g_assFLOW_AFSM_AMB_TGT(LVL + 1); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } /* Sum: '/deg' incorporates: * MATLAB Function: '/g_assFLOW_AFSM_AMB_TGT' */ rtb_deg_c = (int16_t)(g_assFLOW_AFSM_AMB_TGT[tmp_0 - 1] - rtu_Amb_Fb); /* Gain: '/Gain2' */ tmp_0 = 13107 * rtb_deg_c; rtb_X = (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && ((((uint32_t)tmp_0 & 65535U) != 0U) || (tmp_0 > 0))) + (tmp_0 >> 17)); /* Switch: '/if (deg < 0)' incorporates: * Sum: '/ ' * Switch: '/Switch2' */ if (rtb_X >= 0) { rtb_Switch2_l_idx_0 = rty_Out1[0]; rtb_Switch2_l_idx_1 = rty_Out1[1]; } else { /* MATLAB Function: '/g_aucFLOW_AFSM_VENT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } /* Product: '/Умножили' incorporates: * Gain: '/Gain' * MATLAB Function: '/g_aucFLOW_AFSM_VENT_PLUS' */ rtb_deg_c = (int16_t)((int32_t)((g_aucFLOW_AFSM_VENT_PLUS[tmp_0 - 1] * 205U + 1024U) >> 11) * rtb_X); rtb_Switch2_l_idx_0 = (uint16_t)(rty_Out1[0] - rtb_deg_c); rtb_Switch2_l_idx_1 = (uint16_t)(rty_Out1[1] - rtb_deg_c); } /* End of Switch: '/if (deg < 0)' */ /* MATLAB Function: '/g_aucFLOW_AF_VENT_VALVE_MAX' incorporates: * MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_AFSM_VENT_VALVE_MAX = g_aucFLOW_AFSM_VENT_VALVE_MAX(LVL + 1); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } rtb_c_g_aucFLOW_AFSM_VENT_VALVE_MAX_g = g_aucFLOW_AFSM_VENT_VALVE_MAX[tmp_0 - 1]; /* End of MATLAB Function: '/g_aucFLOW_AF_VENT_VALVE_MAX' */ /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' */ if (rtb_Switch2_l_idx_0 > rtb_c_g_aucFLOW_AFSM_VENT_VALVE_MAX_g) { rtb_Switch2_l_idx_0 = rtb_c_g_aucFLOW_AFSM_VENT_VALVE_MAX_g; } if (rtb_Switch2_l_idx_1 > rtb_c_g_aucFLOW_AFSM_VENT_VALVE_MAX_g) { rtb_Switch2_l_idx_1 = rtb_c_g_aucFLOW_AFSM_VENT_VALVE_MAX_g; } /* End of Switch: '/Switch2' */ /* MATLAB Function: '/g_assFLOW_AF_AMB_TGT' */ /* : c_g_aucFLOW_AFSM_VENT_PLUS = g_aucFLOW_AFSM_VENT_PLUS(LVL + 1 + 6); */ g_assFLOW_AF_AMB_TGT_g(rtu_LVL, &rtb_deg_c); /* Gain: '/Gain2' incorporates: * Sum: '/deg' */ tmp_0 = (int16_t)(rtb_deg_c - rtu_Amb_Fb) * 13107; rtb_X = (int8_t)(((((uint32_t)tmp_0 & 65536U) != 0U) && ((((uint32_t)tmp_0 & 65535U) != 0U) || (tmp_0 > 0))) + (tmp_0 >> 17)); /* Switch: '/if (deg < 0)' incorporates: * DataTypeConversion: '/Data Type Conversion' * Sum: '/ ' * Switch: '/Switch2' */ if (rtb_X >= 0) { rtb_Switch2_j1_idx_0 = rty_Out1[0]; rtb_Switch2_j1_idx_1 = rty_Out1[1]; } else { /* MATLAB Function: '/g_aucFLOW_AF_VENT_PLUS' incorporates: * MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT_LEFT' */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } /* Product: '/Умножили' incorporates: * Gain: '/Gain' * MATLAB Function: '/g_aucFLOW_AF_VENT_PLUS' */ rtb_deg_c = (int16_t)((int32_t)((g_aucFLOW_AFSM_VENT_PLUS[tmp - 1] * 205U + 1024U) >> 11) * rtb_X); rtb_Switch2_j1_idx_0 = (uint16_t)((int16_t)rty_Out1[0] - rtb_deg_c); rtb_Switch2_j1_idx_1 = (uint16_t)((int16_t)rty_Out1[1] - rtb_deg_c); } /* End of Switch: '/if (deg < 0)' */ /* MATLAB Function: '/g_aucFLOW_AF_VENT_VALVE_MAX' incorporates: * MATLAB Function: '/g_assFLOW_AFSM_TEMP_TGT_LEFT' */ /* : c_g_aucFLOW_AFSM_VENT_VALVE_MAX = g_aucFLOW_AFSM_VENT_VALVE_MAX(LVL + 1 + 6); */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } rtb_c_g_aucFLOW_AFSM_VENT_VALVE_MAX_g = g_aucFLOW_AFSM_VENT_VALVE_MAX[tmp - 1]; /* End of MATLAB Function: '/g_aucFLOW_AF_VENT_VALVE_MAX' */ /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch2' */ rty_Out1[0] = rtb_Switch2_l_idx_0; /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' */ if (rtb_Switch2_j1_idx_0 > rtb_c_g_aucFLOW_AFSM_VENT_VALVE_MAX_g) { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[2] = rtb_c_g_aucFLOW_AFSM_VENT_VALVE_MAX_g; } else { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[2] = rtb_Switch2_j1_idx_0; } /* Assignment: '/Присваивание в [1-2]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch2' */ rty_Out1[1] = rtb_Switch2_l_idx_1; /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' */ if (rtb_Switch2_j1_idx_1 > rtb_c_g_aucFLOW_AFSM_VENT_VALVE_MAX_g) { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[3] = rtb_c_g_aucFLOW_AFSM_VENT_VALVE_MAX_g; } else { /* Assignment: '/Присваивание в [3-4]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[3] = rtb_Switch2_j1_idx_1; } /* Assignment: '/Присваивание в [5]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[4] = rtb_FLF_NEW; /* Switch: '/Switch2' incorporates: * RelationalOperator: '/LowerRelop1' */ if (rtb_FRF_NEW > rtb_c_g_aucFLOW_AFSM_FOOT_VALVE_MAX) { /* Assignment: '/Присваивание в [7]' incorporates: * SignalConversion generated from: '/Out1' */ rty_Out1[6] = rtb_c_g_aucFLOW_AFSM_FOOT_VALVE_MAX; } else { /* Assignment: '/Присваивание в [7]' incorporates: * SignalConversion generated from: '/Out1' * Switch: '/Switch' */ rty_Out1[6] = rtb_FRF_NEW; } /* End of Switch: '/Switch2' */ } double rt_roundd(double u_0) { double y; if (fabs(u_0) < 4.503599627370496E+15) { if (u_0 >= 0.5) { y = floor(u_0 + 0.5); } else if (u_0 > -0.5) { y = 0.0; } else { y = ceil(u_0 - 0.5); } } else { y = u_0; } return y; } /* * Output and update for atomic system: * '/Начальные положения заслонок left' * '/Начальные положения заслонок right' */ void left(uint8_t rtu_idx, uint16_t rty_vals[9]) { int32_t i; int32_t rtu_idx_0; uint16_t tmp[45]; /* : table = [ */ /* : g_ausFLOW_FR_VE2VALVE; */ /* : g_ausFLOW_FR_BIVALVE; */ /* : g_ausFLOW_FR_BI2VALVE; */ /* : g_ausFLOW_FR_AF2VALVE; */ /* : g_ausFLOW_FR_AF2VALVE_SUMMER */ /* : ]; */ /* : idx = idx / 10; */ /* : vals = table(idx, :); */ rtu_idx_0 = (int32_t)rt_roundd((double)rtu_idx / 10.0); for (i = 0; i < 9; i++) { tmp[5 * i] = g_ausFLOW_FR_VE2VALVE[i]; tmp[5 * i + 1] = g_ausFLOW_FR_BIVALVE[i]; tmp[5 * i + 2] = g_ausFLOW_FR_BI2VALVE[i]; tmp[5 * i + 3] = g_ausFLOW_FR_AF2VALVE[i]; tmp[5 * i + 4] = g_ausFLOW_FR_AF2VALVE_SUMMER[i]; rty_vals[i] = tmp[(5 * i + rtu_idx_0) - 1]; } } /* * Output and update for action system: * '/If Action Subsystem' * '/If Action Subsystem' * '/If Action Subsystem' */ void IfActionSubsystem(int8_t *rty_Out1, double *rtd_ErrorHomming_private, double *rtd_Start_timer_n, int8_t *rtd_stepSig_private) { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ *rtd_stepSig_private = 1; /* DataStoreWrite: '/Data Store Write1' incorporates: * Constant: '/Constant2' * DataStoreRead: '/Data Store Read1' * Sum: '/step inc' */ (*rtd_ErrorHomming_private)++; /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Constant3' */ *rtd_Start_timer_n = 0.0; /* SignalConversion generated from: '/Out1' incorporates: * Constant: '/Constant1' */ *rty_Out1 = 2; } /* * System initialize for atomic system: * '/MATLAB Function' * '/MATLAB Function' * '/MATLAB Function' */ void MATLABFunction_Init(DW_MATLABFunction *localDW) { localDW->t_start_not_empty = false; localDW->cond_prev = 0.0; } /* * Output and update for atomic system: * '/MATLAB Function' * '/MATLAB Function' * '/MATLAB Function' */ void MATLABFunction(double rtu_cond, uint32_t rtu_t_now, uint32_t *rty_dt, DW_MATLABFunction *localDW) { /* : dt = uint32(0); */ /* : if isempty(t_start) */ if (!localDW->t_start_not_empty) { /* : t_start = t_now; */ localDW->t_start = rtu_t_now; localDW->t_start_not_empty = true; /* : cond_prev = 0; */ } /* : if cond > 0.5 && cond_prev <= 0.5 */ if ((rtu_cond > 0.5) && (localDW->cond_prev <= 0.5)) { /* : t_start = t_now; */ localDW->t_start = rtu_t_now; } /* : if cond > 0.5 */ if (rtu_cond > 0.5) { uint32_t qY; /* : dt = uint32(t_now - t_start); */ /* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */ qY = rtu_t_now - /*MW:OvSatOk*/ localDW->t_start; /* MW:end MISRA2012:D4.1 CERT-C:INT30-C */ if (qY > rtu_t_now) { qY = 0U; } *rty_dt = qY; } else { /* : else */ /* : dt = uint32(0); */ *rty_dt = 0U; } /* : cond_prev = cond; */ localDW->cond_prev = rtu_cond; } /* * 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 atomic system: * '/AF for Bi Level' * '/AF for Bi Level' */ void AFforBiLevel(uint8_t rtu_blower_speed, uint16_t *rty_out) { int32_t tmp; /* : out = uint16(g_ausFLOW_FR_BI2BLR_AF(blower_speed + 1)); */ tmp = (int32_t)(rtu_blower_speed + 1U); if (rtu_blower_speed + 1U > 255U) { tmp = 255; } *rty_out = g_ausFLOW_FR_BI2BLR_AF[tmp - 1]; } /* * Output and update for atomic system: * '/AF for Def' * '/AF for Def' */ void AFforDef(uint8_t rtu_blower_speed, uint16_t *rty_out) { int32_t tmp; /* : out = uint16(g_ausFLOW_FR_DE2BLR_AF(blower_speed + 1)); */ tmp = (int32_t)(rtu_blower_speed + 1U); if (rtu_blower_speed + 1U > 255U) { tmp = 255; } *rty_out = g_ausFLOW_FR_DE2BLR_AF[tmp - 1]; } /* * Output and update for atomic system: * '/AF for Foor + Def' * '/AF for Foor + Def' */ void AFforFoorDef(uint8_t rtu_blower_speed, uint16_t *rty_out) { int32_t tmp; /* : out = uint16(g_ausFLOW_FR_FD2BLR_AF(blower_speed + 1)); */ tmp = (int32_t)(rtu_blower_speed + 1U); if (rtu_blower_speed + 1U > 255U) { tmp = 255; } *rty_out = g_ausFLOW_FR_FD2BLR_AF[tmp - 1]; } /* * Output and update for atomic system: * '/AF for Foot' * '/AF for Foot' */ void AFforFoot(uint8_t rtu_blower_speed, uint16_t *rty_out) { int32_t tmp; /* : out = uint16(g_ausFLOW_FR_FO2BLR_AF(blower_speed + 1)); */ tmp = (int32_t)(rtu_blower_speed + 1U); if (rtu_blower_speed + 1U > 255U) { tmp = 255; } *rty_out = g_ausFLOW_FR_FO2BLR_AF[tmp - 1]; } /* * Output and update for atomic system: * '/AF for Hi_Level' * '/AF for Hi_Level' */ void AFforHi_Level(uint8_t rtu_blower_speed, uint16_t *rty_out) { int32_t tmp; /* : out = uint16(g_ausFLOW_FR_HI2BLR_AF(blower_speed + 1)); */ tmp = (int32_t)(rtu_blower_speed + 1U); if (rtu_blower_speed + 1U > 255U) { tmp = 255; } *rty_out = g_ausFLOW_FR_HI2BLR_AF[tmp - 1]; } /* * Output and update for atomic system: * '/AF for Tri-Level' * '/AF for Tri-Level' */ void AFforTriLevel(uint8_t rtu_blower_speed, uint16_t *rty_out) { int32_t tmp; /* : out = uint16(g_ausFLOW_FR_TR2BLR_AF(blower_speed + 1)); */ tmp = (int32_t)(rtu_blower_speed + 1U); if (rtu_blower_speed + 1U > 255U) { tmp = 255; } *rty_out = g_ausFLOW_FR_TR2BLR_AF[tmp - 1]; } /* * Output and update for atomic system: * '/AF for Vent mode' * '/AF for Vent mode' */ void AFforVentmode(uint8_t rtu_blower_speed, uint16_t *rty_out) { int32_t tmp; /* : out = uint16(g_ausFLOW_FR_VE2BLR_AF(blower_speed + 1)); */ tmp = (int32_t)(rtu_blower_speed + 1U); if (rtu_blower_speed + 1U > 255U) { tmp = 255; } *rty_out = g_ausFLOW_FR_VE2BLR_AF[tmp - 1]; } /* * Output and update for atomic system: * '/AF for Bi Level R' * '/AF for Bi Level R' */ void AFforBiLevelR(uint8_t rtu_blower_speed, uint16_t *rty_out) { int32_t tmp; /* : out = uint16(g_ausFLOW_RE_BI2BLR_AF(blower_speed + 1)); */ tmp = (int32_t)(rtu_blower_speed + 1U); if (rtu_blower_speed + 1U > 255U) { tmp = 255; } *rty_out = g_ausFLOW_RE_BI2BLR_AF[tmp - 1]; } /* * Output and update for atomic system: * '/AF for Foot R' * '/AF for Foot R' */ void AFforFootR(uint8_t rtu_blower_speed, uint16_t *rty_out) { int32_t tmp; /* : out = uint16(g_ausFLOW_RE_FO2BLR_AF(blower_speed + 1)); */ tmp = (int32_t)(rtu_blower_speed + 1U); if (rtu_blower_speed + 1U > 255U) { tmp = 255; } *rty_out = g_ausFLOW_RE_FO2BLR_AF[tmp - 1]; } /* * Output and update for atomic system: * '/AF for Vent mode R' * '/AF for Vent mode R' */ void AFforVentmodeR(uint8_t rtu_blower_speed, uint16_t *rty_out) { int32_t tmp; /* : out = uint16(g_ausFLOW_RE_VE2BLR_AF(blower_speed + 1)); */ tmp = (int32_t)(rtu_blower_speed + 1U); if (rtu_blower_speed + 1U > 255U) { tmp = 255; } *rty_out = g_ausFLOW_RE_VE2BLR_AF[tmp - 1]; } /* * Output and update for atomic system: * '/Valves for Bi Level' * '/Valves for Bi Level' */ void ValvesforBiLevel(uint16_t rty_out[9]) { int32_t i; for (i = 0; i < 9; i++) { rty_out[i] = g_ausFLOW_FR_BIVALVE_MANUAL[i]; } /* : out = g_ausFLOW_FR_BIVALVE_MANUAL; */ } /* * Output and update for atomic system: * '/Valves for Def' * '/Valves for Def' */ void ValvesforDef(uint16_t rty_out[9]) { int32_t i; for (i = 0; i < 9; i++) { rty_out[i] = g_ausFLOW_FR_DE2VALVE[i]; } /* : out = g_ausFLOW_FR_DE2VALVE; */ } /* * Output and update for atomic system: * '/Valves for Foot + Def' * '/Valves for Foot + Def' */ void ValvesforFootDef(uint16_t rty_out[9]) { int32_t i; for (i = 0; i < 9; i++) { rty_out[i] = g_ausFLOW_FR_FD2VALVE[i]; } /* : out = g_ausFLOW_FR_FD2VALVE; */ } /* * Output and update for atomic system: * '/Valves for Hi_Level' * '/Valves for Hi_Level' */ void ValvesforHi_Level(uint16_t rty_out[9]) { int32_t i; for (i = 0; i < 9; i++) { rty_out[i] = g_ausFLOW_FR_HI2VALVE[i]; } /* : out = g_ausFLOW_FR_HI2VALVE; */ } /* * Output and update for atomic system: * '/Valves for Tri-Level' * '/Valves for Tri-Level' */ void ValvesforTriLevel(uint16_t rty_out[9]) { int32_t i; for (i = 0; i < 9; i++) { rty_out[i] = g_ausFLOW_FR_TR2VALVE[i]; } /* : out = g_ausFLOW_FR_TR2VALVE; */ } /* * Output and update for atomic system: * '/AF for Bi Level' * '/AF for Bi Level' */ void AFforBiLevel_m(uint16_t rty_out[6]) { int32_t i; for (i = 0; i < 6; i++) { rty_out[i] = g_ausFLOW_RE_BI2VALVE_MANUAL[i]; } /* : out = g_ausFLOW_RE_BI2VALVE_MANUAL; */ } /* * Output and update for atomic system: * '/valves for Vent mode' * '/valves for Vent mode' */ void valvesforVentmode(uint16_t rty_out[6]) { int32_t i; for (i = 0; i < 6; i++) { rty_out[i] = g_ausFLOW_RE_VENT_MANUAL[i]; } /* : out = g_ausFLOW_RE_VENT_MANUAL; */ } /* * Output and update for atomic system: * '/g_assSTART_ENTER_INCAR' * '/g_assSTART_ENTER_INCAR' */ void g_assSTART_ENTER_INCAR_j(uint8_t rtu_LVL, int16_t *rty_out) { int32_t tmp; /* : out = int16(g_assSTART_ENTER_INCAR(LVL+1)); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_assSTART_ENTER_INCAR[tmp - 1]; } /* * Output and update for atomic system: * '/g_assSTART_ENTER_COOLANT ' * '/g_assSTART_ENTER_COOLANT ' * '/g_assSTART_ENTER_COOLANT ' */ void g_assSTART_ENTER_COOLANT_p(uint8_t rtu_LVL, int16_t *rty_out) { int32_t q0; uint32_t qY; /* : out = int16(g_assSTART_ENTER_COOLANT(LVL + 1 - 3)); */ q0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { q0 = 255; } /* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */ qY = (uint32_t)q0 - 3U; /* MW:end MISRA2012:D4.1 CERT-C:INT30-C */ if ((uint32_t)q0 - 3U > (uint32_t)q0) { qY = 0U; } *rty_out = g_assSTART_ENTER_COOLANT[(int32_t)qY - 1]; } /* * Output and update for action system: * '/Level 4' * '/Level 5' */ void Level4(int8_t *rty_step1, const int16_t *rtd_ECT, const uint8_t *rtd_LEVEL, const double *rtd_MODE_DRIVER) { int16_t rtb_out_p2; /* MATLAB Function: '/g_assSTART_ENTER_COOLANT ' incorporates: * DataStoreRead: '/Data Store Read3' */ g_assSTART_ENTER_COOLANT_p(*rtd_LEVEL, &rtb_out_p2); /* Switch: '/Switch' incorporates: * Constant: '/AUTO' * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * Logic: '/AND' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator2' */ if ((*rtd_ECT < rtb_out_p2) && (*rtd_MODE_DRIVER == 1.0)) { *rty_step1 = 0; } else { *rty_step1 = -1; } /* End of Switch: '/Switch' */ } /* * Output and update for action system: * '/Level 0' * '/Level 1' * '/Level 2' * '/Level 0' * '/Level 1' */ void Level0(int8_t *rty_step) { /* SignalConversion generated from: '/step' incorporates: * Constant: '/Constant' */ *rty_step = 1; } /* * Output and update for atomic system: * '/incar filter down' * '/incar filter down' * '/incar filter down' * '/incar filter down' * '/incar filter down' * '/incar filter down' * '/incar filter down' * '/incar filter down' * '/incar filter down' * '/incar filter down' * ... */ void incarfilterdown(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_INCAR_FLT_DN(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_INCAR_FLT_DN[tmp - 1]; } /* * Output and update for atomic system: * '/incar filter up' * '/incar filter up' * '/incar filter up' * '/incar filter up' * '/incar filter up' * '/incar filter up' * '/incar filter up' * '/incar filter up' * '/incar filter up' * '/incar filter up' * ... */ void incarfilterup(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_INCAR_FLT_UP(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_INCAR_FLT_UP[tmp - 1]; } /* * Output and update for atomic system: * '/g_assSTART_COOLANT_STEP0_TO_1 ' * '/g_assSTART_COOLANT_STEP0_TO_1 ' */ void g_assSTART_COOLANT_STEP0_TO_1_h(uint8_t rtu_LVL, int16_t *rty_out) { int32_t q0; uint32_t qY; /* : out = int16(g_assSTART_COOLANT_STEP0_TO_1(LVL + 1 - 2)); */ q0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { q0 = 255; } /* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */ qY = (uint32_t)q0 - 2U; /* MW:end MISRA2012:D4.1 CERT-C:INT30-C */ if ((uint32_t)q0 - 2U > (uint32_t)q0) { qY = 0U; } *rty_out = g_assSTART_COOLANT_STEP0_TO_1[(int32_t)qY - 1]; } /* * Output and update for atomic system: * '/3 way valve status' * '/3 way valve status' * '/3 way valve status' * '/3 way valve status' * '/3 way valve status' */ void uwayvalvestatus(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_3WAY_OPEN(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_3WAY_OPEN[tmp - 1]; } /* * Output and update for atomic system: * '/Dtg_FrontLower_X' * '/Dtg_FrontLower_X' * '/Dtg_FrontLower_X' */ void Dtg_FrontLower_X(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_DUCT_TGT_STEP2_FX_L(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_DUCT_TGT_STEP2_FX_L[tmp - 1]; } /* * Output and update for atomic system: * '/Dtg_FrontUpper_X' * '/Dtg_FrontUpper_X' * '/Dtg_FrontUpper_X' */ void Dtg_FrontUpper_X(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_DUCT_TGT_STEP2_FX_U(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_DUCT_TGT_STEP2_FX_U[tmp - 1]; } /* * Output and update for atomic system: * '/Incar temp goto from step 1 to step 2 ' * '/Incar temp goto from step 1 to step 2 ' * '/Incar temp goto from step 1 to step 2 ' * '/Incar temp goto from step 1 to step 2 ' * '/Incar temp goto from step 1 to step 2 ' */ void Incartempgotofromstep1tostep2(uint8_t rtu_LVL, int16_t *rty_out) { int32_t tmp; /* : out = int16(g_assSTART_INCAR_STEP1_TO_2(LVL + 1)); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_assSTART_INCAR_STEP1_TO_2[tmp - 1]; } /* * Output and update for atomic system: * '/blower FR' * '/blower FR' */ void blowerFR(uint8_t rtu_LVL, uint16_t *rty_out) { int32_t tmp; /* : out = g_ausSTART_BLR_AF_STEP12_F(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_ausSTART_BLR_AF_STEP12_F[tmp - 1]; } /* * Output and update for atomic system: * '/mode FR step 1' * '/mode FR step 1' * '/mode FR step 1' * '/mode FR step 1' * '/mode FR step 1' */ void modeFRstep1(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_VALVE_IDX_STEP1(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_VALVE_IDX_STEP1[tmp - 1]; } /* * Output and update for atomic system: * '/window heating' * '/window heating' * '/window heating' * '/window heating' * '/window heating' */ void windowheating(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_ELEC_WINDOW(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_ELEC_WINDOW[tmp - 1]; } /* * Output and update for atomic system: * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' */ void Timegotofromstep1tostep2(uint8_t rtu_LVL, int16_t *rty_out) { int32_t tmp; uint16_t tmp_0; /* : out = int16(g_ausSTART_TIME_STEP1_TO_2(LVL + 1)); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = g_ausSTART_TIME_STEP1_TO_2[tmp - 1]; if (tmp_0 > 32767) { tmp_0 = 32767U; } *rty_out = (int16_t)tmp_0; } /* * Output and update for atomic system: * '/ECT min max' * '/ECT min max' * '/ECT min max' */ void ECTminmax(uint8_t rtu_LVL, int16_t rty_out[2]) { int32_t q0; uint32_t qY; /* : min = int16(g_assSTART_COOLANT_STEP0_TO_1(LVL + 1 - 2)); */ /* : max = int16(g_assSTART_COOLANT_TO_STEP2(1)); */ /* : out = [min, max]; */ q0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { q0 = 255; } /* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */ qY = (uint32_t)q0 - 2U; /* MW:end MISRA2012:D4.1 CERT-C:INT30-C */ if ((uint32_t)q0 - 2U > (uint32_t)q0) { qY = 0U; } rty_out[0] = g_assSTART_COOLANT_STEP0_TO_1[(int32_t)qY - 1]; rty_out[1] = g_assSTART_COOLANT_TO_STEP2[0]; } /* * Output and update for atomic system: * '/blower min max' * '/blower min max' * '/blower min max' */ void blowerminmax(uint8_t rtu_LVL, uint16_t rty_out[2]) { int32_t tmp; /* : min = 20; */ /* : max = g_ausSTART_BLR_AF_STEP12_F(LVL + 1); */ /* : out = [min, max]; */ rty_out[0] = 20U; tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } rty_out[1] = g_ausSTART_BLR_AF_STEP12_F[tmp - 1]; } /* * Output and update for action system: * '/Level 4' * '/Level 5' */ void Level4_c(int8_t *rty_step, uint16_t *rtd_Blower_FL, uint16_t *rtd_Blower_FR, uint8_t *rtd_Dtg_FLL, uint8_t *rtd_Dtg_FLR, uint8_t *rtd_Dtg_FUL, uint8_t *rtd_Dtg_FUR, const int16_t *rtd_ECT, uint8_t *rtd_El_window_heating, const int16_t *rtd_Incar_FL, uint8_t *rtd_Incar_filter_down_value, uint8_t *rtd_Incar_filter_up_value, const uint8_t *rtd_LEVEL, uint8_t *rtd_Mode_FL, uint8_t *rtd_Mode_FR, double *rtd_Recirculation, uint8_t *rtd_Valve_3_way, const int8_t *rtd_step_start_controle_front, const uint32_t *rtd_t_now, DW_Level4_n *localDW) { int32_t tmp; int16_t rtb_out_jl[2]; int16_t rtb_out_ap; int16_t rtb_out_nv; uint16_t rtb_out_nm[2]; uint8_t rtb_out_fa; bool rtb_Equal_b; bool rtb_RelationalOperator1_mub; /* DataStoreWrite: '/Data Store Write8' incorporates: * DataStoreRead: '/Data Store Read10' * MATLAB Function: '/3 way valve status' */ uwayvalvestatus(*rtd_LEVEL, rtd_Valve_3_way); /* DataStoreWrite: '/Data Store Write' incorporates: * DataStoreRead: '/Data Store Read1' * MATLAB Function: '/incar filter up' */ incarfilterup(*rtd_LEVEL, rtd_Incar_filter_up_value); /* DataStoreWrite: '/Data Store Write1' incorporates: * DataStoreRead: '/Data Store Read2' * MATLAB Function: '/incar filter down' */ incarfilterdown(*rtd_LEVEL, rtd_Incar_filter_down_value); /* MATLAB Function: '/mode FR step 1' incorporates: * DataStoreRead: '/Data Store Read5' */ modeFRstep1(*rtd_LEVEL, &rtb_out_fa); /* DataStoreWrite: '/Data Store Write2' */ *rtd_Mode_FR = rtb_out_fa; /* DataStoreWrite: '/Data Store Write3' */ *rtd_Mode_FL = rtb_out_fa; /* MATLAB Function: '/window heating' incorporates: * DataStoreRead: '/Data Store Read6' */ windowheating(*rtd_LEVEL, &rtb_out_fa); /* DataStoreWrite: '/Data Store Write4' */ *rtd_El_window_heating = rtb_out_fa; /* MATLAB Function: '/blower min max' incorporates: * DataStoreRead: '/Data Store Read7' */ blowerminmax(*rtd_LEVEL, rtb_out_nm); /* MATLAB Function: '/ECT min max' incorporates: * DataStoreRead: '/Data Store Read7' */ ECTminmax(*rtd_LEVEL, rtb_out_jl); /* Lookup_n-D: '/blower для текущего ECT' incorporates: * DataStoreRead: '/engine coolant temp' */ rtb_out_nv = look1_is16lu64n32tu16Ds32Is16_binlcs(*rtd_ECT, rtb_out_jl, rtb_out_nm, 1U); /* DataTypeConversion: '/Data Type Conversion1' incorporates: * DataStoreWrite: '/Data Store Write5' */ *rtd_Blower_FR = (uint16_t)rtb_out_nv; /* DataStoreWrite: '/Data Store Write6' incorporates: * DataStoreWrite: '/Data Store Write5' */ *rtd_Blower_FL = *rtd_Blower_FR; /* MATLAB Function: '/Dtg_FrontUpper_X' incorporates: * DataStoreRead: '/Data Store Read8' */ /* : out = g_aucSTART_DUCT_TGT_STEP2_FX_U(LVL + 1); */ tmp = (int32_t)(*rtd_LEVEL + 1U); if (*rtd_LEVEL + 1U > 255U) { tmp = 255; } rtb_out_fa = g_aucSTART_DUCT_TGT_STEP2_FX_U[tmp - 1]; /* DataStoreWrite: '/Data Store Write10' */ *rtd_Dtg_FUR = rtb_out_fa; /* DataStoreWrite: '/Data Store Write11' */ *rtd_Dtg_FUL = rtb_out_fa; /* MATLAB Function: '/Dtg_FrontLower_X' incorporates: * DataStoreRead: '/Data Store Read8' * DataStoreRead: '/Data Store Read9' * MATLAB Function: '/Dtg_FrontUpper_X' */ /* : out = g_aucSTART_DUCT_TGT_STEP2_FX_L(LVL + 1); */ tmp = (int32_t)(*rtd_LEVEL + 1U); if (*rtd_LEVEL + 1U > 255U) { tmp = 255; } rtb_out_fa = g_aucSTART_DUCT_TGT_STEP2_FX_L[tmp - 1]; /* End of MATLAB Function: '/Dtg_FrontLower_X' */ /* DataStoreWrite: '/Data Store Write12' */ *rtd_Dtg_FLR = rtb_out_fa; /* DataStoreWrite: '/Data Store Write13' */ *rtd_Dtg_FLL = rtb_out_fa; /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ *rtd_Recirculation = 1.0; /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_Equal_b = (*rtd_step_start_controle_front == 1); /* MATLAB Function: '/Incar temp goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read3' */ Incartempgotofromstep1tostep2(*rtd_LEVEL, &rtb_out_ap); /* MATLAB Function: '/Time goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read4' */ Timegotofromstep1tostep2(*rtd_LEVEL, &rtb_out_nv); /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreRead: '/Data Store Read4' * Gain: '/из сек в мс' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_RelationalOperator1_mub = (*rtd_t_now - localDW->t_start_delay_private_DSTATE > (uint32_t)(1000 * rtb_out_nv)); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Equal_b && (!localDW->Cond_prev_private_DSTATE)) { localDW->t_start_delay_private_DSTATE = *rtd_t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * Constant: '/go to next step' * Constant: '/stay at step 1' * DataStoreRead: '/incar temp' * Logic: '/Logical Operator' * RelationalOperator: '/Relational Operator' */ if ((*rtd_Incar_FL > rtb_out_ap) || rtb_RelationalOperator1_mub) { *rty_step = 2; } else { *rty_step = 1; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Cond_prev_private ' */ localDW->Cond_prev_private_DSTATE = rtb_Equal_b; } /* * Output and update for atomic system: * '/3 way valve status' * '/3 way valve status' * '/3 way valve status' * '/3 way valve status' * '/3 way valve status' */ void uwayvalvestatus_a(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_aucSTART_3WAY_OPEN(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_aucSTART_3WAY_OPEN[tmp_0 - 1]; } /* * Output and update for atomic system: * '/time for step' * '/time for step' * '/time for step' * '/time for step' * '/time for step' */ void timeforstep(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_aucSTART_DUCT_TGT_STEP2_FX_L(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_aucSTART_DUCT_TGT_STEP2_FX_L[tmp_0 - 1]; } /* * Output and update for atomic system: * '/time for step' * '/time for step' * '/time for step' * '/time for step' * '/time for step' */ void timeforstep_j(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_aucSTART_DUCT_TGT_STEP2_FX_U(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_aucSTART_DUCT_TGT_STEP2_FX_U[tmp_0 - 1]; } /* * Output and update for atomic system: * '/Time goto from step 2 to step 3 ' * '/Time goto from step 2 to step 3 ' * '/Time goto from step 2 to step 3 ' * '/Time goto from step 2 to step 3 ' * '/Time goto from step 2 to step 3 ' */ void Timegotofromstep2tostep3(uint8_t rtu_LVL, int16_t *rty_out) { int32_t tmp; uint16_t tmp_0; /* : out = int16(g_ausSTART_TIME_STEP2_TO_3(LVL + 1)); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = g_ausSTART_TIME_STEP2_TO_3[tmp - 1]; if (tmp_0 > 32767) { tmp_0 = 32767U; } *rty_out = (int16_t)tmp_0; } /* * Output and update for atomic system: * '/blower step' * '/blower step' * '/blower step' * '/blower step' * '/blower step' */ void blowerstep(uint8_t rtu_LVL, uint16_t *rty_out) { int32_t tmp; /* : out = g_ausSTART_BLR_SPD_STEP2_F(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_ausSTART_BLR_SPD_STEP2_F[tmp - 1]; } /* * Output and update for atomic system: * '/blower time for step' * '/blower time for step' * '/blower time for step' * '/blower time for step' * '/blower time for step' */ void blowertimeforstep(uint8_t rtu_LVL, uint16_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_ausSTART_BLR_SPD_STEP2_F(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_ausSTART_BLR_SPD_STEP2_F[tmp_0 - 1]; } /* * Output and update for atomic system: * '/step' * '/step' * '/step' * '/step' * '/step' */ void step_j(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_VALVE_CHANGE_SPD_F(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_VALVE_CHANGE_SPD_F[tmp - 1]; } /* * Output and update for atomic system: * '/time for step' * '/time for step' * '/time for step' * '/time for step' * '/time for step' */ void timeforstep_g(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_aucSTART_VALVE_CHANGE_SPD_F(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_aucSTART_VALVE_CHANGE_SPD_F[tmp_0 - 1]; } /* * Output and update for atomic system: * '/window heating' * '/window heating' * '/window heating' * '/window heating' */ void windowheating_k(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_aucSTART_ELEC_WINDOW(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_aucSTART_ELEC_WINDOW[tmp_0 - 1]; } /* * Output and update for atomic system: * '/autodemist (autodefog)' * '/autodemist (autodefog)' * '/autodemist (autodefog)' */ void autodemistautodefog(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_AUTODEMIST2_STEP2(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_AUTODEMIST2_STEP2[tmp - 1]; } /* * Output and update for action system: * '/Level 3' * '/Level 4' */ void Level3(int8_t *rty_step, uint8_t *rtd_Autodefog, uint16_t *rtd_Blower_FL, uint16_t *rtd_Blower_FR, const uint16_t *rtd_Blower_logic_FL, uint8_t *rtd_Dtg_FLL, uint8_t *rtd_Dtg_FLR, uint8_t *rtd_Dtg_FUL, uint8_t *rtd_Dtg_FUR, const uint8_t *rtd_Dtg_logic_FLL, const uint8_t *rtd_Dtg_logic_FUL, uint8_t *rtd_El_window_heating, const bool *rtd_HI_logic_on, uint8_t *rtd_Incar_filter_down_value, uint8_t *rtd_Incar_filter_up_value, const uint8_t *rtd_LEVEL, uint8_t *rtd_Mode_FL, uint8_t *rtd_Mode_FR, const uint8_t *rtd_Mode_logic_FL, double *rtd_Recirculation, uint8_t *rtd_Valve_3_way, const int8_t *rtd_step_start_controle_front, const uint32_t *rtd_t_now, DW_Level3 *localDW) { int32_t tmp; int16_t rtb_out_cw; uint16_t rtb_out_as; uint16_t rtb_out_gqg; uint8_t rtb_out_iew; uint8_t rtb_out_ir5; uint8_t rtb_out_pr; bool rtb_Cond_prev_private_gh; bool rtb_RelationalOperator1_bkl; /* DataStoreWrite: '/Data Store Write8' incorporates: * DataStoreRead: '/Data Store Read10' * MATLAB Function: '/3 way valve status' */ uwayvalvestatus_a(*rtd_LEVEL, rtd_Valve_3_way); /* MATLAB Function: '/step' incorporates: * DataStoreRead: '/Data Store Read9' */ Dtg_FrontLower_X(*rtd_LEVEL, &rtb_out_iew); /* MATLAB Function: '/time for step' incorporates: * DataStoreRead: '/Data Store Read9' */ timeforstep(*rtd_LEVEL, &rtb_out_ir5); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write12' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if ((uint8_t)(*rtd_Dtg_FLL - *rtd_Dtg_logic_FLL) <= 0.01) { *rtd_Dtg_FLR = *rtd_Dtg_logic_FLL; } else { if (*rtd_Dtg_FLL <= *rtd_Dtg_logic_FLL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ tmp = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ tmp = -1; } *rtd_Dtg_FLR = (uint8_t)((double)rtb_out_iew / (double)rtb_out_ir5 / 1000.0 * (double)(*rtd_t_now - localDW->UnitDelay_DSTATE) * (double)tmp + (double)* rtd_Dtg_FLL); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write13' incorporates: * DataStoreWrite: '/Data Store Write12' */ *rtd_Dtg_FLL = *rtd_Dtg_FLR; /* MATLAB Function: '/step' incorporates: * DataStoreRead: '/Data Store Read8' */ Dtg_FrontUpper_X(*rtd_LEVEL, &rtb_out_iew); /* MATLAB Function: '/time for step' incorporates: * DataStoreRead: '/Data Store Read8' */ timeforstep_j(*rtd_LEVEL, &rtb_out_ir5); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write10' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if ((uint8_t)(*rtd_Dtg_FUL - *rtd_Dtg_logic_FUL) <= 0.01) { *rtd_Dtg_FUR = *rtd_Dtg_logic_FUL; } else { if (*rtd_Dtg_FUL <= *rtd_Dtg_logic_FUL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ tmp = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ tmp = -1; } *rtd_Dtg_FUR = (uint8_t)((double)rtb_out_iew / (double)rtb_out_ir5 / 1000.0 * (double)(*rtd_t_now - localDW->UnitDelay_DSTATE_i) * (double)tmp + (double)* rtd_Dtg_FUL); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write11' incorporates: * DataStoreWrite: '/Data Store Write10' */ *rtd_Dtg_FUL = *rtd_Dtg_FUR; /* DataStoreWrite: '/Data Store Write' incorporates: * DataStoreRead: '/Data Store Read1' * MATLAB Function: '/incar filter up' */ incarfilterup(*rtd_LEVEL, rtd_Incar_filter_up_value); /* DataStoreWrite: '/Data Store Write1' incorporates: * DataStoreRead: '/Data Store Read2' * MATLAB Function: '/incar filter down' */ incarfilterdown(*rtd_LEVEL, rtd_Incar_filter_down_value); /* DataStoreWrite: '/Data Store Write14' incorporates: * DataStoreRead: '/Data Store Read3' * MATLAB Function: '/autodemist (autodefog)' */ autodemistautodefog(*rtd_LEVEL, rtd_Autodefog); /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtb_out_iew = (uint8_t)(*rtd_Mode_FL - *rtd_Mode_logic_FL); /* MATLAB Function: '/step' incorporates: * DataStoreRead: '/Data Store Read5' */ step_j(*rtd_LEVEL, &rtb_out_ir5); /* MATLAB Function: '/time for step' incorporates: * DataStoreRead: '/Data Store Read5' */ timeforstep_g(*rtd_LEVEL, &rtb_out_pr); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write2' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if (rtb_out_iew <= 0.01) { *rtd_Mode_FR = *rtd_Mode_logic_FL; } else { if (*rtd_Mode_FL <= *rtd_Mode_logic_FL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ tmp = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ tmp = -1; } *rtd_Mode_FR = (uint8_t)((double)rtb_out_ir5 / (double)rtb_out_pr / 1000.0 * (double)(*rtd_t_now - localDW->UnitDelay_DSTATE_j) * (double)tmp + (double)* rtd_Mode_FL); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write3' incorporates: * DataStoreWrite: '/Data Store Write2' */ *rtd_Mode_FL = *rtd_Mode_FR; /* MATLAB Function: '/window heating' incorporates: * DataStoreRead: '/Data Store Read6' */ windowheating_k(*rtd_LEVEL, &rtb_out_iew); /* DataStoreWrite: '/Data Store Write4' */ *rtd_El_window_heating = rtb_out_iew; /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtb_out_as = (uint16_t)(*rtd_Blower_FL - *rtd_Blower_logic_FL); /* RelationalOperator: '/Relational Operator' incorporates: * Constant: '/epsilon' */ rtb_Cond_prev_private_gh = (rtb_out_as <= 0.01); /* MATLAB Function: '/blower step' incorporates: * DataStoreRead: '/Data Store Read7' */ blowerstep(*rtd_LEVEL, &rtb_out_gqg); /* MATLAB Function: '/blower time for step' incorporates: * DataStoreRead: '/Data Store Read7' */ blowertimeforstep(*rtd_LEVEL, &rtb_out_as); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write5' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if (rtb_Cond_prev_private_gh) { *rtd_Blower_FR = *rtd_Blower_logic_FL; } else { if (*rtd_Blower_FL <= *rtd_Blower_logic_FL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ tmp = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ tmp = -1; } *rtd_Blower_FR = (uint16_t)((double)rtb_out_gqg / (double)rtb_out_as / 1000.0 * (double)(*rtd_t_now - localDW->UnitDelay_DSTATE_a) * (double)tmp + (double)*rtd_Blower_FL); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write6' incorporates: * DataStoreWrite: '/Data Store Write5' */ *rtd_Blower_FL = *rtd_Blower_FR; /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ *rtd_Recirculation = 1.0; /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_Cond_prev_private_gh = (*rtd_step_start_controle_front == 2); /* MATLAB Function: '/Time goto from step 2 to step 3 ' incorporates: * DataStoreRead: '/Data Store Read4' */ Timegotofromstep2tostep3(*rtd_LEVEL, &rtb_out_cw); /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreRead: '/Data Store Read4' * Gain: '/из сек в мс' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_RelationalOperator1_bkl = (*rtd_t_now - localDW->t_start_delay_private_DSTATE > (uint32_t)(1000 * rtb_out_cw)); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Cond_prev_private_gh && (!localDW->Cond_prev_private_DSTATE)) { localDW->t_start_delay_private_DSTATE = *rtd_t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * Constant: '/go to next step' * Constant: '/stay at step' * DataStoreRead: '/Data Store Read' * Logic: '/Logical Operator' */ if (rtb_RelationalOperator1_bkl || (*rtd_HI_logic_on)) { *rty_step = 3; } else { *rty_step = 2; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ localDW->UnitDelay_DSTATE = *rtd_t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ localDW->UnitDelay_DSTATE_i = *rtd_t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ localDW->UnitDelay_DSTATE_j = *rtd_t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ localDW->UnitDelay_DSTATE_a = *rtd_t_now; /* Update for UnitDelay: '/Cond_prev_private ' */ localDW->Cond_prev_private_DSTATE = rtb_Cond_prev_private_gh; } /* * Output and update for action system: * '/Step 3 F' * '/Step 3 R' */ void Step3F(int8_t *rty_step, int8_t *rtd_start_control_finished_front) { /* DataStoreWrite: '/Data Store Write10' incorporates: * Constant: '/True' */ *rtd_start_control_finished_front = 1; /* SignalConversion generated from: '/step' incorporates: * Constant: '/Constant1' */ *rty_step = 3; } /* * Output and update for atomic system: * '/g_ausSTART_ENTER_SETTEMP' * '/g_ausSTART_ENTER_SETTEMP' * '/g_ausSTART_ENTER_SETTEMP' */ void g_ausSTART_ENTER_SETTEMP_b(uint8_t rtu_LVL, int16_t *rty_out) { int32_t tmp; int32_t tmp_0; uint16_t tmp_1; /* : out = int16(g_ausSTART_ENTER_SETTEMP(LVL+1+6)); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } tmp_1 = g_ausSTART_ENTER_SETTEMP[tmp_0 - 1]; if (tmp_1 > 32767) { tmp_1 = 32767U; } *rty_out = (int16_t)tmp_1; } /* * Output and update for atomic system: * '/g_assSTART_ENTER_INCAR' * '/g_assSTART_ENTER_INCAR' * '/g_assSTART_ENTER_INCAR' * '/g_assSTART_ENTER_INCAR' * '/g_assSTART_ENTER_INCAR' */ void g_assSTART_ENTER_INCAR_p(uint8_t rtu_LVL, int16_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = int16(g_assSTART_ENTER_INCAR(LVL+1+6)); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_assSTART_ENTER_INCAR[tmp_0 - 1]; } /* * Output and update for atomic system: * '/g_assSTART_ENTER_COOLANT ' * '/g_assSTART_ENTER_COOLANT ' * '/g_assSTART_ENTER_COOLANT ' */ void g_assSTART_ENTER_COOLANT_e(uint8_t rtu_LVL, int16_t *rty_out) { int32_t tmp; /* : out = int16(g_assSTART_ENTER_COOLANT(LVL + 1)); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_assSTART_ENTER_COOLANT[tmp - 1]; } /* * Output and update for action system: * '/Level 4' * '/Level 5' */ void Level4_e(int8_t *rty_step1, const int16_t *rtd_ECT, const int16_t *rtd_Incar_RR, const uint8_t *rtd_LEVEL, const double *rtd_MODE_RR_passenger) { int16_t rtb_out_ef; int16_t rtb_out_ntg; /* MATLAB Function: '/g_assSTART_ENTER_INCAR' incorporates: * DataStoreRead: '/Data Store Read4' */ g_assSTART_ENTER_INCAR_p(*rtd_LEVEL, &rtb_out_ntg); /* MATLAB Function: '/g_assSTART_ENTER_COOLANT ' incorporates: * DataStoreRead: '/Data Store Read3' */ g_assSTART_ENTER_COOLANT_e(*rtd_LEVEL, &rtb_out_ef); /* Switch: '/Switch' incorporates: * Constant: '/AUTO' * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * Logic: '/AND' * Logic: '/AND1' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' */ if (((*rtd_Incar_RR < rtb_out_ntg) || (*rtd_ECT < rtb_out_ef)) && (*rtd_MODE_RR_passenger == 1.0)) { *rty_step1 = 0; } else { *rty_step1 = -1; } /* End of Switch: '/Switch' */ } /* * Output and update for atomic system: * '/incar filter down' * '/incar filter down' * '/incar filter down' * '/incar filter down' */ void incarfilterdown_c(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_aucSTART_INCAR_FLT_DN(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_aucSTART_INCAR_FLT_DN[tmp_0 - 1]; } /* * Output and update for atomic system: * '/incar filter up' * '/incar filter up' * '/incar filter up' * '/incar filter up' */ void incarfilterup_i(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_aucSTART_INCAR_FLT_UP(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_aucSTART_INCAR_FLT_UP[tmp_0 - 1]; } /* * Output and update for atomic system: * '/g_assSTART_COOLANT_STEP0_TO_1 ' * '/g_assSTART_COOLANT_STEP0_TO_1 ' * '/g_assSTART_COOLANT_STEP0_TO_1 ' */ void g_assSTART_COOLANT_STEP0_TO_1_e(uint8_t rtu_LVL, int16_t *rty_out) { int32_t tmp; /* : out = int16(g_assSTART_COOLANT_STEP0_TO_1(LVL + 3)); */ tmp = (int32_t)(rtu_LVL + 3U); if (rtu_LVL + 3U > 255U) { tmp = 255; } *rty_out = g_assSTART_COOLANT_STEP0_TO_1[tmp - 1]; } /* * Output and update for action system: * '/Level 4' * '/Level 5' */ void Level4_m(int8_t *rty_step1, uint16_t *rtd_Blower_RL, uint16_t *rtd_Blower_RR, uint8_t *rtd_Dtg_RL, uint8_t *rtd_Dtg_RR, const int16_t *rtd_ECT, uint8_t *rtd_Incar_filter_down_value, uint8_t *rtd_Incar_filter_up_value, const uint8_t *rtd_LEVEL, uint8_t *rtd_Mode_RL, uint8_t *rtd_Mode_RR, uint8_t *rtd_Valve_2_way, uint8_t *rtd_Valve_3_way) { int16_t rtb_out_ls; /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant2' */ *rtd_Blower_RR = 10U; /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ *rtd_Blower_RL = 10U; /* DataStoreWrite: '/Data Store Write10' incorporates: * Constant: '/Constant4' */ *rtd_Dtg_RR = 80U; /* DataStoreWrite: '/Data Store Write11' incorporates: * Constant: '/Constant5' */ *rtd_Dtg_RL = 80U; /* DataStoreWrite: '/Data Store Write' incorporates: * DataStoreRead: '/Data Store Read1' * MATLAB Function: '/incar filter up' */ incarfilterup_i(*rtd_LEVEL, rtd_Incar_filter_up_value); /* DataStoreWrite: '/Data Store Write1' incorporates: * DataStoreRead: '/Data Store Read2' * MATLAB Function: '/incar filter down' */ incarfilterdown_c(*rtd_LEVEL, rtd_Incar_filter_down_value); /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Mode - foot' */ *rtd_Mode_RR = 60U; /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Mode - foot' */ *rtd_Mode_RL = 60U; /* DataStoreWrite: '/Data Store Write8' incorporates: * Constant: '/Valve open' */ *rtd_Valve_3_way = 1U; /* DataStoreWrite: '/Data Store Write9' incorporates: * Constant: '/Valve open' */ *rtd_Valve_2_way = 1U; /* MATLAB Function: '/g_assSTART_COOLANT_STEP0_TO_1 ' incorporates: * DataStoreRead: '/Data Store Read3' */ g_assSTART_COOLANT_STEP0_TO_1_e(*rtd_LEVEL, &rtb_out_ls); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Engine coolant temp' * RelationalOperator: '/Relational Operator' */ *rty_step1 = (int8_t)(*rtd_ECT > rtb_out_ls); } /* * Output and update for atomic system: * '/2 way valve' * '/2 way valve' * '/2 way valve' * '/2 way valve' * '/2 way valve' * '/2 way valve' * '/2 way valve' * '/2 way valve' * '/2 way valve' * '/2 way valve' * ... */ void uwayvalve(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_2WAY_OPEN(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_2WAY_OPEN[tmp - 1]; } /* * Output and update for atomic system: * '/Dtg_rear' * '/Dtg_rear' * '/Dtg_rear' * '/Dtg_rear' * '/Dtg_rear' * '/Dtg_rear' */ void Dtg_rear(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_DUCT_TGT_STEP2_RX(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_DUCT_TGT_STEP2_RX[tmp - 1]; } /* * Output and update for atomic system: * '/Incar temp goto from step 1 to step 2 ' * '/Incar temp goto from step 1 to step 2 ' * '/Incar temp goto from step 1 to step 2 ' * '/Incar temp goto from step 1 to step 2 ' * '/Incar temp goto from step 1 to step 2 ' * '/Incar temp goto from step 1 to step 2 ' */ void Incartempgotofromstep1tostep2_j(uint8_t rtu_LVL, int16_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = int16(g_assSTART_INCAR_STEP1_TO_2(LVL + 1 + 6)); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_assSTART_INCAR_STEP1_TO_2[tmp_0 - 1]; } /* * Output and update for atomic system: * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' * '/Time goto from step 1 to step 2 ' * ... */ void Timegotofromstep1tostep2_l(uint8_t rtu_LVL, int16_t *rty_out) { int32_t tmp; int32_t tmp_0; uint16_t tmp_1; /* : out = int16(g_ausSTART_TIME_STEP1_TO_2(LVL + 1 + 6)); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } tmp_1 = g_ausSTART_TIME_STEP1_TO_2[tmp_0 - 1]; if (tmp_1 > 32767) { tmp_1 = 32767U; } *rty_out = (int16_t)tmp_1; } /* * Output and update for atomic system: * '/mode rear step 1' * '/mode rear step 1' * '/mode rear step 1' * '/mode rear step 1' * '/mode rear step 1' * '/mode rear step 1' */ void moderearstep1(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_aucSTART_VALVE_IDX_STEP1(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_aucSTART_VALVE_IDX_STEP1[tmp_0 - 1]; } /* * Output and update for action system: * '/Level 0' * '/Level 1' */ void Level0_b(int8_t *rty_step, uint16_t *rtd_Blower_RL, uint16_t *rtd_Blower_RR, uint8_t *rtd_Dtg_RL, uint8_t *rtd_Dtg_RR, const int16_t *rtd_Incar_RR, uint8_t *rtd_Incar_filter_down_value, uint8_t *rtd_Incar_filter_up_value, const uint8_t *rtd_LEVEL, uint8_t *rtd_Mode_RL, uint8_t *rtd_Mode_RR, double *rtd_Recirculation, uint8_t *rtd_Valve_2_way, const int8_t *rtd_step_start_controle_rear, const uint32_t *rtd_t_now, DW_Level0_c *localDW) { int32_t tmp; uint32_t rtb_dt_j0; int16_t rtb_out_gb; int16_t rtb_out_kdi; uint16_t rtb_out_ne; uint8_t rtb_out_hl; bool rtb_Equal_eo; /* DataStoreWrite: '/Data Store Write9' incorporates: * DataStoreRead: '/Data Store Read6' * MATLAB Function: '/2 way valve' */ uwayvalve(*rtd_LEVEL, rtd_Valve_2_way); /* DataStoreWrite: '/Data Store Write' incorporates: * DataStoreRead: '/Data Store Read1' * MATLAB Function: '/incar filter up' */ incarfilterup_i(*rtd_LEVEL, rtd_Incar_filter_up_value); /* DataStoreWrite: '/Data Store Write1' incorporates: * DataStoreRead: '/Data Store Read2' * MATLAB Function: '/incar filter down' */ incarfilterdown_c(*rtd_LEVEL, rtd_Incar_filter_down_value); /* MATLAB Function: '/mode rear step 1' incorporates: * DataStoreRead: '/Data Store Read5' */ moderearstep1(*rtd_LEVEL, &rtb_out_hl); /* DataStoreWrite: '/Data Store Write2' */ *rtd_Mode_RR = rtb_out_hl; /* DataStoreWrite: '/Data Store Write3' */ *rtd_Mode_RL = rtb_out_hl; /* MATLAB Function: '/blower rear' incorporates: * DataStoreRead: '/Data Store Read7' */ /* : out = g_ausSTART_BLR_AF_STEP12_R(LVL + 1); */ tmp = (int32_t)(*rtd_LEVEL + 1U); if (*rtd_LEVEL + 1U > 255U) { tmp = 255; } rtb_out_ne = g_ausSTART_BLR_AF_STEP12_R[tmp - 1]; /* End of MATLAB Function: '/blower rear' */ /* DataStoreWrite: '/Data Store Write5' */ *rtd_Blower_RR = rtb_out_ne; /* DataStoreWrite: '/Data Store Write6' */ *rtd_Blower_RL = rtb_out_ne; /* MATLAB Function: '/Dtg_rear' incorporates: * DataStoreRead: '/Data Store Read8' */ Dtg_rear(*rtd_LEVEL, &rtb_out_hl); /* DataStoreWrite: '/Data Store Write10' */ *rtd_Dtg_RR = rtb_out_hl; /* DataStoreWrite: '/Data Store Write11' */ *rtd_Dtg_RL = rtb_out_hl; /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ *rtd_Recirculation = 1.0; /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_Equal_eo = (*rtd_step_start_controle_rear == 1); /* MATLAB Function: '/Incar temp goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read3' */ Incartempgotofromstep1tostep2_j(*rtd_LEVEL, &rtb_out_kdi); /* Sum: '/Subtract' incorporates: * DataStoreRead: '/Data Store Read4' * UnitDelay: '/t_start_delay_private ' */ rtb_dt_j0 = *rtd_t_now - localDW->t_start_delay_private_DSTATE; /* MATLAB Function: '/Time goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read4' */ Timegotofromstep1tostep2_l(*rtd_LEVEL, &rtb_out_gb); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Equal_eo && (!localDW->Cond_prev_private_DSTATE)) { localDW->t_start_delay_private_DSTATE = *rtd_t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * Constant: '/go to next step' * Constant: '/stay at step 1' * DataStoreRead: '/incar temp' * Gain: '/из сек в мс' * Logic: '/Logical Operator' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' */ if ((*rtd_Incar_RR < rtb_out_kdi) || (rtb_dt_j0 > (uint16_t)(1000 * rtb_out_gb))) { *rty_step = 2; } else { *rty_step = 1; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Cond_prev_private ' */ localDW->Cond_prev_private_DSTATE = rtb_Equal_eo; } /* * Output and update for atomic system: * '/blower start finish' * '/blower start finish' * '/blower start finish' * '/blower start finish' */ void blowerstartfinish(uint8_t rtu_LVL, uint16_t rty_out[2]) { int32_t tmp; int32_t tmp_0; /* : start = g_ausSTART_BLR_AF_STEP12_R(LVL + 1); */ /* : finish = g_ausSTART_BLR_AF_STEP12_R(LVL + 1 + 6); */ /* : out = [start, finish]; */ tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } rty_out[0] = g_ausSTART_BLR_AF_STEP12_R[tmp_0 - 1]; tmp_0 = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp_0 = 255; } tmp = (int32_t)((uint32_t)tmp_0 + 6U); if ((uint32_t)tmp_0 + 6U > 255U) { tmp = 255; } rty_out[1] = g_ausSTART_BLR_AF_STEP12_R[tmp - 1]; } /* * Output and update for atomic system: * '/ECT min max' * '/ECT min max' * '/ECT min max' */ void ECTminmax_l(uint8_t rtu_LVL, int16_t rty_out[2]) { int32_t tmp; /* : min = int16(g_assSTART_COOLANT_STEP0_TO_1(LVL + 3)); */ /* : max = int16(g_assSTART_COOLANT_TO_STEP2(3)); */ /* : out = [min, max]; */ tmp = (int32_t)(rtu_LVL + 3U); if (rtu_LVL + 3U > 255U) { tmp = 255; } rty_out[0] = g_assSTART_COOLANT_STEP0_TO_1[tmp - 1]; rty_out[1] = g_assSTART_COOLANT_TO_STEP2[2]; } /* * Output and update for action system: * '/Level 4' * '/Level 5' */ void Level4_d(int8_t *rty_step, uint16_t *rtd_Blower_RL, uint16_t *rtd_Blower_RR, uint8_t *rtd_Dtg_RL, uint8_t *rtd_Dtg_RR, const int16_t *rtd_ECT, const int16_t *rtd_Incar_RR, uint8_t *rtd_Incar_filter_down_value, uint8_t *rtd_Incar_filter_up_value, const uint8_t *rtd_LEVEL, uint8_t *rtd_Mode_RL, uint8_t *rtd_Mode_RR, double *rtd_Recirculation, uint8_t *rtd_Valve_2_way, const int8_t *rtd_step_start_controle_rear, const uint32_t *rtd_t_now, DW_Level4_a *localDW) { uint32_t rtb_dt_md; int16_t rtb_out_ij[2]; int16_t rtb_out_mac; int16_t rtb_out_md; uint16_t rtb_out_dq[2]; uint8_t rtb_out_gz; bool rtb_Equal_m3; /* DataStoreWrite: '/Data Store Write9' incorporates: * DataStoreRead: '/Data Store Read6' * MATLAB Function: '/2 way valve' */ uwayvalve(*rtd_LEVEL, rtd_Valve_2_way); /* DataStoreWrite: '/Data Store Write' incorporates: * DataStoreRead: '/Data Store Read1' * MATLAB Function: '/incar filter up' */ incarfilterup_i(*rtd_LEVEL, rtd_Incar_filter_up_value); /* DataStoreWrite: '/Data Store Write1' incorporates: * DataStoreRead: '/Data Store Read2' * MATLAB Function: '/incar filter down' */ incarfilterdown_c(*rtd_LEVEL, rtd_Incar_filter_down_value); /* MATLAB Function: '/mode rear step 1' incorporates: * DataStoreRead: '/Data Store Read5' */ moderearstep1(*rtd_LEVEL, &rtb_out_gz); /* DataStoreWrite: '/Data Store Write2' */ *rtd_Mode_RR = rtb_out_gz; /* DataStoreWrite: '/Data Store Write3' */ *rtd_Mode_RL = rtb_out_gz; /* MATLAB Function: '/blower start finish' incorporates: * DataStoreRead: '/Data Store Read7' */ blowerstartfinish(*rtd_LEVEL, rtb_out_dq); /* MATLAB Function: '/ECT min max' incorporates: * DataStoreRead: '/Data Store Read7' */ ECTminmax_l(*rtd_LEVEL, rtb_out_ij); /* Lookup_n-D: '/blower для текущего ECT' incorporates: * DataStoreRead: '/engine coolant temp' */ rtb_out_md = look1_is16lu64n32tu16Ds32Is16_binlcs(*rtd_ECT, rtb_out_ij, rtb_out_dq, 1U); /* DataTypeConversion: '/Data Type Conversion1' incorporates: * DataStoreWrite: '/Data Store Write5' */ *rtd_Blower_RR = (uint16_t)rtb_out_md; /* DataStoreWrite: '/Data Store Write6' incorporates: * DataStoreWrite: '/Data Store Write5' */ *rtd_Blower_RL = *rtd_Blower_RR; /* MATLAB Function: '/Dtg_rear' incorporates: * DataStoreRead: '/Data Store Read8' */ Dtg_rear(*rtd_LEVEL, &rtb_out_gz); /* DataStoreWrite: '/Data Store Write10' */ *rtd_Dtg_RR = rtb_out_gz; /* DataStoreWrite: '/Data Store Write11' */ *rtd_Dtg_RL = rtb_out_gz; /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ *rtd_Recirculation = 1.0; /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_Equal_m3 = (*rtd_step_start_controle_rear == 1); /* MATLAB Function: '/Incar temp goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read3' */ Incartempgotofromstep1tostep2_j(*rtd_LEVEL, &rtb_out_mac); /* Sum: '/Subtract' incorporates: * DataStoreRead: '/Data Store Read4' * UnitDelay: '/t_start_delay_private ' */ rtb_dt_md = *rtd_t_now - localDW->t_start_delay_private_DSTATE; /* MATLAB Function: '/Time goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read4' */ Timegotofromstep1tostep2_l(*rtd_LEVEL, &rtb_out_md); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Equal_m3 && (!localDW->Cond_prev_private_DSTATE)) { localDW->t_start_delay_private_DSTATE = *rtd_t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * Constant: '/go to next step' * Constant: '/stay at step 1' * DataStoreRead: '/incar temp' * Gain: '/из сек в мс' * Logic: '/Logical Operator' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' */ if ((*rtd_Incar_RR > rtb_out_mac) || (rtb_dt_md > (uint16_t)(1000 * rtb_out_md))) { *rty_step = 2; } else { *rty_step = 1; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Cond_prev_private ' */ localDW->Cond_prev_private_DSTATE = rtb_Equal_m3; } /* * Output and update for atomic system: * '/time for step' * '/time for step' * '/time for step' * '/time for step' * '/time for step' * '/time for step' */ void timeforstep_jn(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_aucSTART_DUCT_TGT_STEP2_RX(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_aucSTART_DUCT_TGT_STEP2_RX[tmp_0 - 1]; } /* * Output and update for atomic system: * '/blower step' * '/blower step' * '/blower step' * '/blower step' * '/blower step' * '/blower step' */ void blowerstep_d(uint8_t rtu_LVL, uint16_t *rty_out) { int32_t tmp; /* : out = g_ausSTART_BLR_SPD_STEP2_R(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_ausSTART_BLR_SPD_STEP2_R[tmp - 1]; } /* * Output and update for atomic system: * '/blower time for step' * '/blower time for step' * '/blower time for step' * '/blower time for step' * '/blower time for step' * '/blower time for step' */ void blowertimeforstep_l(uint8_t rtu_LVL, uint16_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_ausSTART_BLR_SPD_STEP2_R(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_ausSTART_BLR_SPD_STEP2_R[tmp_0 - 1]; } /* * Output and update for atomic system: * '/step' * '/step' * '/step' * '/step' * '/step' * '/step' */ void step_a(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; /* : out = g_aucSTART_VALVE_CHANGE_SPD_R(LVL + 1); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } *rty_out = g_aucSTART_VALVE_CHANGE_SPD_R[tmp - 1]; } /* * Output and update for atomic system: * '/time for step' * '/time for step' * '/time for step' * '/time for step' * '/time for step' * '/time for step' */ void timeforstep_h(uint8_t rtu_LVL, uint8_t *rty_out) { int32_t tmp; int32_t tmp_0; /* : out = g_aucSTART_VALVE_CHANGE_SPD_R(LVL + 1 + 6); */ tmp = (int32_t)(rtu_LVL + 1U); if (rtu_LVL + 1U > 255U) { tmp = 255; } tmp_0 = (int32_t)((uint32_t)tmp + 6U); if ((uint32_t)tmp + 6U > 255U) { tmp_0 = 255; } *rty_out = g_aucSTART_VALVE_CHANGE_SPD_R[tmp_0 - 1]; } /* * Output and update for action system: * '/Level 3' * '/Level 4' * '/Level 5' */ void Level3_i(int8_t *rty_step, uint16_t *rtd_Blower_RL, uint16_t *rtd_Blower_RR, const uint16_t *rtd_Blower_logic_RR, uint8_t *rtd_Dtg_RL, uint8_t * rtd_Dtg_RR, const uint8_t *rtd_Dtg_logic_RR, const bool *rtd_HI_logic_on, uint8_t *rtd_Incar_filter_down_value, uint8_t *rtd_Incar_filter_up_value, const uint8_t *rtd_LEVEL, uint8_t *rtd_Mode_RL, uint8_t *rtd_Mode_RR, const uint8_t *rtd_Mode_logic_RR, double *rtd_Recirculation, uint8_t *rtd_Valve_2_way, const int8_t *rtd_step_start_controle_rear, const uint32_t *rtd_t_now, DW_Level3_n *localDW) { int32_t tmp; uint32_t rtb_dt_jh; int16_t rtb_out_cg; uint16_t rtb_out_nn; uint16_t rtb_out_pv; uint8_t rtb_out_di; uint8_t rtb_out_jl; bool rtb_Cond_prev_private_a4; /* DataStoreWrite: '/Data Store Write9' incorporates: * DataStoreRead: '/Data Store Read6' * MATLAB Function: '/2 way valve' */ uwayvalve(*rtd_LEVEL, rtd_Valve_2_way); /* MATLAB Function: '/step' incorporates: * DataStoreRead: '/Data Store Read8' */ Dtg_rear(*rtd_LEVEL, &rtb_out_jl); /* MATLAB Function: '/time for step' incorporates: * DataStoreRead: '/Data Store Read8' */ timeforstep_jn(*rtd_LEVEL, &rtb_out_di); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write10' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if ((uint8_t)(*rtd_Dtg_RR - *rtd_Dtg_logic_RR) <= 0.01) { *rtd_Dtg_RR = *rtd_Dtg_logic_RR; } else { if (*rtd_Dtg_RR <= *rtd_Dtg_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ tmp = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ tmp = -1; } *rtd_Dtg_RR = (uint8_t)((double)rtb_out_jl / (double)rtb_out_di / 1000.0 * (double)(*rtd_t_now - localDW->UnitDelay_DSTATE) * (double)tmp + (double)* rtd_Dtg_RR); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write11' incorporates: * DataStoreWrite: '/Data Store Write10' */ *rtd_Dtg_RL = *rtd_Dtg_RR; /* DataStoreWrite: '/Data Store Write' incorporates: * DataStoreRead: '/Data Store Read1' * MATLAB Function: '/incar filter up' */ incarfilterup_i(*rtd_LEVEL, rtd_Incar_filter_up_value); /* DataStoreWrite: '/Data Store Write1' incorporates: * DataStoreRead: '/Data Store Read2' * MATLAB Function: '/incar filter down' */ incarfilterdown_c(*rtd_LEVEL, rtd_Incar_filter_down_value); /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtb_out_jl = (uint8_t)(*rtd_Mode_RR - *rtd_Mode_logic_RR); /* RelationalOperator: '/Relational Operator' incorporates: * Constant: '/epsilon' */ rtb_Cond_prev_private_a4 = (rtb_out_jl <= 0.01); /* MATLAB Function: '/step' incorporates: * DataStoreRead: '/Data Store Read5' */ step_a(*rtd_LEVEL, &rtb_out_di); /* MATLAB Function: '/time for step' incorporates: * DataStoreRead: '/Data Store Read5' */ timeforstep_h(*rtd_LEVEL, &rtb_out_jl); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write2' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if (rtb_Cond_prev_private_a4) { *rtd_Mode_RR = *rtd_Mode_logic_RR; } else { if (*rtd_Mode_RR <= *rtd_Mode_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ tmp = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ tmp = -1; } *rtd_Mode_RR = (uint8_t)((double)rtb_out_di / (double)rtb_out_jl / 1000.0 * (double)(*rtd_t_now - localDW->UnitDelay_DSTATE_i) * (double)tmp + (double)* rtd_Mode_RR); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write3' incorporates: * DataStoreWrite: '/Data Store Write2' */ *rtd_Mode_RL = *rtd_Mode_RR; /* MATLAB Function: '/blower step' incorporates: * DataStoreRead: '/Data Store Read7' */ blowerstep_d(*rtd_LEVEL, &rtb_out_nn); /* MATLAB Function: '/blower time for step' incorporates: * DataStoreRead: '/Data Store Read7' */ blowertimeforstep_l(*rtd_LEVEL, &rtb_out_pv); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write5' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if ((uint16_t)(*rtd_Blower_RR - *rtd_Blower_logic_RR) <= 0.01) { *rtd_Blower_RR = *rtd_Blower_logic_RR; } else { if (*rtd_Blower_RR <= *rtd_Blower_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ tmp = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ tmp = -1; } *rtd_Blower_RR = (uint16_t)((double)rtb_out_nn / (double)rtb_out_pv / 1000.0 * (double)(*rtd_t_now - localDW->UnitDelay_DSTATE_e) * (double)tmp + (double)*rtd_Blower_RR); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write6' incorporates: * DataStoreWrite: '/Data Store Write5' */ *rtd_Blower_RL = *rtd_Blower_RR; /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ *rtd_Recirculation = 1.0; /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_Cond_prev_private_a4 = (*rtd_step_start_controle_rear == 2); /* Sum: '/Subtract' incorporates: * DataStoreRead: '/Data Store Read4' * UnitDelay: '/t_start_delay_private ' */ rtb_dt_jh = *rtd_t_now - localDW->t_start_delay_private_DSTATE; /* MATLAB Function: '/Time goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read4' */ Timegotofromstep1tostep2_l(*rtd_LEVEL, &rtb_out_cg); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Cond_prev_private_a4 && (!localDW->Cond_prev_private_DSTATE)) { localDW->t_start_delay_private_DSTATE = *rtd_t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * Constant: '/go to next step' * Constant: '/stay at step' * DataStoreRead: '/Data Store Read' * Gain: '/из сек в мс' * Logic: '/Logical Operator' * RelationalOperator: '/Relational Operator1' */ if ((rtb_dt_jh > (uint16_t)(1000 * rtb_out_cg)) || (*rtd_HI_logic_on)) { *rty_step = 3; } else { *rty_step = 2; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ localDW->UnitDelay_DSTATE = *rtd_t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ localDW->UnitDelay_DSTATE_i = *rtd_t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ localDW->UnitDelay_DSTATE_e = *rtd_t_now; /* Update for UnitDelay: '/Cond_prev_private ' */ localDW->Cond_prev_private_DSTATE = rtb_Cond_prev_private_a4; } /* Model step function */ void HVAC_model_step(void) { double rtb_Divide1_a4[9]; double rtb_f_lower_upper_bounds[2]; double rtb_Divide10; double rtb_Divide11; double rtb_Divide3; double rtb_Divide6; double rtb_Divide8; double rtb_rate; int32_t i; int32_t tmp; uint32_t rtb_Subtract; uint32_t rtb_dt_an; int16_t rtb_uDLookupTable7[6]; int16_t rtb_out_md[2]; int16_t Duct1_F; int16_t Duct1_R; int16_t Duct2_F; int16_t Duct2_R; int16_t Duct3_F; int16_t Duct3_R; int16_t Duct4_F; int16_t Duct4_R; int16_t Duct5_F; int16_t Duct6_F; int16_t rtb_LVL; int16_t rtb_Saturation_n; uint16_t Merge[9]; uint16_t rtb_out_ic[9]; uint16_t rtb_out_k4[9]; uint16_t rtb_out_mj[9]; uint16_t rtb_vals_m[9]; uint16_t rtb_out_kw[6]; uint16_t rtb_urear[6]; uint16_t rtb_out_f0[2]; uint16_t rtb_out_b; uint16_t rtb_out_em; uint16_t rtb_out_jv; uint16_t rtb_out_khw; uint16_t rtb_out_le; uint16_t rtb_out_m4; uint16_t rtb_out_pb; uint16_t rtb_out_pf; int8_t rtb_Switch_nyq; uint8_t rtb_get_modes_for_levels[78]; uint8_t Actuator_pos_percent_Ch1[9]; uint8_t rtb_DataTypeConversion_bh[9]; uint8_t rtb_DataTypeConversion_bq[9]; uint8_t rtb_DataTypeConversion_fb[9]; uint8_t rtb_DataTypeConversion2_l3[6]; uint8_t Autodefog; uint8_t Dtg_FUR; uint8_t El_window_heating; uint8_t Mode_FR; uint8_t rtb_Merge_a; uint8_t rtb_Merge_e; uint8_t rtb_Merge_j; uint8_t rtb_Merge_m; bool rtb_LogicalOperator3_i5[9]; bool rtb_Compare_n[8]; bool rtb_LogicalOperator3_n1[6]; bool rtb_Compare; bool rtb_Compare_a; bool rtb_Compare_bp; bool rtb_Compare_bt; bool rtb_Compare_e; bool rtb_Compare_e1; bool rtb_Compare_eo; bool rtb_Compare_esy; bool rtb_Compare_fr; bool rtb_Compare_gg; bool rtb_Compare_gh; bool rtb_Compare_ho; bool rtb_Compare_it; bool rtb_Compare_j4; bool rtb_Compare_jf; bool rtb_Compare_lus; bool rtb_Compare_m4; bool rtb_Compare_mk; bool rtb_Compare_mt; bool rtb_Compare_ne; bool rtb_Compare_of; bool rtb_Compare_p; bool rtb_FailCond_b; bool rtb_FailCond_fj; bool rtb_FailCond_kk; bool rtb_FailCond_n; bool rtb_LogicalOperator1; bool rtb_LogicalOperator10; bool rtb_LogicalOperator11; bool rtb_LogicalOperator1_dv; bool rtb_LogicalOperator1_l; bool rtb_LogicalOperator1_n; bool rtb_LogicalOperator3_cz; bool rtb_LogicalOperator3_p0; bool rtb_LogicalOperator4_fo; bool rtb_LogicalOperator6; bool rtb_LogicalOperator8; bool rtb_RelationalOperator2_nm; /* RelationalOperator: '/Relational Operator1' incorporates: * UnitDelay: '/Unit Delay' */ rtb_RelationalOperator2_nm = (rtDW.UnitDelay_DSTATE_d5 == -9999); /* DataStoreRead: '/Data Store Read14' incorporates: * UnitDelay: '/Unit Delay' */ rtDW.UnitDelay_DSTATE_d5 = rtDW.AMB_RAW; /* If: '/If' */ if (rtb_RelationalOperator2_nm) { /* Outputs for IfAction SubSystem: '/Инициализация температуры' incorporates: * ActionPort: '/Action Port' */ /* Switch: '/Switch1' incorporates: * DataStoreWrite: '/Data Store Write' * DataTypeConversion: '/Data Type Conversion' * UnitDelay: '/Unit Delay' */ rtDW.AMB_store = rtDW.UnitDelay_DSTATE_d5; /* End of Outputs for SubSystem: '/Инициализация температуры' */ } else { /* Outputs for IfAction SubSystem: '/Фильтрация температуры' incorporates: * ActionPort: '/Action Port' */ /* Lookup_n-D: '/Get LVL for temp' incorporates: * DataStoreRead: '/Data Store Read14' * UnitDelay: '/Unit Delay' */ rtb_LVL = rtConstP.pooled40[plook_u32s16_bincka(rtDW.UnitDelay_DSTATE_d5, rtConstP.GetLVLfortemp_bp01Data, 5U)]; /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read' * UnitDelay: '/Unit Delay' */ if (rtDW.KEEP_RISING_UNTIL_LIMIT > 0.0) { /* Outputs for IfAction SubSystem: '/включен ускоренный режим' incorporates: * ActionPort: '/Action Port' */ u_h(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_j, &rtDW.AMB_store, &rtDW.KEEP_RISING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/включен ускоренный режим' */ } else { /* Outputs for IfAction SubSystem: '/обычный режим' incorporates: * ActionPort: '/Action Port' */ u_a(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_j, &rtDW.AMB_store, &rtDW.KEEP_RISING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/обычный режим' */ } /* End of If: '/If1' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read' * UnitDelay: '/Unit Delay' */ if (rtDW.KEEP_FALLING_UNTIL_LIMIT > 0.0) { /* Outputs for IfAction SubSystem: '/включен ускоренный режим' incorporates: * ActionPort: '/Action Port' */ u_d(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_e, &rtDW.AMB_store, &rtDW.KEEP_FALLING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/включен ускоренный режим' */ } else { /* Outputs for IfAction SubSystem: '/обычный режим' incorporates: * ActionPort: '/Action Port' */ u_c(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_e, &rtDW.AMB_store, &rtDW.KEEP_FALLING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/обычный режим' */ } /* End of If: '/If1' */ /* Sum: '/Subtract' incorporates: * DataStoreRead: '/Data Store Read15' * UnitDelay: '/Unit Delay' */ rtb_Subtract = rtDW.t_now - rtDW.UnitDelay_DSTATE_c; /* If: '/If' incorporates: * DataStoreRead: '/Data Store Read12' * DataStoreRead: '/Data Store Read' */ /* : f_g_ssAMBFILT_WATER = g_ssAMBFILT_WATER; */ if ((rtDW.VehicleSpeed > 45) && (rtDW.KEEP_UNTIL_SPEED_DROPS > 0)) { /* Outputs for IfAction SubSystem: '/Быстро из-за флага' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read' * UnitDelay: '/Unit Delay' */ if (rtDW.KEEP_RISING_UNTIL_LIMIT > 0.0) { /* Outputs for IfAction SubSystem: '/включен ускоренный режим' incorporates: * ActionPort: '/Action Port' */ u_h(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_m, &rtDW.AMB_store, &rtDW.KEEP_RISING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/включен ускоренный режим' */ } else { /* Outputs for IfAction SubSystem: '/обычный режим' incorporates: * ActionPort: '/Action Port' */ u_a(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_m, &rtDW.AMB_store, &rtDW.KEEP_RISING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/обычный режим' */ } /* End of If: '/If1' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read' * UnitDelay: '/Unit Delay' */ if (rtDW.KEEP_FALLING_UNTIL_LIMIT > 0.0) { /* Outputs for IfAction SubSystem: '/включен ускоренный режим' incorporates: * ActionPort: '/Action Port' */ u_d(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_a, &rtDW.AMB_store, &rtDW.KEEP_FALLING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/включен ускоренный режим' */ } else { /* Outputs for IfAction SubSystem: '/обычный режим' incorporates: * ActionPort: '/Action Port' */ u_c(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_a, &rtDW.AMB_store, &rtDW.KEEP_FALLING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/обычный режим' */ } /* End of If: '/If1' */ /* Switch: '/Switch1' incorporates: * Abs: '/Abs' * Constant: '/epsilon' * DataStoreRead: '/Read Amb' * RelationalOperator: '/AMBraw > AMB' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if (fabs((double)rtDW.UnitDelay_DSTATE_d5 - rtDW.AMB_store) <= 0.01) { /* SignalConversion generated from: '/AMB_new' */ rtb_rate = rtDW.AMB_store; } else { if (rtDW.UnitDelay_DSTATE_d5 > rtDW.AMB_store) { /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtb_Saturation_n = rtb_Merge_m; } else { /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * UnaryMinus: '/Unary Minus' */ rtb_Saturation_n = (int16_t)-rtb_Merge_a; } /* SignalConversion generated from: '/AMB_new' incorporates: * Constant: '/Constant' * Product: '/Divide' * Product: '/Product' * Sum: '/Add' * Switch: '/Switch' */ rtb_rate = (double)rtb_Subtract / 60000.0 * (double)rtb_Saturation_n + rtDW.AMB_store; } /* End of Switch: '/Switch1' */ /* End of Outputs for SubSystem: '/Быстро из-за флага' */ } else if (rtDW.VehicleSpeed > 50) { /* Outputs for IfAction SubSystem: '/Быстро из-за скорости' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.KEEP_UNTIL_SPEED_DROPS = 1; /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read' * UnitDelay: '/Unit Delay' */ if (rtDW.KEEP_RISING_UNTIL_LIMIT > 0.0) { /* Outputs for IfAction SubSystem: '/включен ускоренный режим' incorporates: * ActionPort: '/Action Port' */ u_h(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_m, &rtDW.AMB_store, &rtDW.KEEP_RISING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/включен ускоренный режим' */ } else { /* Outputs for IfAction SubSystem: '/обычный режим' incorporates: * ActionPort: '/Action Port' */ u_a(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_m, &rtDW.AMB_store, &rtDW.KEEP_RISING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/обычный режим' */ } /* End of If: '/If1' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read' * UnitDelay: '/Unit Delay' */ if (rtDW.KEEP_FALLING_UNTIL_LIMIT > 0.0) { /* Outputs for IfAction SubSystem: '/включен ускоренный режим' incorporates: * ActionPort: '/Action Port' */ u_d(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_a, &rtDW.AMB_store, &rtDW.KEEP_FALLING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/включен ускоренный режим' */ } else { /* Outputs for IfAction SubSystem: '/обычный режим' incorporates: * ActionPort: '/Action Port' */ u_c(rtDW.UnitDelay_DSTATE_d5, rtb_LVL, &rtb_Merge_a, &rtDW.AMB_store, &rtDW.KEEP_FALLING_UNTIL_LIMIT); /* End of Outputs for SubSystem: '/обычный режим' */ } /* End of If: '/If1' */ /* Switch: '/Switch1' incorporates: * Abs: '/Abs' * Constant: '/epsilon' * DataStoreRead: '/Read Amb' * RelationalOperator: '/AMBraw > AMB' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if (fabs((double)rtDW.UnitDelay_DSTATE_d5 - rtDW.AMB_store) <= 0.01) { /* SignalConversion generated from: '/AMB_new' */ rtb_rate = rtDW.AMB_store; } else { if (rtDW.UnitDelay_DSTATE_d5 > rtDW.AMB_store) { /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtb_Saturation_n = rtb_Merge_m; } else { /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * UnaryMinus: '/Unary Minus' */ rtb_Saturation_n = (int16_t)-rtb_Merge_a; } /* SignalConversion generated from: '/AMB_new' incorporates: * Constant: '/Constant' * Product: '/Divide' * Product: '/Product' * Sum: '/Add' * Switch: '/Switch' */ rtb_rate = (double)rtb_Subtract / 60000.0 * (double)rtb_Saturation_n + rtDW.AMB_store; } /* End of Switch: '/Switch1' */ /* End of Outputs for SubSystem: '/Быстро из-за скорости' */ } else { /* Outputs for IfAction SubSystem: '/Медленно' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant1' */ rtDW.KEEP_UNTIL_SPEED_DROPS = 0; /* MATLAB Function: '/границы' */ /* : rate_at_10 = 0.5; */ /* : rate_at_50 = double(g_aucAMBRATE_RISING(lvl + 1)) ; */ /* : f_lower_upper_bounds = [rate_at_10, rate_at_50]; */ rtb_f_lower_upper_bounds[0] = 0.5; i = rtb_LVL + 1; if (rtb_LVL + 1 > 32767) { i = 32767; } rtb_f_lower_upper_bounds[1] = g_aucAMBRATE_RISING[i - 1]; /* MATLAB Function: '/обычное понижение темп.' */ /* : fprintf("lvl = %d\n", lvl); */ printf("lvl = %d\n", rtb_LVL); fflush(stdout); /* Switch: '/Switch1' incorporates: * Abs: '/Abs' * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Read Amb' * Product: '/Divide' * Product: '/Product' * RelationalOperator: '/AMBraw > AMB' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Add' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ /* : f_g_aucAMBRATE_FALLING = g_aucAMBRATE_FALLING(lvl + 1); */ if (fabs((double)rtDW.UnitDelay_DSTATE_d5 - rtDW.AMB_store) <= 0.01) { rtb_rate = rtDW.UnitDelay_DSTATE_d5; } else { if (rtDW.UnitDelay_DSTATE_d5 > rtDW.AMB_store) { /* Switch: '/Скорость >10' incorporates: * Constant: '/Constant' * Switch: '/Switch' */ if (rtDW.VehicleSpeed > 10) { /* Lookup_n-D: '/1-D Lookup Table1' incorporates: * DataStoreRead: '/Data Store Read12' */ rtb_rate = look1_is16td_binlc(rtDW.VehicleSpeed, rtConstP.uDLookupTable1_bp01Data, rtb_f_lower_upper_bounds, 1U); } else { rtb_rate = 0.5; } /* End of Switch: '/Скорость >10' */ } else { /* MATLAB Function: '/обычное понижение темп.' incorporates: * MATLAB Function: '/границы' */ i = rtb_LVL + 1; if (rtb_LVL + 1 > 32767) { i = 32767; } /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * MATLAB Function: '/обычное понижение темп.' * UnaryMinus: '/Unary Minus' */ rtb_rate = -(double)g_aucAMBRATE_FALLING[i - 1]; } rtb_rate = (double)rtb_Subtract / 60000.0 * rtb_rate + rtDW.AMB_store; } /* End of Switch: '/Switch1' */ /* End of Outputs for SubSystem: '/Медленно' */ } /* End of If: '/If' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read11' * DataStoreRead: '/Data Store Read12' * MATLAB Function: '/Coolant temp threshold' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ if (rtDW.ECT <= g_ssAMBFILT_WATER) { /* Switch: '/Switch1' incorporates: * Abs: '/Abs' * Constant: '/epsilon' * DataStoreRead: '/Read Amb' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * UnitDelay: '/Unit Delay' */ if (fabs((double)rtDW.UnitDelay_DSTATE_d5 - rtDW.AMB_store) > 0.01) { /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion' * RelationalOperator: '/AMBraw > AMB' * UnaryMinus: '/Unary Minus' */ if (rtDW.UnitDelay_DSTATE_d5 > rtDW.AMB_store) { rtb_Saturation_n = rtb_Merge_j; } else { rtb_Saturation_n = (int16_t)-rtb_Merge_e; } /* Switch: '/Switch1' incorporates: * Constant: '/Constant' * Product: '/Divide' * Product: '/Product' * Sum: '/Add' * Switch: '/Switch' */ rtDW.AMB_store += (double)rtb_Subtract / 60000.0 * (double) rtb_Saturation_n; } /* End of Switch: '/Switch1' */ } else if (rtDW.VehicleSpeed != 0) { /* Switch: '/Switch1' incorporates: * DataStoreWrite: '/Write new AMB' * Switch: '/Switch' */ rtDW.AMB_store = rtb_rate; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/Data Store Read15' */ rtDW.UnitDelay_DSTATE_c = rtDW.t_now; /* End of Outputs for SubSystem: '/Фильтрация температуры' */ } /* End of If: '/If' */ /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreWrite: '/Data Store Write1' */ rtb_LVL = (int16_t)floor(rtDW.AMB_store); /* BusCreator: '/Bus Creator' incorporates: * DataStoreRead: '/Data Store Read10' * DataStoreRead: '/Data Store Read11' * DataStoreRead: '/Data Store Read4' * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/Data Store Read6' * DataStoreRead: '/Data Store Read7' * DataStoreRead: '/Data Store Read8' * DataStoreRead: '/Data Store Read9' * DataStoreWrite: '/Data Store Write2' */ Status_Sensor_Model.Battery = 0; Status_Sensor_Model.AMB = rtb_LVL; Status_Sensor_Model.Incar_FL = rtDW.Incar_FL; Status_Sensor_Model.Incar_FR = rtDW.Incar_FR; Status_Sensor_Model.Incar_RL = rtDW.Incar_RL; Status_Sensor_Model.Incar_RR = rtDW.Incar_RR; Status_Sensor_Model.Eva_F = rtDW.Eva_F; Status_Sensor_Model.Eva_R = rtDW.Eva_R; Status_Sensor_Model.Pressure = rtDW.Pressure; Status_Sensor_Model.Duct_FL_Upper = 0; Status_Sensor_Model.Duct_FL_Lower = 0; Status_Sensor_Model.Duct_FR_Upper = 0; Status_Sensor_Model.Duct_FR_Lower = 0; Status_Sensor_Model.Duct_RL = 0; Status_Sensor_Model.Duct_RR = 0; Status_Sensor_Model.Duct_Side_FL = 0; Status_Sensor_Model.Duct_Side_FR = 0; Status_Sensor_Model.Duct_Side_RL = 0; Status_Sensor_Model.Duct_Side_RR = 0; Status_Sensor_Model.AQS = 0; /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.Sensor_Evap_Temp / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare = (rtb_rate < 0.1); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_mk = (rtb_rate > 4.9); /* Logic: '/Logical Operator' */ rtb_RelationalOperator2_nm = (rtb_Compare || rtb_Compare_mk); /* Logic: '/Logical Operator1' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator1 = (rtb_RelationalOperator2_nm && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE >= 3000U)); /* Switch: '/Switch' incorporates: * Constant: '/Constant2' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * Lookup_n-D: '/1-D Lookup Table' */ if (rtb_LogicalOperator1) { rtDW.Eva_F = -100; } else { rtDW.Eva_F = look1_iu16tdIs16_binlcs(rtDW.ADC_Data_Model.Sensor_Evap_Temp, rtConstP.pooled52, rtConstP.pooled8, 1023U); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[12] = rtb_LogicalOperator1; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_LogicalOperator1) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[13] = rtb_Compare; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[12] = rtb_Compare_mk; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[13] = 0U; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/Write ERROR' incorporates: * DataStoreRead: '/Data Store Read' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_LogicalOperator1) { /* : if(EvapFErr) */ /* : fprintf('CCU_Body_Err.CCU_EvaTempSenErrF_Stat = 0x1 (Failure), Sensor_Evap_Temp = %f V\n',Sensor_Evap_Temp); */ printf("CCU_Body_Err.CCU_EvaTempSenErrF_Stat = 0x1 (Failure), Sensor_Evap_Temp = %f V\n", rtb_rate); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR' */ /* MATLAB Function: '/Write Eva_F' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Eva_F = %d * 0.1 C\n',Eva_F); */ printf("Eva_F = %d * 0.1 C\n", rtDW.Eva_F); fflush(stdout); } /* End of MATLAB Function: '/Write Eva_F' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_RelationalOperator2_nm && (!rtDW.Cond_prev_private_DSTATE)) { rtDW.t_start_delay_private_DSTATE = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.Sensor_Rear_Evap_Temp / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_mk = (rtb_rate < 0.1); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_ho = (rtb_rate > 4.9); /* Logic: '/Logical Operator' */ rtb_Compare = (rtb_Compare_mk || rtb_Compare_ho); /* Logic: '/Logical Operator1' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator1_dv = (rtb_Compare && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_c >= 3000U)); /* Switch: '/Switch' incorporates: * Constant: '/Constant2' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * Lookup_n-D: '/1-D Lookup Table' */ if (rtb_LogicalOperator1_dv) { rtDW.Eva_R = -100; } else { rtDW.Eva_R = look1_iu16tdIs16_binlcs (rtDW.ADC_Data_Model.Sensor_Rear_Evap_Temp, rtConstP.pooled52, rtConstP.pooled8, 1023U); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[14] = rtb_LogicalOperator1_dv; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_LogicalOperator1_dv) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[15] = rtb_Compare_mk; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[14] = rtb_Compare_ho; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[15] = 0U; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/Write ERROR' incorporates: * DataStoreRead: '/Data Store Read' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_LogicalOperator1_dv) { /* : if(EvapRErr) */ /* : fprintf('CCU_Body_Err.CCU_EvaTempSenErrR_Stat = 0x1 (Failure), Sensor_Rear_Evap_Temp = %f V\n',Sensor_Rear_Evap_Temp); */ printf("CCU_Body_Err.CCU_EvaTempSenErrR_Stat = 0x1 (Failure), Sensor_Rear_Evap_Temp = %f V\n", rtb_rate); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR' */ /* MATLAB Function: '/Write Eva_F' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Eva_R = %d * 0.1 C\n',Eva_R); */ printf("Eva_R = %d * 0.1 C\n", rtDW.Eva_R); fflush(stdout); } /* End of MATLAB Function: '/Write Eva_F' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare && (!rtDW.Cond_prev_private_DSTATE_p)) { rtDW.t_start_delay_private_DSTATE_c = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.Sensor_AC_Pressure / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_ho = (rtb_rate < 0.1); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_it = (rtb_rate > 4.9); /* Logic: '/Logical Operator' */ rtb_Compare_mk = (rtb_Compare_ho || rtb_Compare_it); /* Logic: '/Logical Operator1' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator1_n = (rtb_Compare_mk && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_h >= 3000U)); /* Switch: '/Switch' incorporates: * Constant: '/Constant2' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write' * Lookup_n-D: '/1-D Lookup Table' */ if (rtb_LogicalOperator1_n) { rtDW.Pressure = 32; } else { rtDW.Pressure = look1_iu16tdIs16_binlcs (rtDW.ADC_Data_Model.Sensor_AC_Pressure, rtConstP.pooled52, rtConstP.uDLookupTable_tableData, 1023U); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[51] = rtb_LogicalOperator1_n; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_LogicalOperator1_n) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[50] = rtb_Compare_ho; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[51] = rtb_Compare_it; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[50] = 0U; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('AC_Pressure = %d ATM\n',AC_Pressure); */ printf("AC_Pressure = %d ATM\n", rtDW.Pressure); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write ERROR' incorporates: * DataStoreRead: '/Data Store Read' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_LogicalOperator1_n) { /* : if(AC_PressureErr) */ /* : fprintf('CCU_Body_Err.CCU_PressSenErr_Stat = 0x1 (Failure), Sensor_AC_Pressure = %f V\n',Sensor_AC_Pressure); */ printf("CCU_Body_Err.CCU_PressSenErr_Stat = 0x1 (Failure), Sensor_AC_Pressure = %f V\n", rtb_rate); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare_mk && (!rtDW.Cond_prev_private_DSTATE_a)) { rtDW.t_start_delay_private_DSTATE_h = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Product: '/Divide4' incorporates: * Constant: '/Constant1' * Constant: '/Constant2' * DataStoreRead: '/Data Store Read1' * Product: '/Divide1' */ rtb_rate = (double)rtDW.ADC_Data_Model.Sensor_Front_Duct2 / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_gh = (rtb_rate < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_j4 = (rtb_rate > 4.9); /* Logic: '/Logical Operator1' */ rtb_Compare_ho = (rtb_Compare_gh || rtb_Compare_j4); /* Logic: '/Logical Operator4' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator4_fo = (rtb_Compare_ho && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_m >= 3000U)); /* SignalConversion generated from: '/1-D Lookup Table7' incorporates: * DataStoreRead: '/Data Store Read1' */ rtb_urear[0] = rtDW.ADC_Data_Model.Sensor_Front_Duct1; rtb_urear[1] = rtDW.ADC_Data_Model.Sensor_Front_Duct2; rtb_urear[2] = rtDW.ADC_Data_Model.Sensor_Front_Duct3; rtb_urear[3] = rtDW.ADC_Data_Model.Sensor_Front_Duct4; rtb_urear[4] = rtDW.ADC_Data_Model.Sensor_Front_Duct5; rtb_urear[5] = rtDW.ADC_Data_Model.Sensor_Front_Duct6; /* Lookup_n-D: '/1-D Lookup Table7' */ for (i = 0; i < 6; i++) { rtb_uDLookupTable7[i] = look1_iu16bs16lu64n32ts16Ds32_binlcs(rtb_urear[i], rtConstP.pooled46, rtConstP.pooled45, 1023U); } /* End of Lookup_n-D: '/1-D Lookup Table7' */ /* Switch: '/Switch2' incorporates: * Constant: '/Constant6' * DataStoreWrite: '/Data Store Write1' */ if (rtb_LogicalOperator4_fo) { Duct2_F = 230; } else { Duct2_F = rtb_uDLookupTable7[1]; } /* End of Switch: '/Switch2' */ /* Product: '/Divide3' incorporates: * Constant: '/Constant3' * Constant: '/Constant4' * DataStoreRead: '/Data Store Read1' * Product: '/Divide2' */ rtb_Divide3 = (double)rtDW.ADC_Data_Model.Sensor_Front_Duct1 / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_ne = (rtb_Divide3 < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_e = (rtb_Divide3 > 4.9); /* Logic: '/Logical Operator2' */ rtb_Compare_it = (rtb_Compare_ne || rtb_Compare_e); /* Logic: '/Logical Operator3' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator3_cz = (rtb_Compare_it && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_k >= 3000U)); /* Switch: '/Switch1' incorporates: * Constant: '/Constant5' * DataStoreWrite: '/Data Store Write2' */ if (rtb_LogicalOperator3_cz) { Duct1_F = 230; } else { Duct1_F = rtb_uDLookupTable7[0]; } /* End of Switch: '/Switch1' */ /* Product: '/Divide6' incorporates: * Constant: '/Constant7' * Constant: '/Constant8' * DataStoreRead: '/Data Store Read1' * Product: '/Divide5' */ rtb_Divide6 = (double)rtDW.ADC_Data_Model.Sensor_Front_Duct3 / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_gg = (rtb_Divide6 < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_m4 = (rtb_Divide6 > 4.9); /* Logic: '/Logical Operator5' */ rtb_FailCond_n = (rtb_Compare_gg || rtb_Compare_m4); /* Logic: '/Logical Operator6' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator6 = (rtb_FailCond_n && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_p >= 3000U)); /* Switch: '/Switch3' incorporates: * Constant: '/Constant9' * DataStoreWrite: '/Data Store Write3' */ if (rtb_LogicalOperator6) { Duct3_F = 230; } else { Duct3_F = rtb_uDLookupTable7[2]; } /* End of Switch: '/Switch3' */ /* Product: '/Divide8' incorporates: * Constant: '/Constant10' * Constant: '/Constant11' * DataStoreRead: '/Data Store Read1' * Product: '/Divide7' */ rtb_Divide8 = (double)rtDW.ADC_Data_Model.Sensor_Front_Duct4 / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_lus = (rtb_Divide8 < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_e1 = (rtb_Divide8 > 4.9); /* Logic: '/Logical Operator7' */ rtb_FailCond_b = (rtb_Compare_lus || rtb_Compare_e1); /* Logic: '/Logical Operator8' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator8 = (rtb_FailCond_b && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_hb >= 3000U)); /* Switch: '/Switch4' incorporates: * Constant: '/Constant12' * DataStoreWrite: '/Data Store Write4' */ if (rtb_LogicalOperator8) { Duct4_F = 230; } else { Duct4_F = rtb_uDLookupTable7[3]; } /* End of Switch: '/Switch4' */ /* Product: '/Divide10' incorporates: * Constant: '/Constant13' * Constant: '/Constant14' * DataStoreRead: '/Data Store Read1' * Product: '/Divide9' */ rtb_Divide10 = (double)rtDW.ADC_Data_Model.Sensor_Front_Duct5 / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_bp = (rtb_Divide10 < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_bt = (rtb_Divide10 > 4.9); /* Logic: '/Logical Operator9' */ rtb_FailCond_kk = (rtb_Compare_bp || rtb_Compare_bt); /* Logic: '/Logical Operator10' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator10 = (rtb_FailCond_kk && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_i >= 3000U)); /* Switch: '/Switch5' incorporates: * Constant: '/Constant15' * DataStoreWrite: '/Data Store Write5' */ if (rtb_LogicalOperator10) { Duct5_F = 230; } else { Duct5_F = rtb_uDLookupTable7[4]; } /* End of Switch: '/Switch5' */ /* Product: '/Divide11' incorporates: * Constant: '/Constant16' * Constant: '/Constant17' * DataStoreRead: '/Data Store Read1' * Product: '/Divide12' */ rtb_Divide11 = (double)rtDW.ADC_Data_Model.Sensor_Front_Duct6 / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_p = (rtb_Divide11 < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_eo = (rtb_Divide11 > 4.9); /* Logic: '/Logical Operator12' */ rtb_FailCond_fj = (rtb_Compare_p || rtb_Compare_eo); /* Logic: '/Logical Operator11' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator11 = (rtb_FailCond_fj && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_cc >= 3000U)); /* Switch: '/Switch6' incorporates: * Constant: '/Constant18' * DataStoreWrite: '/Data Store Write6' */ if (rtb_LogicalOperator11) { Duct6_F = 230; } else { Duct6_F = rtb_uDLookupTable7[5]; } /* End of Switch: '/Switch6' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[17] = rtb_LogicalOperator3_cz; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_LogicalOperator3_cz) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[18] = rtb_Compare_ne; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[17] = rtb_Compare_e; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[18] = 0U; } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[19] = rtb_LogicalOperator4_fo; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_LogicalOperator4_fo) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[20] = rtb_Compare_gh; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[19] = rtb_Compare_j4; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[20] = 0U; } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[21] = rtb_LogicalOperator6; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_LogicalOperator6) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[22] = rtb_Compare_gg; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[21] = rtb_Compare_m4; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[22] = 0U; } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[23] = rtb_LogicalOperator8; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_LogicalOperator8) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[24] = rtb_Compare_lus; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[23] = rtb_Compare_e1; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[24] = 0U; } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[25] = rtb_LogicalOperator10; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_LogicalOperator10) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[26] = rtb_Compare_bp; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[25] = rtb_Compare_bt; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[26] = 0U; } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[27] = rtb_LogicalOperator11; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_LogicalOperator11) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[28] = rtb_Compare_p; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[27] = rtb_Compare_eo; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[28] = 0U; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/Write 1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write2' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Duct1_F = %d * 0.1 C\n',Sensor); */ printf("Duct1_F = %d * 0.1 C\n", Duct1_F); fflush(stdout); } /* End of MATLAB Function: '/Write 1' */ /* MATLAB Function: '/Write 2' incorporates: * DataStoreRead: '/Data Store Read2' * DataStoreWrite: '/Data Store Write1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Duct2_F = %d * 0.1 C\n',Sensor); */ printf("Duct2_F = %d * 0.1 C\n", Duct2_F); fflush(stdout); } /* End of MATLAB Function: '/Write 2' */ /* MATLAB Function: '/Write 3' incorporates: * DataStoreRead: '/Data Store Read3' * DataStoreWrite: '/Data Store Write3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Duct3_F = %d * 0.1 C\n',Sensor); */ printf("Duct3_F = %d * 0.1 C\n", Duct3_F); fflush(stdout); } /* End of MATLAB Function: '/Write 3' */ /* MATLAB Function: '/Write 4' incorporates: * DataStoreRead: '/Data Store Read4' * DataStoreWrite: '/Data Store Write4' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Duct4_F = %d * 0.1 C\n',Sensor); */ printf("Duct4_F = %d * 0.1 C\n", Duct4_F); fflush(stdout); } /* End of MATLAB Function: '/Write 4' */ /* MATLAB Function: '/Write 5' incorporates: * DataStoreRead: '/Data Store Read5' * DataStoreWrite: '/Data Store Write5' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Duct5_F = %d * 0.1 C\n',Sensor); */ printf("Duct5_F = %d * 0.1 C\n", Duct5_F); fflush(stdout); } /* End of MATLAB Function: '/Write 5' */ /* MATLAB Function: '/Write 6' incorporates: * DataStoreRead: '/Data Store Read6' * DataStoreWrite: '/Data Store Write6' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Duct6_F = %d * 0.1 C\n',Sensor); */ printf("Duct6_F = %d * 0.1 C\n", Duct6_F); fflush(stdout); } /* End of MATLAB Function: '/Write 6' */ /* MATLAB Function: '/Write ERROR1' incorporates: * DataStoreRead: '/Data Store Read1' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_LogicalOperator3_cz) { /* : if(Err) */ /* : fprintf('CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct1_F = %f V\n',Sensor); */ printf("CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct1_F = %f V\n", rtb_Divide3); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR1' */ /* MATLAB Function: '/Write ERROR2' incorporates: * DataStoreRead: '/Data Store Read2' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_LogicalOperator4_fo) { /* : if(Err) */ /* : fprintf('CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct2_F = %f V\n',Sensor); */ printf("CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct2_F = %f V\n", rtb_rate); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR2' */ /* MATLAB Function: '/Write ERROR3' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_LogicalOperator6) { /* : if(Err) */ /* : fprintf('CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct3_F = %f V\n',Sensor); */ printf("CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct3_F = %f V\n", rtb_Divide6); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR3' */ /* MATLAB Function: '/Write ERROR4' incorporates: * DataStoreRead: '/Data Store Read4' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_LogicalOperator8) { /* : if(Err) */ /* : fprintf('CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct4_F = %f V\n',Sensor); */ printf("CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct4_F = %f V\n", rtb_Divide8); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR4' */ /* MATLAB Function: '/Write ERROR5' incorporates: * DataStoreRead: '/Data Store Read5' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_LogicalOperator10) { /* : if(Err) */ /* : fprintf('CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct5_F = %f V\n',Sensor); */ printf("CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct5_F = %f V\n", rtb_Divide10); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR5' */ /* MATLAB Function: '/Write ERROR6' incorporates: * DataStoreRead: '/Data Store Read6' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_LogicalOperator11) { /* : if(Err) */ /* : fprintf('CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct6_F = %f V\n',Sensor); */ printf("CCU_Body_Err.CCU_DuctTempSenErrF_Stat = 0x1 (Failure), Sensor_Duct6_F = %f V\n", rtb_Divide11); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR6' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare_it && (!rtDW.Cond_prev_private_DSTATE_h)) { rtDW.t_start_delay_private_DSTATE_k = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare_ho && (!rtDW.Cond_prev_private_DSTATE_c)) { rtDW.t_start_delay_private_DSTATE_m = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_FailCond_n && (!rtDW.Cond_prev_private_DSTATE_m)) { rtDW.t_start_delay_private_DSTATE_p = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_FailCond_b && (!rtDW.Cond_prev_private_DSTATE_j)) { rtDW.t_start_delay_private_DSTATE_hb = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_FailCond_kk && (!rtDW.Cond_prev_private_DSTATE_f)) { rtDW.t_start_delay_private_DSTATE_i = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_FailCond_fj && (!rtDW.Cond_prev_private_DSTATE_cn)) { rtDW.t_start_delay_private_DSTATE_cc = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Product: '/Divide5' incorporates: * Constant: '/Constant6' * Constant: '/Constant7' * DataStoreRead: '/Data Store Read1' * Product: '/Divide4' */ rtb_rate = (double)rtDW.ADC_Data_Model.Sensor_Rear_Duct3 / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_gg = (rtb_rate < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_m4 = (rtb_rate > 4.9); /* Logic: '/Logical Operator5' */ rtb_Compare_gh = (rtb_Compare_gg || rtb_Compare_m4); /* Logic: '/Logical Operator6' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_Compare_bp = (rtb_Compare_gh && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_cd >= 3000U)); /* Switch: '/Switch2' incorporates: * Constant: '/Constant8' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * Lookup_n-D: '/1-D Lookup Table4' * SignalConversion generated from: '/1-D Lookup Table4' */ if (rtb_Compare_bp) { Duct1_R = 230; } else { Duct1_R = look1_iu16bs16lu64n32ts16Ds32_binlcs (rtDW.ADC_Data_Model.Sensor_Rear_Duct3, rtConstP.pooled46, rtConstP.pooled45, 1023U); } /* End of Switch: '/Switch2' */ /* Product: '/Divide7' incorporates: * Constant: '/Constant10' * Constant: '/Constant9' * DataStoreRead: '/Data Store Read1' * Product: '/Divide6' */ rtb_Divide3 = (double)rtDW.ADC_Data_Model.Sensor_Rear_Duct4 / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_lus = (rtb_Divide3 < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_e1 = (rtb_Divide3 > 4.9); /* Logic: '/Logical Operator7' */ rtb_Compare_j4 = (rtb_Compare_lus || rtb_Compare_e1); /* Logic: '/Logical Operator8' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_Compare_bt = (rtb_Compare_j4 && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_o >= 3000U)); /* Switch: '/Switch3' incorporates: * Constant: '/Constant11' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write2' * Lookup_n-D: '/1-D Lookup Table4' * SignalConversion generated from: '/1-D Lookup Table4' */ if (rtb_Compare_bt) { Duct2_R = 230; } else { Duct2_R = look1_iu16bs16lu64n32ts16Ds32_binlcs (rtDW.ADC_Data_Model.Sensor_Rear_Duct4, rtConstP.pooled46, rtConstP.pooled45, 1023U); } /* End of Switch: '/Switch3' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_Divide6 = (double)rtDW.ADC_Data_Model.Sensor_Rear_Duct1 / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_mt = (rtb_Divide6 < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_fr = (rtb_Divide6 > 4.9); /* Logic: '/Logical Operator' */ rtb_Compare_ne = (rtb_Compare_mt || rtb_Compare_fr); /* Logic: '/Logical Operator1' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_Compare_p = (rtb_Compare_ne && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_oj >= 3000U)); /* Switch: '/Switch' incorporates: * Constant: '/Constant2' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write3' * Lookup_n-D: '/1-D Lookup Table4' * SignalConversion generated from: '/1-D Lookup Table4' */ if (rtb_Compare_p) { Duct3_R = 230; } else { Duct3_R = look1_iu16bs16lu64n32ts16Ds32_binlcs (rtDW.ADC_Data_Model.Sensor_Rear_Duct1, rtConstP.pooled46, rtConstP.pooled45, 1023U); } /* End of Switch: '/Switch' */ /* Product: '/Divide3' incorporates: * Constant: '/Constant3' * Constant: '/Constant4' * DataStoreRead: '/Data Store Read1' * Product: '/Divide2' */ rtb_Divide8 = (double)rtDW.ADC_Data_Model.Sensor_Rear_Duct2 / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_jf = (rtb_Divide8 < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_of = (rtb_Divide8 > 4.9); /* Logic: '/Logical Operator2' */ rtb_Compare_e = (rtb_Compare_jf || rtb_Compare_of); /* Logic: '/Logical Operator3' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_Compare_eo = (rtb_Compare_e && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_oy >= 3000U)); /* Switch: '/Switch1' incorporates: * Constant: '/Constant5' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write4' * Lookup_n-D: '/1-D Lookup Table4' * SignalConversion generated from: '/1-D Lookup Table4' */ if (rtb_Compare_eo) { Duct4_R = 230; } else { Duct4_R = look1_iu16bs16lu64n32ts16Ds32_binlcs (rtDW.ADC_Data_Model.Sensor_Rear_Duct2, rtConstP.pooled46, rtConstP.pooled45, 1023U); } /* End of Switch: '/Switch1' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[29] = rtb_Compare_p; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_Compare_p) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[30] = rtb_Compare_mt; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[29] = rtb_Compare_fr; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[30] = 0U; } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[31] = rtb_Compare_eo; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_Compare_eo) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[32] = rtb_Compare_jf; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[31] = rtb_Compare_of; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[32] = 0U; } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[33] = rtb_Compare_bp; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_Compare_bp) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[34] = rtb_Compare_gg; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[33] = rtb_Compare_m4; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[34] = 0U; } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[35] = rtb_Compare_bt; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_Compare_bt) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[36] = rtb_Compare_lus; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[35] = rtb_Compare_e1; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[36] = 0U; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/Write ' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Duct1_R = %d * 0.1 C %d V\n',Sensor, int16(V)); */ rtb_out_b = rtDW.ADC_Data_Model.Sensor_Rear_Duct1; if (rtDW.ADC_Data_Model.Sensor_Rear_Duct1 > 32767) { rtb_out_b = 32767U; } printf("Duct1_R = %d * 0.1 C %d V\n", Duct3_R, (int16_t)rtb_out_b); fflush(stdout); } /* End of MATLAB Function: '/Write ' */ /* MATLAB Function: '/Write 1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write4' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Duct2_R = %d * 0.1 C %d V\n',Sensor, int16(V)); */ rtb_out_b = rtDW.ADC_Data_Model.Sensor_Rear_Duct2; if (rtDW.ADC_Data_Model.Sensor_Rear_Duct2 > 32767) { rtb_out_b = 32767U; } printf("Duct2_R = %d * 0.1 C %d V\n", Duct4_R, (int16_t)rtb_out_b); fflush(stdout); } /* End of MATLAB Function: '/Write 1' */ /* MATLAB Function: '/Write 2' incorporates: * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Duct3_R = %d * 0.1 C %d V\n',Sensor, int16(V)); */ rtb_out_b = rtDW.ADC_Data_Model.Sensor_Rear_Duct3; if (rtDW.ADC_Data_Model.Sensor_Rear_Duct3 > 32767) { rtb_out_b = 32767U; } printf("Duct3_R = %d * 0.1 C %d V\n", Duct1_R, (int16_t)rtb_out_b); fflush(stdout); } /* End of MATLAB Function: '/Write 2' */ /* MATLAB Function: '/Write 3' incorporates: * DataStoreRead: '/Data Store Read3' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write2' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Duct4_R = %d * 0.1 C %d V\n',Sensor, int16(V)); */ rtb_out_b = rtDW.ADC_Data_Model.Sensor_Rear_Duct4; if (rtDW.ADC_Data_Model.Sensor_Rear_Duct4 > 32767) { rtb_out_b = 32767U; } printf("Duct4_R = %d * 0.1 C %d V\n", Duct2_R, (int16_t)rtb_out_b); fflush(stdout); } /* End of MATLAB Function: '/Write 3' */ /* MATLAB Function: '/Write ERROR' incorporates: * DataStoreRead: '/Data Store Read' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_Compare_p) { /* : if(Err) */ /* : fprintf('CCU_Body_Err.CCU_DuctTempSenErrR_Stat = 0x1 (Failure), Sensor_Duct1_R = %f V\n',Sensor); */ printf("CCU_Body_Err.CCU_DuctTempSenErrR_Stat = 0x1 (Failure), Sensor_Duct1_R = %f V\n", rtb_Divide6); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR' */ /* MATLAB Function: '/Write ERROR1' incorporates: * DataStoreRead: '/Data Store Read1' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_Compare_eo) { /* : if(Err) */ /* : fprintf('CCU_Body_Err.CCU_DuctTempSenErrR_Stat = 0x1 (Failure), Sensor_Duct2_R = %f V\n',Sensor); */ printf("CCU_Body_Err.CCU_DuctTempSenErrR_Stat = 0x1 (Failure), Sensor_Duct2_R = %f V\n", rtb_Divide8); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR1' */ /* MATLAB Function: '/Write ERROR2' incorporates: * DataStoreRead: '/Data Store Read2' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_Compare_bp) { /* : if(Err) */ /* : fprintf('CCU_Body_Err.CCU_DuctTempSenErrR_Stat = 0x1 (Failure), Sensor_Duct3_R = %f V\n',Sensor); */ printf("CCU_Body_Err.CCU_DuctTempSenErrR_Stat = 0x1 (Failure), Sensor_Duct3_R = %f V\n", rtb_rate); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR2' */ /* MATLAB Function: '/Write ERROR3' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_Compare_bt) { /* : if(Err) */ /* : fprintf('CCU_Body_Err.CCU_DuctTempSenErrR_Stat = 0x1 (Failure), Sensor_Duct4_R = %f V\n',Sensor); */ printf("CCU_Body_Err.CCU_DuctTempSenErrR_Stat = 0x1 (Failure), Sensor_Duct4_R = %f V\n", rtb_Divide3); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR3' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare_ne && (!rtDW.Cond_prev_private_DSTATE_l)) { rtDW.t_start_delay_private_DSTATE_oj = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare_e && (!rtDW.Cond_prev_private_DSTATE_ja)) { rtDW.t_start_delay_private_DSTATE_oy = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare_gh && (!rtDW.Cond_prev_private_DSTATE_g)) { rtDW.t_start_delay_private_DSTATE_cd = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare_j4 && (!rtDW.Cond_prev_private_DSTATE_cd)) { rtDW.t_start_delay_private_DSTATE_o = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.Sensor_Incar_Temp_FL / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_lus = (rtb_rate < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_e1 = (rtb_rate > 4.9); /* Logic: '/Logical Operator' */ rtb_Compare_gg = (rtb_Compare_lus || rtb_Compare_e1); /* Logic: '/Logical Operator1' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_Compare_mt = (rtb_Compare_gg && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_g >= 3000U)); /* Switch: '/Switch' incorporates: * Constant: '/Constant2' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write' * Lookup_n-D: '/1-D Lookup Table' */ if (rtb_Compare_mt) { rtDW.Incar_FL = 200; } else { rtDW.Incar_FL = look1_iu16tdIs16_binlcs (rtDW.ADC_Data_Model.Sensor_Incar_Temp_FL, rtConstP.pooled52, rtConstP.pooled9, 1023U); } /* End of Switch: '/Switch' */ /* Product: '/Divide3' incorporates: * Constant: '/Constant3' * Constant: '/Constant4' * DataStoreRead: '/Data Store Read1' * Product: '/Divide2' */ rtb_Divide3 = (double)rtDW.ADC_Data_Model.Sensor_Incar_Temp_RL / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_jf = (rtb_Divide3 < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_of = (rtb_Divide3 > 4.9); /* Logic: '/Logical Operator2' */ rtb_Compare_m4 = (rtb_Compare_jf || rtb_Compare_of); /* Logic: '/Logical Operator3' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_Compare_fr = (rtb_Compare_m4 && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_j >= 3000U)); /* Switch: '/Switch1' incorporates: * Constant: '/Constant5' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * Lookup_n-D: '/1-D Lookup Table1' */ if (rtb_Compare_fr) { rtDW.Incar_RL = 200; } else { rtDW.Incar_RL = look1_iu16tdIs16_binlcs (rtDW.ADC_Data_Model.Sensor_Incar_Temp_RL, rtConstP.pooled52, rtConstP.pooled9, 1023U); } /* End of Switch: '/Switch1' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[2] = rtb_Compare_mt; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_Compare_mt) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[3] = rtb_Compare_lus; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[2] = rtb_Compare_e1; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[3] = 0U; } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[6] = rtb_Compare_fr; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_Compare_fr) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[7] = rtb_Compare_jf; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[6] = rtb_Compare_of; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[7] = 0U; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/Write ERROR' incorporates: * DataStoreRead: '/Data Store Read' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_Compare_mt) { /* : if(IncarFLErr) */ /* : fprintf('CCU_Body_Err.CCU_IncarTempErrF_Stat = 0x1 (Failure), Sensor_Incar_Temp_FL = %f V\n',Sensor_Incar_Temp_FL); */ printf("CCU_Body_Err.CCU_IncarTempErrF_Stat = 0x1 (Failure), Sensor_Incar_Temp_FL = %f V\n", rtb_rate); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR' */ /* MATLAB Function: '/Write ERROR1' incorporates: * DataStoreRead: '/Data Store Read1' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_Compare_fr) { /* : if(IncarRLErr) */ /* : fprintf('CCU_Body_Err.CCU_IncarTempErrF_Stat = 0x1 (Failure), Sensor_Incar_Temp_RL = %f V\n',Sensor_Incar_Temp_RL); */ printf("CCU_Body_Err.CCU_IncarTempErrF_Stat = 0x1 (Failure), Sensor_Incar_Temp_RL = %f V\n", rtb_Divide3); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR1' */ /* MATLAB Function: '/Write IncarFL' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('IncarFL = %d * 0.1 C\n',IncarFL); */ printf("IncarFL = %d * 0.1 C\n", rtDW.Incar_FL); fflush(stdout); } /* End of MATLAB Function: '/Write IncarFL' */ /* MATLAB Function: '/Write IncarRL' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('IncarRL = %d * 0.1 C\n',IncarRL); */ printf("IncarRL = %d * 0.1 C\n", rtDW.Incar_RL); fflush(stdout); } /* End of MATLAB Function: '/Write IncarRL' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare_gg && (!rtDW.Cond_prev_private_DSTATE_e)) { rtDW.t_start_delay_private_DSTATE_g = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare_m4 && (!rtDW.Cond_prev_private_DSTATE_mv)) { rtDW.t_start_delay_private_DSTATE_j = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.Sensor_Incar_Temp_FR / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_jf = (rtb_rate < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_of = (rtb_rate > 4.9); /* Logic: '/Logical Operator' */ rtb_Compare_lus = (rtb_Compare_jf || rtb_Compare_of); /* Logic: '/Logical Operator1' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator1_l = (rtb_Compare_lus && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_kw >= 3000U)); /* Switch: '/Switch' incorporates: * Constant: '/Constant2' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * Lookup_n-D: '/1-D Lookup Table' */ if (rtb_LogicalOperator1_l) { rtDW.Incar_FR = 200; } else { rtDW.Incar_FR = look1_iu16tdIs16_binlcs (rtDW.ADC_Data_Model.Sensor_Incar_Temp_FR, rtConstP.pooled52, rtConstP.pooled9, 1023U); } /* End of Switch: '/Switch' */ /* Product: '/Divide3' incorporates: * Constant: '/Constant3' * Constant: '/Constant4' * DataStoreRead: '/Data Store Read1' * Product: '/Divide2' */ rtb_Divide3 = (double)rtDW.ADC_Data_Model.Sensor_Incar_Temp_RR / 4095.0 * 5.0; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_esy = (rtb_Divide3 < 0.15); /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ rtb_Compare_a = (rtb_Divide3 > 4.9); /* Logic: '/Logical Operator2' */ rtb_Compare_e1 = (rtb_Compare_esy || rtb_Compare_a); /* Logic: '/Logical Operator3' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read4' * RelationalOperator: '/Compare' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator3_p0 = (rtb_Compare_e1 && (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_gd >= 3000U)); /* Switch: '/Switch1' incorporates: * Constant: '/Constant5' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write2' * Lookup_n-D: '/1-D Lookup Table1' */ if (rtb_LogicalOperator3_p0) { rtDW.Incar_RR = 200; } else { rtDW.Incar_RR = look1_iu16tdIs16_binlcs (rtDW.ADC_Data_Model.Sensor_Incar_Temp_RR, rtConstP.pooled52, rtConstP.pooled9, 1023U); } /* End of Switch: '/Switch1' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[4] = rtb_LogicalOperator1_l; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_LogicalOperator1_l) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[5] = rtb_Compare_jf; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[4] = rtb_Compare_of; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[5] = 0U; } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[8] = rtb_LogicalOperator3_p0; /* Switch: '/Switch' incorporates: * DataTypeConversion: '/Data Type Conversion' * Switch: '/Switch1' */ if (rtb_LogicalOperator3_p0) { /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion1' */ rtDW.dtc_state_error_model[9] = rtb_Compare_esy; /* DataStoreWrite: '/Data Store Write1' incorporates: * DataTypeConversion: '/Data Type Conversion2' */ rtDW.dtc_state_error_model[8] = rtb_Compare_a; } else { /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.dtc_state_error_model[9] = 0U; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/Write ERROR' incorporates: * DataStoreRead: '/Data Store Read' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_LogicalOperator1_l) { /* : if(IncarRLErr) */ /* : fprintf('CCU_Body_Err.CCU_IncarTempErrR_Stat = 0x1 (Failure), Sensor_Incar_Temp_FR = %f V\n',Sensor_Incar_Temp_FR); */ printf("CCU_Body_Err.CCU_IncarTempErrR_Stat = 0x1 (Failure), Sensor_Incar_Temp_FR = %f V\n", rtb_rate); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR' */ /* MATLAB Function: '/Write ERROR1' incorporates: * DataStoreRead: '/Data Store Read1' */ /* : if(LOGGER) */ if ((rtDW.LOGGER_ACP != 0.0) && rtb_LogicalOperator3_p0) { /* : if(IncarRLErr) */ /* : fprintf('CCU_Body_Err.CCU_IncarTempErrR_Stat = 0x1 (Failure), Sensor_Incar_Temp_RR = %f V\n',Sensor_Incar_Temp_RR); */ printf("CCU_Body_Err.CCU_IncarTempErrR_Stat = 0x1 (Failure), Sensor_Incar_Temp_RR = %f V\n", rtb_Divide3); fflush(stdout); } /* End of MATLAB Function: '/Write ERROR1' */ /* MATLAB Function: '/Write IncarFR' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('IncarFR = %d * 0.1 C\n',IncarFR); */ printf("IncarFR = %d * 0.1 C\n", rtDW.Incar_FR); fflush(stdout); } /* End of MATLAB Function: '/Write IncarFR' */ /* MATLAB Function: '/Write IncarRR' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write2' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('IncarRR = %d * 0.1 C\n',IncarRR); */ printf("IncarRR = %d * 0.1 C\n", rtDW.Incar_RR); fflush(stdout); } /* End of MATLAB Function: '/Write IncarRR' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare_lus && (!rtDW.Cond_prev_private_DSTATE_jl)) { rtDW.t_start_delay_private_DSTATE_kw = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_Compare_e1 && (!rtDW.Cond_prev_private_DSTATE_ei)) { rtDW.t_start_delay_private_DSTATE_gd = rtDW.t_now; } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.LOGGER_ACP = 0.0; /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.BTS5120_2EKA_ShutoffValvePowerTXV1 / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('BTS5120_2EKA_ShutoffValvePowerTXV1 V = %f Iout = %f\n',U,I); */ printf("BTS5120_2EKA_ShutoffValvePowerTXV1 V = %f Iout = %f\n", rtb_rate, rtb_rate / 1200.0 * 550.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.BTS5120_2EKA_ShutoffValvePowerTXV2 / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('BTS5120_2EKA_ShutoffValvePowerTXV2 V = %f Iout = %f\n',U,I); */ printf("BTS5120_2EKA_ShutoffValvePowerTXV2 V = %f Iout = %f\n", rtb_rate, rtb_rate / 1200.0 * 550.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.BTS5180_2EKA_ChannelPTCPower1 / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('BTS5180_2EKA_ChannelPTCPower1 V = %f Iout = %f\n',U,I); */ printf("BTS5180_2EKA_ChannelPTCPower1 V = %f Iout = %f\n", rtb_rate, rtb_rate / 1200.0 * 550.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.BTS5180_2EKA_ChannelPTCPower2 / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('BTS5180_2EKA_ChannelPTCPower2 V = %f Iout = %f\n',U,I); */ printf("BTS5180_2EKA_ChannelPTCPower2 V = %f Iout = %f\n", rtb_rate, rtb_rate / 1200.0 * 550.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.BTS5180_2EKA_FrontIncarMotor / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('BTS5180_2EKA_FrontIncarMotor V = %f Iout = %f\n',U,I); */ printf("BTS5180_2EKA_FrontIncarMotor V = %f Iout = %f\n", rtb_rate, rtb_rate / 1200.0 * 550.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.BTS5180_2EKA_RearIncarMotor / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('BTS5180_2EKA_RearIncarMotor V = %f Iout = %f\n',U,I); */ printf("BTS5180_2EKA_RearIncarMotor V = %f Iout = %f\n", rtb_rate, rtb_rate / 1200.0 * 550.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.BTS5180_2EKA_ReservePowerSupply / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('BTS5180_2EKA_ReservePowerSupply V = %f Iout = %f\n',U,I); */ printf("BTS5180_2EKA_ReservePowerSupply V = %f Iout = %f\n", rtb_rate, rtb_rate / 1200.0 * 550.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.BTS5180_2EKA_ShutOFFValveFront / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('BTS5180_2EKA_ShutOFFValveFront V = %f Iout = %f\n',U,I); */ printf("BTS5180_2EKA_ShutOFFValveFront V = %f Iout = %f\n", rtb_rate, rtb_rate / 1200.0 * 550.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.BTS5180_2EKA_ShutOFFValveRear / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('BTS5180_2EKA_ShutOFFValveRear V = %f Iout = %f\n',U,I); */ printf("BTS5180_2EKA_ShutOFFValveRear V = %f Iout = %f\n", rtb_rate, rtb_rate / 1200.0 * 550.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.BTS5180_2EKA_TwoWayValve / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('BTS5180_2EKA_TwoWayValve V = %f Iout = %f\n',U,I); */ printf("BTS5180_2EKA_TwoWayValve V = %f Iout = %f\n", rtb_rate, rtb_rate / 1200.0 * 550.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' * Product: '/Divide1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('IGN_ANS = %f V\n',data); */ printf("IGN_ANS = %f V\n", (double)rtDW.ADC_Data_Model.IGN_ANS / 4095.0 * 27.75); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' * Product: '/Divide1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('PBATT_CHECK V = %f\n',U); */ printf("PBATT_CHECK V = %f\n", (double)rtDW.ADC_Data_Model.PBATT_CHECK / 4095.0 * 33.4375); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' * Product: '/Divide1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Pressure_DIAG V = %f\n',U); */ printf("Pressure_DIAG V = %f\n", (double)rtDW.ADC_Data_Model.Pressure_DIAG / 4095.0 * 6.0638); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' * Product: '/Divide1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Reserve_Sensor_Duct_Temp_1 V = %f\n',U); */ printf("Reserve_Sensor_Duct_Temp_1 V = %f\n", (double) rtDW.ADC_Data_Model.Reserve_Sensor_Duct_Temp_1 / 4095.0 * 5.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' * Product: '/Divide1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Reserve_Sensor_Duct_Temp_2 V = %f\n',U); */ printf("Reserve_Sensor_Duct_Temp_2 V = %f\n", (double) rtDW.ADC_Data_Model.Reserve_Sensor_Duct_Temp_2 / 4095.0 * 5.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' * Product: '/Divide1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Sensor_Front_Duct5 V = %f\n',U); */ printf("Sensor_Front_Duct5 V = %f\n", (double) rtDW.ADC_Data_Model.Sensor_Rear_Duct5 / 4095.0 * 5.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' * Product: '/Divide1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Sensor_Front_Duct V = %f\n',U); */ printf("Sensor_Front_Duct V = %f\n", (double) rtDW.ADC_Data_Model.Sensor_Rear_Duct6 / 4095.0 * 5.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' * Product: '/Divide1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('VN7008AJ_DIAG_FrontLINActuatorPowerDriverAB V = %f\n',U); */ printf("VN7008AJ_DIAG_FrontLINActuatorPowerDriverAB V = %f\n", (double) rtDW.ADC_Data_Model.VN7008AJ_DIAG_FrontLINActuatorPowerDriverAB / 4095.0 * 17.5); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' * Product: '/Divide1' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('VN7008AJ_DIAG_RearLINActuatorPowerDriverC V = %f\n',U); */ printf("VN7008AJ_DIAG_RearLINActuatorPowerDriverC V = %f\n", (double) rtDW.ADC_Data_Model.VN7008AJ_DIAG_RearLINActuatorPowerDriverC / 4095.0 * 17.5); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.VN7008AJ_FrontLINActuatorPowerDriverAB / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('VN7008AJ_FrontLINActuatorPowerDriverAB V = %f Iout = %f\n',U,I); */ printf("VN7008AJ_FrontLINActuatorPowerDriverAB V = %f Iout = %f\n", rtb_rate, rtb_rate / 2490.0 * 5890.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* Product: '/Divide1' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * DataStoreRead: '/Data Store Read1' * Product: '/Divide' */ rtb_rate = (double)rtDW.ADC_Data_Model.VN7008AJ_RearLINActuatorPowerDriverC / 4095.0 * 5.0; /* MATLAB Function: '/Write' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read' * Product: '/Divide2' * Product: '/Divide3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('VN7008AJ_RearLINActuatorPowerDriverC V = %f Iout = %f\n',U,I); */ printf("VN7008AJ_RearLINActuatorPowerDriverC V = %f Iout = %f\n", rtb_rate, rtb_rate / 2490.0 * 5890.0); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('ST_ReservePower = %u \n',data); */ printf("ST_ReservePower = %u \n", rtDW.ADC_Key_Data_Model.ST_ReservePower); fflush(stdout); } /* End of MATLAB Function: '/Write' */ /* MATLAB Function: '/Write1' incorporates: * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('ST_BATTChiller = %u \n',data); */ printf("ST_BATTChiller = %u \n", rtDW.ADC_Key_Data_Model.ST_BATTChiller); fflush(stdout); } /* End of MATLAB Function: '/Write1' */ /* MATLAB Function: '/Write2' incorporates: * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('EmergencyAirCleanSwitch = %u \n',data); */ printf("EmergencyAirCleanSwitch = %u \n", rtDW.ADC_Key_Data_Model.EmergencyAirCleanSwitch); fflush(stdout); } /* End of MATLAB Function: '/Write2' */ /* MATLAB Function: '/Write3' incorporates: * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('FireExtinguishSwitch = %u \n',data); */ printf("FireExtinguishSwitch = %u \n", rtDW.ADC_Key_Data_Model.FireExtinguishSwitch); fflush(stdout); } /* End of MATLAB Function: '/Write3' */ /* MATLAB Function: '/Write4' incorporates: * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER) */ if (rtDW.LOGGER_ACP != 0.0) { /* : fprintf('Ign_Wakeup = %u \n',data); */ printf("Ign_Wakeup = %u \n", rtDW.ADC_Key_Data_Model.Ign_Wakeup); fflush(stdout); } /* End of MATLAB Function: '/Write4' */ /* BusCreator: '/Bus Creator' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read2' * DataStoreWrite: '/Data Store Write' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion' * Logic: '/Logical Operator13' * Logic: '/Logical Operator4' * Logic: '/Logical Operator4' * Logic: '/Logical Operator4' */ CCU_Errors_Model.CCU_IncarTempErrF_Stat = (uint8_t)(rtb_Compare_mt || rtb_Compare_fr); CCU_Errors_Model.CCU_IncarTempErrR_Stat = (uint8_t)(rtb_LogicalOperator1_l || rtb_LogicalOperator3_p0); CCU_Errors_Model.CCU_DuctTempSenErrF_Stat = (uint8_t)(rtb_LogicalOperator3_cz || rtb_LogicalOperator4_fo || rtb_LogicalOperator6 || rtb_LogicalOperator8 || rtb_LogicalOperator10 || rtb_LogicalOperator11); CCU_Errors_Model.CCU_DuctTempSenErrR_Stat = (uint8_t)(rtb_Compare_p || rtb_Compare_eo || rtb_Compare_bp || rtb_Compare_bt); CCU_Errors_Model.CCU_EvaTempSenErrF_Stat = rtb_LogicalOperator1; CCU_Errors_Model.CCU_EvaTempSenErrR_Stat = rtb_LogicalOperator1_dv; CCU_Errors_Model.CCU_DeflectorSwErrF_Stat = 0U; CCU_Errors_Model.CCU_DeflectorSwErrR_Stat = 0U; CCU_Errors_Model.CCU_PressSenErr_Stat = rtb_LogicalOperator1_n; CCU_Errors_Model.CCU_AmbienTemptSenErr_Stat = 0U; CCU_Errors_Model.CCU_SealingValveErr_Stat = 0U; CCU_Errors_Model.CCU_ETXVerr_Stat = 0U; CCU_Errors_Model.CCU_HVACfanOrTXVerrF_Stat = 0U; CCU_Errors_Model.CCU_HVACfanOrTXVerrR_Stat = 0U; CCU_Errors_Model.CCU_ActuatorErrF_Stat = rtDW.CCU_ActuatorErrF_Stat_private; CCU_Errors_Model.CCU_ActuatorErrR_Stat = rtDW.CCU_ActuatorErrR_Stat_private; CCU_Errors_Model.CCU_UltravioletErr_Stat = 0U; CCU_Errors_Model.CCU_VinRecordErr_Stat = 0U; CCU_Errors_Model.CCU_AirQualSenErr_Stat = 0U; CCU_Errors_Model.CCU_CommErr_Stat = 0U; CCU_Errors_Model.CCU_TWVerr_Stat = 0U; CCU_Errors_Model.CCU_IonizationErr_Stat = 0U; CCU_Errors_Model.CCU_AromaErr_Stat = 0U; /* Saturate: '/Saturation' incorporates: * DataStoreRead: '/Data Store Read' */ if (rtb_LVL > 1000) { rtb_Saturation_n = 1000; } else if (rtb_LVL < -1000) { rtb_Saturation_n = -1000; } else { rtb_Saturation_n = rtb_LVL; } /* End of Saturate: '/Saturation' */ /* MATLAB Function: '/Convert_g_assAMB_LV_UP' */ /* : c_g_assAMB_LV_UP = [-1000, g_assAMB_LV_UP(5), g_assAMB_LV_UP(4), g_assAMB_LV_UP(3), g_assAMB_LV_UP(2), g_assAMB_LV_UP(1)]; */ rtb_uDLookupTable7[0] = -1000; rtb_uDLookupTable7[1] = g_assAMB_LV_UP[4]; rtb_uDLookupTable7[2] = g_assAMB_LV_UP[3]; rtb_uDLookupTable7[3] = g_assAMB_LV_UP[2]; rtb_uDLookupTable7[4] = g_assAMB_LV_UP[1]; rtb_uDLookupTable7[5] = g_assAMB_LV_UP[0]; /* SwitchCase: '/Switch Case' incorporates: * Lookup_n-D: '/1-D Lookup Table' * Saturate: '/Saturation' */ switch ((int8_t)rtConstP.pooled40[plook_u32s16_bincka(rtb_Saturation_n, rtb_uDLookupTable7, 5U)]) { case 0: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem' incorporates: * ActionPort: '/Action Port' */ /* Merge: '/Merge' incorporates: * MATLAB Function: '/Convert_g_assAMB_LV_UP_1' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ /* : c_g_assAMB_LV_UP_1 = g_assAMB_LV_UP(1); */ rtB.Merge_b = (uint8_t)(rtb_Saturation_n <= g_assAMB_LV_UP[0]); /* End of Outputs for SubSystem: '/Switch Case Action Subsystem' */ break; case 1: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem1' incorporates: * ActionPort: '/Action Port' */ /* Switch: '/Switch' incorporates: * MATLAB Function: '/Convert_g_assAMB_LV_UP_2' * RelationalOperator: '/Relational Operator' */ /* : c_g_assAMB_LV_DN_1 = g_assAMB_LV_DN(1); */ /* : c_g_assAMB_LV_UP_2 = g_assAMB_LV_UP(2); */ if (rtb_Saturation_n > g_assAMB_LV_UP[1]) { /* Merge: '/Merge' incorporates: * MATLAB Function: '/Convert_g_assAMB_LV_DN_1' * RelationalOperator: '/Relational Operator1' */ rtB.Merge_b = (uint8_t)(rtb_Saturation_n <= g_assAMB_LV_DN[0]); } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv2' */ rtB.Merge_b = 2U; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ /* Switch: '/Switch2' incorporates: * MATLAB Function: '/Convert_g_assAMB_LV_UP_3' * RelationalOperator: '/Relational Operator' */ /* : c_g_assAMB_LV_DN_2 = g_assAMB_LV_DN(2); */ /* : c_g_assAMB_LV_UP_3 = g_assAMB_LV_UP(3); */ if (rtb_Saturation_n > g_assAMB_LV_UP[2]) { /* Switch: '/Switch3' incorporates: * MATLAB Function: '/Convert_g_assAMB_LV_DN_2' * RelationalOperator: '/Relational Operator1' */ if (rtb_Saturation_n > g_assAMB_LV_DN[1]) { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv1' */ rtB.Merge_b = 1U; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv2' */ rtB.Merge_b = 2U; } /* End of Switch: '/Switch3' */ } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv3' */ rtB.Merge_b = 3U; } /* End of Switch: '/Switch2' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ /* Switch: '/Switch2' incorporates: * MATLAB Function: '/Convert_g_assAMB_LV_UP_4' * RelationalOperator: '/Relational Operator' */ /* : c_g_assAMB_LV_DN_3 = g_assAMB_LV_DN(3); */ /* : c_g_assAMB_LV_UP_4 = g_assAMB_LV_UP(4); */ if (rtb_Saturation_n > g_assAMB_LV_UP[3]) { /* Switch: '/Switch3' incorporates: * MATLAB Function: '/Convert_g_assAMB_LV_DN_3' * RelationalOperator: '/Relational Operator1' */ if (rtb_Saturation_n > g_assAMB_LV_DN[2]) { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv2' */ rtB.Merge_b = 2U; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv3' */ rtB.Merge_b = 3U; } /* End of Switch: '/Switch3' */ } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv4' */ rtB.Merge_b = 4U; } /* End of Switch: '/Switch2' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem3' */ break; case 4: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem4' incorporates: * ActionPort: '/Action Port' */ /* Switch: '/Switch2' incorporates: * MATLAB Function: '/Convert_g_assAMB_LV_UP_5' * RelationalOperator: '/Relational Operator' */ /* : c_g_assAMB_LV_DN_4 = g_assAMB_LV_DN(4); */ /* : c_g_assAMB_LV_UP_5 = g_assAMB_LV_UP(5); */ if (rtb_Saturation_n > g_assAMB_LV_UP[4]) { /* Switch: '/Switch3' incorporates: * MATLAB Function: '/Convert_g_assAMB_LV_DN_4' * RelationalOperator: '/Relational Operator1' */ if (rtb_Saturation_n > g_assAMB_LV_DN[3]) { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv3' */ rtB.Merge_b = 3U; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv4' */ rtB.Merge_b = 4U; } /* End of Switch: '/Switch3' */ } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv5' */ rtB.Merge_b = 5U; } /* End of Switch: '/Switch2' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem4' */ break; case 5: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem5' incorporates: * ActionPort: '/Action Port' */ /* Switch: '/Switch1' incorporates: * MATLAB Function: '/Convert_g_assAMB_LV_DN_5' * RelationalOperator: '/Relational Operator' */ /* : c_g_assAMB_LV_DN_5 = g_assAMB_LV_DN(5); */ if (rtb_Saturation_n > g_assAMB_LV_DN[4]) { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv4' */ rtB.Merge_b = 4U; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant_Lv5' */ rtB.Merge_b = 5U; } /* End of Switch: '/Switch1' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem5' */ break; } /* End of SwitchCase: '/Switch Case' */ /* Saturate: '/Saturation' incorporates: * DataStoreRead: '/Data Store Read1' */ if (rtDW.FIU_SET_FL > 290) { i = 290; } else if (rtDW.FIU_SET_FL < 170) { i = 170; } else { i = rtDW.FIU_SET_FL; } /* Gain: '/Gain' incorporates: * Saturate: '/Saturation' */ i *= 13107; rtb_Merge_j = (uint8_t)((((uint32_t)i & 65536U) != 0U) + (i >> 17)); /* MATLAB Function: '/Modes for levels' */ /* : get_modes_for_levels = [g_aucMODE_BY_SET_F_LV0; */ /* : g_aucMODE_BY_SET_F_LV1; */ /* : g_aucMODE_BY_SET_F_LV2; */ /* : g_aucMODE_BY_SET_F_LV3; */ /* : g_aucMODE_BY_SET_F_LV4; */ /* : g_aucMODE_BY_SET_F_LV5; */ /* : ]; */ for (i = 0; i < 13; i++) { rtb_get_modes_for_levels[6 * i] = g_aucMODE_BY_SET_F_LV0[i]; rtb_get_modes_for_levels[6 * i + 1] = g_aucMODE_BY_SET_F_LV1[i]; rtb_get_modes_for_levels[6 * i + 2] = g_aucMODE_BY_SET_F_LV2[i]; rtb_get_modes_for_levels[6 * i + 3] = g_aucMODE_BY_SET_F_LV3[i]; rtb_get_modes_for_levels[6 * i + 4] = g_aucMODE_BY_SET_F_LV4[i]; rtb_get_modes_for_levels[6 * i + 5] = g_aucMODE_BY_SET_F_LV5[i]; } /* End of MATLAB Function: '/Modes for levels' */ /* Lookup_n-D: '/Выбор режима Left' incorporates: * Gain: '/Gain' * Merge: '/Merge' */ rtb_Merge_m = look2_iu8bu8s16lu64n32_binlcse(rtB.Merge_b, rtb_Merge_j, rtConstP.pooled86, rtConstP.pooled49, rtb_get_modes_for_levels, rtConstP.pooled38, 6U); /* MATLAB Function: '/Начальные положения заслонок left' */ left(rtb_Merge_m, rtb_vals_m); /* Saturate: '/Saturation1' incorporates: * DataStoreRead: '/Data Store Read2' */ if (rtDW.FIU_SET_FR > 290) { i = 290; } else if (rtDW.FIU_SET_FR < 170) { i = 170; } else { i = rtDW.FIU_SET_FR; } /* Gain: '/Gain2' incorporates: * Saturate: '/Saturation1' */ i *= 13107; rtb_Merge_e = (uint8_t)((((uint32_t)i & 65536U) != 0U) + (i >> 17)); /* SwitchCase: '/Switch for Left ' incorporates: * DataStoreRead: '/Data Store Read' */ switch (rtb_Merge_m) { case 10: break; case 20: for (i = 0; i < 9; i++) { /* Outputs for IfAction SubSystem: '/Bilevel' incorporates: * ActionPort: '/Action Port' */ Merge[i] = rtb_vals_m[i]; /* End of Outputs for SubSystem: '/Bilevel' */ } /* Outputs for IfAction SubSystem: '/Bilevel' incorporates: * ActionPort: '/Action Port' */ Bilevel(rtb_LVL, rtB.Merge_b, Merge, rtb_Merge_j, rtb_Merge_e); /* End of Outputs for SubSystem: '/Bilevel' */ break; case 30: for (i = 0; i < 9; i++) { /* Outputs for IfAction SubSystem: '/Bilevel2' incorporates: * ActionPort: '/Action Port' */ Merge[i] = rtb_vals_m[i]; /* End of Outputs for SubSystem: '/Bilevel2' */ } /* Outputs for IfAction SubSystem: '/Bilevel2' incorporates: * ActionPort: '/Action Port' */ Bilevel2(rtb_LVL, rtB.Merge_b, Merge, rtb_Merge_j, rtb_Merge_e); /* End of Outputs for SubSystem: '/Bilevel2' */ break; case 40: for (i = 0; i < 9; i++) { /* Outputs for IfAction SubSystem: '/Afoot' incorporates: * ActionPort: '/Action Port' */ Merge[i] = rtb_vals_m[i]; /* End of Outputs for SubSystem: '/Afoot' */ } /* Outputs for IfAction SubSystem: '/Afoot' incorporates: * ActionPort: '/Action Port' */ Afoot(rtb_LVL, rtB.Merge_b, Merge, rtb_Merge_j, rtb_Merge_e); /* End of Outputs for SubSystem: '/Afoot' */ break; case 50: for (i = 0; i < 9; i++) { /* Outputs for IfAction SubSystem: '/Afoot_Summer' incorporates: * ActionPort: '/Action Port' */ Merge[i] = rtb_vals_m[i]; /* End of Outputs for SubSystem: '/Afoot_Summer' */ } /* Outputs for IfAction SubSystem: '/Afoot_Summer' incorporates: * ActionPort: '/Action Port' */ Afoot_Summer(rtb_LVL, rtB.Merge_b, Merge, rtb_Merge_j, rtb_Merge_e); /* End of Outputs for SubSystem: '/Afoot_Summer' */ break; } /* End of SwitchCase: '/Switch for Left ' */ /* Lookup_n-D: '/Выбор режима Right' incorporates: * Gain: '/Gain2' * Merge: '/Merge' */ rtb_Merge_m = look2_iu8bu8s16lu64n32_binlcse(rtB.Merge_b, rtb_Merge_e, rtConstP.pooled86, rtConstP.pooled49, rtb_get_modes_for_levels, rtConstP.pooled38, 6U); /* MATLAB Function: '/Начальные положения заслонок right' */ left(rtb_Merge_m, rtb_vals_m); /* SwitchCase: '/Switch for Left ' incorporates: * DataStoreRead: '/Data Store Read' */ switch (rtb_Merge_m) { case 10: break; case 20: for (i = 0; i < 9; i++) { /* Outputs for IfAction SubSystem: '/Bilevel' incorporates: * ActionPort: '/Action Port' */ Merge[i] = rtb_vals_m[i]; /* End of Outputs for SubSystem: '/Bilevel' */ } /* Outputs for IfAction SubSystem: '/Bilevel' incorporates: * ActionPort: '/Action Port' */ Bilevel(rtb_LVL, rtB.Merge_b, Merge, rtb_Merge_j, rtb_Merge_e); /* End of Outputs for SubSystem: '/Bilevel' */ break; case 30: for (i = 0; i < 9; i++) { /* Outputs for IfAction SubSystem: '/Bilevel2' incorporates: * ActionPort: '/Action Port' */ Merge[i] = rtb_vals_m[i]; /* End of Outputs for SubSystem: '/Bilevel2' */ } /* Outputs for IfAction SubSystem: '/Bilevel2' incorporates: * ActionPort: '/Action Port' */ Bilevel2(rtb_LVL, rtB.Merge_b, Merge, rtb_Merge_j, rtb_Merge_e); /* End of Outputs for SubSystem: '/Bilevel2' */ break; case 40: for (i = 0; i < 9; i++) { /* Outputs for IfAction SubSystem: '/Afoot' incorporates: * ActionPort: '/Action Port' */ Merge[i] = rtb_vals_m[i]; /* End of Outputs for SubSystem: '/Afoot' */ } /* Outputs for IfAction SubSystem: '/Afoot' incorporates: * ActionPort: '/Action Port' */ Afoot(rtb_LVL, rtB.Merge_b, Merge, rtb_Merge_j, rtb_Merge_e); /* End of Outputs for SubSystem: '/Afoot' */ break; case 50: for (i = 0; i < 9; i++) { /* Outputs for IfAction SubSystem: '/Afoot_Summer' incorporates: * ActionPort: '/Action Port' */ Merge[i] = rtb_vals_m[i]; /* End of Outputs for SubSystem: '/Afoot_Summer' */ } /* Outputs for IfAction SubSystem: '/Afoot_Summer' incorporates: * ActionPort: '/Action Port' */ Afoot_Summer(rtb_LVL, rtB.Merge_b, Merge, rtb_Merge_j, rtb_Merge_e); /* End of Outputs for SubSystem: '/Afoot_Summer' */ break; } /* End of SwitchCase: '/Switch for Left ' */ /* MATLAB Function: '/Log Ambient Lv' */ /* : if (isempty(current_Ambient_Lv)) */ if (!rtDW.current_Ambient_Lv_not_empty) { /* : current_Ambient_Lv = Ambient_Lv; */ rtDW.current_Ambient_Lv = rtB.Merge_b; rtDW.current_Ambient_Lv_not_empty = true; /* : fprintf("13.1.3.1 Ambient level: in_Amb_Fb = %d; Set Ambient lvl (init) = %u \n", in_Amb_Fb, Ambient_Lv); */ printf("13.1.3.1 Ambient level: in_Amb_Fb = %d; Set Ambient lvl (init) = %u \n", rtb_Saturation_n, rtB.Merge_b); fflush(stdout); /* : else */ /* : if (current_Ambient_Lv ~= Ambient_Lv) */ } else if (rtDW.current_Ambient_Lv != rtB.Merge_b) { /* : current_Ambient_Lv = Ambient_Lv; */ rtDW.current_Ambient_Lv = rtB.Merge_b; /* : fprintf("13.1.3.1 Ambient level: in_Amb_Fb = %d; Set Ambient lvl = %u \n", in_Amb_Fb, Ambient_Lv); */ printf("13.1.3.1 Ambient level: in_Amb_Fb = %d; Set Ambient lvl = %u \n", rtb_Saturation_n, rtB.Merge_b); fflush(stdout); } /* End of MATLAB Function: '/Log Ambient Lv' */ /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Bias: '/Bias' * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * DataTypeConversion: '/Data Type Conversion' * Gain: '/Gain1' * Gain: '/Gain2' */ rtDW.AMB_RAW = (int16_t)floor((0.01 * (double) rtDW.CCUCAN_BCM_Powertrain_model.BCM_AmbTempRaw_ro - 40.0) * 10.0); /* Bias: '/Bias' incorporates: * DataStoreRead: '/Data Store Read5' * DataStoreWrite: '/Data Store Write1' * DataTypeConversion: '/Data Type Conversion1' */ rtDW.ECT = (int16_t)(rtDW.CCUCAN_EMS_Veh_model.EMS_EngCoolTemp_Val_ro - 40); /* DataTypeConversion: '/Data Type Conversion1' incorporates: * DataStoreRead: '/Data Store Read6' * DataStoreWrite: '/Data Store Write2' * DataTypeConversion: '/Data Type Conversion' * Gain: '/Gain' */ rtDW.VehicleSpeed = (int16_t)floor(0.01 * (double) rtDW.CCUCAN_ESC_04_model.ESC_VehicleSpeed_ro); /* Outputs for Enabled SubSystem: '/Subsystem1' incorporates: * EnablePort: '/Enable' */ /* DataStoreRead: '/Data Store Read1' */ if (rtDW.FIU_CCU1_MODEL.FIU_CCmodeFL_Req > 0) { /* DataStoreWrite: '/Data Store Write6' */ rtDW.FIU_MODE_FL = rtDW.FIU_CCU1_MODEL.FIU_CCmodeFL_Req; } /* End of Outputs for SubSystem: '/Subsystem1' */ /* Outputs for Enabled SubSystem: '/Subsystem10' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU1_MODEL.FIU_CCmodeFR_Req > 0) { /* DataStoreWrite: '/Data Store Write10' */ rtDW.FIU_MODE_FR = rtDW.FIU_CCU1_MODEL.FIU_CCmodeFR_Req; } /* End of Outputs for SubSystem: '/Subsystem10' */ /* Outputs for Enabled SubSystem: '/Subsystem11' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFR_Def_Req > 0) { /* DataStoreWrite: '/Data Store Write11' */ rtDW.FIU_DEF_FR = rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFR_Def_Req; } /* End of Outputs for SubSystem: '/Subsystem11' */ /* Outputs for Enabled SubSystem: '/Subsystem12' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFR_Face_Req > 0) { /* DataStoreWrite: '/Data Store Write12' */ rtDW.FIU_FACE_FR = rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFR_Face_Req; } /* End of Outputs for SubSystem: '/Subsystem12' */ /* Outputs for Enabled SubSystem: '/Subsystem13' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFR_Foot_Req > 0) { /* DataStoreWrite: '/Data Store Write13' */ rtDW.FIU_FOOT_FR = rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFR_Foot_Req; } /* End of Outputs for SubSystem: '/Subsystem13' */ /* Outputs for Enabled SubSystem: '/Subsystem14' incorporates: * EnablePort: '/Enable' */ /* SignalConversion generated from: '/Bus Selector' incorporates: * DataStoreRead: '/Data Store Read1' */ if (rtDW.FIU_CCU1_MODEL.FIU_BlowerSpeedFL_Req > 0) { /* DataStoreWrite: '/Data Store Write14' */ rtDW.FIU_BLOWERS_FL = rtDW.FIU_CCU1_MODEL.FIU_BlowerSpeedFL_Req; } /* End of SignalConversion generated from: '/Bus Selector' */ /* End of Outputs for SubSystem: '/Subsystem14' */ /* Outputs for Enabled SubSystem: '/Subsystem15' incorporates: * EnablePort: '/Enable' */ /* DataStoreRead: '/Data Store Read1' */ if (rtDW.FIU_CCU1_MODEL.FIU_BlowerSpeedFR_Req > 0) { /* DataStoreWrite: '/Data Store Write15' */ rtDW.FIU_BLOWERS_FR = rtDW.FIU_CCU1_MODEL.FIU_BlowerSpeedFR_Req; } /* End of Outputs for SubSystem: '/Subsystem15' */ /* Outputs for Enabled SubSystem: '/Subsystem16' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU1_MODEL.FIU_CCautoModeFL_Req > 0) { /* DataStoreWrite: '/Data Store Write16' */ rtDW.FIU_AUTOMODE_FL = rtDW.FIU_CCU1_MODEL.FIU_CCautoModeFL_Req; } /* End of Outputs for SubSystem: '/Subsystem16' */ /* Outputs for Enabled SubSystem: '/Subsystem17' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU1_MODEL.FIU_CCautoModeFR_Req > 0) { /* DataStoreWrite: '/Data Store Write17' */ rtDW.FIU_AUTOMODE_FR = rtDW.FIU_CCU1_MODEL.FIU_CCautoModeFR_Req; } /* End of Outputs for SubSystem: '/Subsystem17' */ /* Outputs for Enabled SubSystem: '/Subsystem18' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU1_MODEL.FIU_Recirculation_Req > 0) { /* DataStoreWrite: '/Data Store Write19' */ rtDW.FIU_RECIRC = rtDW.FIU_CCU1_MODEL.FIU_Recirculation_Req; } /* End of Outputs for SubSystem: '/Subsystem18' */ /* Outputs for Enabled SubSystem: '/Subsystem5' incorporates: * EnablePort: '/Enable' */ /* SignalConversion generated from: '/Bus Selector' incorporates: * DataStoreRead: '/Data Store Read1' */ if (rtDW.FIU_CCU1_MODEL.FIU_TargetTempFL_Val_ro > 0) { /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Bias: '/Bias' * DataTypeConversion: '/Data Type Conversion' * Gain: '/Gain' * Gain: '/Gain1' */ rtDW.FIU_SET_FL = (uint16_t)((0.5 * (double) rtDW.FIU_CCU1_MODEL.FIU_TargetTempFL_Val_ro + 15.0) * 10.0); /* Saturate: '/Saturation' */ if (rtDW.FIU_SET_FL > 305) { /* DataTypeConversion: '/Data Type Conversion1' */ rtDW.FIU_SET_FL = 305U; } else if (rtDW.FIU_SET_FL < 155) { /* DataTypeConversion: '/Data Type Conversion1' */ rtDW.FIU_SET_FL = 155U; } /* End of Saturate: '/Saturation' */ } /* End of SignalConversion generated from: '/Bus Selector' */ /* End of Outputs for SubSystem: '/Subsystem5' */ /* Outputs for Enabled SubSystem: '/Subsystem6' incorporates: * EnablePort: '/Enable' */ /* DataStoreRead: '/Data Store Read1' */ if (rtDW.FIU_CCU1_MODEL.FIU_TargetTempFR_Val_ro > 0) { /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Bias: '/Bias' * DataTypeConversion: '/Data Type Conversion' * Gain: '/Gain' * Gain: '/Gain1' */ rtDW.FIU_SET_FR = (uint16_t)((0.5 * (double) rtDW.FIU_CCU1_MODEL.FIU_TargetTempFR_Val_ro + 15.0) * 10.0); /* Saturate: '/Saturation' */ if (rtDW.FIU_SET_FR > 305) { /* DataTypeConversion: '/Data Type Conversion1' */ rtDW.FIU_SET_FR = 305U; } else if (rtDW.FIU_SET_FR < 155) { /* DataTypeConversion: '/Data Type Conversion1' */ rtDW.FIU_SET_FR = 155U; } /* End of Saturate: '/Saturation' */ } /* End of Outputs for SubSystem: '/Subsystem6' */ /* Outputs for Enabled SubSystem: '/Subsystem7' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFL_Def_Req > 0) { /* DataStoreWrite: '/Data Store Write7' */ rtDW.FIU_DEF_FL = rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFL_Def_Req; } /* End of Outputs for SubSystem: '/Subsystem7' */ /* Outputs for Enabled SubSystem: '/Subsystem8' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFL_Face_Req > 0) { /* DataStoreWrite: '/Data Store Write8' */ rtDW.FIU_FACE_FL = rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFL_Face_Req; } /* End of Outputs for SubSystem: '/Subsystem8' */ /* Outputs for Enabled SubSystem: '/Subsystem9' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFL_Foot_Req > 0) { /* DataStoreWrite: '/Data Store Write9' */ rtDW.FIU_FOOT_FL = rtDW.FIU_CCU1_MODEL.FIU_AirDirectionFL_Foot_Req; } /* End of Outputs for SubSystem: '/Subsystem9' */ /* Outputs for Enabled SubSystem: '/Subsystem2' incorporates: * EnablePort: '/Enable' */ /* DataStoreRead: '/Data Store Read2' */ if (rtDW.FIU_CCU2_MODEL.FIU_TargetTempRL_Val_ro > 0) { /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Bias: '/Bias' * DataTypeConversion: '/Data Type Conversion' * Gain: '/Gain' * Gain: '/Gain1' */ rtDW.FIU_SET_RL = (uint16_t)((0.5 * (double) rtDW.FIU_CCU2_MODEL.FIU_TargetTempRL_Val_ro + 15.0) * 10.0); /* Saturate: '/Saturation' */ if (rtDW.FIU_SET_RL > 305) { /* DataTypeConversion: '/Data Type Conversion1' */ rtDW.FIU_SET_RL = 305U; } else if (rtDW.FIU_SET_RL < 155) { /* DataTypeConversion: '/Data Type Conversion1' */ rtDW.FIU_SET_RL = 155U; } /* End of Saturate: '/Saturation' */ } /* End of Outputs for SubSystem: '/Subsystem2' */ /* Outputs for Enabled SubSystem: '/Subsystem27' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU2_MODEL.FIU_CCmodeRL_Req > 0) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.FIU_MODE_RL = rtDW.FIU_CCU2_MODEL.FIU_CCmodeRL_Req; } /* End of Outputs for SubSystem: '/Subsystem27' */ /* Outputs for Enabled SubSystem: '/Subsystem29' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU2_MODEL.FIU_AirDirectionRL_Face_Req > 0) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.FIU_FACE_RL = rtDW.FIU_CCU2_MODEL.FIU_AirDirectionRL_Face_Req; } /* End of Outputs for SubSystem: '/Subsystem29' */ /* Outputs for Enabled SubSystem: '/Subsystem3' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU2_MODEL.FIU_TargetTempRR_Val_ro > 0) { /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Bias: '/Bias' * DataTypeConversion: '/Data Type Conversion' * Gain: '/Gain' * Gain: '/Gain1' */ rtDW.FIU_SET_RR = (uint16_t)((0.5 * (double) rtDW.FIU_CCU2_MODEL.FIU_TargetTempRR_Val_ro + 15.0) * 10.0); /* Saturate: '/Saturation' */ if (rtDW.FIU_SET_RR > 305) { /* DataTypeConversion: '/Data Type Conversion1' */ rtDW.FIU_SET_RR = 305U; } else if (rtDW.FIU_SET_RR < 155) { /* DataTypeConversion: '/Data Type Conversion1' */ rtDW.FIU_SET_RR = 155U; } /* End of Saturate: '/Saturation' */ } /* End of Outputs for SubSystem: '/Subsystem3' */ /* Outputs for Enabled SubSystem: '/Subsystem30' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU2_MODEL.FIU_AirDirectionRL_Foot_Req > 0) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.FIU_FOOT_RL = rtDW.FIU_CCU2_MODEL.FIU_AirDirectionRL_Foot_Req; } /* End of Outputs for SubSystem: '/Subsystem30' */ /* Outputs for Enabled SubSystem: '/Subsystem31' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU2_MODEL.FIU_CCmodeRR_Req > 0) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.FIU_MODE_RR = rtDW.FIU_CCU2_MODEL.FIU_CCmodeRR_Req; } /* End of Outputs for SubSystem: '/Subsystem31' */ /* Outputs for Enabled SubSystem: '/Subsystem33' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU2_MODEL.FIU_AirDirectionRR_Face_Req > 0) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.FIU_FACE_RR = rtDW.FIU_CCU2_MODEL.FIU_AirDirectionRR_Face_Req; } /* End of Outputs for SubSystem: '/Subsystem33' */ /* Outputs for Enabled SubSystem: '/Subsystem34' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU2_MODEL.FIU_AirDirectionRR_Foot_Req > 0) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.FIU_FOOT_RR = rtDW.FIU_CCU2_MODEL.FIU_AirDirectionRR_Foot_Req; } /* End of Outputs for SubSystem: '/Subsystem34' */ /* Outputs for Enabled SubSystem: '/Subsystem35' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU2_MODEL.FIU_BlowerSpeedRL_Req > 0) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.FIU_BLOWERS_RL = rtDW.FIU_CCU2_MODEL.FIU_BlowerSpeedRL_Req; } /* End of Outputs for SubSystem: '/Subsystem35' */ /* Outputs for Enabled SubSystem: '/Subsystem36' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU2_MODEL.FIU_BlowerSpeedRR_Req > 0) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.FIU_BLOWERS_RR = rtDW.FIU_CCU2_MODEL.FIU_BlowerSpeedRR_Req; } /* End of Outputs for SubSystem: '/Subsystem36' */ /* Outputs for Enabled SubSystem: '/Subsystem37' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU2_MODEL.FIU_CCautoModeRL_Req > 0) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.FIU_AUTOMODE_RL = rtDW.FIU_CCU2_MODEL.FIU_CCautoModeRL_Req; } /* End of Outputs for SubSystem: '/Subsystem37' */ /* Outputs for Enabled SubSystem: '/Subsystem38' incorporates: * EnablePort: '/Enable' */ if (rtDW.FIU_CCU2_MODEL.FIU_CCautoModeRR_Req > 0) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.FIU_AUTOMODE_RR = rtDW.FIU_CCU2_MODEL.FIU_CCautoModeRR_Req; } /* End of DataStoreRead: '/Data Store Read2' */ /* End of Outputs for SubSystem: '/Subsystem38' */ /* BusCreator: '/Bus Creator' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read10' * DataStoreRead: '/Data Store Read17' * DataStoreRead: '/Data Store Read18' * DataStoreRead: '/Data Store Read19' * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read20' * DataStoreRead: '/Data Store Read21' * DataStoreRead: '/Data Store Read22' * DataStoreRead: '/Data Store Read23' * DataStoreRead: '/Data Store Read24' * DataStoreRead: '/Data Store Read3' * DataStoreRead: '/Data Store Read4' * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/Data Store Read6' * DataStoreRead: '/Data Store Read7' * DataStoreRead: '/Data Store Read8' * DataStoreRead: '/Data Store Read9' * DataStoreWrite: '/Data Store Write' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' * Switch: '/Switch' */ rtDW.CCU_STAT1_MODEL.CCU_ModeFL_Stat = (uint8_t)(rtDW.FIU_MODE_FL > 1); rtDW.CCU_STAT1_MODEL.CCU_ModeFR_Stat = (uint8_t)(rtDW.FIU_MODE_FR > 1); rtDW.CCU_STAT1_MODEL.CCU_ModeRL_Stat = (uint8_t)(rtDW.FIU_MODE_RL > 1); rtDW.CCU_STAT1_MODEL.CCU_ModeRR_Stat = (uint8_t)(rtDW.FIU_MODE_RR > 1); rtDW.CCU_STAT1_MODEL.CCU_AutoModeFL_Stat = rtDW.FIU_AUTOMODE_FL; rtDW.CCU_STAT1_MODEL.CCU_AutoModeFR_Stat = rtDW.FIU_AUTOMODE_FR; rtDW.CCU_STAT1_MODEL.CCU_AirDirectionRL_Face_Stat = (uint8_t)(rtDW.FIU_FACE_RL <= 1); rtDW.CCU_STAT1_MODEL.CCU_AirDirectionRL_Foot_Stat = (uint8_t)(rtDW.FIU_FOOT_RL <= 1); rtDW.CCU_STAT1_MODEL.CCU_AutoModeRL_Stat = rtDW.FIU_AUTOMODE_RL; rtDW.CCU_STAT1_MODEL.CCU_AutoModeRR_Stat = rtDW.FIU_AUTOMODE_RR; rtDW.CCU_STAT1_MODEL.CCU_AirDirectionRR_Face_Stat = (uint8_t)(rtDW.FIU_FACE_RR <= 1); rtDW.CCU_STAT1_MODEL.CCU_AirDirectionRR_Foot_Stat = (uint8_t)(rtDW.FIU_FOOT_RR <= 1); rtDW.CCU_STAT1_MODEL.CCU_AirDirectionFL_Def_Stat = (uint8_t)(rtDW.FIU_DEF_FL <= 1); rtDW.CCU_STAT1_MODEL.CCU_AirDirectionFL_Face_Stat = (uint8_t)(rtDW.FIU_FACE_FL <= 1); rtDW.CCU_STAT1_MODEL.CCU_AirDirectionFL_Foot_Stat = (uint8_t)(rtDW.FIU_FOOT_FL <= 1); rtDW.CCU_STAT1_MODEL.CCU_AirDirectionFR_Def_Stat = (uint8_t)(rtDW.FIU_DEF_FR <= 1); rtDW.CCU_STAT1_MODEL.CCU_AirDirectionFR_Face_Stat = (uint8_t)(rtDW.FIU_FACE_FR <= 1); rtDW.CCU_STAT1_MODEL.CCU_AirDirectionFR_Foot_Stat = (uint8_t)(rtDW.FIU_FOOT_FR <= 1); rtDW.CCU_STAT1_MODEL.CCU_Recirculation_Stat = rtDW.FIU_RECIRC; /* Switch: '/Switch4' incorporates: * DataStoreRead: '/Data Store Read11' */ if (rtDW.FIU_BLOWERS_FL > 7) { /* BusCreator: '/Bus Creator' incorporates: * Constant: '/manual1' * DataStoreWrite: '/Data Store Write' */ rtDW.CCU_STAT1_MODEL.CCU_BlowerSpeedFL_Stat = 0U; } else { /* BusCreator: '/Bus Creator' incorporates: * DataStoreWrite: '/Data Store Write' */ rtDW.CCU_STAT1_MODEL.CCU_BlowerSpeedFL_Stat = rtDW.FIU_BLOWERS_FL; } /* End of Switch: '/Switch4' */ /* Saturate: '/Saturation' incorporates: * DataStoreRead: '/Data Store Read13' */ if (rtDW.FIU_SET_FL > 310) { rtb_out_b = 310U; } else if (rtDW.FIU_SET_FL < 155) { rtb_out_b = 155U; } else { rtb_out_b = rtDW.FIU_SET_FL; } /* BusCreator: '/Bus Creator' incorporates: * Bias: '/Bias' * DataStoreWrite: '/Data Store Write' * DataTypeConversion: '/Data Type Conversion' * Gain: '/Gain' * Gain: '/Gain1' * Saturate: '/Saturation' */ rtDW.CCU_STAT1_MODEL.CCU_TargetTempFL_Stat_ro = (uint8_t)((0.10000038146972656 * (double)rtb_out_b - 15.5) * 2.0); /* Switch: '/Switch5' incorporates: * DataStoreRead: '/Data Store Read12' */ if (rtDW.FIU_BLOWERS_FR > 7) { /* BusCreator: '/Bus Creator' incorporates: * Constant: '/manual1' * DataStoreWrite: '/Data Store Write' */ rtDW.CCU_STAT1_MODEL.CCU_BlowerSpeedFR_Stat = 0U; } else { /* BusCreator: '/Bus Creator' incorporates: * DataStoreWrite: '/Data Store Write' */ rtDW.CCU_STAT1_MODEL.CCU_BlowerSpeedFR_Stat = rtDW.FIU_BLOWERS_FR; } /* End of Switch: '/Switch5' */ /* Saturate: '/Saturation' incorporates: * DataStoreRead: '/Data Store Read14' */ if (rtDW.FIU_SET_FR > 310) { rtb_out_b = 310U; } else if (rtDW.FIU_SET_FR < 155) { rtb_out_b = 155U; } else { rtb_out_b = rtDW.FIU_SET_FR; } /* BusCreator: '/Bus Creator' incorporates: * Bias: '/Bias' * DataStoreWrite: '/Data Store Write' * DataTypeConversion: '/Data Type Conversion' * Gain: '/Gain' * Gain: '/Gain1' * Saturate: '/Saturation' */ rtDW.CCU_STAT1_MODEL.CCU_TargetTempFR_Stat_ro = (uint8_t)((0.10000038146972656 * (double)rtb_out_b - 15.5) * 2.0); /* Switch: '/Switch6' incorporates: * DataStoreRead: '/Data Store Read26' */ if (rtDW.FIU_BLOWERS_RL > 7) { /* BusCreator: '/Bus Creator' incorporates: * Constant: '/manual1' * DataStoreWrite: '/Data Store Write' */ rtDW.CCU_STAT1_MODEL.CCU_BlowerSpeedRL_Stat = 0U; } else { /* BusCreator: '/Bus Creator' incorporates: * DataStoreWrite: '/Data Store Write' */ rtDW.CCU_STAT1_MODEL.CCU_BlowerSpeedRL_Stat = rtDW.FIU_BLOWERS_RL; } /* End of Switch: '/Switch6' */ /* Saturate: '/Saturation' incorporates: * DataStoreRead: '/Data Store Read15' */ if (rtDW.FIU_SET_RR > 310) { rtb_out_b = 310U; } else if (rtDW.FIU_SET_RR < 155) { rtb_out_b = 155U; } else { rtb_out_b = rtDW.FIU_SET_RR; } /* BusCreator: '/Bus Creator' incorporates: * Bias: '/Bias' * DataStoreWrite: '/Data Store Write' * DataTypeConversion: '/Data Type Conversion' * Gain: '/Gain' * Gain: '/Gain1' * Saturate: '/Saturation' */ rtDW.CCU_STAT1_MODEL.CCU_TargetTempRR_Stat_ro = (uint8_t)((0.10000038146972656 * (double)rtb_out_b - 15.5) * 2.0); /* Switch: '/Switch7' incorporates: * DataStoreRead: '/Data Store Read25' */ if (rtDW.FIU_BLOWERS_RR > 7) { /* BusCreator: '/Bus Creator' incorporates: * Constant: '/manual1' * DataStoreWrite: '/Data Store Write' */ rtDW.CCU_STAT1_MODEL.CCU_BlowerSpeedRR_Stat = 0U; } else { /* BusCreator: '/Bus Creator' incorporates: * DataStoreWrite: '/Data Store Write' */ rtDW.CCU_STAT1_MODEL.CCU_BlowerSpeedRR_Stat = rtDW.FIU_BLOWERS_RR; } /* End of Switch: '/Switch7' */ /* Saturate: '/Saturation' incorporates: * DataStoreRead: '/Data Store Read16' */ if (rtDW.FIU_SET_RL > 310) { rtb_out_b = 310U; } else if (rtDW.FIU_SET_RL < 155) { rtb_out_b = 155U; } else { rtb_out_b = rtDW.FIU_SET_RL; } /* BusCreator: '/Bus Creator' incorporates: * Bias: '/Bias' * DataStoreWrite: '/Data Store Write' * DataTypeConversion: '/Data Type Conversion' * Gain: '/Gain' * Gain: '/Gain1' * Saturate: '/Saturation' */ rtDW.CCU_STAT1_MODEL.CCU_TargetTempRL_Stat_ro = (uint8_t)((0.10000038146972656 * (double)rtb_out_b - 15.5) * 2.0); /* DataTypeConversion: '/Data Type Conversion' */ for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read' * Gain: '/Gain' * Product: '/Divide' */ rtb_Saturation_n = rtDW.MaxPositionCh0_private[i]; if (rtb_Saturation_n != 0) { rtb_rate = (double)Actuator_Ch0_Status_Model.in_CPOS_ALL[i] / (double) rtb_Saturation_n * 100.0; } else { rtb_rate = 0.0; } /* End of Switch: '/Switch' */ /* Saturate: '/Saturation' incorporates: * DataTypeConversion: '/Data Type Conversion' */ if (rtb_rate > 100.0) { rtb_DataTypeConversion_bh[i] = 100U; } else if (rtb_rate < 0.0) { rtb_DataTypeConversion_bh[i] = 0U; } else { rtb_DataTypeConversion_bh[i] = (uint8_t)rtb_rate; } /* End of Saturate: '/Saturation' */ } /* End of DataTypeConversion: '/Data Type Conversion' */ /* Switch: '/Switch' incorporates: * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read2' */ if (rtDW.stepSig_private > 0) { rtb_Switch_nyq = rtDW.stepSig_private; } else { rtb_Switch_nyq = 1; } /* End of Switch: '/Switch' */ /* SwitchCase: '/Switch Case' */ switch (rtb_Switch_nyq) { case 1: /* Outputs for IfAction SubSystem: '/Stop Mode' incorporates: * ActionPort: '/Action Port' */ /* 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_f1 = (int8_t)(rtb_Switch_nyq + 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_f1 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Stop Mode' */ break; case 2: /* Outputs for IfAction SubSystem: '/Initial CPOS Min' incorporates: * ActionPort: '/Action Port' */ /* 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_f1 = (int8_t)(rtb_Switch_nyq + 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_f1 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If' */ /* End of Outputs for SubSystem: '/Initial CPOS Min' */ break; case 3: /* Outputs for IfAction SubSystem: '/Normal Mode' incorporates: * ActionPort: '/Action Port' */ /* 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_f1 = (int8_t)(rtb_Switch_nyq + 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_f1 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Normal Mode' */ break; case 4: /* Outputs for IfAction SubSystem: '/Move to position Min' incorporates: * ActionPort: '/Action Port' */ /* 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_f1 = (int8_t)(rtb_Switch_nyq + 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_f1 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Move to position Min' */ break; case 5: /* Outputs for IfAction SubSystem: '/Check Stall Min' incorporates: * ActionPort: '/Action Port' */ /* Logic: '/Logical Operator3' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read' * Logic: '/Logical Operator1' * Logic: '/Logical Operator2' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' */ for (i = 0; i < 9; i++) { rtb_LogicalOperator3_i5[i] = ((Actuator_Ch0_Status_Model.in_Act_Stall_Slave[i] == 1) || (Actuator_Ch0_Status_Model.in_CPOS_ALL[i] == 0) || (rtDW.ErrorCalibration_private[i] == 0)); } /* End of Logic: '/Logical Operator3' */ /* Logic: '/Logical Operator' incorporates: * Logic: '/Logical Operator3' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_i5[i + 1]); } /* If: '/If2' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion1' * Logic: '/Logical Operator' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch0_Status_Model.Busy == 0) && (Actuator_Ch0_Status_Model.Error_Connect == 0) && rtb_LogicalOperator1) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write1' */ for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read1' */ if (rtDW.ErrorCalibration_private[i] != 0) { rtDW.MinPositionCh0_private[i] = Actuator_Ch0_Status_Model.in_CPOS_ALL[i]; } /* End of Switch: '/Switch' */ } /* End of DataStoreWrite: '/Data Store Write1' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_f1 = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 1] Check Stall Min\n'); */ printf("[LIN 1] Check Stall 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_f1 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If2' */ /* End of Outputs for SubSystem: '/Check Stall Min' */ break; case 6: /* Outputs for IfAction SubSystem: '/Initial CPOS Max' incorporates: * ActionPort: '/Action Port' */ /* 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_f1 = (int8_t)(rtb_Switch_nyq + 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_f1 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Initial CPOS Max' */ break; case 7: /* Outputs for IfAction SubSystem: '/Move to position Max' incorporates: * ActionPort: '/Action Port' */ /* 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_f1 = (int8_t)(rtb_Switch_nyq + 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_f1 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Move to position Max' */ break; case 8: /* Outputs for IfAction SubSystem: '/Check Stall Max' incorporates: * ActionPort: '/Action Port' */ /* Logic: '/Logical Operator3' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read' * Logic: '/Logical Operator' * Logic: '/Logical Operator2' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' */ for (i = 0; i < 9; i++) { rtb_LogicalOperator3_i5[i] = ((Actuator_Ch0_Status_Model.in_Act_Stall_Slave[i] == 1) || (Actuator_Ch0_Status_Model.in_CPOS_ALL[i] == 6000) || (rtDW.ErrorCalibration_private[i] == 0)); } /* End of Logic: '/Logical Operator3' */ /* Logic: '/Logical Operator1' incorporates: * Logic: '/Logical Operator3' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_i5[i + 1]); } /* If: '/If2' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion1' * Logic: '/Logical Operator1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch0_Status_Model.Busy == 0) && (Actuator_Ch0_Status_Model.Error_Connect == 0) && rtb_LogicalOperator1) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write1' */ for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read1' */ if (rtDW.ErrorCalibration_private[i] != 0) { rtDW.MaxPositionCh0_private[i] = Actuator_Ch0_Status_Model.in_CPOS_ALL[i]; } /* End of Switch: '/Switch' */ } /* End of DataStoreWrite: '/Data Store Write1' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_f1 = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 1] Check Stall MAX\n'); */ printf("[LIN 1] Check Stall 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_f1 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If2' */ /* End of Outputs for SubSystem: '/Check Stall Max' */ break; case 9: /* Outputs for IfAction SubSystem: '/Homing' incorporates: * ActionPort: '/Action Port' */ /* Product: '/Divide1' incorporates: * Constant: '/ACT1' * DataStoreRead: '/MAX ACT1T ' */ for (i = 0; i < 9; i++) { rtb_Divide1_a4[i] = (double)rtDW.MaxPositionCh0_private[i] / (double) rtConstP.ACT1_Value[i]; } /* End of Product: '/Divide1' */ /* SwitchCase: '/Switch Case' incorporates: * DataStoreRead: '/Data Store Read4' */ switch (rtDW.stepHoming_private) { case 0: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* RelationalOperator: '/Compare' */ rtb_rate = rtb_Divide1_a4[i]; /* Logic: '/Logical Operator' incorporates: * Constant: '/Constant' * Constant: '/Constant' * RelationalOperator: '/Compare' * RelationalOperator: '/Compare' */ rtb_LogicalOperator1 = ((rtb_rate >= 0.9) && (rtb_rate <= 1.1)); rtb_LogicalOperator3_i5[i] = rtb_LogicalOperator1; /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Logic: '/Logical Operator' * Logic: '/Logical Operator1' */ rtDW.ErrorCalibration_private[i] = (uint8_t)((!rtb_LogicalOperator1) && (rtDW.ErrorCalibration_private[i] != 0)); } /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/MIN ACT1T 1' * Logic: '/Logical Operator2' */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { /* : 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('[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_a4[i], (int16_t)!rtb_LogicalOperator3_i5[i]); fflush(stdout); } } /* End of MATLAB Function: '/MAX POSITION' */ /* Logic: '/Logical Operator1' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_i5[i + 1]); } /* Switch: '/Switch' incorporates: * Logic: '/Logical Operator1' */ if (rtb_LogicalOperator1) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_a = 4; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant' */ rtB.Merge_a = 1; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem' */ break; case 1: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem1' incorporates: * ActionPort: '/Action Port' */ /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ for (i = 0; i < 9; i++) { rtb_LogicalOperator3_i5[i] = (rtb_Divide1_a4[i] > 1.5); } /* End of RelationalOperator: '/Compare' */ /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || rtb_LogicalOperator3_i5[i + 1]); } /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreWrite: '/Data Store Write1' * Logic: '/Logical Operator' */ rtDW.CCU_ActuatorErrF_Stat_private = rtb_LogicalOperator1; for (i = 0; i < 9; i++) { /* DataTypeConversion: '/Data Type Conversion1' incorporates: * DataStoreWrite: '/Data Store Write2' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[i]; rtDW.COM_private[i] = rtb_LogicalOperator1; /* DataTypeConversion: '/Data Type Conversion2' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write3' * Logic: '/Logical Operator1' */ rtDW.ErrorActuator[i] = (uint8_t)(rtb_LogicalOperator1 || (rtDW.ErrorActuator[i] != 0)); /* DataStoreWrite: '/Data Store Write' */ rtDW.MODE_private[i] = 2U; } /* MATLAB Function: '/Write ERROR' incorporates: * DataStoreRead: '/Data Store Read6' */ /* : 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_i5[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_i5[i]; /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Logic: '/Logical Operator' * Logic: '/Logical Operator1' */ rtDW.ErrorCalibration_private[i] = (uint8_t)((!rtb_LogicalOperator1) && (rtDW.ErrorCalibration_private[i] != 0)); /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[i + 54] = rtb_LogicalOperator1; } /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.stepSig_private = 1; /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/MIN ACT1T 1' * DataStoreWrite: '/Data Store Write' */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { /* : 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('[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_a4[i], (int16_t)rtDW.ErrorCalibration_private[i]); fflush(stdout); } } } /* End of MATLAB Function: '/MAX POSITION' */ /* Logic: '/Logical Operator2' incorporates: * DataStoreWrite: '/Data Store Write' */ rtb_LogicalOperator1 = (rtDW.ErrorCalibration_private[0] != 0); for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || (rtDW.ErrorCalibration_private[i + 1] != 0)); } /* Switch: '/Switch' incorporates: * Logic: '/Logical Operator2' */ if (rtb_LogicalOperator1) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_a = 2; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_a = 4; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* RelationalOperator: '/Compare' */ rtb_rate = rtb_Divide1_a4[i]; /* Logic: '/Logical Operator3' incorporates: * Constant: '/Constant' * Constant: '/Constant' * DataStoreRead: '/Data Store Read' * Logic: '/Logical Operator1' * Logic: '/Logical Operator4' * RelationalOperator: '/Compare' * RelationalOperator: '/Compare' */ rtb_LogicalOperator1 = (((rtb_rate < 0.97) || (rtb_rate > 1.03)) && (rtDW.ErrorCalibration_private[i] != 0)); rtb_LogicalOperator3_i5[i] = rtb_LogicalOperator1; /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreWrite: '/Data Store Write1' */ rtDW.ErrorCalibration_private[i] = rtb_LogicalOperator1; } /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/MIN ACT1T 1' */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { /* : 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_i5[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_a4[i], 1); fflush(stdout); } } } /* End of MATLAB Function: '/MAX POSITION' */ /* Logic: '/Logical Operator2' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || rtb_LogicalOperator3_i5[i + 1]); } /* Switch: '/Switch' incorporates: * Logic: '/Logical Operator2' */ if (rtb_LogicalOperator1) { /* Merge: '/Merge' incorporates: * Constant: '/Constant3' */ rtB.Merge_a = 3; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_a = 4; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ /* 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_rate = rt_roundd(rtDW.ErrorHomming_private); if (rtb_rate < 32768.0) { if (rtb_rate >= -32768.0) { rtb_Saturation_n = (int16_t)rtb_rate; } else { rtb_Saturation_n = INT16_MIN; } } else { rtb_Saturation_n = INT16_MAX; } printf("[LIN 1] Homing 3. Start Time on step %d\n", rtb_Saturation_n); 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' */ /* MATLAB Function: '/MATLAB Function' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' */ MATLABFunction(rtDW.Start_timer_n, rtDW.t_now, &rtb_dt_an, &rtDW.sf_MATLABFunction); /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' */ /* : if(LOGGER>1) */ if (rtDW.LOGGER_LIN > 1.0) { /* : fprintf("[LIN 1] Homing 3. Start TIme dt = %d \n",int32(data)); */ rtb_Subtract = rtb_dt_an; if (rtb_dt_an > 2147483647U) { rtb_Subtract = 2147483647U; } printf("[LIN 1] Homing 3. Start TIme dt = %d \n", (int32_t) rtb_Subtract); fflush(stdout); } /* End of MATLAB Function: '/MAX POSITION' */ /* If: '/If' */ if (rtb_dt_an > 30000U) { /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: * ActionPort: '/Action Port' */ /* Merge: '/Merge' */ IfActionSubsystem(&rtB.Merge_a, &rtDW.ErrorHomming_private, &rtDW.Start_timer_n, &rtDW.stepSig_private); /* 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' */ rtDW.Start_timer_n = 1.0; /* DataTypeConversion: '/Data Type Conversion2' incorporates: * DataStoreRead: '/valves target in percent' */ for (i = 0; i < 9; i++) { rtb_DataTypeConversion_bq[i] = (uint8_t) rtDW.valves_front_manual_target[i]; } /* End of DataTypeConversion: '/Data Type Conversion2' */ /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private[0] = rtb_DataTypeConversion_bq[8]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private[1] = rtb_DataTypeConversion_bh[1]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private[2] = rtb_DataTypeConversion_bh[2]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private[3] = rtb_DataTypeConversion_bh[3]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private[4] = rtb_DataTypeConversion_bq[1]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private[5] = rtb_DataTypeConversion_bq[0]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private[6] = rtb_DataTypeConversion_bh[6]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private[7] = rtb_DataTypeConversion_bq[6]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private[8] = rtb_DataTypeConversion_bq[7]; for (i = 0; i < 9; i++) { /* Product: '/Product' */ rtb_Merge_j = rtDW.BUS_ADR_private[i]; /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Product: '/Divide1' * Product: '/Product' */ rtDW.POS_private[i] = (uint16_t)((double)(rtb_Merge_j * rtDW.MaxPositionCh0_private[i]) / 100.0); /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreWrite: '/Data Store Write2' */ rtb_LogicalOperator3_i5[i] = (rtb_DataTypeConversion_bh[i] == rtb_Merge_j); } /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_i5[i + 1]); } for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * Constant: '/Constant4' * Constant: '/Constant9' * DataStoreWrite: '/Data Store Write1' * Logic: '/Logical Operator' */ if (rtb_LogicalOperator1) { rtDW.COM_private[i] = 0U; } else { rtDW.COM_private[i] = 3U; } /* End of Switch: '/Switch' */ /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Concatenate: '/Vector Concatenate' * Constant: '/Constant5' * DataStoreWrite: '/Data Store Write2' * DataStoreWrite: '/Data Store Write7' * Product: '/Product' * RelationalOperator: '/Relational Operator' */ rtDW.BUS_ADR_private[i] = (uint8_t)((uint32_t) (rtb_DataTypeConversion_bh[i] != rtDW.BUS_ADR_private[i]) * rtConstP.pooled79[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' incorporates: * Constant: '/Constant11' */ 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; } /* Merge: '/Merge' incorporates: * Constant: '/Constant1' * Merge: '/Merge' * SignalConversion generated from: '/Out1' */ rtB.Merge_a = 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' */ IfActionSubsystem1(&rtB.Merge_a, &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; case 4: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem4' incorporates: * ActionPort: '/Action Port' */ /* DataTypeConversion: '/Data Type Conversion2' incorporates: * DataStoreRead: '/valves target in percent' */ for (i = 0; i < 9; i++) { rtb_DataTypeConversion_bq[i] = (uint8_t) rtDW.valves_front_manual_target[i]; } /* End of DataTypeConversion: '/Data Type Conversion2' */ /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private[0] = rtb_DataTypeConversion_bq[8]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private[1] = rtb_DataTypeConversion_bh[1]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private[2] = rtb_DataTypeConversion_bh[2]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private[3] = rtb_DataTypeConversion_bh[3]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private[4] = rtb_DataTypeConversion_bq[1]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private[5] = rtb_DataTypeConversion_bq[0]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private[6] = rtb_DataTypeConversion_bh[6]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private[7] = rtb_DataTypeConversion_bq[6]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private[8] = rtb_DataTypeConversion_bq[7]; for (i = 0; i < 9; i++) { /* Product: '/Product' */ rtb_Merge_j = rtDW.BUS_ADR_private[i]; /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Product: '/Divide1' * Product: '/Product' */ rtDW.POS_private[i] = (uint16_t)((double)(rtb_Merge_j * rtDW.MaxPositionCh0_private[i]) / 100.0); /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreWrite: '/Data Store Write2' */ rtb_LogicalOperator3_i5[i] = (rtb_DataTypeConversion_bh[i] == rtb_Merge_j); } /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_i5[i + 1]); } for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * Constant: '/Constant4' * Constant: '/Constant9' * DataStoreWrite: '/Data Store Write1' * Logic: '/Logical Operator' */ if (rtb_LogicalOperator1) { rtDW.COM_private[i] = 0U; } else { rtDW.COM_private[i] = 3U; } /* End of Switch: '/Switch' */ /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Concatenate: '/Vector Concatenate' * Constant: '/Constant5' * DataStoreWrite: '/Data Store Write2' * DataStoreWrite: '/Data Store Write7' * Product: '/Product' * RelationalOperator: '/Relational Operator' */ rtDW.BUS_ADR_private[i] = (uint8_t)((uint32_t) (rtb_DataTypeConversion_bh[i] != rtDW.BUS_ADR_private[i]) * rtConstP.pooled79[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' incorporates: * Constant: '/Constant11' */ 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; } /* Merge: '/Merge' incorporates: * Constant: '/Constant1' * SignalConversion generated from: '/step' */ rtB.Merge_a = 4; /* End of Outputs for SubSystem: '/Switch Case Action Subsystem4' */ break; } /* End of SwitchCase: '/Switch Case' */ /* DataStoreWrite: '/Data Store Write2' */ rtDW.stepHoming_private = rtB.Merge_a; /* Merge: '/Merge' incorporates: * DataStoreRead: '/Data Store Read7' */ rtB.Merge_f1 = rtDW.stepSig_private; /* End of Outputs for SubSystem: '/Homing' */ break; } /* End of SwitchCase: '/Switch Case' */ /* DataStoreWrite: '/Finish write stepSig' */ rtDW.stepSig_private = rtB.Merge_f1; for (i = 0; i < 9; i++) { /* BusCreator: '/Bus Creator' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read3' * DataStoreRead: '/Data Store Read4' * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/Data Store Read6' * DataStoreRead: '/Data Store Read7' * DataStoreRead: '/Data Store Read8' * DataStoreWrite: '/Data Store Write' */ Actuator_Ch0_Command_Model.POS[i] = rtDW.POS_private[i]; Actuator_Ch0_Command_Model.BUS_ADR[i] = rtDW.BUS_ADR_private[i]; Actuator_Ch0_Command_Model.MODE[i] = rtDW.MODE_private[i]; Actuator_Ch0_Command_Model.COM[i] = rtDW.COM_private[i]; Actuator_Ch0_Command_Model.Stall_SET[i] = rtDW.Stall_private[i]; Actuator_Ch0_Command_Model.Lnoise_SET[i] = rtDW.Lnoise_private[i]; Actuator_Ch0_Command_Model.Autos_SET[i] = rtDW.Autos_private[i]; Actuator_Ch0_Command_Model.Speed_SET[i] = rtDW.Speed_private[i]; Actuator_Ch0_Command_Model.Coils_Stop_SET[i] = rtDW.Coils_private[i]; /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read2' */ rtb_LogicalOperator3_i5[i] = (rtDW.ErrorCalibration_private[i] == 0); } /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || rtb_LogicalOperator3_i5[i + 1]); } for (i = 0; i < 9; i++) { /* Switch: '/Switch1' incorporates: * Concatenate: '/Vector Concatenate' * Constant: '/Constant' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read2' * DataStoreWrite: '/Data Store Write7' * Logic: '/Logical Operator' * Product: '/Product' */ if (rtb_LogicalOperator1) { rtDW.BUS_ADR_private[i] = (uint8_t)((uint32_t) rtDW.ErrorCalibration_private[i] * rtConstP.pooled79[i]); } else { rtDW.BUS_ADR_private[i] = 0U; } /* End of Switch: '/Switch1' */ /* DataStoreWrite: '/Data Store Write' */ rtDW.COM_private[i] = 0U; } /* DataTypeConversion: '/Data Type Conversion' */ for (i = 0; i < 6; i++) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read' * Gain: '/Gain' * Product: '/Divide' */ rtb_Saturation_n = rtDW.MaxPositionCh1_private[i]; if (rtb_Saturation_n != 0) { rtb_rate = (double)Actuator_Ch1_Status_Model.in_CPOS_ALL[i] / (double) rtb_Saturation_n * 100.0; } else { rtb_rate = 0.0; } /* End of Switch: '/Switch' */ /* Saturate: '/Saturation' */ if (rtb_rate > 100.0) { rtb_DataTypeConversion_bq[i] = 100U; } else if (rtb_rate < 0.0) { rtb_DataTypeConversion_bq[i] = 0U; } else { rtb_DataTypeConversion_bq[i] = (uint8_t)rtb_rate; } /* End of Saturate: '/Saturation' */ } /* End of DataTypeConversion: '/Data Type Conversion' */ /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Constant: '/Constant1' */ rtb_DataTypeConversion_bq[6] = 0U; rtb_DataTypeConversion_bq[7] = 0U; rtb_DataTypeConversion_bq[8] = 0U; /* DataStoreWrite: '/Data Store Write2' */ for (i = 0; i < 9; i++) { Actuator_pos_percent_Ch1[i] = rtb_DataTypeConversion_bq[i]; } /* Switch: '/Switch' incorporates: * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read2' */ if (rtDW.stepSig_private_h > 0) { rtb_Switch_nyq = rtDW.stepSig_private_h; } else { rtb_Switch_nyq = 1; } /* End of Switch: '/Switch' */ /* SwitchCase: '/Switch Case' */ switch (rtb_Switch_nyq) { case 1: /* Outputs for IfAction SubSystem: '/Stop Mode' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch1_Status_Model.Busy == 0) && (Actuator_Ch1_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_g[i] = 1U; /* DataStoreWrite: '/Data Store Write' */ rtDW.MODE_private_b[i] = 2U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_e = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 2] Stop Mode\n'); */ printf("[LIN 2] 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_e = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Stop Mode' */ break; case 2: /* Outputs for IfAction SubSystem: '/Initial CPOS Min' incorporates: * ActionPort: '/Action Port' */ /* If: '/If' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch1_Status_Model.Busy == 0) && (Actuator_Ch1_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_m[i] = 6000U; /* DataStoreWrite: '/Data Store Write1' */ rtDW.COM_private_g[i] = 2U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Merge: '/Merge' * Sum: '/step inc' */ rtB.Merge_e = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 2] Initial CPOS Min\n'); */ printf("[LIN 2] 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_e = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If' */ /* End of Outputs for SubSystem: '/Initial CPOS Min' */ break; case 3: /* Outputs for IfAction SubSystem: '/Normal Mode' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch1_Status_Model.Busy == 0) && (Actuator_Ch1_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_b[i] = 0U; /* DataStoreWrite: '/Data Store Write1' */ rtDW.COM_private_g[i] = 1U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_e = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('LIN 2] Normal Mode\n'); */ printf("LIN 2] 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_e = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Normal Mode' */ break; case 4: /* Outputs for IfAction SubSystem: '/Move to position Min' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch1_Status_Model.Busy == 0) && (Actuator_Ch1_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_n[i] = 1U; /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Constant10' */ rtDW.Stall_private_l[i] = 1U; /* DataStoreWrite: '/Data Store Write3' */ rtDW.Lnoise_private_n[i] = 0U; /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant2' */ rtDW.Speed_private_j[i] = 3U; /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ rtDW.Coils_private_c[i] = 3U; /* DataStoreWrite: '/Data Store Write' */ rtDW.POS_private_m[i] = 0U; /* DataStoreWrite: '/Data Store Write1' incorporates: * Constant: '/Constant9' */ rtDW.COM_private_g[i] = 3U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_e = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 2] Move to position Min\n'); */ printf("[LIN 2] 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_e = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Move to position Min' */ break; case 5: /* Outputs for IfAction SubSystem: '/Check Stall Min' incorporates: * ActionPort: '/Action Port' */ /* Logic: '/Logical Operator3' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read' * Logic: '/Logical Operator1' * Logic: '/Logical Operator2' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' */ for (i = 0; i < 6; i++) { rtb_LogicalOperator3_n1[i] = ((Actuator_Ch1_Status_Model.in_Act_Stall_Slave[i] == 1) || (Actuator_Ch1_Status_Model.in_CPOS_ALL[i] == 0) || (rtDW.ErrorCalibration_private_p[i] == 0)); } /* End of Logic: '/Logical Operator3' */ /* Logic: '/Logical Operator' incorporates: * Logic: '/Logical Operator3' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_n1[0]; for (i = 0; i < 5; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_n1[i + 1]); } /* If: '/If2' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion1' * Logic: '/Logical Operator' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch1_Status_Model.Busy == 0) && (Actuator_Ch1_Status_Model.Error_Connect == 0) && rtb_LogicalOperator1) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write1' */ for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read1' */ if (rtDW.ErrorCalibration_private_p[i] != 0) { rtDW.MinPositionCh1_private[i] = Actuator_Ch1_Status_Model.in_CPOS_ALL[i]; } /* End of Switch: '/Switch' */ } /* End of DataStoreWrite: '/Data Store Write1' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_e = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 2] Check Stall Min\n'); */ printf("[LIN 2] Check Stall Min\n"); fflush(stdout); /* : for i = 1:numel(data) */ for (i = 0; i < 9; i++) { /* : fprintf('[LIN 2] MIN = %d ', int16(data(i))); */ printf("[LIN 2] MIN = %d ", Actuator_Ch1_Status_Model.in_CPOS_ALL[i]); fflush(stdout); } /* : fprintf('\n'); */ printf("\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_e = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If2' */ /* End of Outputs for SubSystem: '/Check Stall Min' */ break; case 6: /* Outputs for IfAction SubSystem: '/Initial CPOS Max' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch1_Status_Model.Busy == 0) && (Actuator_Ch1_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_g[i] = 2U; /* DataStoreWrite: '/Data Store Write' */ rtDW.POS_private_m[i] = 0U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_e = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 2] Initial CPOS Max\n'); */ printf("[LIN 2] 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_e = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Initial CPOS Max' */ break; case 7: /* Outputs for IfAction SubSystem: '/Move to position Max' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch1_Status_Model.Busy == 0) && (Actuator_Ch1_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_n[i] = 1U; /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Constant10' */ rtDW.Stall_private_l[i] = 1U; /* DataStoreWrite: '/Data Store Write3' */ rtDW.Lnoise_private_n[i] = 0U; /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant2' */ rtDW.Speed_private_j[i] = 3U; /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ rtDW.Coils_private_c[i] = 3U; /* DataStoreWrite: '/Data Store Write' */ rtDW.POS_private_m[i] = 6000U; /* DataStoreWrite: '/Data Store Write1' incorporates: * Constant: '/Constant9' */ rtDW.COM_private_g[i] = 3U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_e = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 2] Move to position Max\n'); */ printf("[LIN 2] 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_e = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Move to position Max' */ break; case 8: /* Outputs for IfAction SubSystem: '/Check Stall Max' incorporates: * ActionPort: '/Action Port' */ /* Logic: '/Logical Operator3' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read' * Logic: '/Logical Operator' * Logic: '/Logical Operator2' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' */ for (i = 0; i < 6; i++) { rtb_LogicalOperator3_n1[i] = ((Actuator_Ch1_Status_Model.in_Act_Stall_Slave[i] == 1) || (Actuator_Ch1_Status_Model.in_CPOS_ALL[i] == 6000) || (rtDW.ErrorCalibration_private_p[i] == 0)); } /* End of Logic: '/Logical Operator3' */ /* Logic: '/Logical Operator1' incorporates: * Logic: '/Logical Operator3' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_n1[0]; for (i = 0; i < 5; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_n1[i + 1]); } /* If: '/If2' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion1' * Logic: '/Logical Operator1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch1_Status_Model.Busy == 0) && (Actuator_Ch1_Status_Model.Error_Connect == 0) && rtb_LogicalOperator1) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write1' */ for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read1' */ if (rtDW.ErrorCalibration_private_p[i] != 0) { rtDW.MaxPositionCh1_private[i] = Actuator_Ch1_Status_Model.in_CPOS_ALL[i]; } else { rtDW.MaxPositionCh1_private[i] = 0; } /* End of Switch: '/Switch' */ } /* End of DataStoreWrite: '/Data Store Write1' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_e = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 2] Check Stall MAX\n'); */ printf("[LIN 2] Check Stall MAX\n"); fflush(stdout); /* : for i = 1:numel(data) */ for (i = 0; i < 9; i++) { /* : fprintf('[LIN 2] MAX = %d ', int16(data(i))); */ printf("[LIN 2] MAX = %d ", Actuator_Ch1_Status_Model.in_CPOS_ALL[i]); fflush(stdout); } /* : fprintf('\n'); */ printf("\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_e = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If2' */ /* End of Outputs for SubSystem: '/Check Stall Max' */ break; case 9: /* Outputs for IfAction SubSystem: '/Homing' incorporates: * ActionPort: '/Action Port' */ /* Product: '/Divide1' incorporates: * Constant: '/ACT1' * DataStoreRead: '/MAX ACT1T ' */ for (i = 0; i < 6; i++) { rtb_Divide1_a4[i] = (double)rtDW.MaxPositionCh1_private[i] / (double) rtConstP.ACT1_Value_c[i]; } /* End of Product: '/Divide1' */ /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Constant: '/Constant' */ rtb_Divide1_a4[6] = 1.0; rtb_Divide1_a4[7] = 1.0; rtb_Divide1_a4[8] = 1.0; /* SwitchCase: '/Switch Case' incorporates: * DataStoreRead: '/Data Store Read4' */ switch (rtDW.stepHoming_private_f) { case 0: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* RelationalOperator: '/Compare' */ rtb_rate = rtb_Divide1_a4[i]; /* Logic: '/Logical Operator' incorporates: * Constant: '/Constant' * Constant: '/Constant' * RelationalOperator: '/Compare' * RelationalOperator: '/Compare' */ rtb_LogicalOperator1 = ((rtb_rate >= 0.9) && (rtb_rate <= 1.1)); rtb_LogicalOperator3_i5[i] = rtb_LogicalOperator1; /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Logic: '/Logical Operator' * Logic: '/Logical Operator1' */ rtDW.ErrorCalibration_private_p[i] = (uint8_t)((!rtb_LogicalOperator1) && (rtDW.ErrorCalibration_private_p[i] != 0)); } /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/MIN ACT1T 1' * Logic: '/Logical Operator2' */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { /* : fprintf("[LIN 2] Homing 0\n"); */ printf("[LIN 2] Homing 0\n"); fflush(stdout); /* : for i = 1:numel(MAX) */ for (i = 0; i < 6; i++) { /* : fprintf('[LIN 2] ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ printf("[LIN 2] ACT%d MAX = %d KOEF = %f Callibration = %d \n", (int16_t)(i + 1), rtDW.MaxPositionCh1_private[i], rtb_Divide1_a4[i], (int16_t)!rtb_LogicalOperator3_i5[i]); fflush(stdout); } } /* End of MATLAB Function: '/MAX POSITION' */ /* Logic: '/Logical Operator1' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_i5[i + 1]); } /* Switch: '/Switch' incorporates: * Logic: '/Logical Operator1' */ if (rtb_LogicalOperator1) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_p = 4; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant' */ rtB.Merge_p = 1; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem' */ break; case 1: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem1' incorporates: * ActionPort: '/Action Port' */ /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ for (i = 0; i < 9; i++) { rtb_LogicalOperator3_i5[i] = (rtb_Divide1_a4[i] > 1.5); } /* End of RelationalOperator: '/Compare' */ /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || rtb_LogicalOperator3_i5[i + 1]); } /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreWrite: '/Data Store Write1' * Logic: '/Logical Operator' */ rtDW.CCU_ActuatorErrF_Stat_private = rtb_LogicalOperator1; for (i = 0; i < 9; i++) { /* DataTypeConversion: '/Data Type Conversion1' incorporates: * DataStoreWrite: '/Data Store Write2' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[i]; rtDW.COM_private_g[i] = rtb_LogicalOperator1; /* DataTypeConversion: '/Data Type Conversion2' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write3' * Logic: '/Logical Operator1' */ rtDW.ErrorActuator_o[i] = (uint8_t)(rtb_LogicalOperator1 || (rtDW.ErrorActuator_o[i] != 0)); /* DataStoreWrite: '/Data Store Write' */ rtDW.MODE_private_b[i] = 2U; } /* MATLAB Function: '/Write ERROR' incorporates: * DataStoreRead: '/Data Store Read6' */ /* : 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_i5[i]) { /* : fprintf('[LIN 2] Failure with actuator #%d\n', int16(i)); */ printf("[LIN 2] 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_i5[i]; /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Logic: '/Logical Operator' * Logic: '/Logical Operator1' */ rtDW.ErrorCalibration_private_p[i] = (uint8_t)((!rtb_LogicalOperator1) && (rtDW.ErrorCalibration_private_p[i] != 0)); /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[i + 54] = rtb_LogicalOperator1; } /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.stepSig_private_h = 1; /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/MIN ACT1T 1' * DataStoreWrite: '/Data Store Write' */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { /* : fprintf("[LIN 2] Homing 1. Start Callibration \n"); */ printf("[LIN 2] Homing 1. Start Callibration \n"); fflush(stdout); /* : for i = 1:numel(MAX) */ for (i = 0; i < 6; i++) { /* : if(ERRORS(i)==1) */ if (rtDW.ErrorCalibration_private_p[i] == 1) { /* : fprintf('[LIN 2] ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ printf("[LIN 2] ACT%d MAX = %d KOEF = %f Callibration = %d \n", (int16_t)(i + 1), rtDW.MaxPositionCh1_private[i], rtb_Divide1_a4[i], (int16_t)rtDW.ErrorCalibration_private_p[i]); fflush(stdout); } } } /* End of MATLAB Function: '/MAX POSITION' */ /* Logic: '/Logical Operator2' incorporates: * DataStoreWrite: '/Data Store Write' */ rtb_LogicalOperator1 = (rtDW.ErrorCalibration_private_p[0] != 0); for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || (rtDW.ErrorCalibration_private_p[i + 1] != 0)); } /* Switch: '/Switch' incorporates: * Logic: '/Logical Operator2' */ if (rtb_LogicalOperator1) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_p = 2; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_p = 4; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* RelationalOperator: '/Compare' */ rtb_rate = rtb_Divide1_a4[i]; /* Logic: '/Logical Operator3' incorporates: * Constant: '/Constant' * Constant: '/Constant' * DataStoreRead: '/Data Store Read' * Logic: '/Logical Operator1' * Logic: '/Logical Operator4' * RelationalOperator: '/Compare' * RelationalOperator: '/Compare' */ rtb_LogicalOperator1 = (((rtb_rate < 0.97) || (rtb_rate > 1.03)) && (rtDW.ErrorCalibration_private_p[i] != 0)); rtb_LogicalOperator3_i5[i] = rtb_LogicalOperator1; /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreWrite: '/Data Store Write1' */ rtDW.ErrorCalibration_private_p[i] = rtb_LogicalOperator1; } /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/MIN ACT1T 1' */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { /* : fprintf("[LIN 2] Homing 3. Callibration \n"); */ printf("[LIN 2] Homing 3. Callibration \n"); fflush(stdout); /* : for i = 1:numel(MAX) */ for (i = 0; i < 6; i++) { /* : if(ERRORS(i)==1) */ if (rtb_LogicalOperator3_i5[i]) { /* : fprintf('[LIN 2] ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ printf("[LIN 2] ACT%d MAX = %d KOEF = %f Callibration = %d \n", (int16_t)(i + 1), rtDW.MaxPositionCh1_private[i], rtb_Divide1_a4[i], 1); fflush(stdout); } } } /* End of MATLAB Function: '/MAX POSITION' */ /* Logic: '/Logical Operator2' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || rtb_LogicalOperator3_i5[i + 1]); } /* Switch: '/Switch' incorporates: * Logic: '/Logical Operator2' */ if (rtb_LogicalOperator1) { /* Merge: '/Merge' incorporates: * Constant: '/Constant3' */ rtB.Merge_p = 3; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_p = 4; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read5' */ /* : if(LOGGER>1) */ if (rtDW.LOGGER_LIN > 1.0) { /* : fprintf("[LIN 2] Homing 3. Start Time on step %d\n",int16(step)); */ rtb_rate = rt_roundd(rtDW.ErrorHomming_private_h); if (rtb_rate < 32768.0) { if (rtb_rate >= -32768.0) { rtb_Saturation_n = (int16_t)rtb_rate; } else { rtb_Saturation_n = INT16_MIN; } } else { rtb_Saturation_n = INT16_MAX; } printf("[LIN 2] Homing 3. Start Time on step %d\n", rtb_Saturation_n); fflush(stdout); } /* End of MATLAB Function: '/MAX POSITION' */ /* If: '/If' incorporates: * DataStoreRead: '/Data Store Read1' */ if (rtDW.ErrorHomming_private_h < 10.0) { /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/MATLAB Function' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' */ MATLABFunction(rtDW.Start_timer_j, rtDW.t_now, &rtb_dt_an, &rtDW.sf_MATLABFunction_h); /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' */ /* : if(LOGGER>1) */ if (rtDW.LOGGER_LIN > 1.0) { /* : fprintf("[LIN 2] Homing 3. Start TIme dt = %d \n",int32(data)); */ rtb_Subtract = rtb_dt_an; if (rtb_dt_an > 2147483647U) { rtb_Subtract = 2147483647U; } printf("[LIN 2] Homing 3. Start TIme dt = %d \n", (int32_t) rtb_Subtract); fflush(stdout); } /* End of MATLAB Function: '/MAX POSITION' */ /* If: '/If' */ if (rtb_dt_an > 30000U) { /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: * ActionPort: '/Action Port' */ /* Merge: '/Merge' */ IfActionSubsystem(&rtB.Merge_p, &rtDW.ErrorHomming_private_h, &rtDW.Start_timer_j, &rtDW.stepSig_private_h); /* 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' */ rtDW.Start_timer_j = 1.0; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private_j[0] = rtb_DataTypeConversion_bq[0]; /* DataTypeConversion: '/Data Type Conversion2' incorporates: * DataStoreRead: '/valves target in percent' */ for (i = 0; i < 9; i++) { rtb_DataTypeConversion_fb[i] = (uint8_t) rtDW.valves_front_manual_target[i]; } /* End of DataTypeConversion: '/Data Type Conversion2' */ /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' */ rtDW.BUS_ADR_private_j[1] = rtb_DataTypeConversion_fb[2]; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' */ rtDW.BUS_ADR_private_j[2] = rtb_DataTypeConversion_fb[3]; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private_j[3] = rtb_DataTypeConversion_bq[3]; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' */ rtDW.BUS_ADR_private_j[4] = rtb_DataTypeConversion_fb[4]; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' */ rtDW.BUS_ADR_private_j[5] = rtb_DataTypeConversion_fb[5]; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' * Constant: '/Constant' */ rtDW.BUS_ADR_private_j[6] = 0U; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' * Constant: '/Constant' */ rtDW.BUS_ADR_private_j[7] = 0U; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' * Constant: '/Constant' */ rtDW.BUS_ADR_private_j[8] = 0U; for (i = 0; i < 9; i++) { /* Product: '/Product' */ rtb_Merge_j = rtDW.BUS_ADR_private_j[i]; /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Product: '/Divide1' * Product: '/Product' */ rtDW.POS_private_m[i] = (uint16_t)((double)(rtb_Merge_j * rtDW.MaxPositionCh1_private[i]) / 100.0); /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreWrite: '/Data Store Write2' */ rtb_LogicalOperator3_i5[i] = (rtb_DataTypeConversion_bq[i] == rtb_Merge_j); } /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_i5[i + 1]); } for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * Constant: '/Constant4' * Constant: '/Constant9' * DataStoreWrite: '/Data Store Write1' * Logic: '/Logical Operator' */ if (rtb_LogicalOperator1) { rtDW.COM_private_g[i] = 0U; } else { rtDW.COM_private_g[i] = 3U; } /* End of Switch: '/Switch' */ /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Concatenate: '/LIN1' * Constant: '/Constant5' * DataStoreWrite: '/Data Store Write2' * DataStoreWrite: '/Data Store Write7' * Product: '/Product' * RelationalOperator: '/Relational Operator' */ rtDW.BUS_ADR_private_j[i] = (uint8_t)((uint32_t) (rtb_DataTypeConversion_bq[i] != rtDW.BUS_ADR_private_j[i]) * rtConstP.pooled79[i]); /* DataStoreWrite: '/Data Store Write4' incorporates: * Constant: '/Constant1' */ rtDW.Autos_private_n[i] = 1U; /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Constant10' */ rtDW.Stall_private_l[i] = 1U; /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Constant11' */ rtDW.Lnoise_private_n[i] = 0U; /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant2' */ rtDW.Speed_private_j[i] = 3U; /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ rtDW.Coils_private_c[i] = 3U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant1' * Merge: '/Merge' * SignalConversion generated from: '/Out1' */ rtB.Merge_p = 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' */ IfActionSubsystem1(&rtB.Merge_p, &rtDW.CCU_ActuatorErrF_Stat_private, rtDW.COM_private_g, rtDW.ErrorActuator_o, rtDW.ErrorCalibration_private_p, &rtDW.LOGGER_LIN, rtDW.MODE_private_b, 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; case 4: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem4' incorporates: * ActionPort: '/Action Port' */ /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private_j[0] = rtb_DataTypeConversion_bq[0]; /* DataTypeConversion: '/Data Type Conversion2' incorporates: * DataStoreRead: '/valves target in percent' */ for (i = 0; i < 9; i++) { rtb_DataTypeConversion_fb[i] = (uint8_t) rtDW.valves_front_manual_target[i]; } /* End of DataTypeConversion: '/Data Type Conversion2' */ /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' */ rtDW.BUS_ADR_private_j[1] = rtb_DataTypeConversion_fb[2]; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' */ rtDW.BUS_ADR_private_j[2] = rtb_DataTypeConversion_fb[3]; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private_j[3] = rtb_DataTypeConversion_bq[3]; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' */ rtDW.BUS_ADR_private_j[4] = rtb_DataTypeConversion_fb[4]; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' */ rtDW.BUS_ADR_private_j[5] = rtb_DataTypeConversion_fb[5]; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private_j[6] = 0U; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private_j[7] = 0U; /* SignalConversion generated from: '/LIN1' incorporates: * Concatenate: '/LIN1' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private_j[8] = 0U; for (i = 0; i < 9; i++) { /* Product: '/Product' */ rtb_Merge_j = rtDW.BUS_ADR_private_j[i]; /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Product: '/Divide1' * Product: '/Product' */ rtDW.POS_private_m[i] = (uint16_t)((double)(rtb_Merge_j * rtDW.MaxPositionCh1_private[i]) / 100.0); /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreWrite: '/Data Store Write2' */ rtb_LogicalOperator3_i5[i] = (rtb_DataTypeConversion_bq[i] == rtb_Merge_j); } /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_i5[i + 1]); } for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * Constant: '/Constant4' * Constant: '/Constant9' * DataStoreWrite: '/Data Store Write1' * Logic: '/Logical Operator' */ if (rtb_LogicalOperator1) { rtDW.COM_private_g[i] = 0U; } else { rtDW.COM_private_g[i] = 3U; } /* End of Switch: '/Switch' */ /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Concatenate: '/LIN1' * Constant: '/Constant5' * DataStoreWrite: '/Data Store Write2' * DataStoreWrite: '/Data Store Write7' * Product: '/Product' * RelationalOperator: '/Relational Operator' */ rtDW.BUS_ADR_private_j[i] = (uint8_t)((uint32_t) (rtb_DataTypeConversion_bq[i] != rtDW.BUS_ADR_private_j[i]) * rtConstP.pooled79[i]); /* DataStoreWrite: '/Data Store Write4' incorporates: * Constant: '/Constant1' */ rtDW.Autos_private_n[i] = 1U; /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Constant10' */ rtDW.Stall_private_l[i] = 1U; /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Constant11' */ rtDW.Lnoise_private_n[i] = 0U; /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant2' */ rtDW.Speed_private_j[i] = 3U; /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ rtDW.Coils_private_c[i] = 3U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant1' * SignalConversion generated from: '/step' */ rtB.Merge_p = 4; /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { /* : fprintf("[LIN 2] Homing. Callibration successful \n"); */ printf("[LIN 2] Homing. Callibration successful \n"); fflush(stdout); } /* End of MATLAB Function: '/MAX POSITION' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem4' */ break; } /* End of SwitchCase: '/Switch Case' */ /* DataStoreWrite: '/Data Store Write2' */ rtDW.stepHoming_private_f = rtB.Merge_p; /* Merge: '/Merge' incorporates: * DataStoreRead: '/Data Store Read7' */ rtB.Merge_e = rtDW.stepSig_private_h; /* End of Outputs for SubSystem: '/Homing' */ break; } /* End of SwitchCase: '/Switch Case' */ /* DataStoreWrite: '/Finish write stepSig' */ rtDW.stepSig_private_h = rtB.Merge_e; /* BusCreator: '/Bus Creator' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read3' * DataStoreRead: '/Data Store Read4' * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/Data Store Read6' * DataStoreRead: '/Data Store Read7' * DataStoreRead: '/Data Store Read8' * DataStoreWrite: '/Data Store Write' */ for (i = 0; i < 9; i++) { Actuator_Ch1_Command_Model.POS[i] = rtDW.POS_private_m[i]; Actuator_Ch1_Command_Model.BUS_ADR[i] = rtDW.BUS_ADR_private_j[i]; Actuator_Ch1_Command_Model.MODE[i] = rtDW.MODE_private_b[i]; Actuator_Ch1_Command_Model.COM[i] = rtDW.COM_private_g[i]; Actuator_Ch1_Command_Model.Stall_SET[i] = rtDW.Stall_private_l[i]; Actuator_Ch1_Command_Model.Lnoise_SET[i] = rtDW.Lnoise_private_n[i]; Actuator_Ch1_Command_Model.Autos_SET[i] = rtDW.Autos_private_n[i]; Actuator_Ch1_Command_Model.Speed_SET[i] = rtDW.Speed_private_j[i]; Actuator_Ch1_Command_Model.Coils_Stop_SET[i] = rtDW.Coils_private_c[i]; } /* End of BusCreator: '/Bus Creator' */ /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read2' */ for (i = 0; i < 6; i++) { rtb_Compare_n[i] = (rtDW.ErrorCalibration_private_p[i] == 0); } /* End of RelationalOperator: '/Compare' */ /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_Compare_n[0]; for (i = 0; i < 5; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || rtb_Compare_n[i + 1]); } /* Switch: '/Switch1' incorporates: * Constant: '/Constant' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read2' * Logic: '/Logical Operator' * Product: '/Product' */ for (i = 0; i < 6; i++) { if (rtb_LogicalOperator1) { rtb_DataTypeConversion_bq[i] = (uint8_t)((uint32_t) rtDW.ErrorCalibration_private_p[i] * rtConstP.Constant3_Value[i]); } else { rtb_DataTypeConversion_bq[i] = 0U; } } /* End of Switch: '/Switch1' */ /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Constant: '/Constant1' */ rtb_DataTypeConversion_bq[6] = 0U; rtb_DataTypeConversion_bq[7] = 0U; rtb_DataTypeConversion_bq[8] = 0U; for (i = 0; i < 9; i++) { /* DataStoreWrite: '/Data Store Write7' incorporates: * Concatenate: '/LIN1' */ rtDW.BUS_ADR_private_j[i] = rtb_DataTypeConversion_bq[i]; /* DataStoreWrite: '/Data Store Write' */ rtDW.COM_private_g[i] = 0U; } /* DataTypeConversion: '/Data Type Conversion' */ for (i = 0; i < 8; i++) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read' * Gain: '/Gain' * Product: '/Divide' */ rtb_Saturation_n = rtDW.MaxPositionCh2_private[i]; if (rtb_Saturation_n != 0) { rtb_rate = (double)Actuator_Ch2_Status_Model.in_CPOS_ALL[i] / (double) rtb_Saturation_n * 100.0; } else { rtb_rate = 0.0; } /* End of Switch: '/Switch' */ /* Saturate: '/Saturation' */ if (rtb_rate > 100.0) { rtb_DataTypeConversion_bq[i] = 100U; } else if (rtb_rate < 0.0) { rtb_DataTypeConversion_bq[i] = 0U; } else { rtb_DataTypeConversion_bq[i] = (uint8_t)rtb_rate; } /* End of Saturate: '/Saturation' */ } /* End of DataTypeConversion: '/Data Type Conversion' */ /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Constant: '/Constant1' */ rtb_DataTypeConversion_bq[8] = 0U; /* DataStoreWrite: '/Data Store Write2' */ for (i = 0; i < 9; i++) { rtb_DataTypeConversion_fb[i] = rtb_DataTypeConversion_bq[i]; } /* Switch: '/Switch' incorporates: * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read2' */ if (rtDW.stepSig_private_g > 0) { rtb_Switch_nyq = rtDW.stepSig_private_g; } else { rtb_Switch_nyq = 1; } /* End of Switch: '/Switch' */ /* SwitchCase: '/Switch Case' */ switch (rtb_Switch_nyq) { case 1: /* Outputs for IfAction SubSystem: '/Stop Mode' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch2_Status_Model.Busy == 0) && (Actuator_Ch2_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_k[i] = 1U; /* DataStoreWrite: '/Data Store Write' */ rtDW.MODE_private_c[i] = 2U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_b4 = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 3] Stop Mode\n'); */ printf("[LIN 3] 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_b4 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Stop Mode' */ break; case 2: /* Outputs for IfAction SubSystem: '/Initial CPOS Min' incorporates: * ActionPort: '/Action Port' */ /* If: '/If' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch2_Status_Model.Busy == 0) && (Actuator_Ch2_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_h[i] = 6000U; /* DataStoreWrite: '/Data Store Write1' */ rtDW.COM_private_k[i] = 2U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Merge: '/Merge' * Sum: '/step inc' */ rtB.Merge_b4 = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 3] Initial CPOS Min\n'); */ printf("[LIN 3] 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_b4 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If' */ /* End of Outputs for SubSystem: '/Initial CPOS Min' */ break; case 3: /* Outputs for IfAction SubSystem: '/Normal Mode' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch2_Status_Model.Busy == 0) && (Actuator_Ch2_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_c[i] = 0U; /* DataStoreWrite: '/Data Store Write1' */ rtDW.COM_private_k[i] = 1U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_b4 = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 3] Normal Mode\n'); */ printf("[LIN 3] 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_b4 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Normal Mode' */ break; case 4: /* Outputs for IfAction SubSystem: '/Move to position Min' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch2_Status_Model.Busy == 0) && (Actuator_Ch2_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_g[i] = 1U; /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Constant10' */ rtDW.Stall_private_f[i] = 1U; /* DataStoreWrite: '/Data Store Write3' */ rtDW.Lnoise_private_g[i] = 0U; /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant2' */ rtDW.Speed_private_b[i] = 3U; /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ rtDW.Coils_private_l[i] = 3U; /* DataStoreWrite: '/Data Store Write' */ rtDW.POS_private_h[i] = 0U; /* DataStoreWrite: '/Data Store Write1' incorporates: * Constant: '/Constant9' */ rtDW.COM_private_k[i] = 3U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_b4 = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 3] Move to position Min\n'); */ printf("[LIN 3] 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_b4 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Move to position Min' */ break; case 5: /* Outputs for IfAction SubSystem: '/Check Stall Min' incorporates: * ActionPort: '/Action Port' */ /* Logic: '/Logical Operator3' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read' * Logic: '/Logical Operator1' * Logic: '/Logical Operator2' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' */ for (i = 0; i < 8; i++) { rtb_Compare_n[i] = ((Actuator_Ch2_Status_Model.in_Act_Stall_Slave[i] == 1) || (Actuator_Ch2_Status_Model.in_CPOS_ALL[i] == 0) || (rtDW.ErrorCalibration_private_b[i] == 0)); } /* End of Logic: '/Logical Operator3' */ /* Logic: '/Logical Operator' incorporates: * Logic: '/Logical Operator3' */ rtb_LogicalOperator1 = rtb_Compare_n[0]; for (i = 0; i < 7; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_Compare_n[i + 1]); } /* If: '/If2' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion1' * Logic: '/Logical Operator' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch2_Status_Model.Busy == 0) && (Actuator_Ch2_Status_Model.Error_Connect == 0) && rtb_LogicalOperator1) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write1' */ for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read1' */ if (rtDW.ErrorCalibration_private_b[i] != 0) { rtDW.MinPositionCh2_private[i] = Actuator_Ch2_Status_Model.in_CPOS_ALL[i]; } /* End of Switch: '/Switch' */ } /* End of DataStoreWrite: '/Data Store Write1' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_b4 = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 3] Check Stall Min\n'); */ printf("[LIN 3] Check Stall Min\n"); fflush(stdout); /* : for i = 1:numel(data) */ for (i = 0; i < 9; i++) { /* : fprintf('[LIN 3] MIN = %d ', int16(data(i))); */ printf("[LIN 3] MIN = %d ", Actuator_Ch2_Status_Model.in_CPOS_ALL[i]); fflush(stdout); } /* : fprintf('\n'); */ printf("\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_b4 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If2' */ /* End of Outputs for SubSystem: '/Check Stall Min' */ break; case 6: /* Outputs for IfAction SubSystem: '/Initial CPOS Max' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch2_Status_Model.Busy == 0) && (Actuator_Ch2_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_k[i] = 2U; /* DataStoreWrite: '/Data Store Write' */ rtDW.POS_private_h[i] = 0U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_b4 = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 3] Initial CPOS Max\n'); */ printf("[LIN 3] 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_b4 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Initial CPOS Max' */ break; case 7: /* Outputs for IfAction SubSystem: '/Move to position Max' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch2_Status_Model.Busy == 0) && (Actuator_Ch2_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_g[i] = 1U; /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Constant10' */ rtDW.Stall_private_f[i] = 1U; /* DataStoreWrite: '/Data Store Write3' */ rtDW.Lnoise_private_g[i] = 0U; /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant2' */ rtDW.Speed_private_b[i] = 3U; /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ rtDW.Coils_private_l[i] = 3U; /* DataStoreWrite: '/Data Store Write' */ rtDW.POS_private_h[i] = 6000U; /* DataStoreWrite: '/Data Store Write1' incorporates: * Constant: '/Constant9' */ rtDW.COM_private_k[i] = 3U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_b4 = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 3] Move to position Max\n'); */ printf("[LIN 3] 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_b4 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If1' */ /* End of Outputs for SubSystem: '/Move to position Max' */ break; case 8: /* Outputs for IfAction SubSystem: '/Check Stall Max' incorporates: * ActionPort: '/Action Port' */ /* Logic: '/Logical Operator3' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read' * Logic: '/Logical Operator' * Logic: '/Logical Operator2' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' */ for (i = 0; i < 8; i++) { rtb_Compare_n[i] = ((Actuator_Ch2_Status_Model.in_Act_Stall_Slave[i] == 1) || (Actuator_Ch2_Status_Model.in_CPOS_ALL[i] == 6000) || (rtDW.ErrorCalibration_private_b[i] == 0)); } /* End of Logic: '/Logical Operator3' */ /* Logic: '/Logical Operator1' incorporates: * Logic: '/Logical Operator3' */ rtb_LogicalOperator1 = rtb_Compare_n[0]; for (i = 0; i < 7; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_Compare_n[i + 1]); } /* If: '/If2' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write1' * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion1' * Logic: '/Logical Operator1' * SignalConversion generated from: '/Bus Selector' */ if ((Actuator_Ch2_Status_Model.Busy == 0) && (Actuator_Ch2_Status_Model.Error_Connect == 0) && rtb_LogicalOperator1) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write1' */ for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read1' */ if (rtDW.ErrorCalibration_private_b[i] != 0) { rtDW.MaxPositionCh2_private[i] = Actuator_Ch2_Status_Model.in_CPOS_ALL[i]; } else { rtDW.MaxPositionCh2_private[i] = 0; } /* End of Switch: '/Switch' */ } /* End of DataStoreWrite: '/Data Store Write1' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge_b4 = (int8_t)(rtb_Switch_nyq + 1); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER == 2) */ if (rtDW.LOGGER_LIN == 2.0) { /* : fprintf('[LIN 3] Check Stall MAX\n'); */ printf("[LIN 3] Check Stall MAX\n"); fflush(stdout); /* : for i = 1:numel(data) */ for (i = 0; i < 9; i++) { /* : fprintf('[LIN 3] MAX = %d ', int16(data(i))); */ printf("[LIN 3] MAX = %d ", Actuator_Ch2_Status_Model.in_CPOS_ALL[i]); fflush(stdout); } /* : fprintf('\n'); */ printf("\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_b4 = rtb_Switch_nyq; /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If2' */ /* End of Outputs for SubSystem: '/Check Stall Max' */ break; case 9: /* Outputs for IfAction SubSystem: '/Homing' incorporates: * ActionPort: '/Action Port' */ /* Product: '/Divide1' incorporates: * Constant: '/ACT1' * DataStoreRead: '/MAX ACT1T ' */ for (i = 0; i < 8; i++) { rtb_Divide1_a4[i] = (double)rtDW.MaxPositionCh2_private[i] / (double) rtConstP.ACT1_Value_m[i]; } /* End of Product: '/Divide1' */ /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Constant: '/Constant' */ rtb_Divide1_a4[8] = 1.0; /* SwitchCase: '/Switch Case' incorporates: * DataStoreRead: '/Data Store Read4' */ switch (rtDW.stepHoming_private_a) { case 0: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* RelationalOperator: '/Compare' */ rtb_rate = rtb_Divide1_a4[i]; /* Logic: '/Logical Operator' incorporates: * Constant: '/Constant' * Constant: '/Constant' * RelationalOperator: '/Compare' * RelationalOperator: '/Compare' */ rtb_LogicalOperator1 = ((rtb_rate >= 0.9) && (rtb_rate <= 1.1)); rtb_LogicalOperator3_i5[i] = rtb_LogicalOperator1; /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Logic: '/Logical Operator' * Logic: '/Logical Operator1' */ rtDW.ErrorCalibration_private_b[i] = (uint8_t)((!rtb_LogicalOperator1) && (rtDW.ErrorCalibration_private_b[i] != 0)); } /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/MIN ACT1T 1' * Logic: '/Logical Operator2' */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { /* : fprintf("[LIN 3] Homing 0\n"); */ printf("[LIN 3] Homing 0\n"); fflush(stdout); /* : for i = 1:numel(MAX) */ for (i = 0; i < 6; i++) { /* : fprintf('[LIN 3] ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ printf("[LIN 3] ACT%d MAX = %d KOEF = %f Callibration = %d \n", (int16_t)(i + 1), rtDW.MaxPositionCh2_private[i], rtb_Divide1_a4[i], (int16_t)!rtb_LogicalOperator3_i5[i]); fflush(stdout); } } /* End of MATLAB Function: '/MAX POSITION' */ /* Logic: '/Logical Operator1' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_i5[i + 1]); } /* Switch: '/Switch' incorporates: * Logic: '/Logical Operator1' */ if (rtb_LogicalOperator1) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_h3 = 4; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant' */ rtB.Merge_h3 = 1; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem' */ break; case 1: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem1' incorporates: * ActionPort: '/Action Port' */ /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' */ for (i = 0; i < 9; i++) { rtb_LogicalOperator3_i5[i] = (rtb_Divide1_a4[i] > 1.5); } /* End of RelationalOperator: '/Compare' */ /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || rtb_LogicalOperator3_i5[i + 1]); } /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreWrite: '/Data Store Write1' * Logic: '/Logical Operator' */ rtDW.CCU_ActuatorErrF_Stat_private = rtb_LogicalOperator1; for (i = 0; i < 9; i++) { /* DataTypeConversion: '/Data Type Conversion1' incorporates: * DataStoreWrite: '/Data Store Write2' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[i]; rtDW.COM_private_k[i] = rtb_LogicalOperator1; /* DataTypeConversion: '/Data Type Conversion2' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write3' * Logic: '/Logical Operator1' */ rtDW.ErrorActuator_a[i] = (uint8_t)(rtb_LogicalOperator1 || (rtDW.ErrorActuator_a[i] != 0)); /* DataStoreWrite: '/Data Store Write' */ rtDW.MODE_private_c[i] = 2U; } /* MATLAB Function: '/Write ERROR' incorporates: * DataStoreRead: '/Data Store Read6' */ /* : 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_i5[i]) { /* : fprintf('[LIN 3] Failure with actuator #%d\n', int16(i)); */ printf("[LIN 3] 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_i5[i]; /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Logic: '/Logical Operator' * Logic: '/Logical Operator1' */ rtDW.ErrorCalibration_private_b[i] = (uint8_t)((!rtb_LogicalOperator1) && (rtDW.ErrorCalibration_private_b[i] != 0)); /* DataStoreWrite: '/Data Store Write' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.dtc_state_error_model[i + 54] = rtb_LogicalOperator1; } /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.stepSig_private_g = 1; /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/MIN ACT1T 1' * DataStoreWrite: '/Data Store Write' */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { /* : fprintf("[LIN 3] Homing 1. Start Callibration \n"); */ printf("[LIN 3] Homing 1. Start Callibration \n"); fflush(stdout); /* : for i = 1:numel(MAX) */ for (i = 0; i < 6; i++) { /* : if(ERRORS(i)==1) */ if (rtDW.ErrorCalibration_private_b[i] == 1) { /* : fprintf('[LIN 3] ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ printf("[LIN 3] ACT%d MAX = %d KOEF = %f Callibration = %d \n", (int16_t)(i + 1), rtDW.MaxPositionCh2_private[i], rtb_Divide1_a4[i], (int16_t)rtDW.ErrorCalibration_private_b[i]); fflush(stdout); } } } /* End of MATLAB Function: '/MAX POSITION' */ /* Logic: '/Logical Operator2' incorporates: * DataStoreWrite: '/Data Store Write' */ rtb_LogicalOperator1 = (rtDW.ErrorCalibration_private_b[0] != 0); for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || (rtDW.ErrorCalibration_private_b[i + 1] != 0)); } /* Switch: '/Switch' incorporates: * Logic: '/Logical Operator2' */ if (rtb_LogicalOperator1) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_h3 = 2; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_h3 = 4; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* RelationalOperator: '/Compare' */ rtb_rate = rtb_Divide1_a4[i]; /* Logic: '/Logical Operator3' incorporates: * Constant: '/Constant' * Constant: '/Constant' * DataStoreRead: '/Data Store Read' * Logic: '/Logical Operator1' * Logic: '/Logical Operator4' * RelationalOperator: '/Compare' * RelationalOperator: '/Compare' */ rtb_LogicalOperator1 = (((rtb_rate < 0.97) || (rtb_rate > 1.03)) && (rtDW.ErrorCalibration_private_b[i] != 0)); rtb_LogicalOperator3_i5[i] = rtb_LogicalOperator1; /* DataTypeConversion: '/Data Type Conversion' incorporates: * DataStoreWrite: '/Data Store Write1' */ rtDW.ErrorCalibration_private_b[i] = rtb_LogicalOperator1; } /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/MIN ACT1T 1' */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { /* : fprintf("[LIN 3] Homing 3. Callibration \n"); */ printf("[LIN 3] Homing 3. Callibration \n"); fflush(stdout); /* : for i = 1:numel(MAX) */ for (i = 0; i < 6; i++) { /* : if(ERRORS(i)==1) */ if (rtb_LogicalOperator3_i5[i]) { /* : fprintf('[LIN 3] ACT%d MAX = %d KOEF = %f Callibration = %d \n', int16(i), int16(MAX(i)), KOEF(i), int16(ERRORS(i))); */ printf("[LIN 3] ACT%d MAX = %d KOEF = %f Callibration = %d \n", (int16_t)(i + 1), rtDW.MaxPositionCh2_private[i], rtb_Divide1_a4[i], 1); fflush(stdout); } } } /* End of MATLAB Function: '/MAX POSITION' */ /* Logic: '/Logical Operator2' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || rtb_LogicalOperator3_i5[i + 1]); } /* Switch: '/Switch' incorporates: * Logic: '/Logical Operator2' */ if (rtb_LogicalOperator1) { /* Merge: '/Merge' incorporates: * Constant: '/Constant3' */ rtB.Merge_h3 = 3; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_h3 = 4; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read5' */ /* : if(LOGGER>1) */ if (rtDW.LOGGER_LIN > 1.0) { /* : fprintf("[LIN 3] Homing 3. Start Time on step %d\n",int16(step)); */ rtb_rate = rt_roundd(rtDW.ErrorHomming_private_m); if (rtb_rate < 32768.0) { if (rtb_rate >= -32768.0) { rtb_Saturation_n = (int16_t)rtb_rate; } else { rtb_Saturation_n = INT16_MIN; } } else { rtb_Saturation_n = INT16_MAX; } printf("[LIN 3] Homing 3. Start Time on step %d\n", rtb_Saturation_n); fflush(stdout); } /* End of MATLAB Function: '/MAX POSITION' */ /* If: '/If' incorporates: * DataStoreRead: '/Data Store Read1' */ if (rtDW.ErrorHomming_private_m < 10.0) { /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/MATLAB Function' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' */ MATLABFunction(rtDW.Start_timer, rtDW.t_now, &rtb_dt_an, &rtDW.sf_MATLABFunction_g); /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' */ /* : if(LOGGER>1) */ if (rtDW.LOGGER_LIN > 1.0) { /* : fprintf("[LIN 3] Homing 3. Start TIme dt = %d \n",int32(data)); */ rtb_Subtract = rtb_dt_an; if (rtb_dt_an > 2147483647U) { rtb_Subtract = 2147483647U; } printf("[LIN 3] Homing 3. Start TIme dt = %d \n", (int32_t) rtb_Subtract); fflush(stdout); } /* End of MATLAB Function: '/MAX POSITION' */ /* If: '/If' */ if (rtb_dt_an > 30000U) { /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: * ActionPort: '/Action Port' */ /* Merge: '/Merge' */ IfActionSubsystem(&rtB.Merge_h3, &rtDW.ErrorHomming_private_m, &rtDW.Start_timer, &rtDW.stepSig_private_g); /* 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' */ rtDW.Start_timer = 1.0; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private_a[0] = rtb_DataTypeConversion_bq[0]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private_a[1] = rtb_DataTypeConversion_bq[1]; /* DataTypeConversion: '/Data Type Conversion2' incorporates: * DataStoreRead: '/valves target in percent' */ for (i = 0; i < 6; i++) { rtb_DataTypeConversion2_l3[i] = (uint8_t) rtDW.valves_rear_manual_target[i]; } /* End of DataTypeConversion: '/Data Type Conversion2' */ /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[2] = rtb_DataTypeConversion2_l3[0]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[3] = rtb_DataTypeConversion2_l3[4]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[4] = rtb_DataTypeConversion2_l3[1]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[5] = rtb_DataTypeConversion2_l3[2]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[6] = rtb_DataTypeConversion2_l3[5]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[7] = rtb_DataTypeConversion2_l3[3]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * Constant: '/Constant1' * SignalConversion generated from: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[8] = 0U; for (i = 0; i < 9; i++) { /* Product: '/Product' */ rtb_Merge_j = rtDW.BUS_ADR_private_a[i]; /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Product: '/Divide1' * Product: '/Product' */ rtDW.POS_private_h[i] = (uint16_t)((double)(rtb_Merge_j * rtDW.MaxPositionCh2_private[i]) / 100.0); /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreWrite: '/Data Store Write2' */ rtb_LogicalOperator3_i5[i] = (rtb_DataTypeConversion_bq[i] == rtb_Merge_j); } /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_i5[i + 1]); } for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * Constant: '/Constant4' * Constant: '/Constant9' * DataStoreWrite: '/Data Store Write1' * Logic: '/Logical Operator' */ if (rtb_LogicalOperator1) { rtDW.COM_private_k[i] = 0U; } else { rtDW.COM_private_k[i] = 3U; } /* End of Switch: '/Switch' */ /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Concatenate: '/Vector Concatenate' * Constant: '/Constant5' * DataStoreWrite: '/Data Store Write2' * DataStoreWrite: '/Data Store Write7' * Product: '/Product' * RelationalOperator: '/Relational Operator' */ rtDW.BUS_ADR_private_a[i] = (uint8_t)((uint32_t) (rtb_DataTypeConversion_bq[i] != rtDW.BUS_ADR_private_a[i]) * rtConstP.pooled79[i]); /* DataStoreWrite: '/Data Store Write4' incorporates: * Constant: '/Constant1' */ rtDW.Autos_private_g[i] = 1U; /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Constant10' */ rtDW.Stall_private_f[i] = 1U; /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Constant11' */ rtDW.Lnoise_private_g[i] = 0U; /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant2' */ rtDW.Speed_private_b[i] = 3U; /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ rtDW.Coils_private_l[i] = 3U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant1' * Merge: '/Merge' * SignalConversion generated from: '/Out1' */ rtB.Merge_h3 = 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' */ IfActionSubsystem1(&rtB.Merge_h3, &rtDW.CCU_ActuatorErrF_Stat_private, rtDW.COM_private_k, rtDW.ErrorActuator_a, rtDW.ErrorCalibration_private_b, &rtDW.LOGGER_LIN, rtDW.MODE_private_c, 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; case 4: /* Outputs for IfAction SubSystem: '/Switch Case Action Subsystem4' incorporates: * ActionPort: '/Action Port' */ /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private_a[0] = rtb_DataTypeConversion_bq[0]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * DataStoreWrite: '/Data Store Write2' */ rtDW.BUS_ADR_private_a[1] = rtb_DataTypeConversion_bq[1]; /* DataTypeConversion: '/Data Type Conversion2' incorporates: * DataStoreRead: '/valves target in percent' */ for (i = 0; i < 6; i++) { rtb_DataTypeConversion2_l3[i] = (uint8_t) rtDW.valves_rear_manual_target[i]; } /* End of DataTypeConversion: '/Data Type Conversion2' */ /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[2] = rtb_DataTypeConversion2_l3[0]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[3] = rtb_DataTypeConversion2_l3[4]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[4] = rtb_DataTypeConversion2_l3[1]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[5] = rtb_DataTypeConversion2_l3[2]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[6] = rtb_DataTypeConversion2_l3[5]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[7] = rtb_DataTypeConversion2_l3[3]; /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Concatenate: '/Vector Concatenate' * Constant: '/Constant1' * SignalConversion generated from: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[8] = 0U; for (i = 0; i < 9; i++) { /* Product: '/Product' */ rtb_Merge_j = rtDW.BUS_ADR_private_a[i]; /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Constant: '/Constant1' * DataStoreRead: '/Data Store Read' * DataStoreWrite: '/Data Store Write' * Product: '/Divide1' * Product: '/Product' */ rtDW.POS_private_h[i] = (uint16_t)((double)(rtb_Merge_j * rtDW.MaxPositionCh2_private[i]) / 100.0); /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreWrite: '/Data Store Write2' */ rtb_LogicalOperator3_i5[i] = (rtb_DataTypeConversion_bq[i] == rtb_Merge_j); } /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_LogicalOperator3_i5[0]; for (i = 0; i < 8; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 && rtb_LogicalOperator3_i5[i + 1]); } for (i = 0; i < 9; i++) { /* Switch: '/Switch' incorporates: * Constant: '/Constant4' * Constant: '/Constant9' * DataStoreWrite: '/Data Store Write1' * Logic: '/Logical Operator' */ if (rtb_LogicalOperator1) { rtDW.COM_private_k[i] = 0U; } else { rtDW.COM_private_k[i] = 3U; } /* End of Switch: '/Switch' */ /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Concatenate: '/Vector Concatenate' * Constant: '/Constant5' * DataStoreWrite: '/Data Store Write2' * DataStoreWrite: '/Data Store Write7' * Product: '/Product' * RelationalOperator: '/Relational Operator' */ rtDW.BUS_ADR_private_a[i] = (uint8_t)((uint32_t) (rtb_DataTypeConversion_bq[i] != rtDW.BUS_ADR_private_a[i]) * rtConstP.pooled79[i]); /* DataStoreWrite: '/Data Store Write4' incorporates: * Constant: '/Constant1' */ rtDW.Autos_private_g[i] = 1U; /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Constant10' */ rtDW.Stall_private_f[i] = 1U; /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Constant11' */ rtDW.Lnoise_private_g[i] = 0U; /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant2' */ rtDW.Speed_private_b[i] = 3U; /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ rtDW.Coils_private_l[i] = 3U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant1' * SignalConversion generated from: '/step' */ rtB.Merge_h3 = 4; /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read5' */ /* : if(LOGGER>0) */ if (rtDW.LOGGER_LIN > 0.0) { /* : fprintf("[LIN 3] Homing. Callibration successful \n"); */ printf("[LIN 3] Homing. Callibration successful \n"); fflush(stdout); } /* End of MATLAB Function: '/MAX POSITION' */ /* End of Outputs for SubSystem: '/Switch Case Action Subsystem4' */ break; } /* End of SwitchCase: '/Switch Case' */ /* DataStoreWrite: '/Data Store Write2' */ rtDW.stepHoming_private_a = rtB.Merge_h3; /* Merge: '/Merge' incorporates: * DataStoreRead: '/Data Store Read7' */ rtB.Merge_b4 = rtDW.stepSig_private_g; /* End of Outputs for SubSystem: '/Homing' */ break; } /* End of SwitchCase: '/Switch Case' */ /* Outport: '/CCU_Errors_model' incorporates: * DataStoreRead: '/Data Store Read10' */ rtY.CCU_Errors_model = CCU_Errors_Model; /* DataStoreWrite: '/Finish write stepSig' */ rtDW.stepSig_private_g = rtB.Merge_b4; /* BusCreator: '/Bus Creator' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read3' * DataStoreRead: '/Data Store Read4' * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/Data Store Read6' * DataStoreRead: '/Data Store Read7' * DataStoreRead: '/Data Store Read8' * DataStoreWrite: '/Data Store Write' */ for (i = 0; i < 9; i++) { Actuator_Ch2_Command_Model.POS[i] = rtDW.POS_private_h[i]; Actuator_Ch2_Command_Model.BUS_ADR[i] = rtDW.BUS_ADR_private_a[i]; Actuator_Ch2_Command_Model.MODE[i] = rtDW.MODE_private_c[i]; Actuator_Ch2_Command_Model.COM[i] = rtDW.COM_private_k[i]; Actuator_Ch2_Command_Model.Stall_SET[i] = rtDW.Stall_private_f[i]; Actuator_Ch2_Command_Model.Lnoise_SET[i] = rtDW.Lnoise_private_g[i]; Actuator_Ch2_Command_Model.Autos_SET[i] = rtDW.Autos_private_g[i]; Actuator_Ch2_Command_Model.Speed_SET[i] = rtDW.Speed_private_b[i]; Actuator_Ch2_Command_Model.Coils_Stop_SET[i] = rtDW.Coils_private_l[i]; } /* End of BusCreator: '/Bus Creator' */ /* RelationalOperator: '/Compare' incorporates: * Constant: '/Constant' * DataStoreRead: '/Data Store Read2' */ for (i = 0; i < 8; i++) { rtb_Compare_n[i] = (rtDW.ErrorCalibration_private_b[i] == 0); } /* End of RelationalOperator: '/Compare' */ /* Logic: '/Logical Operator' */ rtb_LogicalOperator1 = rtb_Compare_n[0]; for (i = 0; i < 7; i++) { rtb_LogicalOperator1 = (rtb_LogicalOperator1 || rtb_Compare_n[i + 1]); } /* Switch: '/Switch1' incorporates: * Constant: '/Constant' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read2' * Logic: '/Logical Operator' * Product: '/Product' */ for (i = 0; i < 8; i++) { if (rtb_LogicalOperator1) { rtb_DataTypeConversion_bq[i] = (uint8_t)((uint32_t) rtDW.ErrorCalibration_private_b[i] * rtConstP.Constant3_Value_d[i]); } else { rtb_DataTypeConversion_bq[i] = 0U; } } /* End of Switch: '/Switch1' */ /* SignalConversion generated from: '/Vector Concatenate' incorporates: * Constant: '/Constant1' */ rtb_DataTypeConversion_bq[8] = 0U; for (i = 0; i < 9; i++) { /* DataStoreWrite: '/Data Store Write7' incorporates: * Concatenate: '/Vector Concatenate' */ rtDW.BUS_ADR_private_a[i] = rtb_DataTypeConversion_bq[i]; /* DataStoreWrite: '/Data Store Write' */ rtDW.COM_private_k[i] = 0U; } /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.LOGGER_LIN = 0.0; /* Saturate: '/Saturation' incorporates: * DataStoreRead: '/Data Store Read3' */ if (rtDW.PWM_front <= 100) { /* BusCreator: '/Bus Creator' incorporates: * DataStoreWrite: '/Data Store Write' */ PWM_Get.pwmPercentFront = rtDW.PWM_front; } else { /* BusCreator: '/Bus Creator' incorporates: * DataStoreWrite: '/Data Store Write' */ PWM_Get.pwmPercentFront = 100U; } /* End of Saturate: '/Saturation' */ /* Saturate: '/Saturation1' incorporates: * DataStoreRead: '/Data Store Read4' */ if (rtDW.PWM_rear <= 100) { /* BusCreator: '/Bus Creator' incorporates: * DataStoreWrite: '/Data Store Write' */ PWM_Get.pwmPercentRear = rtDW.PWM_rear; } else { /* BusCreator: '/Bus Creator' incorporates: * DataStoreWrite: '/Data Store Write' */ PWM_Get.pwmPercentRear = 100U; } /* End of Saturate: '/Saturation1' */ /* BusCreator: '/Bus Creator' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read5' * DataStoreWrite: '/Data Store Write' */ PWM_Get.pwmPercentFrontReserved = rtDW.PWM_front; PWM_Get.pwmPercentRearReserved = rtDW.PWM_rear; /* MATLAB Function: '/Write4' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : if(LOGGER) */ /* : fprintf('GETPWMFront = %u \n',data); */ printf("GETPWMFront = %u \n", rtDW.PWM_front); fflush(stdout); /* MATLAB Function: '/Write' incorporates: * DataStoreRead: '/Data Store Read' */ /* : if(LOGGER) */ /* : fprintf('pwmPercentFront = %u \n',data); */ printf("pwmPercentFront = %u \n", rtDW.PWM_Set_Model.pwmPercentFront); fflush(stdout); /* MATLAB Function: '/Write1' incorporates: * DataStoreRead: '/Data Store Read' */ /* : if(LOGGER) */ /* : fprintf('pwmPercentRear = %u \n',data); */ printf("pwmPercentRear = %u \n", rtDW.PWM_Set_Model.pwmPercentRear); fflush(stdout); /* MATLAB Function: '/Write2' incorporates: * DataStoreRead: '/Data Store Read' */ /* : if(LOGGER) */ /* : fprintf('pwmPercentFrontReserved = %u \n',data); */ printf("pwmPercentFrontReserved = %u \n", rtDW.PWM_Set_Model.pwmPercentFrontReserved); fflush(stdout); /* MATLAB Function: '/Write3' incorporates: * DataStoreRead: '/Data Store Read' */ /* : if(LOGGER) */ /* : fprintf('pwmPercentRearReserved = %u \n',data); */ printf("pwmPercentRearReserved = %u \n", rtDW.PWM_Set_Model.pwmPercentRearReserved); fflush(stdout); /* BusCreator: '/Bus Creator1' incorporates: * Constant: '/Constant10' * Constant: '/Constant6' * Constant: '/Constant7' * Constant: '/Constant8' * Constant: '/Constant9' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read10' * DataStoreRead: '/Data Store Read11' * DataStoreRead: '/Data Store Read13' * DataStoreRead: '/Data Store Read15' * DataStoreRead: '/Data Store Read17' * DataStoreRead: '/Data Store Read19' * DataStoreRead: '/Data Store Read3' * DataStoreRead: '/Data Store Read4' * DataStoreRead: '/Data Store Read8' * DataStoreWrite: '/Data Store Write2' * DataStoreWrite: '/Data Store Write3' * DataStoreWrite: '/Data Store Write4' * DataStoreWrite: '/Data Store Write5' * DataStoreWrite: '/Data Store Write6' * DataStoreWrite: '/Data Store Write7' * DataStoreWrite: '/Data Store Write1' */ rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_MultMsg_Idx = 0U; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FL_Fb_Select = 0U; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_RR_Fb_Select = 0U; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_RL_Fb_Select = 0U; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FR_Fb_Select = 0U; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_RL_Tgt_ro = 0; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FR_Upper_Tgt_ro = 0; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_RR_Tgt_ro = 0; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FL_Upper_Tgt_ro = 0; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_RR_Fb_ro = Duct2_R; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_RL_Fb_ro = Duct1_R; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FR_Upper_Fb_ro = Duct2_F; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FL_Upper_Fb_ro = Duct1_F; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FR_Side_Fb_ro = Duct6_F; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FL_Side_Fb_ro = Duct5_F; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_RL_Side_Fb_ro = Duct3_R; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_RR_Side_Fb_ro = Duct4_R; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FR_Lower_Tgt_ro = 0; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FL_Lower_Tgt_ro = 0; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FR_Lower_Fb_ro = Duct4_F; rtDW.dbgCAN_dbg_Sen_Duct_model.dbg_Sen_Duct_FL_Lower_Fb_ro = Duct3_F; /* BusCreator: '/Bus Creator1' incorporates: * DataStoreRead: '/Data Store Read4' * DataStoreWrite: '/Data Store Write1' * DataStoreWrite: '/Data Store Write2' */ rtDW.dbgCAN_dbg_Act0_model.dbg_Act00_Def = rtb_DataTypeConversion_bh[0]; rtDW.dbgCAN_dbg_Act0_model.dbg_Act01_Vent_SFL = rtb_DataTypeConversion_bh[5]; rtDW.dbgCAN_dbg_Act0_model.dbg_Act02_Vent_CFL = rtb_DataTypeConversion_bh[4]; rtDW.dbgCAN_dbg_Act0_model.dbg_Act03_Foot_1FL = rtb_DataTypeConversion_bh[7]; rtDW.dbgCAN_dbg_Act0_model.dbg_Act04_Foot_2FL = rtb_DataTypeConversion_bh[8]; rtDW.dbgCAN_dbg_Act0_model.dbg_Act05_Vent_CFR = Actuator_pos_percent_Ch1[1]; rtDW.dbgCAN_dbg_Act0_model.dbg_Act06_Vent_SFR = Actuator_pos_percent_Ch1[2]; rtDW.dbgCAN_dbg_Act0_model.dbg_Act07_Foot_1FR = Actuator_pos_percent_Ch1[4]; /* BusCreator: '/Bus Creator3' incorporates: * DataStoreRead: '/Data Store Read4' * DataStoreRead: '/Data Store Read5' * DataStoreWrite: '/Data Store Write2' * DataStoreWrite: '/Data Store Write2' */ rtDW.dbgCAN_dbg_Act2_model.dbg_Act16_TempL_FL = rtb_DataTypeConversion_bh[6]; rtDW.dbgCAN_dbg_Act2_model.dbg_Act17_TempU_FR = Actuator_pos_percent_Ch1[0]; rtDW.dbgCAN_dbg_Act2_model.dbg_Act18_TempL_FR = Actuator_pos_percent_Ch1[3]; rtDW.dbgCAN_dbg_Act2_model.dbg_Act19_Temp_RL = rtb_DataTypeConversion_fb[1]; rtDW.dbgCAN_dbg_Act2_model.dbg_Act20_Temp_RR = rtb_DataTypeConversion_fb[0]; rtDW.dbgCAN_dbg_Act2_model.dbg_Act21_Rec = rtb_DataTypeConversion_bh[1]; rtDW.dbgCAN_dbg_Act2_model.dbg_Act22_OSA = rtb_DataTypeConversion_bh[2]; rtDW.dbgCAN_dbg_Act2_model.dbg_Act23_SealingValve = rtb_DataTypeConversion_fb [8]; /* BusCreator: '/Bus Creator2' incorporates: * DataStoreRead: '/Data Store Read4' * DataStoreRead: '/Data Store Read5' * DataStoreWrite: '/Data Store Write3' * DataStoreWrite: '/Data Store Write2' */ rtDW.dbgCAN_dbg_Act1_model.dbg_Act08_Foot_2FR = Actuator_pos_percent_Ch1[5]; rtDW.dbgCAN_dbg_Act1_model.dbg_Act09_Vent_SRL = rtb_DataTypeConversion_fb[2]; rtDW.dbgCAN_dbg_Act1_model.dbg_Act10_Vent_CRL = rtb_DataTypeConversion_fb[4]; rtDW.dbgCAN_dbg_Act1_model.dbg_Act11_Foot_RL = rtb_DataTypeConversion_fb[3]; rtDW.dbgCAN_dbg_Act1_model.dbg_Act12_Vent_CRR = rtb_DataTypeConversion_fb[5]; rtDW.dbgCAN_dbg_Act1_model.dbg_Act13_Vent_SRR = rtb_DataTypeConversion_fb[7]; rtDW.dbgCAN_dbg_Act1_model.dbg_Act14_Foot_RR = rtb_DataTypeConversion_fb[6]; rtDW.dbgCAN_dbg_Act1_model.dbg_Act15_TempU_FL = rtb_DataTypeConversion_bh[3]; /* BusCreator: '/Bus Creator' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write' */ rtDW.dbgCAN_dbg_Sen_Amb_model.dbg_Sen_Amb_ro = rtb_LVL; rtDW.dbgCAN_dbg_Sen_Amb_model.dbg_Sen_Amb_Raw_ro = rtDW.AMB_RAW; rtDW.dbgCAN_dbg_Sen_Amb_model.dbg_Amb_Tg_ro = 0; /* BusCreator: '/Bus Creator' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read3' * DataStoreRead: '/Data Store Read4' * DataStoreRead: '/Data Store Read5' * DataStoreWrite: '/Data Store Write' */ rtDW.dbgCAN_dbg_Logic_Blower_model.Logic_Blower_Step_FL = 0U; rtDW.dbgCAN_dbg_Logic_Blower_model.Logic_Blower_Step_FR = 0U; rtDW.dbgCAN_dbg_Logic_Blower_model.Logic_Blower_Step_RL = 0U; rtDW.dbgCAN_dbg_Logic_Blower_model.Logic_Blower_Step_RR = 0U; rtDW.dbgCAN_dbg_Logic_Blower_model.Logic_Blower_Pwm_Front = rtDW.PWM_front; rtDW.dbgCAN_dbg_Logic_Blower_model.Logic_Blower_Pwm_Rear = rtDW.PWM_rear; rtDW.dbgCAN_dbg_Logic_Blower_model.Logic_Blower_AF_FL = rtDW.Blower_AF_FL; rtDW.dbgCAN_dbg_Logic_Blower_model.Logic_Blower_AF_FR = rtDW.Blower_AF_FR; rtDW.dbgCAN_dbg_Logic_Blower_model.Logic_Blower_AF_RL = rtDW.Blower_AF_RL; rtDW.dbgCAN_dbg_Logic_Blower_model.Logic_Blower_AF_RR = rtDW.Blower_AF_RR; /* BusCreator: '/Bus Creator' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreWrite: '/Data Store Write' */ rtDW.dbgCAN_dbg_Sen_Eva_model.dbg_Sen_Eva_F = 0; rtDW.dbgCAN_dbg_Sen_Eva_model.dbg_Sen_Eva_R = 0; rtDW.dbgCAN_dbg_Sen_Eva_model.dbg_Sen_Eva_Target = rtDW.Eva_F; rtDW.dbgCAN_dbg_Sen_Eva_model.dbg_Sen_Eva_Diff_FrontRear = rtDW.Eva_R; /* Outport: '/PWM_Get' incorporates: * DataStoreRead: '/Data Store Read7' */ rtY.PWM_Get_f = PWM_Get; /* Outport: '/dtc_state_error_model' incorporates: * DataStoreRead: '/Data Store Read1' */ memcpy(&rtY.dtc_state_error_model[0], &rtDW.dtc_state_error_model[0], 127U * sizeof(uint8_t)); /* Outport: '/dbgCAN_dbg_Act0_model' incorporates: * DataStoreRead: '/Data Store Read3' */ rtY.dbgCAN_dbg_Act0_model = rtDW.dbgCAN_dbg_Act0_model; /* Outport: '/dbgCAN_dbg_Act1_model' incorporates: * DataStoreRead: '/Data Store Read4' */ rtY.dbgCAN_dbg_Act1_model = rtDW.dbgCAN_dbg_Act1_model; /* Outport: '/dbgCAN_dbg_Act2_model' incorporates: * DataStoreRead: '/Data Store Read5' */ rtY.dbgCAN_dbg_Act2_model = rtDW.dbgCAN_dbg_Act2_model; /* Outport: '/CCU_Stat1_model' incorporates: * DataStoreRead: '/Data Store Read6' */ rtY.CCU_Stat1_model = rtDW.CCU_STAT1_MODEL; /* Outport: '/dbgCAN_dbg_Sen_Duct_model' incorporates: * DataStoreRead: '/Data Store Read8' */ rtY.dbgCAN_dbg_Sen_Duct_model = rtDW.dbgCAN_dbg_Sen_Duct_model; /* Outport: '/dbgCAN_dbg_Sen_Eva_model' incorporates: * DataStoreRead: '/Data Store Read9' */ rtY.dbgCAN_dbg_Sen_Eva_model = rtDW.dbgCAN_dbg_Sen_Eva_model; /* Outport: '/dbgCAN_dbg_Logic_Blower_model' incorporates: * DataStoreRead: '/Data Store Read13' */ rtY.dbgCAN_dbg_Logic_Blower_model = rtDW.dbgCAN_dbg_Logic_Blower_model; /* Outport: '/dbgCAN_dbg_Sen_Amb_model' incorporates: * DataStoreRead: '/Data Store Read29' */ rtY.dbgCAN_dbg_Sen_Amb_model = rtDW.dbgCAN_dbg_Sen_Amb_model; /* Outputs for Atomic SubSystem: '/PWM and valves in manual1' */ /* Outputs for Enabled SubSystem: '/Subsystem' incorporates: * EnablePort: '/Enable' */ /* Logic: '/Logical Operator1' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read11' * DataStoreRead: '/Data Store Read12' * RelationalOperator: '/Equal2' * RelationalOperator: '/Equal3' */ if ((rtDW.FIU_MODE_FL == 1) && (rtDW.FIU_MODE_FR == 1)) { /* MATLAB Function: '/Valves for Def' */ ValvesforDef(rtb_vals_m); /* MATLAB Function: '/Valves for Hi_Level' */ /* : out = g_ausFLOW_FR_VE2VALVE; */ ValvesforHi_Level(Merge); /* MATLAB Function: '/Valves for Foot + Def' */ /* : out = g_ausFLOW_FR_FO2VALVE; */ ValvesforFootDef(rtb_out_ic); /* MATLAB Function: '/Valves for Bi Level' */ ValvesforBiLevel(rtb_out_k4); /* MATLAB Function: '/Valves for Tri-Level' */ ValvesforTriLevel(rtDW.valves_front_manual_target); /* MultiPortSwitch: '/Multiport Switch' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * Constant: '/Constant2' * DataStoreRead: '/Data Store Read10' * DataStoreRead: '/Data Store Read4' * DataStoreRead: '/Data Store Read5' * Gain: '/Gain1' * Gain: '/Gain2' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' * Sum: '/Add' */ switch ((int32_t)(((uint32_t)((rtDW.FIU_FACE_FL == 1) << 1) + (uint32_t) (rtDW.FIU_DEF_FL == 1)) + (uint32_t)((rtDW.FIU_FOOT_FL == 1) << 2))) { case 0: /* DataStoreWrite: '/Data Store Write' */ for (i = 0; i < 9; i++) { rtDW.valves_front_manual_target[i] = 0U; } break; case 1: /* DataStoreWrite: '/Data Store Write' */ for (i = 0; i < 9; i++) { rtDW.valves_front_manual_target[i] = rtb_vals_m[i]; } break; case 2: /* DataStoreWrite: '/Data Store Write' incorporates: * MATLAB Function: '/Valves for Vent mode' */ for (i = 0; i < 9; i++) { rtDW.valves_front_manual_target[i] = g_ausFLOW_FR_VE2VALVE[i]; } break; case 3: /* DataStoreWrite: '/Data Store Write' */ for (i = 0; i < 9; i++) { rtDW.valves_front_manual_target[i] = Merge[i]; } break; case 4: /* DataStoreWrite: '/Data Store Write' incorporates: * MATLAB Function: '/Valves for Foot' */ for (i = 0; i < 9; i++) { rtDW.valves_front_manual_target[i] = g_ausFLOW_FR_FO2VALVE[i]; } break; case 5: /* DataStoreWrite: '/Data Store Write' */ for (i = 0; i < 9; i++) { rtDW.valves_front_manual_target[i] = rtb_out_ic[i]; } break; case 6: /* DataStoreWrite: '/Data Store Write' */ for (i = 0; i < 9; i++) { rtDW.valves_front_manual_target[i] = rtb_out_k4[i]; } break; } /* End of MultiPortSwitch: '/Multiport Switch' */ /* MATLAB Function: '/Valves for Def' */ ValvesforDef(rtb_vals_m); /* MATLAB Function: '/Valves for Hi_Level' */ /* : out = g_ausFLOW_FR_VE2VALVE; */ ValvesforHi_Level(Merge); /* MATLAB Function: '/Valves for Foot + Def' */ /* : out = g_ausFLOW_FR_FO2VALVE; */ ValvesforFootDef(rtb_out_ic); /* MATLAB Function: '/Valves for Bi Level' */ ValvesforBiLevel(rtb_out_k4); /* MATLAB Function: '/Valves for Tri-Level' */ ValvesforTriLevel(rtb_out_mj); /* MultiPortSwitch: '/Multiport Switch' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * Constant: '/Constant2' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read3' * Gain: '/Gain1' * Gain: '/Gain2' * MATLAB Function: '/Valves for Foot' * MATLAB Function: '/Valves for Vent mode' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' * Sum: '/Add' */ switch ((int32_t)(((uint32_t)((rtDW.FIU_FACE_FR == 1) << 1) + (uint32_t) (rtDW.FIU_DEF_FR == 1)) + (uint32_t)((rtDW.FIU_FOOT_FR == 1) << 2))) { case 0: for (i = 0; i < 9; i++) { rtb_out_mj[i] = 0U; } break; case 1: for (i = 0; i < 9; i++) { rtb_out_mj[i] = rtb_vals_m[i]; } break; case 2: for (i = 0; i < 9; i++) { rtb_out_mj[i] = g_ausFLOW_FR_VE2VALVE[i]; } break; case 3: for (i = 0; i < 9; i++) { rtb_out_mj[i] = Merge[i]; } break; case 4: for (i = 0; i < 9; i++) { rtb_out_mj[i] = g_ausFLOW_FR_FO2VALVE[i]; } break; case 5: for (i = 0; i < 9; i++) { rtb_out_mj[i] = rtb_out_ic[i]; } break; case 6: for (i = 0; i < 9; i++) { rtb_out_mj[i] = rtb_out_k4[i]; } break; } /* End of MultiPortSwitch: '/Multiport Switch' */ /* Assignment: '/Присваивание в [3-4]' incorporates: * DataStoreWrite: '/Data Store Write' */ rtDW.valves_front_manual_target[2] = rtb_out_mj[2]; /* Assignment: '/Присваивание в [7-8]' incorporates: * DataStoreWrite: '/Data Store Write' */ rtDW.valves_front_manual_target[6] = rtb_out_mj[6]; /* Assignment: '/Присваивание в [3-4]' incorporates: * DataStoreWrite: '/Data Store Write' */ rtDW.valves_front_manual_target[3] = rtb_out_mj[3]; /* Assignment: '/Присваивание в [7-8]' incorporates: * DataStoreWrite: '/Data Store Write' */ rtDW.valves_front_manual_target[7] = rtb_out_mj[7]; } /* End of Logic: '/Logical Operator1' */ /* End of Outputs for SubSystem: '/Subsystem' */ /* Outputs for Enabled SubSystem: '/Subsystem1' incorporates: * EnablePort: '/Enable' */ /* Logic: '/Logical Operator2' incorporates: * Constant: '/Constant1' * Constant: '/Constant4' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * RelationalOperator: '/Equal1' * RelationalOperator: '/Equal4' */ if ((rtDW.FIU_MODE_RL == 1) && (rtDW.FIU_MODE_RR == 1)) { /* MATLAB Function: '/valves for Vent mode' */ valvesforVentmode(rtb_urear); /* MATLAB Function: '/AF for Bi Level' */ /* : out = g_ausFLOW_RE_FO2VALVE; */ AFforBiLevel_m(rtDW.valves_rear_manual_target); /* MultiPortSwitch: '/Multiport Switch' incorporates: * Constant: '/Constant1' * Constant: '/Constant2' * DataStoreRead: '/Data Store Read23' * DataStoreRead: '/Data Store Read24' * Gain: '/Gain2' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' * Sum: '/Add' */ switch ((int32_t)((uint32_t)((rtDW.FIU_FOOT_RL == 1) << 1) + (uint32_t) (rtDW.FIU_FACE_RL == 1))) { case 0: /* DataStoreWrite: '/Data Store Write1' */ for (i = 0; i < 6; i++) { rtDW.valves_rear_manual_target[i] = 0U; } break; case 1: /* DataStoreWrite: '/Data Store Write1' */ for (i = 0; i < 6; i++) { rtDW.valves_rear_manual_target[i] = rtb_urear[i]; } break; case 2: /* DataStoreWrite: '/Data Store Write1' incorporates: * MATLAB Function: '/AF for Foot' */ for (i = 0; i < 6; i++) { rtDW.valves_rear_manual_target[i] = g_ausFLOW_RE_FO2VALVE[i]; } break; } /* End of MultiPortSwitch: '/Multiport Switch' */ /* MATLAB Function: '/valves for Vent mode' */ valvesforVentmode(rtb_urear); /* MATLAB Function: '/AF for Bi Level' */ /* : out = g_ausFLOW_RE_FO2VALVE; */ AFforBiLevel_m(rtb_out_kw); /* MultiPortSwitch: '/Multiport Switch' incorporates: * Constant: '/Constant1' * Constant: '/Constant2' * DataStoreRead: '/Data Store Read21' * DataStoreRead: '/Data Store Read22' * Gain: '/Gain2' * MATLAB Function: '/AF for Foot' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' * Sum: '/Add' */ switch ((int32_t)((uint32_t)((rtDW.FIU_FOOT_RR == 1) << 1) + (uint32_t) (rtDW.FIU_FACE_RR == 1))) { case 0: for (i = 0; i < 6; i++) { rtb_vals_m[i] = 0U; } break; case 1: for (i = 0; i < 6; i++) { rtb_vals_m[i] = rtb_urear[i]; } break; case 2: for (i = 0; i < 6; i++) { rtb_vals_m[i] = g_ausFLOW_RE_FO2VALVE[i]; } break; default: for (i = 0; i < 6; i++) { rtb_vals_m[i] = rtb_out_kw[i]; } break; } /* End of MultiPortSwitch: '/Multiport Switch' */ /* Assignment: '/Присваивание в [3-4] rear' incorporates: * DataStoreWrite: '/Data Store Write1' */ rtDW.valves_rear_manual_target[2] = rtb_vals_m[2]; rtDW.valves_rear_manual_target[3] = rtb_vals_m[3]; /* Assignment: '/Присваивание в [6] rear' incorporates: * DataStoreWrite: '/Data Store Write1' */ rtDW.valves_rear_manual_target[5] = rtb_vals_m[5]; } /* End of Logic: '/Logical Operator2' */ /* End of Outputs for SubSystem: '/Subsystem1' */ /* Outputs for Enabled SubSystem: '/Subsystem' incorporates: * EnablePort: '/Enable' */ /* Logic: '/Logical Operator1' incorporates: * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read11' * DataStoreRead: '/Data Store Read12' * RelationalOperator: '/Equal2' * RelationalOperator: '/Equal3' */ if ((rtDW.FIU_MODE_FL == 1) && (rtDW.FIU_MODE_FR == 1)) { /* MATLAB Function: '/AF for Def' incorporates: * DataStoreRead: '/Data Store Read11' */ AFforDef(rtDW.FIU_BLOWERS_FL, &rtb_out_khw); /* MATLAB Function: '/AF for Vent mode' incorporates: * DataStoreRead: '/Data Store Read11' */ AFforVentmode(rtDW.FIU_BLOWERS_FL, &rtb_out_le); /* MATLAB Function: '/AF for Hi_Level' incorporates: * DataStoreRead: '/Data Store Read11' */ AFforHi_Level(rtDW.FIU_BLOWERS_FL, &rtb_out_pf); /* MATLAB Function: '/AF for Foot' incorporates: * DataStoreRead: '/Data Store Read11' */ AFforFoot(rtDW.FIU_BLOWERS_FL, &rtb_out_em); /* MATLAB Function: '/AF for Foor + Def' incorporates: * DataStoreRead: '/Data Store Read11' */ AFforFoorDef(rtDW.FIU_BLOWERS_FL, &rtb_out_jv); /* MATLAB Function: '/AF for Bi Level' incorporates: * DataStoreRead: '/Data Store Read11' */ AFforBiLevel(rtDW.FIU_BLOWERS_FL, &rtb_out_m4); /* MATLAB Function: '/AF for Tri-Level' incorporates: * DataStoreRead: '/Data Store Read11' */ AFforTriLevel(rtDW.FIU_BLOWERS_FL, &rtb_out_b); /* MultiPortSwitch: '/Multiport Switch' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read6' * DataStoreRead: '/Data Store Read8' * DataStoreRead: '/Data Store Read9' * Gain: '/Gain1' * Gain: '/Gain2' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' * Sum: '/Add' */ switch ((int32_t)(((uint32_t)((rtDW.FIU_FACE_FL == 1) << 1) + (uint32_t) (rtDW.FIU_DEF_FL == 1)) + (uint32_t)((rtDW.FIU_FOOT_FL == 1) << 2))) { case 0: rtb_out_b = 0U; break; case 1: rtb_out_b = rtb_out_khw; break; case 2: rtb_out_b = rtb_out_le; break; case 3: rtb_out_b = rtb_out_pf; break; case 4: rtb_out_b = rtb_out_em; break; case 5: rtb_out_b = rtb_out_jv; break; case 6: rtb_out_b = rtb_out_m4; break; } /* End of MultiPortSwitch: '/Multiport Switch' */ /* MATLAB Function: '/AF for Def' incorporates: * DataStoreRead: '/Data Store Read7' */ AFforDef(rtDW.FIU_BLOWERS_FR, &rtb_out_le); /* MATLAB Function: '/AF for Vent mode' incorporates: * DataStoreRead: '/Data Store Read7' */ AFforVentmode(rtDW.FIU_BLOWERS_FR, &rtb_out_pf); /* MATLAB Function: '/AF for Hi_Level' incorporates: * DataStoreRead: '/Data Store Read7' */ AFforHi_Level(rtDW.FIU_BLOWERS_FR, &rtb_out_em); /* MATLAB Function: '/AF for Foot' incorporates: * DataStoreRead: '/Data Store Read7' */ AFforFoot(rtDW.FIU_BLOWERS_FR, &rtb_out_jv); /* MATLAB Function: '/AF for Foor + Def' incorporates: * DataStoreRead: '/Data Store Read7' */ AFforFoorDef(rtDW.FIU_BLOWERS_FR, &rtb_out_m4); /* MATLAB Function: '/AF for Bi Level' incorporates: * DataStoreRead: '/Data Store Read7' */ AFforBiLevel(rtDW.FIU_BLOWERS_FR, &rtb_out_pb); /* MATLAB Function: '/AF for Tri-Level' incorporates: * DataStoreRead: '/Data Store Read7' */ AFforTriLevel(rtDW.FIU_BLOWERS_FR, &rtb_out_khw); /* MultiPortSwitch: '/Multiport Switch' incorporates: * Constant: '/Constant' * Constant: '/Constant1' * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read12' * DataStoreRead: '/Data Store Read13' * DataStoreRead: '/Data Store Read14' * Gain: '/Gain1' * Gain: '/Gain2' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' * Sum: '/Add' */ switch ((int32_t)(((uint32_t)((rtDW.FIU_FACE_FR == 1) << 1) + (uint32_t) (rtDW.FIU_DEF_FR == 1)) + (uint32_t)((rtDW.FIU_FOOT_FR == 1) << 2))) { case 0: rtb_out_khw = 0U; break; case 1: rtb_out_khw = rtb_out_le; break; case 2: rtb_out_khw = rtb_out_pf; break; case 3: rtb_out_khw = rtb_out_em; break; case 4: rtb_out_khw = rtb_out_jv; break; case 5: rtb_out_khw = rtb_out_m4; break; case 6: rtb_out_khw = rtb_out_pb; break; } /* End of MultiPortSwitch: '/Multiport Switch' */ /* DataTypeConversion: '/Data Type Conversion1' incorporates: * Constant: '/Constant' * DataStoreWrite: '/Data Store Write' * Product: '/Divide' * Sum: '/Add' */ rtDW.PWM_front = (uint8_t)((double)(uint16_t)((uint32_t)rtb_out_b + rtb_out_khw) / 4.0); /* DataTypeConversion: '/Data Type Conversion3' incorporates: * DataStoreWrite: '/Data Store Write2' */ rtDW.Blower_AF_FL = (uint8_t)rtb_out_b; /* DataTypeConversion: '/Data Type Conversion2' incorporates: * DataStoreWrite: '/Data Store Write3' */ rtDW.Blower_AF_FR = (uint8_t)rtb_out_khw; /* MATLAB Function: '/Write' incorporates: * DataStoreWrite: '/Data Store Write' */ /* : fprintf('pwmFront_output = %u \n',data); */ printf("pwmFront_output = %u \n", rtDW.PWM_front); fflush(stdout); /* MATLAB Function: '/Write2' incorporates: * DataStoreRead: '/Data Store Read11' */ /* : fprintf('speedL_input = %u \n',data); */ printf("speedL_input = %u \n", rtDW.FIU_BLOWERS_FL); fflush(stdout); } /* End of Logic: '/Logical Operator1' */ /* End of Outputs for SubSystem: '/Subsystem' */ /* Outputs for Enabled SubSystem: '/Subsystem1' incorporates: * EnablePort: '/Enable' */ /* Logic: '/Logical Operator2' incorporates: * Constant: '/Constant1' * Constant: '/Constant4' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * RelationalOperator: '/Equal1' * RelationalOperator: '/Equal4' */ if ((rtDW.FIU_MODE_RL == 1) && (rtDW.FIU_MODE_RR == 1)) { /* MATLAB Function: '/AF for Vent mode R' incorporates: * DataStoreRead: '/Data Store Read18' */ AFforVentmodeR(rtDW.FIU_BLOWERS_RL, &rtb_out_khw); /* MATLAB Function: '/AF for Foot R' incorporates: * DataStoreRead: '/Data Store Read18' */ AFforFootR(rtDW.FIU_BLOWERS_RL, &rtb_out_le); /* MATLAB Function: '/AF for Bi Level R' incorporates: * DataStoreRead: '/Data Store Read18' */ AFforBiLevelR(rtDW.FIU_BLOWERS_RL, &rtb_out_b); /* MultiPortSwitch: '/Multiport Switch' incorporates: * Constant: '/Constant1' * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read19' * DataStoreRead: '/Data Store Read20' * Gain: '/Gain2' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' * Sum: '/Add' */ switch ((int32_t)((uint32_t)((rtDW.FIU_FOOT_RL == 1) << 1) + (uint32_t) (rtDW.FIU_FACE_RL == 1))) { case 0: rtb_out_b = 0U; break; case 1: rtb_out_b = rtb_out_khw; break; case 2: rtb_out_b = rtb_out_le; break; } /* End of MultiPortSwitch: '/Multiport Switch' */ /* MATLAB Function: '/AF for Vent mode R' incorporates: * DataStoreRead: '/Data Store Read15' */ AFforVentmodeR(rtDW.FIU_BLOWERS_RR, &rtb_out_le); /* MATLAB Function: '/AF for Foot R' incorporates: * DataStoreRead: '/Data Store Read15' */ AFforFootR(rtDW.FIU_BLOWERS_RR, &rtb_out_pf); /* MATLAB Function: '/AF for Bi Level R' incorporates: * DataStoreRead: '/Data Store Read15' */ AFforBiLevelR(rtDW.FIU_BLOWERS_RR, &rtb_out_khw); /* MultiPortSwitch: '/Multiport Switch' incorporates: * Constant: '/Constant1' * Constant: '/Constant2' * Constant: '/Constant3' * DataStoreRead: '/Data Store Read16' * DataStoreRead: '/Data Store Read17' * Gain: '/Gain2' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' * Sum: '/Add' */ switch ((int32_t)((uint32_t)((rtDW.FIU_FOOT_RR == 1) << 1) + (uint32_t) (rtDW.FIU_FACE_RR == 1))) { case 0: rtb_out_khw = 0U; break; case 1: rtb_out_khw = rtb_out_le; break; case 2: rtb_out_khw = rtb_out_pf; break; } /* End of MultiPortSwitch: '/Multiport Switch' */ /* DataTypeConversion: '/Data Type Conversion' incorporates: * Constant: '/Constant1' * DataStoreWrite: '/Data Store Write1' * Product: '/Divide1' * Sum: '/Add1' */ rtDW.PWM_rear = (uint8_t)((double)(uint16_t)((uint32_t)rtb_out_b + rtb_out_khw) / 4.0); /* DataTypeConversion: '/Data Type Conversion4' incorporates: * DataStoreWrite: '/Data Store Write4' */ rtDW.Blower_AF_RL = (uint8_t)rtb_out_b; /* DataTypeConversion: '/Data Type Conversion5' incorporates: * DataStoreWrite: '/Data Store Write5' */ rtDW.Blower_AF_RR = (uint8_t)rtb_out_khw; /* MATLAB Function: '/Write1' incorporates: * DataStoreWrite: '/Data Store Write1' */ /* : fprintf('pwmRear_output = %u \n',data); */ printf("pwmRear_output = %u \n", rtDW.PWM_rear); fflush(stdout); } /* End of Logic: '/Logical Operator2' */ /* End of Outputs for SubSystem: '/Subsystem1' */ /* End of Outputs for SubSystem: '/PWM and valves in manual1' */ /* If: '/если SC front не завершен' incorporates: * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataTypeConversion: '/Data Type Conversion' */ if ((rtDW.start_control_finished_front == 0) && (rtDW.SKIPPED_FIRST_SIMULATION_STEP == 0.0)) { /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write' incorporates: * Constant: '/Constant' */ rtDW.SKIPPED_FIRST_SIMULATION_STEP = 1.0; /* End of Outputs for SubSystem: '/If Action Subsystem' */ } else if (rtDW.start_control_finished_front == 0) { /* Outputs for IfAction SubSystem: '/Start Control Front' incorporates: * ActionPort: '/Action Port' */ /* SwitchCase: '/Switch Case' incorporates: * DataStoreRead: '/Data Store Read' */ switch (rtDW.step_start_controle_front) { case -1: /* Outputs for IfAction SubSystem: '/Step -1 F (Entry Condition)' incorporates: * ActionPort: '/Action Port' */ /* SwitchCase: '/Switch Case' incorporates: * DataStoreWrite: '/Data Store Write' */ switch (rtB.Merge_b) { case 0: /* Outputs for IfAction SubSystem: '/Level 0' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/g_assSTART_ENTER_INCAR' */ g_assSTART_ENTER_INCAR_j(rtB.Merge_b, &rtb_LVL); /* MATLAB Function: '/g_ausSTART_ENTER_SETTEMP' */ /* : out = g_ausSTART_ENTER_SETTEMP(LVL+1); */ i = (int32_t)(rtB.Merge_b + 1U); if (rtB.Merge_b + 1U > 255U) { i = 255; } /* Switch: '/Switch' incorporates: * Constant: '/AUTO' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * Logic: '/AND' * MATLAB Function: '/g_ausSTART_ENTER_SETTEMP' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' */ if ((rtDW.Incar_FL > rtb_LVL) && (rtDW.MODE_DRIVER == 1.0) && (rtDW.FIU_SET_FL < g_ausSTART_ENTER_SETTEMP[i - 1])) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_h = 0; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant' */ rtB.Merge_h = -1; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Level 0' */ break; case 1: /* Outputs for IfAction SubSystem: '/Level 1' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/g_assSTART_ENTER_INCAR' */ g_assSTART_ENTER_INCAR_j(rtB.Merge_b, &rtb_LVL); /* MATLAB Function: '/g_ausSTART_ENTER_SETTEMP' */ /* : out = int16(g_ausSTART_ENTER_SETTEMP(LVL+1)); */ i = (int32_t)(rtB.Merge_b + 1U); if (rtB.Merge_b + 1U > 255U) { i = 255; } rtb_out_b = g_ausSTART_ENTER_SETTEMP[i - 1]; if (rtb_out_b > 32767) { rtb_out_b = 32767U; } /* Switch: '/Switch' incorporates: * Constant: '/AUTO' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * Logic: '/AND' * MATLAB Function: '/g_ausSTART_ENTER_SETTEMP' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' */ if ((rtDW.Incar_FL > rtb_LVL) && (rtDW.MODE_DRIVER == 1.0) && (rtDW.FIU_SET_FL < rtb_out_b)) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_h = 0; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant' */ rtB.Merge_h = -1; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Level 1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Level 2' incorporates: * ActionPort: '/Action Port' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant' * SignalConversion generated from: '/step' */ rtB.Merge_h = 0; /* End of Outputs for SubSystem: '/Level 2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Level 3' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/g_assSTART_ENTER_COOLANT ' */ g_assSTART_ENTER_COOLANT_p(rtB.Merge_b, &rtb_LVL); /* Switch: '/Switch' incorporates: * Constant: '/AUTO' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * Logic: '/AND' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator2' */ if ((rtDW.ECT < rtb_LVL) && (rtDW.MODE_DRIVER == 1.0)) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_h = 0; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant' */ rtB.Merge_h = -1; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Level 3' */ break; case 4: /* Outputs for IfAction SubSystem: '/Level 4' incorporates: * ActionPort: '/Action Port' */ Level4(&rtB.Merge_h, &rtDW.ECT, &rtB.Merge_b, &rtDW.MODE_DRIVER); /* End of Outputs for SubSystem: '/Level 4' */ break; case 5: /* Outputs for IfAction SubSystem: '/Level 5' incorporates: * ActionPort: '/Action Port' */ Level4(&rtB.Merge_h, &rtDW.ECT, &rtB.Merge_b, &rtDW.MODE_DRIVER); /* End of Outputs for SubSystem: '/Level 5' */ break; } /* End of SwitchCase: '/Switch Case' */ /* End of Outputs for SubSystem: '/Step -1 F (Entry Condition)' */ break; case 0: /* Outputs for IfAction SubSystem: '/Step 0 F' incorporates: * ActionPort: '/Action Port' */ /* SwitchCase: '/Switch Case' incorporates: * DataStoreWrite: '/Data Store Write' */ switch (rtB.Merge_b) { case 0: /* Outputs for IfAction SubSystem: '/Level 0' incorporates: * ActionPort: '/Action Port' */ Level0(&rtB.Merge_h); /* End of Outputs for SubSystem: '/Level 0' */ break; case 1: /* Outputs for IfAction SubSystem: '/Level 1' incorporates: * ActionPort: '/Action Port' */ Level0(&rtB.Merge_h); /* End of Outputs for SubSystem: '/Level 1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Level 2' incorporates: * ActionPort: '/Action Port' */ Level0(&rtB.Merge_h); /* End of Outputs for SubSystem: '/Level 2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Level 3' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ rtDW.Blower_FL = 20U; /* DataStoreWrite: '/Data Store Write11' incorporates: * Constant: '/Constant5' */ rtDW.Dtg_FUL = 60U; /* DataStoreWrite: '/Data Store Write13' incorporates: * Constant: '/Constant7' */ rtDW.Dtg_FLL = 80U; /* DataStoreWrite: '/Data Store Write' incorporates: * MATLAB Function: '/incar filter up' */ incarfilterup(rtB.Merge_b, &rtb_Merge_j); /* DataStoreWrite: '/Data Store Write1' incorporates: * MATLAB Function: '/incar filter down' */ incarfilterdown(rtB.Merge_b, &rtb_Merge_e); /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Mode - def' */ rtDW.Mode_FL = 80U; /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ rtb_rate = 1.0; /* DataStoreWrite: '/Data Store Write8' incorporates: * Constant: '/Valve open' */ rtb_Merge_m = 1U; /* DataStoreWrite: '/Data Store Write9' incorporates: * Constant: '/Valve open' */ rtb_Merge_a = 1U; /* MATLAB Function: '/g_assSTART_COOLANT_STEP0_TO_1 ' */ /* : out = int16(g_assSTART_COOLANT_STEP0_TO_1(LVL + 1 - 2)); */ i = (int32_t)(rtB.Merge_b + 1U); if (rtB.Merge_b + 1U > 255U) { i = 255; } rtb_Subtract = (uint32_t)i - 2U; if ((uint32_t)i - 2U > (uint32_t)i) { rtb_Subtract = 0U; } /* Merge: '/Merge' incorporates: * DataStoreRead: '/Engine coolant temp' * MATLAB Function: '/g_assSTART_COOLANT_STEP0_TO_1 ' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ rtB.Merge_h = (int8_t)(rtDW.ECT > g_assSTART_COOLANT_STEP0_TO_1[(int32_t) rtb_Subtract - 1]); /* End of Outputs for SubSystem: '/Level 3' */ break; case 4: /* Outputs for IfAction SubSystem: '/Level 4' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ rtDW.Blower_FL = 20U; /* DataStoreWrite: '/Data Store Write11' incorporates: * Constant: '/Constant5' */ rtDW.Dtg_FUL = 60U; /* DataStoreWrite: '/Data Store Write13' incorporates: * Constant: '/Constant7' */ rtDW.Dtg_FLL = 80U; /* DataStoreWrite: '/Data Store Write' incorporates: * MATLAB Function: '/incar filter up' */ incarfilterup(rtB.Merge_b, &rtb_Merge_j); /* DataStoreWrite: '/Data Store Write1' incorporates: * MATLAB Function: '/incar filter down' */ incarfilterdown(rtB.Merge_b, &rtb_Merge_e); /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Mode - def' */ rtDW.Mode_FL = 80U; /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ rtb_rate = 1.0; /* DataStoreWrite: '/Data Store Write8' incorporates: * Constant: '/Valve open' */ rtb_Merge_m = 1U; /* DataStoreWrite: '/Data Store Write9' incorporates: * Constant: '/Valve open' */ rtb_Merge_a = 1U; /* MATLAB Function: '/g_assSTART_COOLANT_STEP0_TO_1 ' */ g_assSTART_COOLANT_STEP0_TO_1_h(rtB.Merge_b, &rtb_LVL); /* Merge: '/Merge' incorporates: * DataStoreRead: '/Engine coolant temp' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ rtB.Merge_h = (int8_t)(rtDW.ECT > rtb_LVL); /* End of Outputs for SubSystem: '/Level 4' */ break; case 5: /* Outputs for IfAction SubSystem: '/Level 5' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant3' */ rtDW.Blower_FL = 20U; /* DataStoreWrite: '/Data Store Write11' incorporates: * Constant: '/Constant5' */ rtDW.Dtg_FUL = 80U; /* DataStoreWrite: '/Data Store Write13' incorporates: * Constant: '/Constant7' */ rtDW.Dtg_FLL = 80U; /* DataStoreWrite: '/Data Store Write' incorporates: * MATLAB Function: '/incar filter up' */ incarfilterup(rtB.Merge_b, &rtb_Merge_j); /* DataStoreWrite: '/Data Store Write1' incorporates: * MATLAB Function: '/incar filter down' */ incarfilterdown(rtB.Merge_b, &rtb_Merge_e); /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Mode - def' */ rtDW.Mode_FL = 80U; /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ rtb_rate = 1.0; /* DataStoreWrite: '/Data Store Write8' incorporates: * Constant: '/Valve open' */ rtb_Merge_m = 1U; /* DataStoreWrite: '/Data Store Write9' incorporates: * Constant: '/Valve open' */ rtb_Merge_a = 1U; /* MATLAB Function: '/g_assSTART_COOLANT_STEP0_TO_1 ' */ g_assSTART_COOLANT_STEP0_TO_1_h(rtB.Merge_b, &rtb_LVL); /* Merge: '/Merge' incorporates: * DataStoreRead: '/Engine coolant temp' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ rtB.Merge_h = (int8_t)(rtDW.ECT > rtb_LVL); /* End of Outputs for SubSystem: '/Level 5' */ break; } /* End of SwitchCase: '/Switch Case' */ /* End of Outputs for SubSystem: '/Step 0 F' */ break; case 1: /* Outputs for IfAction SubSystem: '/Step 1 F' incorporates: * ActionPort: '/Action Port' */ /* SwitchCase: '/Switch Case' incorporates: * DataStoreWrite: '/Data Store Write' */ switch (rtB.Merge_b) { case 0: /* Outputs for IfAction SubSystem: '/Level 0' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write8' incorporates: * MATLAB Function: '/3 way valve status' */ uwayvalvestatus(rtB.Merge_b, &rtb_Merge_m); /* DataStoreWrite: '/Data Store Write' incorporates: * MATLAB Function: '/incar filter up' */ incarfilterup(rtB.Merge_b, &rtb_Merge_j); /* DataStoreWrite: '/Data Store Write1' incorporates: * MATLAB Function: '/incar filter down' */ incarfilterdown(rtB.Merge_b, &rtb_Merge_e); /* DataStoreWrite: '/Data Store Write3' incorporates: * MATLAB Function: '/mode FR step 1' */ modeFRstep1(rtB.Merge_b, &rtDW.Mode_FL); /* DataStoreWrite: '/Data Store Write11' incorporates: * MATLAB Function: '/window heating' */ windowheating(rtB.Merge_b, &rtDW.Dtg_FUL); /* DataStoreWrite: '/Data Store Write6' incorporates: * MATLAB Function: '/blower FR' */ blowerFR(rtB.Merge_b, &rtDW.Blower_FL); /* DataStoreWrite: '/Data Store Write11' incorporates: * MATLAB Function: '/Dtg_FrontUpper_X' */ Dtg_FrontUpper_X(rtB.Merge_b, &rtDW.Dtg_FUL); /* DataStoreWrite: '/Data Store Write13' incorporates: * MATLAB Function: '/Dtg_FrontLower_X' */ Dtg_FrontLower_X(rtB.Merge_b, &rtDW.Dtg_FLL); /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ rtb_rate = 1.0; /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_LogicalOperator1 = (rtDW.step_start_controle_front == 1); /* MATLAB Function: '/Incar temp goto from step 1 to step 2 ' */ Incartempgotofromstep1tostep2(rtB.Merge_b, &rtb_LVL); /* MATLAB Function: '/Time goto from step 1 to step 2 ' */ /* : out = int16(g_ausSTART_TIME_STEP1_TO_2(LVL + 1)); */ i = (int32_t)(rtB.Merge_b + 1U); if (rtB.Merge_b + 1U > 255U) { i = 255; } rtb_out_b = g_ausSTART_TIME_STEP1_TO_2[i - 1]; if (rtb_out_b > 32767) { rtb_out_b = 32767U; } /* Switch: '/Switch' incorporates: * DataStoreRead: '/incar temp' * DataStoreRead: '/Data Store Read4' * Gain: '/из сек в мс' * Logic: '/Logical Operator' * MATLAB Function: '/Time goto from step 1 to step 2 ' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ if ((rtDW.Incar_FL < rtb_LVL) || (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_pd > (uint16_t)(1000 * rtb_out_b))) { /* Merge: '/Merge' incorporates: * Constant: '/go to next step' * SignalConversion generated from: '/step' */ rtB.Merge_h = 2; } else { /* Merge: '/Merge' incorporates: * Constant: '/stay at step 1' * SignalConversion generated from: '/step' */ rtB.Merge_h = 1; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_gx)) { rtDW.t_start_delay_private_DSTATE_pd = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_gx = rtb_LogicalOperator1; /* End of Outputs for SubSystem: '/Level 0' */ break; case 1: /* Outputs for IfAction SubSystem: '/Level 1' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write8' incorporates: * MATLAB Function: '/3 way valve status' */ uwayvalvestatus(rtB.Merge_b, &rtb_Merge_m); /* DataStoreWrite: '/Data Store Write' incorporates: * MATLAB Function: '/incar filter up' */ incarfilterup(rtB.Merge_b, &rtb_Merge_j); /* DataStoreWrite: '/Data Store Write1' incorporates: * MATLAB Function: '/incar filter down' */ incarfilterdown(rtB.Merge_b, &rtb_Merge_e); /* DataStoreWrite: '/Data Store Write3' incorporates: * MATLAB Function: '/mode FR step 1' */ modeFRstep1(rtB.Merge_b, &rtDW.Mode_FL); /* DataStoreWrite: '/Data Store Write11' incorporates: * MATLAB Function: '/window heating' */ windowheating(rtB.Merge_b, &rtDW.Dtg_FUL); /* DataStoreWrite: '/Data Store Write6' incorporates: * MATLAB Function: '/blower FR' */ blowerFR(rtB.Merge_b, &rtDW.Blower_FL); /* DataStoreWrite: '/Data Store Write11' incorporates: * MATLAB Function: '/Dtg_FrontUpper_X' */ Dtg_FrontUpper_X(rtB.Merge_b, &rtDW.Dtg_FUL); /* DataStoreWrite: '/Data Store Write13' incorporates: * MATLAB Function: '/Dtg_FrontLower_X' */ Dtg_FrontLower_X(rtB.Merge_b, &rtDW.Dtg_FLL); /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ rtb_rate = 1.0; /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_LogicalOperator1 = (rtDW.step_start_controle_front == 1); /* MATLAB Function: '/Incar temp goto from step 1 to step 2 ' */ Incartempgotofromstep1tostep2(rtB.Merge_b, &rtb_LVL); /* MATLAB Function: '/Time goto from step 1 to step 2 ' */ Timegotofromstep1tostep2(rtB.Merge_b, &Duct2_F); /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreRead: '/Data Store Read4' * Gain: '/из сек в мс' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator1_dv = (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_mk > (uint32_t)(1000 * Duct2_F)); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_hs)) { rtDW.t_start_delay_private_DSTATE_mk = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/incar temp' * Logic: '/Logical Operator' * RelationalOperator: '/Relational Operator' */ if ((rtDW.Incar_FL < rtb_LVL) || rtb_LogicalOperator1_dv) { /* Merge: '/Merge' incorporates: * Constant: '/go to next step' */ rtB.Merge_h = 2; } else { /* Merge: '/Merge' incorporates: * Constant: '/stay at step 1' */ rtB.Merge_h = 1; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_hs = rtb_LogicalOperator1; /* End of Outputs for SubSystem: '/Level 1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Level 2' incorporates: * ActionPort: '/Action Port' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant' * SignalConversion generated from: '/step' */ rtB.Merge_h = 2; /* End of Outputs for SubSystem: '/Level 2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Level 3' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write8' incorporates: * MATLAB Function: '/3 way valve status' */ uwayvalvestatus(rtB.Merge_b, &rtb_Merge_m); /* DataStoreWrite: '/Data Store Write' incorporates: * MATLAB Function: '/incar filter up' */ incarfilterup(rtB.Merge_b, &rtb_Merge_j); /* DataStoreWrite: '/Data Store Write1' incorporates: * MATLAB Function: '/incar filter down' */ incarfilterdown(rtB.Merge_b, &rtb_Merge_e); /* DataStoreWrite: '/Data Store Write3' incorporates: * MATLAB Function: '/mode FR step 1' */ modeFRstep1(rtB.Merge_b, &rtDW.Mode_FL); /* DataStoreWrite: '/Data Store Write11' incorporates: * MATLAB Function: '/window heating' */ windowheating(rtB.Merge_b, &rtDW.Dtg_FUL); /* MATLAB Function: '/blower min max' */ blowerminmax(rtB.Merge_b, rtb_out_f0); /* MATLAB Function: '/ECT min max' */ ECTminmax(rtB.Merge_b, rtb_out_md); /* Lookup_n-D: '/blower для текущего ECT' incorporates: * DataStoreRead: '/engine coolant temp' */ rtb_LVL = look1_is16lu64n32tu16Ds32Is16_binlcs(rtDW.ECT, rtb_out_md, rtb_out_f0, 1U); /* DataStoreWrite: '/Data Store Write6' incorporates: * DataTypeConversion: '/Data Type Conversion' */ rtDW.Blower_FL = (uint16_t)rtb_LVL; /* DataStoreWrite: '/Data Store Write11' incorporates: * MATLAB Function: '/Dtg_FrontUpper_X' */ Dtg_FrontUpper_X(rtB.Merge_b, &rtDW.Dtg_FUL); /* DataStoreWrite: '/Data Store Write13' incorporates: * MATLAB Function: '/Dtg_FrontLower_X' */ Dtg_FrontLower_X(rtB.Merge_b, &rtDW.Dtg_FLL); /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ rtb_rate = 1.0; /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_LogicalOperator1 = (rtDW.step_start_controle_front == 1); /* MATLAB Function: '/Incar temp goto from step 1 to step 2 ' */ Incartempgotofromstep1tostep2(rtB.Merge_b, &Duct2_F); /* MATLAB Function: '/Time goto from step 1 to step 2 ' */ Timegotofromstep1tostep2(rtB.Merge_b, &rtb_LVL); /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreRead: '/Data Store Read4' * Gain: '/из сек в мс' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator1_dv = (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_fm > (uint32_t)(1000 * rtb_LVL)); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ /* : out = int16(g_assSTART_COOLANT_TO_STEP2(LVL + 1 - 3)); */ if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_fi)) { rtDW.t_start_delay_private_DSTATE_fm = rtDW.t_now; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/g_assSTART_COOLANT_TO_STEP2 ' */ i = (int32_t)(rtB.Merge_b + 1U); if (rtB.Merge_b + 1U > 255U) { i = 255; } /* MW:begin MISRA2012:D4.1 CERT-C:INT30-C 'Justifying MISRA CPP rule violation' */ rtb_Subtract = (uint32_t)i - 3U; /* MW:end MISRA2012:D4.1 CERT-C:INT30-C */ if ((uint32_t)i - 3U > (uint32_t)i) { rtb_Subtract = 0U; } /* Switch: '/Switch' incorporates: * DataStoreRead: '/engine coolant temp' * DataStoreRead: '/incar temp' * Logic: '/Logical Operator' * MATLAB Function: '/g_assSTART_COOLANT_TO_STEP2 ' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator2' */ if ((rtDW.Incar_FL < Duct2_F) || rtb_LogicalOperator1_dv || (rtDW.ECT > g_assSTART_COOLANT_TO_STEP2[(int32_t)rtb_Subtract - 1])) { /* Merge: '/Merge' incorporates: * Constant: '/go to next step 2' */ rtB.Merge_h = 2; } else { /* Merge: '/Merge' incorporates: * Constant: '/stay at step 1' */ rtB.Merge_h = 1; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_fi = rtb_LogicalOperator1; /* End of Outputs for SubSystem: '/Level 3' */ break; case 4: /* Outputs for IfAction SubSystem: '/Level 4' incorporates: * ActionPort: '/Action Port' */ Level4_c(&rtB.Merge_h, &rtDW.Blower_FL, &rtb_out_b, &rtDW.Dtg_FLL, &rtb_Merge_a, &rtDW.Dtg_FUL, &Dtg_FUR, &rtDW.ECT, &El_window_heating, &rtDW.Incar_FL, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &rtDW.Mode_FL, &Mode_FR, &rtb_rate, &rtb_Merge_m, &rtDW.step_start_controle_front, &rtDW.t_now, &rtDW.Level4_cw); /* End of Outputs for SubSystem: '/Level 4' */ break; case 5: /* Outputs for IfAction SubSystem: '/Level 5' incorporates: * ActionPort: '/Action Port' */ Level4_c(&rtB.Merge_h, &rtDW.Blower_FL, &rtb_out_b, &rtDW.Dtg_FLL, &rtb_Merge_a, &rtDW.Dtg_FUL, &Dtg_FUR, &rtDW.ECT, &El_window_heating, &rtDW.Incar_FL, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &rtDW.Mode_FL, &Mode_FR, &rtb_rate, &rtb_Merge_m, &rtDW.step_start_controle_front, &rtDW.t_now, &rtDW.Level5_g); /* End of Outputs for SubSystem: '/Level 5' */ break; } /* End of SwitchCase: '/Switch Case' */ /* End of Outputs for SubSystem: '/Step 1 F' */ break; case 2: /* Outputs for IfAction SubSystem: '/Step 2 F' incorporates: * ActionPort: '/Action Port' */ /* SwitchCase: '/Switch Case' incorporates: * DataStoreWrite: '/Data Store Write' */ switch (rtB.Merge_b) { case 0: /* Outputs for IfAction SubSystem: '/Level 0' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write8' incorporates: * MATLAB Function: '/3 way valve status' */ uwayvalvestatus_a(rtB.Merge_b, &rtb_Merge_m); /* MATLAB Function: '/step' */ Dtg_FrontLower_X(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' */ timeforstep(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Switch: '/Switch' */ if ((uint8_t)(rtDW.Dtg_FLL - rtDW.Dtg_logic_FLL) <= 0.01) { /* DataStoreWrite: '/Data Store Write13' */ rtDW.Dtg_FLL = rtDW.Dtg_logic_FLL; } else { if (rtDW.Dtg_FLL <= rtDW.Dtg_logic_FLL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write13' incorporates: * Constant: '/Constant' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Dtg_FLL = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_k) * (double)i + (double)rtDW.Dtg_FLL); } /* End of Switch: '/Switch' */ /* MATLAB Function: '/step' */ Dtg_FrontUpper_X(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' */ timeforstep_j(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Switch: '/Switch' */ if ((uint8_t)(rtDW.Dtg_FUL - rtDW.Dtg_logic_FUL) <= 0.01) { /* DataStoreWrite: '/Data Store Write11' */ rtDW.Dtg_FUL = rtDW.Dtg_logic_FUL; } else { if (rtDW.Dtg_FUL <= rtDW.Dtg_logic_FUL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write11' incorporates: * Constant: '/Constant' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Subtract' * Sum: '/Add' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Dtg_FUL = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_pb) * (double)i + (double)rtDW.Dtg_FUL); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write' incorporates: * MATLAB Function: '/incar filter up' */ incarfilterup(rtB.Merge_b, &rtb_Merge_j); /* DataStoreWrite: '/Data Store Write1' incorporates: * MATLAB Function: '/incar filter down' */ incarfilterdown(rtB.Merge_b, &rtb_Merge_e); /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtb_Merge_j = (uint8_t)(rtDW.Mode_FL - rtDW.Mode_logic_FL); /* RelationalOperator: '/Relational Operator' incorporates: * Constant: '/epsilon' */ rtb_LogicalOperator1 = (rtb_Merge_j <= 0.01); /* MATLAB Function: '/step' */ step_j(rtB.Merge_b, &rtb_Merge_e); /* MATLAB Function: '/time for step' */ timeforstep_g(rtB.Merge_b, &rtb_Merge_j); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ if (rtb_LogicalOperator1) { /* DataStoreWrite: '/Data Store Write3' incorporates: * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtDW.Mode_FL = rtDW.Mode_logic_FL; } else { if (rtDW.Mode_FL <= rtDW.Mode_logic_FL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Constant' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Subtract' * Sum: '/Add' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Mode_FL = (uint8_t)((double)rtb_Merge_e / (double)rtb_Merge_j / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_mk) * (double)i + (double)rtDW.Mode_FL); } /* End of Switch: '/Switch' */ /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ /* : out = g_aucSTART_ELEC_WINDOW(LVL + 1 + 6); */ rtb_out_b = (uint16_t)(rtDW.Blower_FL - rtDW.Blower_logic_FL); /* RelationalOperator: '/Relational Operator' incorporates: * Constant: '/epsilon' */ rtb_LogicalOperator1 = (rtb_out_b <= 0.01); /* MATLAB Function: '/blower step' */ blowerstep(rtB.Merge_b, &rtb_out_khw); /* MATLAB Function: '/blower time for step' */ blowertimeforstep(rtB.Merge_b, &rtb_out_b); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ if (rtb_LogicalOperator1) { /* DataStoreWrite: '/Data Store Write6' incorporates: * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtDW.Blower_FL = rtDW.Blower_logic_FL; } else { if (rtDW.Blower_FL <= rtDW.Blower_logic_FL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Subtract' * Sum: '/Add' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Blower_FL = (uint16_t)((double)rtb_out_khw / (double)rtb_out_b / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_gm) * (double)i + (double)rtDW.Blower_FL); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ rtb_rate = 1.0; /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_LogicalOperator1 = (rtDW.step_start_controle_front == 2); /* Sum: '/Subtract' incorporates: * DataStoreRead: '/Data Store Read4' * UnitDelay: '/t_start_delay_private ' */ rtb_Subtract = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_gp; /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_mb)) { rtDW.t_start_delay_private_DSTATE_gp = rtDW.t_now; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/Time goto from step 2 to step 3 ' */ Timegotofromstep2tostep3(rtB.Merge_b, &rtb_LVL); /* Switch: '/Switch' incorporates: * Gain: '/из сек в мс' * RelationalOperator: '/Relational Operator1' */ if (rtb_Subtract > (uint32_t)(1000 * rtb_LVL)) { /* Merge: '/Merge' incorporates: * Constant: '/go to next step' */ rtB.Merge_h = 3; } else { /* Merge: '/Merge' incorporates: * Constant: '/stay at step' */ rtB.Merge_h = 2; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_k = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_pb = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_mk = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_gm = rtDW.t_now; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_mb = rtb_LogicalOperator1; /* End of Outputs for SubSystem: '/Level 0' */ break; case 1: /* Outputs for IfAction SubSystem: '/Level 1' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write8' incorporates: * MATLAB Function: '/3 way valve status' */ uwayvalvestatus_a(rtB.Merge_b, &rtb_Merge_m); /* MATLAB Function: '/step' */ Dtg_FrontLower_X(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' */ timeforstep(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Switch: '/Switch' */ if ((uint8_t)(rtDW.Dtg_FLL - rtDW.Dtg_logic_FLL) <= 0.01) { /* DataStoreWrite: '/Data Store Write13' */ rtDW.Dtg_FLL = rtDW.Dtg_logic_FLL; } else { if (rtDW.Dtg_FLL <= rtDW.Dtg_logic_FLL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write13' incorporates: * Constant: '/Constant' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Dtg_FLL = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_m) * (double)i + (double)rtDW.Dtg_FLL); } /* End of Switch: '/Switch' */ /* MATLAB Function: '/step' */ Dtg_FrontUpper_X(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' */ timeforstep_j(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Switch: '/Switch' */ if ((uint8_t)(rtDW.Dtg_FUL - rtDW.Dtg_logic_FUL) <= 0.01) { /* DataStoreWrite: '/Data Store Write11' */ rtDW.Dtg_FUL = rtDW.Dtg_logic_FUL; } else { if (rtDW.Dtg_FUL <= rtDW.Dtg_logic_FUL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write11' incorporates: * Constant: '/Constant' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Dtg_FUL = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_gf) * (double)i + (double)rtDW.Dtg_FUL); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write' incorporates: * MATLAB Function: '/incar filter up' */ incarfilterup(rtB.Merge_b, &rtb_Merge_j); /* DataStoreWrite: '/Data Store Write1' incorporates: * MATLAB Function: '/incar filter down' */ incarfilterdown(rtB.Merge_b, &rtb_Merge_e); /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtb_Merge_j = (uint8_t)(rtDW.Mode_FL - rtDW.Mode_logic_FL); /* MATLAB Function: '/step' */ step_j(rtB.Merge_b, &rtb_Merge_e); /* MATLAB Function: '/time for step' */ timeforstep_g(rtB.Merge_b, &rtb_Merge_m); /* Switch: '/Switch' incorporates: * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ if (rtb_Merge_j <= 0.01) { /* DataStoreWrite: '/Data Store Write3' incorporates: * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtDW.Mode_FL = rtDW.Mode_logic_FL; } else { if (rtDW.Mode_FL <= rtDW.Mode_logic_FL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Constant' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Mode_FL = (uint8_t)((double)rtb_Merge_e / (double)rtb_Merge_m / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_l) * (double)i + (double)rtDW.Mode_FL); } /* End of Switch: '/Switch' */ /* MATLAB Function: '/window heating' */ windowheating_k(rtB.Merge_b, &rtb_Merge_j); /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtb_out_b = (uint16_t)(rtDW.Blower_FL - rtDW.Blower_logic_FL); /* RelationalOperator: '/Relational Operator' incorporates: * Constant: '/epsilon' */ rtb_LogicalOperator1 = (rtb_out_b <= 0.01); /* MATLAB Function: '/blower step' */ blowerstep(rtB.Merge_b, &rtb_out_khw); /* MATLAB Function: '/blower time for step' */ blowertimeforstep(rtB.Merge_b, &rtb_out_b); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ if (rtb_LogicalOperator1) { /* DataStoreWrite: '/Data Store Write6' incorporates: * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtDW.Blower_FL = rtDW.Blower_logic_FL; } else { if (rtDW.Blower_FL <= rtDW.Blower_logic_FL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Blower_FL = (uint16_t)((double)rtb_out_khw / (double)rtb_out_b / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_p0) * (double)i + (double)rtDW.Blower_FL); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ rtb_rate = 1.0; /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_LogicalOperator1 = (rtDW.step_start_controle_front == 2); /* Sum: '/Subtract' incorporates: * DataStoreRead: '/Data Store Read4' * UnitDelay: '/t_start_delay_private ' */ rtb_Subtract = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_mz; /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_b)) { rtDW.t_start_delay_private_DSTATE_mz = rtDW.t_now; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/Time goto from step 2 to step 3 ' */ Timegotofromstep2tostep3(rtB.Merge_b, &rtb_LVL); /* Switch: '/Switch' incorporates: * Gain: '/из сек в мс' * RelationalOperator: '/Relational Operator1' */ if (rtb_Subtract > (uint32_t)(1000 * rtb_LVL)) { /* Merge: '/Merge' incorporates: * Constant: '/go to next step' */ rtB.Merge_h = 3; } else { /* Merge: '/Merge' incorporates: * Constant: '/stay at step' */ rtB.Merge_h = 2; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_m = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_gf = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_l = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_p0 = rtDW.t_now; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_b = rtb_LogicalOperator1; /* End of Outputs for SubSystem: '/Level 1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Level 2' incorporates: * ActionPort: '/Action Port' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant' * SignalConversion generated from: '/step' */ rtB.Merge_h = 3; /* End of Outputs for SubSystem: '/Level 2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Level 3' incorporates: * ActionPort: '/Action Port' */ Level3(&rtB.Merge_h, &Autodefog, &rtDW.Blower_FL, &rtb_out_b, &rtDW.Blower_logic_FL, &rtDW.Dtg_FLL, &rtb_Merge_a, &rtDW.Dtg_FUL, &Dtg_FUR, &rtDW.Dtg_logic_FLL, &rtDW.Dtg_logic_FUL, &El_window_heating, &rtDW.HI_logic_on, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &rtDW.Mode_FL, &Mode_FR, &rtDW.Mode_logic_FL, &rtb_rate, &rtb_Merge_m, &rtDW.step_start_controle_front, &rtDW.t_now, &rtDW.Level3_l); /* End of Outputs for SubSystem: '/Level 3' */ break; case 4: /* Outputs for IfAction SubSystem: '/Level 4' incorporates: * ActionPort: '/Action Port' */ Level3(&rtB.Merge_h, &Autodefog, &rtDW.Blower_FL, &rtb_out_b, &rtDW.Blower_logic_FL, &rtDW.Dtg_FLL, &rtb_Merge_a, &rtDW.Dtg_FUL, &Dtg_FUR, &rtDW.Dtg_logic_FLL, &rtDW.Dtg_logic_FUL, &El_window_heating, &rtDW.HI_logic_on, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &rtDW.Mode_FL, &Mode_FR, &rtDW.Mode_logic_FL, &rtb_rate, &rtb_Merge_m, &rtDW.step_start_controle_front, &rtDW.t_now, &rtDW.Level4_a); /* End of Outputs for SubSystem: '/Level 4' */ break; case 5: /* Outputs for IfAction SubSystem: '/Level 5' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write8' incorporates: * MATLAB Function: '/3 way valve status' */ uwayvalvestatus_a(rtB.Merge_b, &rtb_Merge_m); /* MATLAB Function: '/step' */ Dtg_FrontLower_X(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' */ timeforstep(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Switch: '/Switch' */ if ((uint8_t)(rtDW.Dtg_FLL - rtDW.Dtg_logic_FLL) <= 0.01) { /* DataStoreWrite: '/Data Store Write13' */ rtDW.Dtg_FLL = rtDW.Dtg_logic_FLL; } else { if (rtDW.Dtg_FLL <= rtDW.Dtg_logic_FLL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write13' incorporates: * Constant: '/Constant' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Dtg_FLL = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_f) * (double)i + (double)rtDW.Dtg_FLL); } /* End of Switch: '/Switch' */ /* MATLAB Function: '/step' */ Dtg_FrontUpper_X(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' */ timeforstep_j(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Switch: '/Switch' */ if ((uint8_t)(rtDW.Dtg_FUL - rtDW.Dtg_logic_FUL) <= 0.01) { /* DataStoreWrite: '/Data Store Write11' */ rtDW.Dtg_FUL = rtDW.Dtg_logic_FUL; } else { if (rtDW.Dtg_FUL <= rtDW.Dtg_logic_FUL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write11' incorporates: * Constant: '/Constant' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Dtg_FUL = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_pu) * (double)i + (double)rtDW.Dtg_FUL); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write' incorporates: * MATLAB Function: '/incar filter up' */ incarfilterup(rtB.Merge_b, &rtb_Merge_j); /* DataStoreWrite: '/Data Store Write1' incorporates: * MATLAB Function: '/incar filter down' */ incarfilterdown(rtB.Merge_b, &rtb_Merge_e); /* MATLAB Function: '/autodemist (autodefog)' */ autodemistautodefog(rtB.Merge_b, &rtb_Merge_j); /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtb_Merge_e = (uint8_t)(rtDW.Mode_FL - rtDW.Mode_logic_FL); /* MATLAB Function: '/step' */ step_j(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' */ timeforstep_g(rtB.Merge_b, &rtb_Merge_m); /* Switch: '/Switch' incorporates: * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ if (rtb_Merge_e <= 0.01) { /* DataStoreWrite: '/Data Store Write3' incorporates: * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtDW.Mode_FL = rtDW.Mode_logic_FL; } else { if (rtDW.Mode_FL <= rtDW.Mode_logic_FL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Constant' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Mode_FL = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_m / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_b) * (double)i + (double)rtDW.Mode_FL); } /* End of Switch: '/Switch' */ /* MATLAB Function: '/window heating' */ windowheating_k(rtB.Merge_b, &rtb_Merge_e); /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtb_out_b = (uint16_t)(rtDW.Blower_FL - rtDW.Blower_logic_FL); /* RelationalOperator: '/Relational Operator' incorporates: * Constant: '/epsilon' */ rtb_LogicalOperator1 = (rtb_out_b <= 0.01); /* MATLAB Function: '/blower step' */ blowerstep(rtB.Merge_b, &rtb_out_khw); /* MATLAB Function: '/blower time for step' */ blowertimeforstep(rtB.Merge_b, &rtb_out_b); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ if (rtb_LogicalOperator1) { /* DataStoreWrite: '/Data Store Write6' incorporates: * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtDW.Blower_FL = rtDW.Blower_logic_FL; } else { if (rtDW.Blower_FL <= rtDW.Blower_logic_FL) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/текущее время в мс' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ rtDW.Blower_FL = (uint16_t)((double)rtb_out_khw / (double)rtb_out_b / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_e) * (double)i + (double)rtDW.Blower_FL); } /* End of Switch: '/Switch' */ /* DataStoreWrite: '/Data Store Write7' incorporates: * Constant: '/Recirc logic Partial REC' */ rtb_rate = 1.0; /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_LogicalOperator1 = (rtDW.step_start_controle_front == 2); /* MATLAB Function: '/Time goto from step 2 to step 3 ' */ Timegotofromstep2tostep3(rtB.Merge_b, &rtb_LVL); /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreRead: '/Data Store Read4' * Gain: '/из сек в мс' * Sum: '/Subtract' * UnitDelay: '/t_start_delay_private ' */ rtb_LogicalOperator1_dv = (rtDW.t_now - rtDW.t_start_delay_private_DSTATE_n > (uint32_t)(1000 * rtb_LVL)); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_iy)) { rtDW.t_start_delay_private_DSTATE_n = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read' * Logic: '/Logical Operator' */ if (rtb_LogicalOperator1_dv || rtDW.HI_logic_on) { /* Merge: '/Merge' incorporates: * Constant: '/go to next step' */ rtB.Merge_h = 3; } else { /* Merge: '/Merge' incorporates: * Constant: '/stay at step' */ rtB.Merge_h = 2; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_f = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_pu = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_b = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_e = rtDW.t_now; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_iy = rtb_LogicalOperator1; /* End of Outputs for SubSystem: '/Level 5' */ break; } /* End of SwitchCase: '/Switch Case' */ /* End of Outputs for SubSystem: '/Step 2 F' */ break; case 3: /* Outputs for IfAction SubSystem: '/Step 3 F' incorporates: * ActionPort: '/Action Port' */ Step3F(&rtB.Merge_h, &rtDW.start_control_finished_front); /* End of Outputs for SubSystem: '/Step 3 F' */ break; } /* End of SwitchCase: '/Switch Case' */ /* DataStoreWrite: '/Data Store Write' */ rtDW.step_start_controle_front = rtB.Merge_h; /* End of Outputs for SubSystem: '/Start Control Front' */ } /* End of If: '/если SC front не завершен' */ /* If: '/если SC rear не завершен1' incorporates: * DataStoreRead: '/Data Store Read3' */ if (rtDW.start_control_finished_rear == 0.0) { /* Outputs for IfAction SubSystem: '/Start Control Rear' incorporates: * ActionPort: '/Action Port' */ /* SwitchCase: '/Switch Case' incorporates: * DataStoreRead: '/Data Store Read' */ switch (rtDW.step_start_controle_rear) { case -1: /* Outputs for IfAction SubSystem: '/Step -1 R (Entry Condition)' incorporates: * ActionPort: '/Action Port' */ /* SwitchCase: '/Switch Case' incorporates: * DataStoreRead: '/Data Store Read1' */ switch (rtB.Merge_b) { case 0: /* Outputs for IfAction SubSystem: '/Level 0' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/g_ausSTART_ENTER_SETTEMP' incorporates: * DataStoreRead: '/Data Store Read4' */ /* : out = int16(g_assSTART_ENTER_INCAR(LVL + 1 + 6)); */ g_ausSTART_ENTER_SETTEMP_b(rtB.Merge_b, &rtb_LVL); /* MATLAB Function: '/g_assSTART_ENTER_INCAR' incorporates: * DataStoreRead: '/Data Store Read3' */ i = (int32_t)(rtB.Merge_b + 1U); if (rtB.Merge_b + 1U > 255U) { i = 255; } tmp = (int32_t)((uint32_t)i + 6U); if ((uint32_t)i + 6U > 255U) { tmp = 255; } /* Switch: '/Switch' incorporates: * Constant: '/AUTO' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * Logic: '/AND' * MATLAB Function: '/g_assSTART_ENTER_INCAR' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' */ if ((rtDW.Incar_RR > g_assSTART_ENTER_INCAR[tmp - 1]) && (rtDW.MODE_RR_passenger == 1.0) && (rtDW.FIU_SET_RR < rtb_LVL)) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_c = 0; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant' */ rtB.Merge_c = -1; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Level 0' */ break; case 1: /* Outputs for IfAction SubSystem: '/Level 1' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/g_assSTART_ENTER_INCAR' incorporates: * DataStoreRead: '/Data Store Read3' */ g_assSTART_ENTER_INCAR_p(rtB.Merge_b, &rtb_LVL); /* MATLAB Function: '/g_ausSTART_ENTER_SETTEMP' incorporates: * DataStoreRead: '/Data Store Read4' */ g_ausSTART_ENTER_SETTEMP_b(rtB.Merge_b, &Duct2_F); /* Switch: '/Switch' incorporates: * Constant: '/AUTO' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * Logic: '/AND' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' */ if ((rtDW.Incar_RR > rtb_LVL) && (rtDW.MODE_RR_passenger == 1.0) && (rtDW.FIU_SET_RR < Duct2_F)) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_c = 0; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant' */ rtB.Merge_c = -1; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Level 1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Level 2' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/g_assSTART_ENTER_INCAR' incorporates: * DataStoreRead: '/Data Store Read3' */ g_assSTART_ENTER_INCAR_p(rtB.Merge_b, &rtb_LVL); /* MATLAB Function: '/g_ausSTART_ENTER_SETTEMP' incorporates: * DataStoreRead: '/Data Store Read4' */ g_ausSTART_ENTER_SETTEMP_b(rtB.Merge_b, &Duct2_F); /* Switch: '/Switch' incorporates: * Constant: '/AUTO' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * Logic: '/AND' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' */ if ((rtDW.Incar_RR < rtb_LVL) && (rtDW.MODE_RR_passenger == 1.0) && (rtDW.FIU_SET_RR > Duct2_F)) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_c = 0; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant' */ rtB.Merge_c = -1; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Level 2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Level 3' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/g_assSTART_ENTER_INCAR' incorporates: * DataStoreRead: '/Data Store Read4' */ g_assSTART_ENTER_INCAR_p(rtB.Merge_b, &rtb_LVL); /* MATLAB Function: '/g_assSTART_ENTER_COOLANT ' incorporates: * DataStoreRead: '/Data Store Read3' */ g_assSTART_ENTER_COOLANT_e(rtB.Merge_b, &Duct2_F); /* MATLAB Function: '/g_ausSTART_ENTER_SETTEMP' incorporates: * DataStoreRead: '/Data Store Read6' */ /* : out = int16(g_ausSTART_ENTER_SETTEMP(LVL+1+6)); */ i = (int32_t)(rtB.Merge_b + 1U); if (rtB.Merge_b + 1U > 255U) { i = 255; } tmp = (int32_t)((uint32_t)i + 6U); if ((uint32_t)i + 6U > 255U) { tmp = 255; } rtb_out_b = g_ausSTART_ENTER_SETTEMP[tmp - 1]; if (rtb_out_b > 32767) { rtb_out_b = 32767U; } /* Switch: '/Switch' incorporates: * Constant: '/AUTO' * DataStoreRead: '/Data Store Read' * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read5' * Logic: '/AND' * Logic: '/AND1' * MATLAB Function: '/g_ausSTART_ENTER_SETTEMP' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' * RelationalOperator: '/Relational Operator3' */ if (((rtDW.Incar_RR < rtb_LVL) || (rtDW.ECT < Duct2_F)) && (rtDW.MODE_RR_passenger == 1.0) && (rtDW.FIU_SET_RR > rtb_out_b)) { /* Merge: '/Merge' incorporates: * Constant: '/Constant1' */ rtB.Merge_c = 0; } else { /* Merge: '/Merge' incorporates: * Constant: '/Constant' */ rtB.Merge_c = -1; } /* End of Switch: '/Switch' */ /* End of Outputs for SubSystem: '/Level 3' */ break; case 4: /* Outputs for IfAction SubSystem: '/Level 4' incorporates: * ActionPort: '/Action Port' */ Level4_e(&rtB.Merge_c, &rtDW.ECT, &rtDW.Incar_RR, &rtB.Merge_b, &rtDW.MODE_RR_passenger); /* End of Outputs for SubSystem: '/Level 4' */ break; case 5: /* Outputs for IfAction SubSystem: '/Level 5' incorporates: * ActionPort: '/Action Port' */ Level4_e(&rtB.Merge_c, &rtDW.ECT, &rtDW.Incar_RR, &rtB.Merge_b, &rtDW.MODE_RR_passenger); /* End of Outputs for SubSystem: '/Level 5' */ break; } /* End of SwitchCase: '/Switch Case' */ /* End of Outputs for SubSystem: '/Step -1 R (Entry Condition)' */ break; case 0: /* Outputs for IfAction SubSystem: '/Step 0 R' incorporates: * ActionPort: '/Action Port' */ /* SwitchCase: '/Switch Case' incorporates: * DataStoreRead: '/Data Store Read1' */ switch (rtB.Merge_b) { case 0: /* Outputs for IfAction SubSystem: '/Level 0' incorporates: * ActionPort: '/Action Port' */ Level0(&rtB.Merge_c); /* End of Outputs for SubSystem: '/Level 0' */ break; case 1: /* Outputs for IfAction SubSystem: '/Level 1' incorporates: * ActionPort: '/Action Port' */ Level0(&rtB.Merge_c); /* End of Outputs for SubSystem: '/Level 1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Level 2' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant2' */ rtDW.Blower_RR = 10U; /* DataStoreWrite: '/Data Store Write10' incorporates: * Constant: '/Constant4' */ rtDW.Dtg_RR = 65U; /* MATLAB Function: '/incar filter up' incorporates: * DataStoreRead: '/Data Store Read1' */ incarfilterup_i(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/incar filter down' incorporates: * DataStoreRead: '/Data Store Read2' */ incarfilterdown_c(rtB.Merge_b, &rtb_Merge_j); /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Mode - foot' */ rtDW.Mode_RR = 60U; /* MATLAB Function: '/g_assSTART_COOLANT_STEP0_TO_1 ' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : out = int16(g_assSTART_COOLANT_STEP0_TO_1(LVL + 3)); */ i = (int32_t)(rtB.Merge_b + 3U); if (rtB.Merge_b + 3U > 255U) { i = 255; } /* Merge: '/Merge' incorporates: * DataStoreRead: '/Engine coolant temp' * MATLAB Function: '/g_assSTART_COOLANT_STEP0_TO_1 ' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ rtB.Merge_c = (int8_t)(rtDW.ECT > g_assSTART_COOLANT_STEP0_TO_1[i - 1]); /* End of Outputs for SubSystem: '/Level 2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Level 3' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant2' */ rtDW.Blower_RR = 10U; /* DataStoreWrite: '/Data Store Write10' incorporates: * Constant: '/Constant4' */ rtDW.Dtg_RR = 65U; /* MATLAB Function: '/incar filter up' incorporates: * DataStoreRead: '/Data Store Read1' */ incarfilterup_i(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/incar filter down' incorporates: * DataStoreRead: '/Data Store Read2' */ incarfilterdown_c(rtB.Merge_b, &rtb_Merge_j); /* DataStoreWrite: '/Data Store Write2' incorporates: * Constant: '/Mode - foot' */ rtDW.Mode_RR = 60U; /* MATLAB Function: '/g_assSTART_COOLANT_STEP0_TO_1 ' incorporates: * DataStoreRead: '/Data Store Read3' */ g_assSTART_COOLANT_STEP0_TO_1_e(rtB.Merge_b, &rtb_LVL); /* Merge: '/Merge' incorporates: * DataStoreRead: '/Engine coolant temp' * RelationalOperator: '/Relational Operator' * Switch: '/Switch' */ rtB.Merge_c = (int8_t)(rtDW.ECT > rtb_LVL); /* End of Outputs for SubSystem: '/Level 3' */ break; case 4: /* Outputs for IfAction SubSystem: '/Level 4' incorporates: * ActionPort: '/Action Port' */ Level4_m(&rtB.Merge_c, &rtb_out_b, &rtDW.Blower_RR, &Dtg_FUR, &rtDW.Dtg_RR, &rtDW.ECT, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &El_window_heating, &rtDW.Mode_RR, &rtb_Merge_a, &rtb_Merge_m); /* End of Outputs for SubSystem: '/Level 4' */ break; case 5: /* Outputs for IfAction SubSystem: '/Level 5' incorporates: * ActionPort: '/Action Port' */ Level4_m(&rtB.Merge_c, &rtb_out_b, &rtDW.Blower_RR, &Dtg_FUR, &rtDW.Dtg_RR, &rtDW.ECT, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &El_window_heating, &rtDW.Mode_RR, &rtb_Merge_a, &rtb_Merge_m); /* End of Outputs for SubSystem: '/Level 5' */ break; } /* End of SwitchCase: '/Switch Case' */ /* End of Outputs for SubSystem: '/Step 0 R' */ break; case 1: /* Outputs for IfAction SubSystem: '/Step 1 R' incorporates: * ActionPort: '/Action Port' */ /* SwitchCase: '/Switch Case' incorporates: * DataStoreRead: '/Data Store Read1' */ switch (rtB.Merge_b) { case 0: /* Outputs for IfAction SubSystem: '/Level 0' incorporates: * ActionPort: '/Action Port' */ Level0_b(&rtB.Merge_c, &rtb_out_b, &rtDW.Blower_RR, &Dtg_FUR, &rtDW.Dtg_RR, &rtDW.Incar_RR, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &El_window_heating, &rtDW.Mode_RR, &rtb_rate, &rtb_Merge_a, &rtDW.step_start_controle_rear, &rtDW.t_now, &rtDW.Level0_bc); /* End of Outputs for SubSystem: '/Level 0' */ break; case 1: /* Outputs for IfAction SubSystem: '/Level 1' incorporates: * ActionPort: '/Action Port' */ Level0_b(&rtB.Merge_c, &rtb_out_b, &rtDW.Blower_RR, &Dtg_FUR, &rtDW.Dtg_RR, &rtDW.Incar_RR, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &El_window_heating, &rtDW.Mode_RR, &rtb_rate, &rtb_Merge_a, &rtDW.step_start_controle_rear, &rtDW.t_now, &rtDW.Level1_d3); /* End of Outputs for SubSystem: '/Level 1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Level 2' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write2' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/Data Store Read6' * MATLAB Function: '/2 way valve' * MATLAB Function: '/incar filter down' * MATLAB Function: '/incar filter up' * MATLAB Function: '/mode rear step 1' */ uwayvalve(rtB.Merge_b, &rtDW.Mode_RR); incarfilterup_i(rtB.Merge_b, &rtDW.Mode_RR); incarfilterdown_c(rtB.Merge_b, &rtDW.Mode_RR); moderearstep1(rtB.Merge_b, &rtDW.Mode_RR); /* MATLAB Function: '/blower start finish' incorporates: * DataStoreRead: '/Data Store Read7' */ blowerstartfinish(rtB.Merge_b, rtb_out_f0); /* MATLAB Function: '/ECT min max' */ /* : min = int16(g_assSTART_COOLANT_STEP0_TO_1(5)); */ /* : max = int16(g_assSTART_COOLANT_TO_STEP2(2)); */ /* : out = [min, max]; */ rtb_out_md[0] = g_assSTART_COOLANT_STEP0_TO_1[4]; rtb_out_md[1] = g_assSTART_COOLANT_TO_STEP2[1]; /* Lookup_n-D: '/blower для текущего ECT' incorporates: * DataStoreRead: '/engine coolant temp' */ rtb_LVL = look1_is16lu64n32tu16Ds32Is16_binlcs(rtDW.ECT, rtb_out_md, rtb_out_f0, 1U); /* DataTypeConversion: '/Data Type Conversion1' incorporates: * DataStoreWrite: '/Data Store Write5' */ rtDW.Blower_RR = (uint16_t)rtb_LVL; /* DataStoreWrite: '/Data Store Write10' incorporates: * DataStoreRead: '/Data Store Read8' * MATLAB Function: '/Dtg_rear' */ Dtg_rear(rtB.Merge_b, &rtDW.Dtg_RR); /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_LogicalOperator1 = (rtDW.step_start_controle_rear == 1); /* MATLAB Function: '/Incar temp goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read3' */ Incartempgotofromstep1tostep2_j(rtB.Merge_b, &Duct2_F); /* Sum: '/Subtract' incorporates: * DataStoreRead: '/Data Store Read4' * UnitDelay: '/t_start_delay_private ' */ rtb_Subtract = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_em; /* MATLAB Function: '/Time goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read4' */ Timegotofromstep1tostep2_l(rtB.Merge_b, &rtb_LVL); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ /* : out = int16(g_assSTART_COOLANT_TO_STEP2(2)); */ if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_cp)) { rtDW.t_start_delay_private_DSTATE_em = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/engine coolant temp' * DataStoreRead: '/incar temp' * Gain: '/из сек в мс' * Logic: '/Logical Operator' * MATLAB Function: '/g_assSTART_COOLANT_TO_STEP2 ' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' */ if ((rtDW.Incar_RR > Duct2_F) || (rtb_Subtract > (uint16_t)(1000 * rtb_LVL)) || (rtDW.ECT > g_assSTART_COOLANT_TO_STEP2[1])) { /* Merge: '/Merge' incorporates: * Constant: '/go to next step' */ rtB.Merge_c = 2; } else { /* Merge: '/Merge' incorporates: * Constant: '/stay at step 1' */ rtB.Merge_c = 1; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_cp = rtb_LogicalOperator1; /* End of Outputs for SubSystem: '/Level 2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Level 3' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write2' incorporates: * DataStoreRead: '/Data Store Read1' * DataStoreRead: '/Data Store Read2' * DataStoreRead: '/Data Store Read5' * DataStoreRead: '/Data Store Read6' * MATLAB Function: '/2 way valve' * MATLAB Function: '/incar filter down' * MATLAB Function: '/incar filter up' * MATLAB Function: '/mode rear step 1' */ uwayvalve(rtB.Merge_b, &rtDW.Mode_RR); incarfilterup_i(rtB.Merge_b, &rtDW.Mode_RR); incarfilterdown_c(rtB.Merge_b, &rtDW.Mode_RR); moderearstep1(rtB.Merge_b, &rtDW.Mode_RR); /* MATLAB Function: '/blower start finish' incorporates: * DataStoreRead: '/Data Store Read7' */ blowerstartfinish(rtB.Merge_b, rtb_out_f0); /* MATLAB Function: '/ECT min max' incorporates: * DataStoreRead: '/Data Store Read7' */ ECTminmax_l(rtB.Merge_b, rtb_out_md); /* Lookup_n-D: '/blower для текущего ECT' incorporates: * DataStoreRead: '/engine coolant temp' */ rtb_LVL = look1_is16lu64n32tu16Ds32Is16_binlcs(rtDW.ECT, rtb_out_md, rtb_out_f0, 1U); /* DataTypeConversion: '/Data Type Conversion1' incorporates: * DataStoreWrite: '/Data Store Write5' */ rtDW.Blower_RR = (uint16_t)rtb_LVL; /* DataStoreWrite: '/Data Store Write10' incorporates: * DataStoreRead: '/Data Store Read8' * MATLAB Function: '/Dtg_rear' */ Dtg_rear(rtB.Merge_b, &rtDW.Dtg_RR); /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_LogicalOperator1 = (rtDW.step_start_controle_rear == 1); /* MATLAB Function: '/Incar temp goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read3' */ Incartempgotofromstep1tostep2_j(rtB.Merge_b, &Duct2_F); /* Sum: '/Subtract' incorporates: * DataStoreRead: '/Data Store Read4' * UnitDelay: '/t_start_delay_private ' */ rtb_Subtract = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_oc; /* MATLAB Function: '/Time goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read4' */ Timegotofromstep1tostep2_l(rtB.Merge_b, &rtb_LVL); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ /* : out = int16(g_assSTART_COOLANT_TO_STEP2(3)); */ if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_aw)) { rtDW.t_start_delay_private_DSTATE_oc = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/engine coolant temp' * DataStoreRead: '/incar temp' * Gain: '/из сек в мс' * Logic: '/Logical Operator' * MATLAB Function: '/g_assSTART_COOLANT_TO_STEP2 ' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator1' * RelationalOperator: '/Relational Operator2' */ if ((rtDW.Incar_RR > Duct2_F) || (rtb_Subtract > (uint16_t)(1000 * rtb_LVL)) || (rtDW.ECT > g_assSTART_COOLANT_TO_STEP2[2])) { /* Merge: '/Merge' incorporates: * Constant: '/go to next step' */ rtB.Merge_c = 2; } else { /* Merge: '/Merge' incorporates: * Constant: '/stay at step 1' */ rtB.Merge_c = 1; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_aw = rtb_LogicalOperator1; /* End of Outputs for SubSystem: '/Level 3' */ break; case 4: /* Outputs for IfAction SubSystem: '/Level 4' incorporates: * ActionPort: '/Action Port' */ Level4_d(&rtB.Merge_c, &rtb_out_b, &rtDW.Blower_RR, &Dtg_FUR, &rtDW.Dtg_RR, &rtDW.ECT, &rtDW.Incar_RR, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &El_window_heating, &rtDW.Mode_RR, &rtb_rate, &rtb_Merge_a, &rtDW.step_start_controle_rear, &rtDW.t_now, &rtDW.Level4_dp); /* End of Outputs for SubSystem: '/Level 4' */ break; case 5: /* Outputs for IfAction SubSystem: '/Level 5' incorporates: * ActionPort: '/Action Port' */ Level4_d(&rtB.Merge_c, &rtb_out_b, &rtDW.Blower_RR, &Dtg_FUR, &rtDW.Dtg_RR, &rtDW.ECT, &rtDW.Incar_RR, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &El_window_heating, &rtDW.Mode_RR, &rtb_rate, &rtb_Merge_a, &rtDW.step_start_controle_rear, &rtDW.t_now, &rtDW.Level5_f); /* End of Outputs for SubSystem: '/Level 5' */ break; } /* End of SwitchCase: '/Switch Case' */ /* End of Outputs for SubSystem: '/Step 1 R' */ break; case 2: /* Outputs for IfAction SubSystem: '/Step 2 R' incorporates: * ActionPort: '/Action Port' */ /* SwitchCase: '/Switch Case' incorporates: * DataStoreRead: '/Data Store Read1' */ switch (rtB.Merge_b) { case 0: /* Outputs for IfAction SubSystem: '/Level 0' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/2 way valve' incorporates: * DataStoreRead: '/Data Store Read6' */ uwayvalve(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/step' incorporates: * DataStoreRead: '/Data Store Read8' */ Dtg_rear(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' incorporates: * DataStoreRead: '/Data Store Read8' */ timeforstep_jn(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write10' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if ((uint8_t)(rtDW.Dtg_RR - rtDW.Dtg_logic_RR) <= 0.01) { rtDW.Dtg_RR = rtDW.Dtg_logic_RR; } else { if (rtDW.Dtg_RR <= rtDW.Dtg_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } rtDW.Dtg_RR = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_d) * (double)i + (double)rtDW.Dtg_RR); } /* End of Switch: '/Switch' */ /* MATLAB Function: '/incar filter up' incorporates: * DataStoreRead: '/Data Store Read1' */ incarfilterup_i(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/incar filter down' incorporates: * DataStoreRead: '/Data Store Read2' */ incarfilterdown_c(rtB.Merge_b, &rtb_Merge_j); /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtb_Merge_e = (uint8_t)(rtDW.Mode_RR - rtDW.Mode_logic_RR); /* RelationalOperator: '/Relational Operator' incorporates: * Constant: '/epsilon' */ rtb_LogicalOperator1 = (rtb_Merge_e <= 0.01); /* MATLAB Function: '/step' incorporates: * DataStoreRead: '/Data Store Read5' */ step_a(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' incorporates: * DataStoreRead: '/Data Store Read5' */ timeforstep_h(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write2' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if (rtb_LogicalOperator1) { rtDW.Mode_RR = rtDW.Mode_logic_RR; } else { if (rtDW.Mode_RR <= rtDW.Mode_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } rtDW.Mode_RR = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_nc) * (double)i + (double)rtDW.Mode_RR); } /* End of Switch: '/Switch' */ /* MATLAB Function: '/blower step' incorporates: * DataStoreRead: '/Data Store Read7' */ blowerstep_d(rtB.Merge_b, &rtb_out_b); /* MATLAB Function: '/blower time for step' incorporates: * DataStoreRead: '/Data Store Read7' */ blowertimeforstep_l(rtB.Merge_b, &rtb_out_khw); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write5' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if ((uint16_t)(rtDW.Blower_RR - rtDW.Blower_logic_RR) <= 0.01) { rtDW.Blower_RR = rtDW.Blower_logic_RR; } else { if (rtDW.Blower_RR <= rtDW.Blower_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } rtDW.Blower_RR = (uint16_t)((double)rtb_out_b / (double)rtb_out_khw / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_hs) * (double)i + (double)rtDW.Blower_RR); } /* End of Switch: '/Switch' */ /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_LogicalOperator1 = (rtDW.step_start_controle_rear == 2); /* Sum: '/Subtract' incorporates: * DataStoreRead: '/Data Store Read4' * UnitDelay: '/t_start_delay_private ' */ rtb_Subtract = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_f; /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_i)) { rtDW.t_start_delay_private_DSTATE_f = rtDW.t_now; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/Time goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read4' */ Timegotofromstep1tostep2_l(rtB.Merge_b, &rtb_LVL); /* Switch: '/Switch' incorporates: * Gain: '/из сек в мс' * RelationalOperator: '/Relational Operator1' */ if (rtb_Subtract > (uint16_t)(1000 * rtb_LVL)) { /* Merge: '/Merge' incorporates: * Constant: '/go to next step' */ rtB.Merge_c = 3; } else { /* Merge: '/Merge' incorporates: * Constant: '/stay at step' */ rtB.Merge_c = 2; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_d = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_nc = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_hs = rtDW.t_now; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_i = rtb_LogicalOperator1; /* End of Outputs for SubSystem: '/Level 0' */ break; case 1: /* Outputs for IfAction SubSystem: '/Level 1' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/2 way valve' incorporates: * DataStoreRead: '/Data Store Read6' */ uwayvalve(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/step' incorporates: * DataStoreRead: '/Data Store Read8' */ Dtg_rear(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' incorporates: * DataStoreRead: '/Data Store Read8' */ timeforstep_jn(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write10' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if ((uint8_t)(rtDW.Dtg_RR - rtDW.Dtg_logic_RR) <= 0.01) { rtDW.Dtg_RR = rtDW.Dtg_logic_RR; } else { if (rtDW.Dtg_RR <= rtDW.Dtg_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } rtDW.Dtg_RR = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_g) * (double)i + (double)rtDW.Dtg_RR); } /* End of Switch: '/Switch' */ /* MATLAB Function: '/incar filter up' incorporates: * DataStoreRead: '/Data Store Read1' */ incarfilterup_i(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/incar filter down' incorporates: * DataStoreRead: '/Data Store Read2' */ incarfilterdown_c(rtB.Merge_b, &rtb_Merge_j); /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtb_Merge_e = (uint8_t)(rtDW.Mode_RR - rtDW.Mode_logic_RR); /* RelationalOperator: '/Relational Operator' incorporates: * Constant: '/epsilon' */ rtb_LogicalOperator1 = (rtb_Merge_e <= 0.01); /* MATLAB Function: '/step' incorporates: * DataStoreRead: '/Data Store Read5' */ step_a(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' incorporates: * DataStoreRead: '/Data Store Read5' */ timeforstep_h(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write2' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if (rtb_LogicalOperator1) { rtDW.Mode_RR = rtDW.Mode_logic_RR; } else { if (rtDW.Mode_RR <= rtDW.Mode_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } rtDW.Mode_RR = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_p) * (double)i + (double)rtDW.Mode_RR); } /* End of Switch: '/Switch' */ /* MATLAB Function: '/blower step' incorporates: * DataStoreRead: '/Data Store Read7' */ blowerstep_d(rtB.Merge_b, &rtb_out_b); /* MATLAB Function: '/blower time for step' incorporates: * DataStoreRead: '/Data Store Read7' */ blowertimeforstep_l(rtB.Merge_b, &rtb_out_khw); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write5' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if ((uint16_t)(rtDW.Blower_RR - rtDW.Blower_logic_RR) <= 0.01) { rtDW.Blower_RR = rtDW.Blower_logic_RR; } else { if (rtDW.Blower_RR <= rtDW.Blower_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } rtDW.Blower_RR = (uint16_t)((double)rtb_out_b / (double)rtb_out_khw / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_j) * (double)i + (double)rtDW.Blower_RR); } /* End of Switch: '/Switch' */ /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_LogicalOperator1 = (rtDW.step_start_controle_rear == 2); /* Sum: '/Subtract' incorporates: * DataStoreRead: '/Data Store Read4' * UnitDelay: '/t_start_delay_private ' */ rtb_Subtract = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_jh; /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_jk)) { rtDW.t_start_delay_private_DSTATE_jh = rtDW.t_now; } /* End of Switch: '/Switch' */ /* MATLAB Function: '/Time goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read4' */ Timegotofromstep1tostep2_l(rtB.Merge_b, &rtb_LVL); /* Switch: '/Switch' incorporates: * Gain: '/из сек в мс' * RelationalOperator: '/Relational Operator1' */ if (rtb_Subtract > (uint16_t)(1000 * rtb_LVL)) { /* Merge: '/Merge' incorporates: * Constant: '/go to next step' */ rtB.Merge_c = 3; } else { /* Merge: '/Merge' incorporates: * Constant: '/stay at step' */ rtB.Merge_c = 2; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_g = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_p = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_j = rtDW.t_now; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_jk = rtb_LogicalOperator1; /* End of Outputs for SubSystem: '/Level 1' */ break; case 2: /* Outputs for IfAction SubSystem: '/Level 2' incorporates: * ActionPort: '/Action Port' */ /* MATLAB Function: '/2 way valve' incorporates: * DataStoreRead: '/Data Store Read6' */ uwayvalve(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/step' incorporates: * DataStoreRead: '/Data Store Read8' */ Dtg_rear(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' incorporates: * DataStoreRead: '/Data Store Read8' */ timeforstep_jn(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write10' * Product: '/Product1' * Product: '/change rate (dtg//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if ((uint8_t)(rtDW.Dtg_RR - rtDW.Dtg_logic_RR) <= 0.01) { rtDW.Dtg_RR = rtDW.Dtg_logic_RR; } else { if (rtDW.Dtg_RR <= rtDW.Dtg_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } rtDW.Dtg_RR = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE) * (double)i + (double)rtDW.Dtg_RR); } /* End of Switch: '/Switch' */ /* MATLAB Function: '/incar filter up' incorporates: * DataStoreRead: '/Data Store Read1' */ incarfilterup_i(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/incar filter down' incorporates: * DataStoreRead: '/Data Store Read2' */ incarfilterdown_c(rtB.Merge_b, &rtb_Merge_j); /* Sum: '/Add' incorporates: * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' */ rtb_Merge_e = (uint8_t)(rtDW.Mode_RR - rtDW.Mode_logic_RR); /* RelationalOperator: '/Relational Operator' incorporates: * Constant: '/epsilon' */ rtb_LogicalOperator1 = (rtb_Merge_e <= 0.01); /* MATLAB Function: '/step' incorporates: * DataStoreRead: '/Data Store Read5' */ step_a(rtB.Merge_b, &rtb_Merge_j); /* MATLAB Function: '/time for step' incorporates: * DataStoreRead: '/Data Store Read5' */ timeforstep_h(rtB.Merge_b, &rtb_Merge_e); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write2' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if (rtb_LogicalOperator1) { rtDW.Mode_RR = rtDW.Mode_logic_RR; } else { if (rtDW.Mode_RR <= rtDW.Mode_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } rtDW.Mode_RR = (uint8_t)((double)rtb_Merge_j / (double)rtb_Merge_e / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_h) * (double)i + (double)rtDW.Mode_RR); } /* End of Switch: '/Switch' */ /* MATLAB Function: '/blower step' incorporates: * DataStoreRead: '/Data Store Read7' */ blowerstep_d(rtB.Merge_b, &rtb_out_b); /* MATLAB Function: '/blower time for step' incorporates: * DataStoreRead: '/Data Store Read7' */ blowertimeforstep_l(rtB.Merge_b, &rtb_out_khw); /* Switch: '/Switch' incorporates: * Constant: '/Constant' * Constant: '/epsilon' * DataStoreRead: '/Текущее значение blower ' * DataStoreRead: '/значение auto (в соответствии с логикой)' * DataStoreRead: '/текущее время в мс' * DataStoreWrite: '/Data Store Write5' * Product: '/Product1' * Product: '/change rate (step//sec)' * Product: '/скорость в мс' * Product: '/шаг изменения' * RelationalOperator: '/Relational Operator' * RelationalOperator: '/Relational Operator' * Sum: '/Add' * Sum: '/Add' * Sum: '/Subtract' * Switch: '/Switch' * UnitDelay: '/Unit Delay' */ if ((uint16_t)(rtDW.Blower_RR - rtDW.Blower_logic_RR) <= 0.01) { rtDW.Blower_RR = rtDW.Blower_logic_RR; } else { if (rtDW.Blower_RR <= rtDW.Blower_logic_RR) { /* Switch: '/Switch' incorporates: * Constant: '/Constant' */ i = 1; } else { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ i = -1; } rtDW.Blower_RR = (uint16_t)((double)rtb_out_b / (double)rtb_out_khw / 1000.0 * (double)(rtDW.t_now - rtDW.UnitDelay_DSTATE_n) * (double)i + (double)rtDW.Blower_RR); } /* End of Switch: '/Switch' */ /* RelationalOperator: '/Equal' incorporates: * DataStoreRead: '/current step' */ rtb_LogicalOperator1 = (rtDW.step_start_controle_rear == 2); /* Sum: '/Subtract' incorporates: * DataStoreRead: '/Data Store Read4' * UnitDelay: '/t_start_delay_private ' */ rtb_Subtract = rtDW.t_now - rtDW.t_start_delay_private_DSTATE_e; /* MATLAB Function: '/Time goto from step 1 to step 2 ' incorporates: * DataStoreRead: '/Data Store Read4' */ Timegotofromstep1tostep2_l(rtB.Merge_b, &rtb_LVL); /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read4' * Logic: '/Logical Operator3' * Logic: '/Logical Operator4' * UnitDelay: '/Cond_prev_private ' * UnitDelay: '/t_start_delay_private ' */ if (rtb_LogicalOperator1 && (!rtDW.Cond_prev_private_DSTATE_eia)) { rtDW.t_start_delay_private_DSTATE_e = rtDW.t_now; } /* End of Switch: '/Switch' */ /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read' * Gain: '/из сек в мс' * Logic: '/Logical Operator' * RelationalOperator: '/Relational Operator1' */ if ((rtb_Subtract > (uint16_t)(1000 * rtb_LVL)) || rtDW.HI_logic_on) { /* Merge: '/Merge' incorporates: * Constant: '/go to next step' */ rtB.Merge_c = 3; } else { /* Merge: '/Merge' incorporates: * Constant: '/stay at step' */ rtB.Merge_c = 2; } /* End of Switch: '/Switch' */ /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_h = rtDW.t_now; /* Update for UnitDelay: '/Unit Delay' incorporates: * DataStoreRead: '/текущее время в мс' */ rtDW.UnitDelay_DSTATE_n = rtDW.t_now; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_eia = rtb_LogicalOperator1; /* End of Outputs for SubSystem: '/Level 2' */ break; case 3: /* Outputs for IfAction SubSystem: '/Level 3' incorporates: * ActionPort: '/Action Port' */ Level3_i(&rtB.Merge_c, &rtb_out_b, &rtDW.Blower_RR, &rtDW.Blower_logic_RR, &Dtg_FUR, &rtDW.Dtg_RR, &rtDW.Dtg_logic_RR, &rtDW.HI_logic_on, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &El_window_heating, &rtDW.Mode_RR, &rtDW.Mode_logic_RR, &rtb_rate, &rtb_Merge_a, &rtDW.step_start_controle_rear, &rtDW.t_now, &rtDW.Level3_i0); /* End of Outputs for SubSystem: '/Level 3' */ break; case 4: /* Outputs for IfAction SubSystem: '/Level 4' incorporates: * ActionPort: '/Action Port' */ Level3_i(&rtB.Merge_c, &rtb_out_b, &rtDW.Blower_RR, &rtDW.Blower_logic_RR, &Dtg_FUR, &rtDW.Dtg_RR, &rtDW.Dtg_logic_RR, &rtDW.HI_logic_on, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &El_window_heating, &rtDW.Mode_RR, &rtDW.Mode_logic_RR, &rtb_rate, &rtb_Merge_a, &rtDW.step_start_controle_rear, &rtDW.t_now, &rtDW.Level4_j); /* End of Outputs for SubSystem: '/Level 4' */ break; case 5: /* Outputs for IfAction SubSystem: '/Level 5' incorporates: * ActionPort: '/Action Port' */ Level3_i(&rtB.Merge_c, &rtb_out_b, &rtDW.Blower_RR, &rtDW.Blower_logic_RR, &Dtg_FUR, &rtDW.Dtg_RR, &rtDW.Dtg_logic_RR, &rtDW.HI_logic_on, &rtb_Merge_e, &rtb_Merge_j, &rtB.Merge_b, &El_window_heating, &rtDW.Mode_RR, &rtDW.Mode_logic_RR, &rtb_rate, &rtb_Merge_a, &rtDW.step_start_controle_rear, &rtDW.t_now, &rtDW.Level5_e); /* End of Outputs for SubSystem: '/Level 5' */ break; } /* End of SwitchCase: '/Switch Case' */ /* End of Outputs for SubSystem: '/Step 2 R' */ break; case 3: /* Outputs for IfAction SubSystem: '/Step 3 R' incorporates: * ActionPort: '/Action Port' */ Step3F(&rtB.Merge_c, &rtDW.start_control_finished_front); /* End of Outputs for SubSystem: '/Step 3 R' */ break; } /* End of SwitchCase: '/Switch Case' */ /* DataStoreWrite: '/Data Store Write' */ rtDW.step_start_controle_rear = rtB.Merge_c; /* End of Outputs for SubSystem: '/Start Control Rear' */ } /* End of If: '/если SC rear не завершен1' */ /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE = rtb_RelationalOperator2_nm; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_p = rtb_Compare; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_a = rtb_Compare_mk; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_h = rtb_Compare_it; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_c = rtb_Compare_ho; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_m = rtb_FailCond_n; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_j = rtb_FailCond_b; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_f = rtb_FailCond_kk; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_cn = rtb_FailCond_fj; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_l = rtb_Compare_ne; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_ja = rtb_Compare_e; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_g = rtb_Compare_gh; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_cd = rtb_Compare_j4; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_e = rtb_Compare_gg; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_mv = rtb_Compare_m4; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_jl = rtb_Compare_lus; /* Update for UnitDelay: '/Cond_prev_private ' */ rtDW.Cond_prev_private_DSTATE_ei = rtb_Compare_e1; } /* Model initialize function */ void HVAC_model_initialize(void) { /* Registration code */ /* initialize error status */ rtmSetErrorStatus(rtM, (NULL)); /* block I/O */ (void) memset(((void *) &rtB), 0, sizeof(B)); /* states (dwork) */ (void) memset((void *)&rtDW, 0, sizeof(DW)); /* exported global states */ Actuator_Ch0_Status_Model = HVAC_model_rtZActuatorCmdBusInput; Actuator_Ch1_Status_Model = HVAC_model_rtZActuatorCmdBusInput; Actuator_Ch2_Status_Model = HVAC_model_rtZActuatorCmdBusInput; Actuator_Ch0_Command_Model = HVAC_model_rtZActuatorCmdBus; Actuator_Ch1_Command_Model = HVAC_model_rtZActuatorCmdBus; Actuator_Ch2_Command_Model = HVAC_model_rtZActuatorCmdBus; Status_Sensor_Model = HVAC_model_rtZCmdBusStatus; CCU_Errors_Model = HVAC_model_rtZCmdBusError; PWM_Get = HVAC_model_rtZCmdBusPWMGet; { int32_t i; for (i = 0; i < 9; i++) { /* Start for DataStoreMemory: '/Data Store Memory1' */ rtDW.ErrorCalibration_private[i] = 1U; /* Start for DataStoreMemory: '/Data Store Memory13' */ rtDW.MaxPositionCh0_private[i] = rtConstP.DataStoreMemory13_InitialValue[i]; /* Start for DataStoreMemory: '/Data Store Memory1' */ rtDW.ErrorCalibration_private_p[i] = 1U; /* Start for DataStoreMemory: '/Data Store Memory13' */ rtDW.MaxPositionCh1_private[i] = rtConstP.DataStoreMemory13_InitialValue_i[i]; /* Start for DataStoreMemory: '/Data Store Memory1' */ rtDW.ErrorCalibration_private_b[i] = 1U; /* Start for DataStoreMemory: '/Data Store Memory13' */ rtDW.MaxPositionCh2_private[i] = rtConstP.DataStoreMemory13_InitialValue_l[i]; } /* Start for Switch: '/Switch1' incorporates: * DataStoreMemory: '/Data Store Memory' */ rtDW.AMB_store = -9999.0; /* Start for DataStoreMemory: '/Data Store Memory' */ rtDW.step_start_controle_front = -1; /* Start for DataStoreMemory: '/Data Store Memory1' */ rtDW.step_start_controle_rear = -1; /* Start for DataStoreMemory: '/Data Store Memory108' */ rtDW.FIU_MODE_RL = 1U; /* Start for DataStoreMemory: '/Data Store Memory114' */ rtDW.FIU_MODE_RR = 1U; /* Start for DataStoreMemory: '/Data Store Memory42' */ rtDW.ADC_Data_Model = rtConstP.DataStoreMemory42_InitialValue; /* Start for DataStoreMemory: '/Data Store Memory5' */ rtDW.t_now = 10U; /* Start for DataStoreMemory: '/Data Store Memory78' */ rtDW.FIU_MODE_FL = 1U; /* Start for DataStoreMemory: '/Data Store Memory87' */ rtDW.FIU_MODE_FR = 1U; /* InitializeConditions for UnitDelay: '/Unit Delay' */ rtDW.UnitDelay_DSTATE_d5 = -9999; /* SystemInitialize for Merge: '/Merge' */ rtB.Merge_b = 0U; /* SystemInitialize for MATLAB Function: '/Log Ambient Lv' */ rtDW.current_Ambient_Lv_not_empty = false; /* SystemInitialize for IfAction SubSystem: '/Homing' */ /* SystemInitialize for IfAction SubSystem: '/Switch Case Action Subsystem3' */ /* SystemInitialize for IfAction SubSystem: '/If Action Subsystem' */ /* Start for DataStoreMemory: '/Data Store Memory' */ rtDW.Start_timer_n = 1.0; /* SystemInitialize for MATLAB Function: '/MATLAB Function' */ MATLABFunction_Init(&rtDW.sf_MATLABFunction); /* End of SystemInitialize for SubSystem: '/If Action Subsystem' */ /* End of SystemInitialize for SubSystem: '/Switch Case Action Subsystem3' */ /* SystemInitialize for Merge: '/Merge' */ rtB.Merge_a = 0; /* End of SystemInitialize for SubSystem: '/Homing' */ /* SystemInitialize for Merge: '/Merge' */ rtB.Merge_f1 = 0; /* SystemInitialize for IfAction SubSystem: '/Homing' */ /* SystemInitialize for IfAction SubSystem: '/Switch Case Action Subsystem3' */ /* SystemInitialize for IfAction SubSystem: '/If Action Subsystem' */ /* Start for DataStoreMemory: '/Data Store Memory' */ rtDW.Start_timer_j = 1.0; /* SystemInitialize for MATLAB Function: '/MATLAB Function' */ MATLABFunction_Init(&rtDW.sf_MATLABFunction_h); /* End of SystemInitialize for SubSystem: '/If Action Subsystem' */ /* End of SystemInitialize for SubSystem: '/Switch Case Action Subsystem3' */ /* SystemInitialize for Merge: '/Merge' */ rtB.Merge_p = 0; /* End of SystemInitialize for SubSystem: '/Homing' */ /* SystemInitialize for Merge: '/Merge' */ rtB.Merge_e = 0; /* SystemInitialize for IfAction SubSystem: '/Homing' */ /* SystemInitialize for IfAction SubSystem: '/Switch Case Action Subsystem3' */ /* SystemInitialize for IfAction SubSystem: '/If Action Subsystem' */ /* Start for DataStoreMemory: '/Data Store Memory' */ rtDW.Start_timer = 1.0; /* SystemInitialize for MATLAB Function: '/MATLAB Function' */ MATLABFunction_Init(&rtDW.sf_MATLABFunction_g); /* End of SystemInitialize for SubSystem: '/If Action Subsystem' */ /* End of SystemInitialize for SubSystem: '/Switch Case Action Subsystem3' */ /* SystemInitialize for Merge: '/Merge' */ rtB.Merge_h3 = 0; /* End of SystemInitialize for SubSystem: '/Homing' */ /* SystemInitialize for Merge: '/Merge' */ rtB.Merge_b4 = 0; /* SystemInitialize for IfAction SubSystem: '/Start Control Front' */ /* SystemInitialize for Merge: '/Merge' */ rtB.Merge_h = 0; /* End of SystemInitialize for SubSystem: '/Start Control Front' */ /* SystemInitialize for IfAction SubSystem: '/Start Control Rear' */ /* SystemInitialize for Merge: '/Merge' */ rtB.Merge_c = 0; /* End of SystemInitialize for SubSystem: '/Start Control Rear' */ } } /* Model terminate function */ void HVAC_model_terminate(void) { /* (no terminate code required) */ } /* * File trailer for generated code. * * [EOF] */