HVAC_M7_MODEL/HVAC_model.c

2247 lines
92 KiB
C

/*
* File: HVAC_model.c
*
* Code generated for Simulink model 'HVAC_model'.
*
* Model version : 1.614
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
* C/C++ source code generated on : Mon Feb 16 16:26:45 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 <stdint.h>
#include "HVAC_model_private.h"
#include "HVAC_model_types.h"
#include <stdbool.h>
/* Exported block states */
ActuatorCmdBus Actuator_Ch0_Command_Model;/* '<S4>/Data Store Memory15' */
ActuatorCmdBus Actuator_Ch1_Command_Model;/* '<S5>/Data Store Memory15' */
ActuatorCmdBus Actuator_Ch2_Command_Model;/* '<S6>/Data Store Memory15' */
CmdBusStatus Status_Sensor_Model; /* '<S1>/Data Store Memory' */
CmdBusError CCU_Errors_Model; /* '<Root>/Data Store Memory3' */
CmdBusPWMGet PWM_Get; /* '<S3>/Data Store Memory1' */
/* 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_;
/*
* Output and update for action system:
* '<S14>/If Action Subsystem3'
* '<S13>/If Action Subsystem3'
* '<S12>/If Action Subsystem3'
* '<S8>/If Action Subsystem3'
* '<S9>/If Action Subsystem3'
* '<S11>/If Action Subsystem3'
* '<S7>/If Action Subsystem3'
*/
void IfActionSubsystem3(int8_t rtu_stepIn, int8_t *rty_step)
{
int32_t i;
/* BusCreator: '<S38>/Bus Creator' incorporates:
* DataStoreWrite: '<S38>/Data Store Write'
* SignalConversion generated from: '<S38>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch0_Command_Model.POS[i] = 0U;
Actuator_Ch0_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch0_Command_Model.MODE[i] = 0U;
Actuator_Ch0_Command_Model.COM[i] = 0U;
Actuator_Ch0_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch0_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch0_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch0_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch0_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S38>/Bus Creator' */
/* SignalConversion generated from: '<S38>/stepIn' */
*rty_step = rtu_stepIn;
}
/*
* Output and update for atomic system:
* '<S25>/Initial CPOS Min'
* '<S57>/Initial CPOS Min'
*/
void InitialCPOSMin(double rtu_LOGGER, int8_t rtu_step, int8_t *rty_y)
{
*rty_y = rtu_step;
/* : y = step; */
/* : if(LOGGER) */
if (rtu_LOGGER != 0.0) {
/* : fprintf('SIMULINK Initial CPOS Min - 6000\n'); */
printf("SIMULINK Initial CPOS Min - 6000\n");
fflush(stdout);
}
}
/*
* Output and update for atomic system:
* '<S34>/Normal Mode'
* '<S66>/Normal Mode'
*/
void NormalMode(double rtu_LOGGER, int8_t rtu_step, int8_t *rty_y)
{
*rty_y = rtu_step;
/* : y = step; */
/* : if(LOGGER) */
if (rtu_LOGGER != 0.0) {
/* : fprintf('SIMULINK Normal Mode\n'); */
printf("SIMULINK Normal Mode\n");
fflush(stdout);
}
}
/*
* Output and update for atomic system:
* '<S31>/Move to position Min'
* '<S63>/Move to position Min'
* '<S97>/Move to position Min'
*/
void MovetopositionMin(double rtu_LOGGER, int8_t rtu_step, int8_t *rty_y)
{
*rty_y = rtu_step;
/* : y = step; */
/* : if(LOGGER) */
if (rtu_LOGGER != 0.0) {
/* : fprintf('SIMULINK Move to position Min - 1\n'); */
printf("SIMULINK Move to position Min - 1\n");
fflush(stdout);
}
}
/*
* Output and update for atomic system:
* '<S19>/MIN POSITION'
* '<S51>/MIN POSITION'
* '<S83>/MIN POSITION'
*/
void MINPOSITION(int16_t rty_y[9], double rtu_LOGGER)
{
int32_t i;
/* : y = step; */
/* : if(LOGGER) */
if (rtu_LOGGER != 0.0) {
/* : fprintf('SIMULINK Min_position_Ch0 '); */
printf("SIMULINK Min_position_Ch0 ");
fflush(stdout);
/* : for i = 1:numel(step) */
for (i = 0; i < 9; i++) {
/* : fprintf('%d ', int16(step(i))); */
printf("%d ", rty_y[i]);
fflush(stdout);
}
/* : fprintf('\n'); */
printf("\n");
fflush(stdout);
}
}
/*
* Output and update for atomic system:
* '<S22>/Initial CPOS Max'
* '<S54>/Initial CPOS Max'
* '<S86>/Initial CPOS Max'
*/
void InitialCPOSMax(double rtu_LOGGER, int8_t rtu_step, int8_t *rty_y)
{
*rty_y = rtu_step;
/* : y = step; */
/* : if(LOGGER) */
if (rtu_LOGGER != 0.0) {
/* : fprintf('SIMULINK Initial CPOS Max - 1\n'); */
printf("SIMULINK Initial CPOS Max - 1\n");
fflush(stdout);
}
}
/*
* Output and update for atomic system:
* '<S28>/Move to position Max'
* '<S60>/Move to position Max'
* '<S94>/Move to position Max'
*/
void MovetopositionMax(int8_t rtu_step, double rtu_LOGGER, int8_t *rty_y)
{
*rty_y = rtu_step;
/* : y = step; */
/* : if(LOGGER) */
if (rtu_LOGGER != 0.0) {
/* : fprintf('SIMULINK Move to position Max - 6000\n'); */
printf("SIMULINK Move to position Max - 6000\n");
fflush(stdout);
}
}
/*
* Output and update for atomic system:
* '<S16>/MIN POSITION'
* '<S48>/MIN POSITION'
* '<S80>/MIN POSITION'
*/
void MINPOSITION_g(int16_t rty_y[9], double rtu_LOGGER)
{
int32_t i;
/* : y = step; */
/* : if(LOGGER) */
if (rtu_LOGGER != 0.0) {
/* : fprintf('SIMULINK Max_position_Ch0 '); */
printf("SIMULINK Max_position_Ch0 ");
fflush(stdout);
/* : for i = 1:numel(step) */
for (i = 0; i < 9; i++) {
/* : fprintf('%d ', int16(step(i))); */
printf("%d ", rty_y[i]);
fflush(stdout);
}
/* : fprintf('\n'); */
printf("\n");
fflush(stdout);
}
}
/*
* Output and update for atomic system:
* '<S4>/Write Ignition'
* '<S5>/Write Ignition'
*/
void WriteIgnition(double rtu_LOGGER, int8_t rtu_step)
{
/* : if(LOGGER) */
if (rtu_LOGGER != 0.0) {
/* : fprintf('step = %d\n',step); */
printf("step = %d\n", rtu_step);
fflush(stdout);
}
}
/*
* Output and update for action system:
* '<S46>/If Action Subsystem3'
* '<S45>/If Action Subsystem3'
* '<S44>/If Action Subsystem3'
* '<S40>/If Action Subsystem3'
* '<S41>/If Action Subsystem3'
* '<S43>/If Action Subsystem3'
* '<S39>/If Action Subsystem3'
*/
void IfActionSubsystem3_m(int8_t rtu_stepIn, int8_t *rty_step)
{
int32_t i;
/* BusCreator: '<S70>/Bus Creator' incorporates:
* DataStoreWrite: '<S70>/Data Store Write'
* SignalConversion generated from: '<S70>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch1_Command_Model.POS[i] = 0U;
Actuator_Ch1_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch1_Command_Model.MODE[i] = 0U;
Actuator_Ch1_Command_Model.COM[i] = 0U;
Actuator_Ch1_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch1_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch1_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch1_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch1_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S70>/Bus Creator' */
/* SignalConversion generated from: '<S70>/stepIn' */
*rty_step = rtu_stepIn;
}
/*
* Output and update for action system:
* '<S78>/If Action Subsystem3'
* '<S77>/If Action Subsystem3'
* '<S76>/If Action Subsystem3'
* '<S72>/If Action Subsystem3'
* '<S73>/If Action Subsystem3'
* '<S75>/If Action Subsystem3'
* '<S71>/If Action Subsystem3'
*/
void IfActionSubsystem3_n(int8_t rtu_stepIn, int8_t *rty_step)
{
int32_t i;
/* BusCreator: '<S104>/Bus Creator' incorporates:
* DataStoreWrite: '<S104>/Data Store Write'
* SignalConversion generated from: '<S104>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch2_Command_Model.POS[i] = 0U;
Actuator_Ch2_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch2_Command_Model.MODE[i] = 0U;
Actuator_Ch2_Command_Model.COM[i] = 0U;
Actuator_Ch2_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch2_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch2_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch2_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch2_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S104>/Bus Creator' */
/* SignalConversion generated from: '<S104>/stepIn' */
*rty_step = rtu_stepIn;
}
/* Model step function */
void HVAC_model_step(void)
{
int32_t i;
int16_t rtb_y_ey[9];
int8_t rtb_Switch;
int8_t rtb_y_fb;
bool rtb_RelationalOperator_j[9];
bool tmp;
bool tmp_0;
/* BusCreator: '<Root>/Bus Creator' incorporates:
* DataStoreWrite: '<Root>/Data Store Write'
*/
CCU_Errors_Model.CCU_IncarTempErrF_Stat = 0U;
CCU_Errors_Model.CCU_IncarTempErrR_Stat = 0U;
CCU_Errors_Model.CCU_DuctTempSenErrF_Stat = 0U;
CCU_Errors_Model.CCU_DuctTempSenErrR_Stat = 0U;
CCU_Errors_Model.CCU_EvaTempSenErrF_Stat = 0U;
CCU_Errors_Model.CCU_EvaTempSenErrR_Stat = 0U;
CCU_Errors_Model.CCU_DeflectorSwErrF_Stat = 0U;
CCU_Errors_Model.CCU_DeflectorSwErrR_Stat = 0U;
CCU_Errors_Model.CCU_PressSenErr_Stat = 0U;
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 = 0U;
CCU_Errors_Model.CCU_ActuatorErrR_Stat = 0U;
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;
/* Switch: '<S4>/Switch' incorporates:
* Constant: '<S4>/Constant1'
* DataStoreRead: '<S4>/Data Store Read'
* DataStoreRead: '<S4>/Data Store Read2'
*/
if (rtDW.stepSig_private > 0) {
rtb_Switch = rtDW.stepSig_private;
} else {
rtb_Switch = 1;
}
/* End of Switch: '<S4>/Switch' */
/* SwitchCase: '<S4>/Switch Case' */
switch (rtb_Switch) {
case 1:
/* Outputs for IfAction SubSystem: '<S4>/Stop Mode' incorporates:
* ActionPort: '<S14>/Action Port'
*/
/* If: '<S14>/If1' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
* DataStoreWrite: '<S4>/Data Store Write'
* DataStoreWrite: '<S4>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch0_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch0_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S14>/If Action Subsystem2' incorporates:
* ActionPort: '<S37>/Action Port'
*/
/* BusCreator: '<S37>/Bus Creator' incorporates:
* DataStoreWrite: '<S37>/Data Store Write'
* SignalConversion generated from: '<S37>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch0_Command_Model.POS[i] = 0U;
Actuator_Ch0_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch0_Command_Model.MODE[i] = 2U;
Actuator_Ch0_Command_Model.COM[i] = 1U;
Actuator_Ch0_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch0_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch0_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch0_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch0_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S37>/Bus Creator' */
/* Merge: '<S4>/Merge' incorporates:
* Constant: '<S37>/Constant'
* Sum: '<S37>/step inc'
*/
rtB.Merge = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S14>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S14>/If Action Subsystem3' incorporates:
* ActionPort: '<S38>/Action Port'
*/
IfActionSubsystem3(rtb_Switch, &rtB.Merge);
/* End of Outputs for SubSystem: '<S14>/If Action Subsystem3' */
}
/* End of If: '<S14>/If1' */
/* End of Outputs for SubSystem: '<S4>/Stop Mode' */
break;
case 2:
/* Outputs for IfAction SubSystem: '<S4>/Initial CPOS Min' incorporates:
* ActionPort: '<S10>/Action Port'
*/
/* If: '<S10>/If' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
* DataStoreWrite: '<S4>/Data Store Write'
* DataStoreWrite: '<S4>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch0_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch0_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S10>/If Action Subsystem' incorporates:
* ActionPort: '<S25>/Action Port'
*/
/* BusCreator: '<S25>/Bus Creator' incorporates:
* DataStoreWrite: '<S25>/Data Store Write2'
* SignalConversion generated from: '<S25>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch0_Command_Model.POS[i] = 6000U;
Actuator_Ch0_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch0_Command_Model.MODE[i] = 0U;
Actuator_Ch0_Command_Model.COM[i] = 2U;
Actuator_Ch0_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch0_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch0_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch0_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch0_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S25>/Bus Creator' */
/* MATLAB Function: '<S25>/Initial CPOS Min' incorporates:
* Constant: '<S25>/Constant'
* DataStoreRead: '<S25>/Data Store Read3'
* Sum: '<S25>/step inc'
*/
InitialCPOSMin(rtDW.LOGGER_LIN, (int8_t)(rtb_Switch + 1), &rtb_y_fb);
/* Merge: '<S4>/Merge' incorporates:
* Constant: '<S25>/Constant'
* Merge: '<S10>/Merge'
* SignalConversion generated from: '<S25>/step'
* Sum: '<S25>/step inc'
*/
rtB.Merge = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S10>/If Action Subsystem' */
} else {
/* Outputs for IfAction SubSystem: '<S10>/If Action Subsystem3' incorporates:
* ActionPort: '<S26>/Action Port'
*/
/* BusCreator: '<S26>/Bus Creator' incorporates:
* DataStoreWrite: '<S26>/Data Store Write'
* SignalConversion generated from: '<S26>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch0_Command_Model.POS[i] = 0U;
Actuator_Ch0_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch0_Command_Model.MODE[i] = 0U;
Actuator_Ch0_Command_Model.COM[i] = 0U;
Actuator_Ch0_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch0_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch0_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch0_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch0_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S26>/Bus Creator' */
/* Merge: '<S4>/Merge' incorporates:
* Merge: '<S10>/Merge'
* SignalConversion generated from: '<S26>/stepIn1'
*/
rtB.Merge = rtb_Switch;
/* End of Outputs for SubSystem: '<S10>/If Action Subsystem3' */
}
/* End of If: '<S10>/If' */
/* End of Outputs for SubSystem: '<S4>/Initial CPOS Min' */
break;
case 3:
/* Outputs for IfAction SubSystem: '<S4>/Normal Mode' incorporates:
* ActionPort: '<S13>/Action Port'
*/
/* If: '<S13>/If1' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
* DataStoreWrite: '<S4>/Data Store Write'
* DataStoreWrite: '<S4>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch0_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch0_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S13>/If Action Subsystem2' incorporates:
* ActionPort: '<S34>/Action Port'
*/
/* BusCreator: '<S34>/Bus Creator' incorporates:
* DataStoreWrite: '<S34>/Data Store Write1'
* SignalConversion generated from: '<S34>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch0_Command_Model.POS[i] = 0U;
Actuator_Ch0_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch0_Command_Model.MODE[i] = 0U;
Actuator_Ch0_Command_Model.COM[i] = 1U;
Actuator_Ch0_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch0_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch0_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch0_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch0_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S34>/Bus Creator' */
/* MATLAB Function: '<S34>/Normal Mode' incorporates:
* Constant: '<S34>/Constant'
* DataStoreRead: '<S34>/Data Store Read3'
* Sum: '<S34>/step inc'
*/
NormalMode(rtDW.LOGGER_LIN, (int8_t)(rtb_Switch + 1), &rtb_y_fb);
/* Merge: '<S4>/Merge' incorporates:
* Constant: '<S34>/Constant'
* SignalConversion generated from: '<S34>/step'
* Sum: '<S34>/step inc'
*/
rtB.Merge = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S13>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S13>/If Action Subsystem3' incorporates:
* ActionPort: '<S35>/Action Port'
*/
IfActionSubsystem3(rtb_Switch, &rtB.Merge);
/* End of Outputs for SubSystem: '<S13>/If Action Subsystem3' */
}
/* End of If: '<S13>/If1' */
/* End of Outputs for SubSystem: '<S4>/Normal Mode' */
break;
case 4:
/* Outputs for IfAction SubSystem: '<S4>/Move to position Min' incorporates:
* ActionPort: '<S12>/Action Port'
*/
/* If: '<S12>/If1' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
* DataStoreWrite: '<S4>/Data Store Write'
* DataStoreWrite: '<S4>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch0_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch0_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S12>/If Action Subsystem2' incorporates:
* ActionPort: '<S31>/Action Port'
*/
/* BusCreator: '<S31>/Bus Creator' incorporates:
* Constant: '<S31>/Constant1'
* Constant: '<S31>/Constant10'
* Constant: '<S31>/Constant11'
* Constant: '<S31>/Constant14'
* Constant: '<S31>/Constant2'
* Constant: '<S31>/Constant9'
* DataStoreWrite: '<S31>/Data Store Write7'
* SignalConversion generated from: '<S31>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch0_Command_Model.POS[i] = 1U;
Actuator_Ch0_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch0_Command_Model.MODE[i] = 0U;
Actuator_Ch0_Command_Model.COM[i] = 3U;
Actuator_Ch0_Command_Model.Stall_SET[i] = 1U;
Actuator_Ch0_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch0_Command_Model.Autos_SET[i] = 1U;
Actuator_Ch0_Command_Model.Speed_SET[i] = 3U;
Actuator_Ch0_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S31>/Bus Creator' */
/* MATLAB Function: '<S31>/Move to position Min' incorporates:
* Constant: '<S31>/Constant'
* DataStoreRead: '<S31>/Data Store Read3'
* Sum: '<S31>/step inc'
*/
MovetopositionMin(rtDW.LOGGER_LIN, (int8_t)(rtb_Switch + 1), &rtb_y_fb);
/* Merge: '<S4>/Merge' incorporates:
* Constant: '<S31>/Constant'
* SignalConversion generated from: '<S31>/step'
* Sum: '<S31>/step inc'
*/
rtB.Merge = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S12>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S12>/If Action Subsystem3' incorporates:
* ActionPort: '<S32>/Action Port'
*/
IfActionSubsystem3(rtb_Switch, &rtB.Merge);
/* End of Outputs for SubSystem: '<S12>/If Action Subsystem3' */
}
/* End of If: '<S12>/If1' */
/* End of Outputs for SubSystem: '<S4>/Move to position Min' */
break;
case 5:
/* Outputs for IfAction SubSystem: '<S4>/Check Stall Min' incorporates:
* ActionPort: '<S8>/Action Port'
*/
/* RelationalOperator: '<S8>/Relational Operator1' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
* RelationalOperator: '<S8>/Relational Operator'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch0_Status_Model.in_Act_Stall_Slave[i] == 1);
}
/* End of RelationalOperator: '<S8>/Relational Operator1' */
/* Logic: '<S8>/Logical Operator2' incorporates:
* RelationalOperator: '<S8>/Relational Operator'
*/
tmp = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp = (tmp || rtb_RelationalOperator_j[i + 1]);
}
/* RelationalOperator: '<S8>/Relational Operator' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch0_Status_Model.in_CPOS_ALL[i] == 1);
}
/* End of RelationalOperator: '<S8>/Relational Operator' */
/* Logic: '<S8>/Logical Operator1' incorporates:
* RelationalOperator: '<S8>/Relational Operator'
*/
tmp_0 = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp_0 = (tmp_0 || rtb_RelationalOperator_j[i + 1]);
}
/* If: '<S8>/If2' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
* DataStoreWrite: '<S4>/Data Store Write'
* DataStoreWrite: '<S4>/Data Store Write1'
* DataTypeConversion: '<S8>/Data Type Conversion'
* DataTypeConversion: '<S8>/Data Type Conversion1'
* Logic: '<S8>/Logical Operator'
* Logic: '<S8>/Logical Operator1'
* Logic: '<S8>/Logical Operator2'
*/
if ((rtDW.Actuator_Ch0_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch0_Status_Model.Error_Connect == 0) && (tmp || tmp_0)) {
/* Outputs for IfAction SubSystem: '<S8>/If Action Subsystem2' incorporates:
* ActionPort: '<S19>/Action Port'
*/
/* Merge: '<S4>/Merge' incorporates:
* Constant: '<S19>/Constant'
* Sum: '<S19>/step inc'
*/
rtB.Merge = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S8>/If Action Subsystem2' */
for (i = 0; i < 9; i++) {
/* Outputs for IfAction SubSystem: '<S8>/If Action Subsystem2' incorporates:
* ActionPort: '<S19>/Action Port'
*/
rtb_y_ey[i] = rtDW.Actuator_Ch0_Status_Model.in_CPOS_ALL[i];
/* End of Outputs for SubSystem: '<S8>/If Action Subsystem2' */
}
/* Outputs for IfAction SubSystem: '<S8>/If Action Subsystem2' incorporates:
* ActionPort: '<S19>/Action Port'
*/
/* MATLAB Function: '<S19>/MIN POSITION' incorporates:
* DataStoreRead: '<S19>/Data Store Read3'
*/
MINPOSITION(rtb_y_ey, rtDW.LOGGER_LIN);
/* End of Outputs for SubSystem: '<S8>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S8>/If Action Subsystem3' incorporates:
* ActionPort: '<S20>/Action Port'
*/
IfActionSubsystem3(rtb_Switch, &rtB.Merge);
/* End of Outputs for SubSystem: '<S8>/If Action Subsystem3' */
}
/* End of If: '<S8>/If2' */
/* End of Outputs for SubSystem: '<S4>/Check Stall Min' */
break;
case 6:
/* Outputs for IfAction SubSystem: '<S4>/Initial CPOS Max' incorporates:
* ActionPort: '<S9>/Action Port'
*/
/* If: '<S9>/If1' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
* DataStoreWrite: '<S4>/Data Store Write'
* DataStoreWrite: '<S4>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch0_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch0_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S9>/If Action Subsystem2' incorporates:
* ActionPort: '<S22>/Action Port'
*/
/* BusCreator: '<S22>/Bus Creator' incorporates:
* DataStoreWrite: '<S22>/Data Store Write2'
* SignalConversion generated from: '<S22>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch0_Command_Model.POS[i] = 1U;
Actuator_Ch0_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch0_Command_Model.MODE[i] = 0U;
Actuator_Ch0_Command_Model.COM[i] = 2U;
Actuator_Ch0_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch0_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch0_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch0_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch0_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S22>/Bus Creator' */
/* MATLAB Function: '<S22>/Initial CPOS Max' incorporates:
* Constant: '<S22>/Constant'
* DataStoreRead: '<S22>/Data Store Read3'
* Sum: '<S22>/step inc'
*/
InitialCPOSMax(rtDW.LOGGER_LIN, (int8_t)(rtb_Switch + 1), &rtb_y_fb);
/* Merge: '<S4>/Merge' incorporates:
* Constant: '<S22>/Constant'
* SignalConversion generated from: '<S22>/step'
* Sum: '<S22>/step inc'
*/
rtB.Merge = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S9>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S9>/If Action Subsystem3' incorporates:
* ActionPort: '<S23>/Action Port'
*/
IfActionSubsystem3(rtb_Switch, &rtB.Merge);
/* End of Outputs for SubSystem: '<S9>/If Action Subsystem3' */
}
/* End of If: '<S9>/If1' */
/* End of Outputs for SubSystem: '<S4>/Initial CPOS Max' */
break;
case 7:
/* Outputs for IfAction SubSystem: '<S4>/Move to position Max' incorporates:
* ActionPort: '<S11>/Action Port'
*/
/* If: '<S11>/If1' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
* DataStoreWrite: '<S4>/Data Store Write'
* DataStoreWrite: '<S4>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch0_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch0_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S11>/If Action Subsystem2' incorporates:
* ActionPort: '<S28>/Action Port'
*/
/* BusCreator: '<S28>/Bus Creator' incorporates:
* Constant: '<S28>/Constant1'
* Constant: '<S28>/Constant10'
* Constant: '<S28>/Constant11'
* Constant: '<S28>/Constant14'
* Constant: '<S28>/Constant2'
* Constant: '<S28>/Constant9'
* DataStoreWrite: '<S28>/Data Store Write7'
* SignalConversion generated from: '<S28>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch0_Command_Model.POS[i] = 6000U;
Actuator_Ch0_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch0_Command_Model.MODE[i] = 0U;
Actuator_Ch0_Command_Model.COM[i] = 3U;
Actuator_Ch0_Command_Model.Stall_SET[i] = 1U;
Actuator_Ch0_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch0_Command_Model.Autos_SET[i] = 1U;
Actuator_Ch0_Command_Model.Speed_SET[i] = 3U;
Actuator_Ch0_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S28>/Bus Creator' */
/* MATLAB Function: '<S28>/Move to position Max' incorporates:
* Constant: '<S28>/Constant'
* DataStoreRead: '<S28>/Data Store Read3'
* Sum: '<S28>/step inc'
*/
MovetopositionMax((int8_t)(rtb_Switch + 1), rtDW.LOGGER_LIN, &rtb_y_fb);
/* Merge: '<S4>/Merge' incorporates:
* Constant: '<S28>/Constant'
* SignalConversion generated from: '<S28>/step'
* Sum: '<S28>/step inc'
*/
rtB.Merge = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S11>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S11>/If Action Subsystem3' incorporates:
* ActionPort: '<S29>/Action Port'
*/
IfActionSubsystem3(rtb_Switch, &rtB.Merge);
/* End of Outputs for SubSystem: '<S11>/If Action Subsystem3' */
}
/* End of If: '<S11>/If1' */
/* End of Outputs for SubSystem: '<S4>/Move to position Max' */
break;
case 8:
/* Outputs for IfAction SubSystem: '<S4>/Check Stall Max' incorporates:
* ActionPort: '<S7>/Action Port'
*/
/* RelationalOperator: '<S7>/Relational Operator1' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
* RelationalOperator: '<S7>/Relational Operator'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch0_Status_Model.in_Act_Stall_Slave[i] == 1);
}
/* End of RelationalOperator: '<S7>/Relational Operator1' */
/* Logic: '<S7>/Logical Operator2' incorporates:
* RelationalOperator: '<S7>/Relational Operator'
*/
tmp = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp = (tmp || rtb_RelationalOperator_j[i + 1]);
}
/* RelationalOperator: '<S7>/Relational Operator' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch0_Status_Model.in_CPOS_ALL[i] == 6000);
}
/* End of RelationalOperator: '<S7>/Relational Operator' */
/* Logic: '<S7>/Logical Operator1' incorporates:
* RelationalOperator: '<S7>/Relational Operator'
*/
tmp_0 = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp_0 = (tmp_0 || rtb_RelationalOperator_j[i + 1]);
}
/* If: '<S7>/If2' incorporates:
* DataStoreRead: '<S4>/Data Store Read1'
* DataStoreWrite: '<S4>/Data Store Write'
* DataStoreWrite: '<S4>/Data Store Write1'
* DataTypeConversion: '<S7>/Data Type Conversion'
* DataTypeConversion: '<S7>/Data Type Conversion1'
* Logic: '<S7>/Logical Operator'
* Logic: '<S7>/Logical Operator1'
* Logic: '<S7>/Logical Operator2'
*/
if ((rtDW.Actuator_Ch0_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch0_Status_Model.Error_Connect == 0) && (tmp || tmp_0)) {
/* Outputs for IfAction SubSystem: '<S7>/If Action Subsystem2' incorporates:
* ActionPort: '<S16>/Action Port'
*/
/* Merge: '<S4>/Merge' incorporates:
* Constant: '<S16>/Constant'
* Sum: '<S16>/step inc'
*/
rtB.Merge = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S7>/If Action Subsystem2' */
for (i = 0; i < 9; i++) {
/* Outputs for IfAction SubSystem: '<S7>/If Action Subsystem2' incorporates:
* ActionPort: '<S16>/Action Port'
*/
rtb_y_ey[i] = rtDW.Actuator_Ch0_Status_Model.in_CPOS_ALL[i];
/* End of Outputs for SubSystem: '<S7>/If Action Subsystem2' */
}
/* Outputs for IfAction SubSystem: '<S7>/If Action Subsystem2' incorporates:
* ActionPort: '<S16>/Action Port'
*/
/* MATLAB Function: '<S16>/MIN POSITION' incorporates:
* DataStoreRead: '<S16>/Data Store Read3'
*/
MINPOSITION_g(rtb_y_ey, rtDW.LOGGER_LIN);
/* End of Outputs for SubSystem: '<S7>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S7>/If Action Subsystem3' incorporates:
* ActionPort: '<S17>/Action Port'
*/
IfActionSubsystem3(rtb_Switch, &rtB.Merge);
/* End of Outputs for SubSystem: '<S7>/If Action Subsystem3' */
}
/* End of If: '<S7>/If2' */
/* End of Outputs for SubSystem: '<S4>/Check Stall Max' */
break;
case 9:
break;
}
/* End of SwitchCase: '<S4>/Switch Case' */
/* DataStoreWrite: '<S4>/Finish write stepSig' */
rtDW.stepSig_private = rtB.Merge;
/* MATLAB Function: '<S4>/Write Ignition' incorporates:
* DataStoreRead: '<S4>/Data Store Read3'
*/
WriteIgnition(rtDW.LOGGER_LIN, rtb_Switch);
/* Switch: '<S5>/Switch' incorporates:
* Constant: '<S5>/Constant1'
* DataStoreRead: '<S5>/Data Store Read'
* DataStoreRead: '<S5>/Data Store Read2'
*/
if (rtDW.stepSig_private_c > 0) {
rtb_Switch = rtDW.stepSig_private_c;
} else {
rtb_Switch = 1;
}
/* End of Switch: '<S5>/Switch' */
/* SwitchCase: '<S5>/Switch Case' */
switch (rtb_Switch) {
case 1:
/* Outputs for IfAction SubSystem: '<S5>/Stop Mode' incorporates:
* ActionPort: '<S46>/Action Port'
*/
/* If: '<S46>/If1' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
* DataStoreWrite: '<S5>/Data Store Write'
* DataStoreWrite: '<S5>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch1_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch1_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S46>/If Action Subsystem2' incorporates:
* ActionPort: '<S69>/Action Port'
*/
/* BusCreator: '<S69>/Bus Creator' incorporates:
* DataStoreWrite: '<S69>/Data Store Write'
* SignalConversion generated from: '<S69>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch1_Command_Model.POS[i] = 0U;
Actuator_Ch1_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch1_Command_Model.MODE[i] = 2U;
Actuator_Ch1_Command_Model.COM[i] = 1U;
Actuator_Ch1_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch1_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch1_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch1_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch1_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S69>/Bus Creator' */
/* Merge: '<S5>/Merge' incorporates:
* Constant: '<S69>/Constant'
* Sum: '<S69>/step inc'
*/
rtB.Merge_c = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S46>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S46>/If Action Subsystem3' incorporates:
* ActionPort: '<S70>/Action Port'
*/
IfActionSubsystem3_m(rtb_Switch, &rtB.Merge_c);
/* End of Outputs for SubSystem: '<S46>/If Action Subsystem3' */
}
/* End of If: '<S46>/If1' */
/* End of Outputs for SubSystem: '<S5>/Stop Mode' */
break;
case 2:
/* Outputs for IfAction SubSystem: '<S5>/Initial CPOS Min' incorporates:
* ActionPort: '<S42>/Action Port'
*/
/* If: '<S42>/If' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
* DataStoreWrite: '<S5>/Data Store Write'
* DataStoreWrite: '<S5>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch1_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch1_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S42>/If Action Subsystem' incorporates:
* ActionPort: '<S57>/Action Port'
*/
/* BusCreator: '<S57>/Bus Creator' incorporates:
* DataStoreWrite: '<S57>/Data Store Write2'
* SignalConversion generated from: '<S57>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch1_Command_Model.POS[i] = 6000U;
Actuator_Ch1_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch1_Command_Model.MODE[i] = 0U;
Actuator_Ch1_Command_Model.COM[i] = 2U;
Actuator_Ch1_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch1_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch1_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch1_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch1_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S57>/Bus Creator' */
/* MATLAB Function: '<S57>/Initial CPOS Min' incorporates:
* Constant: '<S57>/Constant'
* DataStoreRead: '<S57>/Data Store Read3'
* Sum: '<S57>/step inc'
*/
InitialCPOSMin(rtDW.LOGGER_LIN, (int8_t)(rtb_Switch + 1), &rtb_y_fb);
/* Merge: '<S5>/Merge' incorporates:
* Constant: '<S57>/Constant'
* Merge: '<S42>/Merge'
* SignalConversion generated from: '<S57>/step'
* Sum: '<S57>/step inc'
*/
rtB.Merge_c = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S42>/If Action Subsystem' */
} else {
/* Outputs for IfAction SubSystem: '<S42>/If Action Subsystem3' incorporates:
* ActionPort: '<S58>/Action Port'
*/
/* BusCreator: '<S58>/Bus Creator' incorporates:
* DataStoreWrite: '<S58>/Data Store Write'
* SignalConversion generated from: '<S58>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch1_Command_Model.POS[i] = 0U;
Actuator_Ch1_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch1_Command_Model.MODE[i] = 0U;
Actuator_Ch1_Command_Model.COM[i] = 0U;
Actuator_Ch1_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch1_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch1_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch1_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch1_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S58>/Bus Creator' */
/* Merge: '<S5>/Merge' incorporates:
* Merge: '<S42>/Merge'
* SignalConversion generated from: '<S58>/stepIn1'
*/
rtB.Merge_c = rtb_Switch;
/* End of Outputs for SubSystem: '<S42>/If Action Subsystem3' */
}
/* End of If: '<S42>/If' */
/* End of Outputs for SubSystem: '<S5>/Initial CPOS Min' */
break;
case 3:
/* Outputs for IfAction SubSystem: '<S5>/Normal Mode' incorporates:
* ActionPort: '<S45>/Action Port'
*/
/* If: '<S45>/If1' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
* DataStoreWrite: '<S5>/Data Store Write'
* DataStoreWrite: '<S5>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch1_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch1_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S45>/If Action Subsystem2' incorporates:
* ActionPort: '<S66>/Action Port'
*/
/* BusCreator: '<S66>/Bus Creator' incorporates:
* DataStoreWrite: '<S66>/Data Store Write1'
* SignalConversion generated from: '<S66>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch1_Command_Model.POS[i] = 0U;
Actuator_Ch1_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch1_Command_Model.MODE[i] = 0U;
Actuator_Ch1_Command_Model.COM[i] = 1U;
Actuator_Ch1_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch1_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch1_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch1_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch1_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S66>/Bus Creator' */
/* MATLAB Function: '<S66>/Normal Mode' incorporates:
* Constant: '<S66>/Constant'
* DataStoreRead: '<S66>/Data Store Read3'
* Sum: '<S66>/step inc'
*/
NormalMode(rtDW.LOGGER_LIN, (int8_t)(rtb_Switch + 1), &rtb_y_fb);
/* Merge: '<S5>/Merge' incorporates:
* Constant: '<S66>/Constant'
* SignalConversion generated from: '<S66>/step'
* Sum: '<S66>/step inc'
*/
rtB.Merge_c = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S45>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S45>/If Action Subsystem3' incorporates:
* ActionPort: '<S67>/Action Port'
*/
IfActionSubsystem3_m(rtb_Switch, &rtB.Merge_c);
/* End of Outputs for SubSystem: '<S45>/If Action Subsystem3' */
}
/* End of If: '<S45>/If1' */
/* End of Outputs for SubSystem: '<S5>/Normal Mode' */
break;
case 4:
/* Outputs for IfAction SubSystem: '<S5>/Move to position Min' incorporates:
* ActionPort: '<S44>/Action Port'
*/
/* If: '<S44>/If1' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
* DataStoreWrite: '<S5>/Data Store Write'
* DataStoreWrite: '<S5>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch1_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch1_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S44>/If Action Subsystem2' incorporates:
* ActionPort: '<S63>/Action Port'
*/
/* BusCreator: '<S63>/Bus Creator' incorporates:
* Constant: '<S63>/Constant1'
* Constant: '<S63>/Constant10'
* Constant: '<S63>/Constant11'
* Constant: '<S63>/Constant14'
* Constant: '<S63>/Constant2'
* Constant: '<S63>/Constant9'
* DataStoreWrite: '<S63>/Data Store Write7'
* SignalConversion generated from: '<S63>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch1_Command_Model.POS[i] = 1U;
Actuator_Ch1_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch1_Command_Model.MODE[i] = 0U;
Actuator_Ch1_Command_Model.COM[i] = 3U;
Actuator_Ch1_Command_Model.Stall_SET[i] = 1U;
Actuator_Ch1_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch1_Command_Model.Autos_SET[i] = 1U;
Actuator_Ch1_Command_Model.Speed_SET[i] = 3U;
Actuator_Ch1_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S63>/Bus Creator' */
/* MATLAB Function: '<S63>/Move to position Min' incorporates:
* Constant: '<S63>/Constant'
* DataStoreRead: '<S63>/Data Store Read3'
* Sum: '<S63>/step inc'
*/
MovetopositionMin(rtDW.LOGGER_LIN, (int8_t)(rtb_Switch + 1), &rtb_y_fb);
/* Merge: '<S5>/Merge' incorporates:
* Constant: '<S63>/Constant'
* SignalConversion generated from: '<S63>/step'
* Sum: '<S63>/step inc'
*/
rtB.Merge_c = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S44>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S44>/If Action Subsystem3' incorporates:
* ActionPort: '<S64>/Action Port'
*/
IfActionSubsystem3_m(rtb_Switch, &rtB.Merge_c);
/* End of Outputs for SubSystem: '<S44>/If Action Subsystem3' */
}
/* End of If: '<S44>/If1' */
/* End of Outputs for SubSystem: '<S5>/Move to position Min' */
break;
case 5:
/* Outputs for IfAction SubSystem: '<S5>/Check Stall Min' incorporates:
* ActionPort: '<S40>/Action Port'
*/
/* RelationalOperator: '<S40>/Relational Operator1' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
* RelationalOperator: '<S40>/Relational Operator'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch1_Status_Model.in_Act_Stall_Slave[i] == 1);
}
/* End of RelationalOperator: '<S40>/Relational Operator1' */
/* Logic: '<S40>/Logical Operator2' incorporates:
* RelationalOperator: '<S40>/Relational Operator'
*/
tmp = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp = (tmp || rtb_RelationalOperator_j[i + 1]);
}
/* RelationalOperator: '<S40>/Relational Operator' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch1_Status_Model.in_CPOS_ALL[i] == 1);
}
/* End of RelationalOperator: '<S40>/Relational Operator' */
/* Logic: '<S40>/Logical Operator1' incorporates:
* RelationalOperator: '<S40>/Relational Operator'
*/
tmp_0 = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp_0 = (tmp_0 || rtb_RelationalOperator_j[i + 1]);
}
/* If: '<S40>/If2' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
* DataStoreWrite: '<S5>/Data Store Write'
* DataStoreWrite: '<S5>/Data Store Write1'
* DataTypeConversion: '<S40>/Data Type Conversion'
* DataTypeConversion: '<S40>/Data Type Conversion1'
* Logic: '<S40>/Logical Operator'
* Logic: '<S40>/Logical Operator1'
* Logic: '<S40>/Logical Operator2'
*/
if ((rtDW.Actuator_Ch1_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch1_Status_Model.Error_Connect == 0) && (tmp || tmp_0)) {
/* Outputs for IfAction SubSystem: '<S40>/If Action Subsystem2' incorporates:
* ActionPort: '<S51>/Action Port'
*/
/* Merge: '<S5>/Merge' incorporates:
* Constant: '<S51>/Constant'
* Sum: '<S51>/step inc'
*/
rtB.Merge_c = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S40>/If Action Subsystem2' */
for (i = 0; i < 9; i++) {
/* Outputs for IfAction SubSystem: '<S40>/If Action Subsystem2' incorporates:
* ActionPort: '<S51>/Action Port'
*/
rtb_y_ey[i] = rtDW.Actuator_Ch1_Status_Model.in_CPOS_ALL[i];
/* End of Outputs for SubSystem: '<S40>/If Action Subsystem2' */
}
/* Outputs for IfAction SubSystem: '<S40>/If Action Subsystem2' incorporates:
* ActionPort: '<S51>/Action Port'
*/
/* MATLAB Function: '<S51>/MIN POSITION' incorporates:
* DataStoreRead: '<S51>/Data Store Read3'
*/
MINPOSITION(rtb_y_ey, rtDW.LOGGER_LIN);
/* End of Outputs for SubSystem: '<S40>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S40>/If Action Subsystem3' incorporates:
* ActionPort: '<S52>/Action Port'
*/
IfActionSubsystem3_m(rtb_Switch, &rtB.Merge_c);
/* End of Outputs for SubSystem: '<S40>/If Action Subsystem3' */
}
/* End of If: '<S40>/If2' */
/* End of Outputs for SubSystem: '<S5>/Check Stall Min' */
break;
case 6:
/* Outputs for IfAction SubSystem: '<S5>/Initial CPOS Max' incorporates:
* ActionPort: '<S41>/Action Port'
*/
/* If: '<S41>/If1' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
* DataStoreWrite: '<S5>/Data Store Write'
* DataStoreWrite: '<S5>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch1_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch1_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S41>/If Action Subsystem2' incorporates:
* ActionPort: '<S54>/Action Port'
*/
/* BusCreator: '<S54>/Bus Creator' incorporates:
* DataStoreWrite: '<S54>/Data Store Write2'
* SignalConversion generated from: '<S54>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch1_Command_Model.POS[i] = 1U;
Actuator_Ch1_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch1_Command_Model.MODE[i] = 0U;
Actuator_Ch1_Command_Model.COM[i] = 2U;
Actuator_Ch1_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch1_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch1_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch1_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch1_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S54>/Bus Creator' */
/* MATLAB Function: '<S54>/Initial CPOS Max' incorporates:
* Constant: '<S54>/Constant'
* DataStoreRead: '<S54>/Data Store Read3'
* Sum: '<S54>/step inc'
*/
InitialCPOSMax(rtDW.LOGGER_LIN, (int8_t)(rtb_Switch + 1), &rtb_y_fb);
/* Merge: '<S5>/Merge' incorporates:
* Constant: '<S54>/Constant'
* SignalConversion generated from: '<S54>/step'
* Sum: '<S54>/step inc'
*/
rtB.Merge_c = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S41>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S41>/If Action Subsystem3' incorporates:
* ActionPort: '<S55>/Action Port'
*/
IfActionSubsystem3_m(rtb_Switch, &rtB.Merge_c);
/* End of Outputs for SubSystem: '<S41>/If Action Subsystem3' */
}
/* End of If: '<S41>/If1' */
/* End of Outputs for SubSystem: '<S5>/Initial CPOS Max' */
break;
case 7:
/* Outputs for IfAction SubSystem: '<S5>/Move to position Max' incorporates:
* ActionPort: '<S43>/Action Port'
*/
/* If: '<S43>/If1' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
* DataStoreWrite: '<S5>/Data Store Write'
* DataStoreWrite: '<S5>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch1_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch1_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S43>/If Action Subsystem2' incorporates:
* ActionPort: '<S60>/Action Port'
*/
/* BusCreator: '<S60>/Bus Creator' incorporates:
* Constant: '<S60>/Constant1'
* Constant: '<S60>/Constant10'
* Constant: '<S60>/Constant11'
* Constant: '<S60>/Constant14'
* Constant: '<S60>/Constant2'
* Constant: '<S60>/Constant9'
* DataStoreWrite: '<S60>/Data Store Write7'
* SignalConversion generated from: '<S60>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch1_Command_Model.POS[i] = 6000U;
Actuator_Ch1_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch1_Command_Model.MODE[i] = 0U;
Actuator_Ch1_Command_Model.COM[i] = 3U;
Actuator_Ch1_Command_Model.Stall_SET[i] = 1U;
Actuator_Ch1_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch1_Command_Model.Autos_SET[i] = 1U;
Actuator_Ch1_Command_Model.Speed_SET[i] = 3U;
Actuator_Ch1_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S60>/Bus Creator' */
/* MATLAB Function: '<S60>/Move to position Max' incorporates:
* Constant: '<S60>/Constant'
* DataStoreRead: '<S60>/Data Store Read3'
* Sum: '<S60>/step inc'
*/
MovetopositionMax((int8_t)(rtb_Switch + 1), rtDW.LOGGER_LIN, &rtb_y_fb);
/* Merge: '<S5>/Merge' incorporates:
* Constant: '<S60>/Constant'
* SignalConversion generated from: '<S60>/step'
* Sum: '<S60>/step inc'
*/
rtB.Merge_c = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S43>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S43>/If Action Subsystem3' incorporates:
* ActionPort: '<S61>/Action Port'
*/
IfActionSubsystem3_m(rtb_Switch, &rtB.Merge_c);
/* End of Outputs for SubSystem: '<S43>/If Action Subsystem3' */
}
/* End of If: '<S43>/If1' */
/* End of Outputs for SubSystem: '<S5>/Move to position Max' */
break;
case 8:
/* Outputs for IfAction SubSystem: '<S5>/Check Stall Max' incorporates:
* ActionPort: '<S39>/Action Port'
*/
/* RelationalOperator: '<S39>/Relational Operator1' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
* RelationalOperator: '<S39>/Relational Operator'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch1_Status_Model.in_Act_Stall_Slave[i] == 1);
}
/* End of RelationalOperator: '<S39>/Relational Operator1' */
/* Logic: '<S39>/Logical Operator2' incorporates:
* RelationalOperator: '<S39>/Relational Operator'
*/
tmp = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp = (tmp || rtb_RelationalOperator_j[i + 1]);
}
/* RelationalOperator: '<S39>/Relational Operator' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch1_Status_Model.in_CPOS_ALL[i] == 6000);
}
/* End of RelationalOperator: '<S39>/Relational Operator' */
/* Logic: '<S39>/Logical Operator1' incorporates:
* RelationalOperator: '<S39>/Relational Operator'
*/
tmp_0 = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp_0 = (tmp_0 || rtb_RelationalOperator_j[i + 1]);
}
/* If: '<S39>/If2' incorporates:
* DataStoreRead: '<S5>/Data Store Read1'
* DataStoreWrite: '<S5>/Data Store Write'
* DataStoreWrite: '<S5>/Data Store Write1'
* DataTypeConversion: '<S39>/Data Type Conversion'
* DataTypeConversion: '<S39>/Data Type Conversion1'
* Logic: '<S39>/Logical Operator'
* Logic: '<S39>/Logical Operator1'
* Logic: '<S39>/Logical Operator2'
*/
if ((rtDW.Actuator_Ch1_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch1_Status_Model.Error_Connect == 0) && (tmp || tmp_0)) {
/* Outputs for IfAction SubSystem: '<S39>/If Action Subsystem2' incorporates:
* ActionPort: '<S48>/Action Port'
*/
/* Merge: '<S5>/Merge' incorporates:
* Constant: '<S48>/Constant'
* Sum: '<S48>/step inc'
*/
rtB.Merge_c = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S39>/If Action Subsystem2' */
for (i = 0; i < 9; i++) {
/* Outputs for IfAction SubSystem: '<S39>/If Action Subsystem2' incorporates:
* ActionPort: '<S48>/Action Port'
*/
rtb_y_ey[i] = rtDW.Actuator_Ch1_Status_Model.in_CPOS_ALL[i];
/* End of Outputs for SubSystem: '<S39>/If Action Subsystem2' */
}
/* Outputs for IfAction SubSystem: '<S39>/If Action Subsystem2' incorporates:
* ActionPort: '<S48>/Action Port'
*/
/* MATLAB Function: '<S48>/MIN POSITION' incorporates:
* DataStoreRead: '<S48>/Data Store Read3'
*/
MINPOSITION_g(rtb_y_ey, rtDW.LOGGER_LIN);
/* End of Outputs for SubSystem: '<S39>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S39>/If Action Subsystem3' incorporates:
* ActionPort: '<S49>/Action Port'
*/
IfActionSubsystem3_m(rtb_Switch, &rtB.Merge_c);
/* End of Outputs for SubSystem: '<S39>/If Action Subsystem3' */
}
/* End of If: '<S39>/If2' */
/* End of Outputs for SubSystem: '<S5>/Check Stall Max' */
break;
case 9:
break;
}
/* End of SwitchCase: '<S5>/Switch Case' */
/* DataStoreWrite: '<S5>/Finish write stepSig' */
rtDW.stepSig_private_c = rtB.Merge_c;
/* MATLAB Function: '<S5>/Write Ignition' incorporates:
* DataStoreRead: '<S5>/Data Store Read3'
*/
WriteIgnition(rtDW.LOGGER_LIN, rtb_Switch);
/* Switch: '<S6>/Switch' incorporates:
* Constant: '<S6>/Constant1'
* DataStoreRead: '<S6>/Data Store Read'
* DataStoreRead: '<S6>/Data Store Read2'
*/
if (rtDW.stepSig_private_p > 0) {
rtb_Switch = rtDW.stepSig_private_p;
} else {
rtb_Switch = 1;
}
/* End of Switch: '<S6>/Switch' */
/* SwitchCase: '<S6>/Switch Case' */
switch (rtb_Switch) {
case 1:
/* Outputs for IfAction SubSystem: '<S6>/Stop Mode' incorporates:
* ActionPort: '<S78>/Action Port'
*/
/* If: '<S78>/If1' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* DataStoreWrite: '<S6>/Data Store Write'
* DataStoreWrite: '<S6>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch2_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch2_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S78>/If Action Subsystem2' incorporates:
* ActionPort: '<S103>/Action Port'
*/
/* BusCreator: '<S103>/Bus Creator' incorporates:
* DataStoreWrite: '<S103>/Data Store Write'
* SignalConversion generated from: '<S103>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch2_Command_Model.POS[i] = 0U;
Actuator_Ch2_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch2_Command_Model.MODE[i] = 2U;
Actuator_Ch2_Command_Model.COM[i] = 1U;
Actuator_Ch2_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch2_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch2_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch2_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch2_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S103>/Bus Creator' */
/* Merge: '<S6>/Merge' incorporates:
* Constant: '<S103>/Constant'
* Sum: '<S103>/step inc'
*/
rtB.Merge_cs = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S78>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S78>/If Action Subsystem3' incorporates:
* ActionPort: '<S104>/Action Port'
*/
IfActionSubsystem3_n(rtb_Switch, &rtB.Merge_cs);
/* End of Outputs for SubSystem: '<S78>/If Action Subsystem3' */
}
/* End of If: '<S78>/If1' */
/* End of Outputs for SubSystem: '<S6>/Stop Mode' */
break;
case 2:
/* Outputs for IfAction SubSystem: '<S6>/Initial CPOS Min' incorporates:
* ActionPort: '<S74>/Action Port'
*/
/* MATLAB Function: '<S74>/Write Ignition' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* DataStoreRead: '<S74>/Data Store Read3'
* DataStoreWrite: '<S6>/Data Store Write'
*/
/* : if(LOGGER) */
if (rtDW.LOGGER_LIN != 0.0) {
/* : fprintf('LIN 3 busy = %u\n',step); */
printf("LIN 3 busy = %u\n", rtDW.Actuator_Ch2_Status_Model.Busy);
fflush(stdout);
}
/* End of MATLAB Function: '<S74>/Write Ignition' */
/* MATLAB Function: '<S74>/Write Ignition1' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* DataStoreRead: '<S74>/Data Store Read2'
* DataStoreWrite: '<S6>/Data Store Write1'
*/
/* : if(LOGGER) */
if (rtDW.LOGGER_LIN != 0.0) {
/* : fprintf('LIN 3 Error_Connect = %u\n',step); */
printf("LIN 3 Error_Connect = %u\n",
rtDW.Actuator_Ch2_Status_Model.Error_Connect);
fflush(stdout);
}
/* End of MATLAB Function: '<S74>/Write Ignition1' */
/* If: '<S74>/If' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* DataStoreWrite: '<S6>/Data Store Write'
* DataStoreWrite: '<S6>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch2_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch2_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S74>/If Action Subsystem' incorporates:
* ActionPort: '<S89>/Action Port'
*/
/* BusCreator: '<S89>/Bus Creator' incorporates:
* DataStoreWrite: '<S89>/Data Store Write2'
* SignalConversion generated from: '<S89>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch2_Command_Model.POS[i] = 6000U;
Actuator_Ch2_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch2_Command_Model.MODE[i] = 0U;
Actuator_Ch2_Command_Model.COM[i] = 2U;
Actuator_Ch2_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch2_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch2_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch2_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch2_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S89>/Bus Creator' */
/* MATLAB Function: '<S89>/Initial CPOS Min' incorporates:
* DataStoreRead: '<S89>/Data Store Read3'
*/
/* : y = step; */
/* : if(LOGGER) */
if (rtDW.LOGGER_LIN != 0.0) {
/* : fprintf('LIN 3 SIMULINK Initial CPOS Min - 6000\n'); */
printf("LIN 3 SIMULINK Initial CPOS Min - 6000\n");
fflush(stdout);
}
/* End of MATLAB Function: '<S89>/Initial CPOS Min' */
/* Merge: '<S6>/Merge' incorporates:
* Constant: '<S89>/Constant'
* Merge: '<S74>/Merge'
* SignalConversion generated from: '<S89>/step'
* Sum: '<S89>/step inc'
*/
rtB.Merge_cs = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S74>/If Action Subsystem' */
} else {
/* Outputs for IfAction SubSystem: '<S74>/If Action Subsystem3' incorporates:
* ActionPort: '<S90>/Action Port'
*/
/* BusCreator: '<S90>/Bus Creator' incorporates:
* DataStoreWrite: '<S90>/Data Store Write'
* SignalConversion generated from: '<S90>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch2_Command_Model.POS[i] = 0U;
Actuator_Ch2_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch2_Command_Model.MODE[i] = 0U;
Actuator_Ch2_Command_Model.COM[i] = 0U;
Actuator_Ch2_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch2_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch2_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch2_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch2_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S90>/Bus Creator' */
/* Merge: '<S6>/Merge' incorporates:
* Merge: '<S74>/Merge'
* SignalConversion generated from: '<S90>/stepIn1'
*/
rtB.Merge_cs = rtb_Switch;
/* End of Outputs for SubSystem: '<S74>/If Action Subsystem3' */
}
/* End of If: '<S74>/If' */
/* End of Outputs for SubSystem: '<S6>/Initial CPOS Min' */
break;
case 3:
/* Outputs for IfAction SubSystem: '<S6>/Normal Mode' incorporates:
* ActionPort: '<S77>/Action Port'
*/
/* If: '<S77>/If1' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* DataStoreWrite: '<S6>/Data Store Write'
* DataStoreWrite: '<S6>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch2_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch2_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S77>/If Action Subsystem2' incorporates:
* ActionPort: '<S100>/Action Port'
*/
/* BusCreator: '<S100>/Bus Creator' incorporates:
* DataStoreWrite: '<S100>/Data Store Write1'
* SignalConversion generated from: '<S100>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch2_Command_Model.POS[i] = 0U;
Actuator_Ch2_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch2_Command_Model.MODE[i] = 0U;
Actuator_Ch2_Command_Model.COM[i] = 1U;
Actuator_Ch2_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch2_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch2_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch2_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch2_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S100>/Bus Creator' */
/* MATLAB Function: '<S100>/Normal Mode' incorporates:
* DataStoreRead: '<S100>/Data Store Read3'
*/
/* : y = step; */
/* : if(LOGGER) */
if (rtDW.LOGGER_LIN != 0.0) {
/* : fprintf('LIN 3 SIMULINK Normal Mode\n'); */
printf("LIN 3 SIMULINK Normal Mode\n");
fflush(stdout);
}
/* End of MATLAB Function: '<S100>/Normal Mode' */
/* Merge: '<S6>/Merge' incorporates:
* Constant: '<S100>/Constant'
* SignalConversion generated from: '<S100>/step'
* Sum: '<S100>/step inc'
*/
rtB.Merge_cs = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S77>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S77>/If Action Subsystem3' incorporates:
* ActionPort: '<S101>/Action Port'
*/
IfActionSubsystem3_n(rtb_Switch, &rtB.Merge_cs);
/* End of Outputs for SubSystem: '<S77>/If Action Subsystem3' */
}
/* End of If: '<S77>/If1' */
/* End of Outputs for SubSystem: '<S6>/Normal Mode' */
break;
case 4:
/* Outputs for IfAction SubSystem: '<S6>/Move to position Min' incorporates:
* ActionPort: '<S76>/Action Port'
*/
/* If: '<S76>/If1' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* DataStoreWrite: '<S6>/Data Store Write'
* DataStoreWrite: '<S6>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch2_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch2_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S76>/If Action Subsystem2' incorporates:
* ActionPort: '<S97>/Action Port'
*/
/* BusCreator: '<S97>/Bus Creator' incorporates:
* Constant: '<S97>/Constant1'
* Constant: '<S97>/Constant10'
* Constant: '<S97>/Constant11'
* Constant: '<S97>/Constant14'
* Constant: '<S97>/Constant2'
* Constant: '<S97>/Constant9'
* DataStoreWrite: '<S97>/Data Store Write7'
* SignalConversion generated from: '<S97>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch2_Command_Model.POS[i] = 1U;
Actuator_Ch2_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch2_Command_Model.MODE[i] = 0U;
Actuator_Ch2_Command_Model.COM[i] = 3U;
Actuator_Ch2_Command_Model.Stall_SET[i] = 1U;
Actuator_Ch2_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch2_Command_Model.Autos_SET[i] = 1U;
Actuator_Ch2_Command_Model.Speed_SET[i] = 3U;
Actuator_Ch2_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S97>/Bus Creator' */
/* MATLAB Function: '<S97>/Move to position Min' incorporates:
* Constant: '<S97>/Constant'
* DataStoreRead: '<S97>/Data Store Read3'
* Sum: '<S97>/step inc'
*/
MovetopositionMin(rtDW.LOGGER_LIN, (int8_t)(rtb_Switch + 1), &rtb_y_fb);
/* Merge: '<S6>/Merge' incorporates:
* Constant: '<S97>/Constant'
* SignalConversion generated from: '<S97>/step'
* Sum: '<S97>/step inc'
*/
rtB.Merge_cs = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S76>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S76>/If Action Subsystem3' incorporates:
* ActionPort: '<S98>/Action Port'
*/
IfActionSubsystem3_n(rtb_Switch, &rtB.Merge_cs);
/* End of Outputs for SubSystem: '<S76>/If Action Subsystem3' */
}
/* End of If: '<S76>/If1' */
/* End of Outputs for SubSystem: '<S6>/Move to position Min' */
break;
case 5:
/* Outputs for IfAction SubSystem: '<S6>/Check Stall Min' incorporates:
* ActionPort: '<S72>/Action Port'
*/
/* RelationalOperator: '<S72>/Relational Operator1' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* RelationalOperator: '<S72>/Relational Operator'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch2_Status_Model.in_Act_Stall_Slave[i] == 1);
}
/* End of RelationalOperator: '<S72>/Relational Operator1' */
/* Logic: '<S72>/Logical Operator2' incorporates:
* RelationalOperator: '<S72>/Relational Operator'
*/
tmp = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp = (tmp || rtb_RelationalOperator_j[i + 1]);
}
/* RelationalOperator: '<S72>/Relational Operator' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch2_Status_Model.in_CPOS_ALL[i] == 1);
}
/* End of RelationalOperator: '<S72>/Relational Operator' */
/* Logic: '<S72>/Logical Operator1' incorporates:
* RelationalOperator: '<S72>/Relational Operator'
*/
tmp_0 = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp_0 = (tmp_0 || rtb_RelationalOperator_j[i + 1]);
}
/* If: '<S72>/If2' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* DataStoreWrite: '<S6>/Data Store Write'
* DataStoreWrite: '<S6>/Data Store Write1'
* DataTypeConversion: '<S72>/Data Type Conversion'
* DataTypeConversion: '<S72>/Data Type Conversion1'
* Logic: '<S72>/Logical Operator'
* Logic: '<S72>/Logical Operator1'
* Logic: '<S72>/Logical Operator2'
*/
if ((rtDW.Actuator_Ch2_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch2_Status_Model.Error_Connect == 0) && (tmp || tmp_0)) {
/* Outputs for IfAction SubSystem: '<S72>/If Action Subsystem2' incorporates:
* ActionPort: '<S83>/Action Port'
*/
/* Merge: '<S6>/Merge' incorporates:
* Constant: '<S83>/Constant'
* Sum: '<S83>/step inc'
*/
rtB.Merge_cs = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S72>/If Action Subsystem2' */
for (i = 0; i < 9; i++) {
/* Outputs for IfAction SubSystem: '<S72>/If Action Subsystem2' incorporates:
* ActionPort: '<S83>/Action Port'
*/
rtb_y_ey[i] = rtDW.Actuator_Ch2_Status_Model.in_CPOS_ALL[i];
/* End of Outputs for SubSystem: '<S72>/If Action Subsystem2' */
}
/* Outputs for IfAction SubSystem: '<S72>/If Action Subsystem2' incorporates:
* ActionPort: '<S83>/Action Port'
*/
/* MATLAB Function: '<S83>/MIN POSITION' incorporates:
* DataStoreRead: '<S83>/Data Store Read3'
*/
MINPOSITION(rtb_y_ey, rtDW.LOGGER_LIN);
/* End of Outputs for SubSystem: '<S72>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S72>/If Action Subsystem3' incorporates:
* ActionPort: '<S84>/Action Port'
*/
IfActionSubsystem3_n(rtb_Switch, &rtB.Merge_cs);
/* End of Outputs for SubSystem: '<S72>/If Action Subsystem3' */
}
/* End of If: '<S72>/If2' */
/* End of Outputs for SubSystem: '<S6>/Check Stall Min' */
break;
case 6:
/* Outputs for IfAction SubSystem: '<S6>/Initial CPOS Max' incorporates:
* ActionPort: '<S73>/Action Port'
*/
/* If: '<S73>/If1' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* DataStoreWrite: '<S6>/Data Store Write'
* DataStoreWrite: '<S6>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch2_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch2_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S73>/If Action Subsystem2' incorporates:
* ActionPort: '<S86>/Action Port'
*/
/* BusCreator: '<S86>/Bus Creator' incorporates:
* DataStoreWrite: '<S86>/Data Store Write2'
* SignalConversion generated from: '<S86>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch2_Command_Model.POS[i] = 1U;
Actuator_Ch2_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch2_Command_Model.MODE[i] = 0U;
Actuator_Ch2_Command_Model.COM[i] = 2U;
Actuator_Ch2_Command_Model.Stall_SET[i] = 0U;
Actuator_Ch2_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch2_Command_Model.Autos_SET[i] = 0U;
Actuator_Ch2_Command_Model.Speed_SET[i] = 0U;
Actuator_Ch2_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S86>/Bus Creator' */
/* MATLAB Function: '<S86>/Initial CPOS Max' incorporates:
* Constant: '<S86>/Constant'
* DataStoreRead: '<S86>/Data Store Read3'
* Sum: '<S86>/step inc'
*/
InitialCPOSMax(rtDW.LOGGER_LIN, (int8_t)(rtb_Switch + 1), &rtb_y_fb);
/* Merge: '<S6>/Merge' incorporates:
* Constant: '<S86>/Constant'
* SignalConversion generated from: '<S86>/step'
* Sum: '<S86>/step inc'
*/
rtB.Merge_cs = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S73>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S73>/If Action Subsystem3' incorporates:
* ActionPort: '<S87>/Action Port'
*/
IfActionSubsystem3_n(rtb_Switch, &rtB.Merge_cs);
/* End of Outputs for SubSystem: '<S73>/If Action Subsystem3' */
}
/* End of If: '<S73>/If1' */
/* End of Outputs for SubSystem: '<S6>/Initial CPOS Max' */
break;
case 7:
/* Outputs for IfAction SubSystem: '<S6>/Move to position Max' incorporates:
* ActionPort: '<S75>/Action Port'
*/
/* If: '<S75>/If1' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* DataStoreWrite: '<S6>/Data Store Write'
* DataStoreWrite: '<S6>/Data Store Write1'
*/
if ((rtDW.Actuator_Ch2_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch2_Status_Model.Error_Connect == 0)) {
/* Outputs for IfAction SubSystem: '<S75>/If Action Subsystem2' incorporates:
* ActionPort: '<S94>/Action Port'
*/
/* BusCreator: '<S94>/Bus Creator' incorporates:
* Constant: '<S94>/Constant1'
* Constant: '<S94>/Constant10'
* Constant: '<S94>/Constant11'
* Constant: '<S94>/Constant14'
* Constant: '<S94>/Constant2'
* Constant: '<S94>/Constant9'
* DataStoreWrite: '<S94>/Data Store Write7'
* SignalConversion generated from: '<S94>/Bus Creator'
* */
for (i = 0; i < 9; i++) {
Actuator_Ch2_Command_Model.POS[i] = 6000U;
Actuator_Ch2_Command_Model.BUS_ADR[i] = 0U;
Actuator_Ch2_Command_Model.MODE[i] = 0U;
Actuator_Ch2_Command_Model.COM[i] = 3U;
Actuator_Ch2_Command_Model.Stall_SET[i] = 1U;
Actuator_Ch2_Command_Model.Lnoise_SET[i] = 0U;
Actuator_Ch2_Command_Model.Autos_SET[i] = 1U;
Actuator_Ch2_Command_Model.Speed_SET[i] = 3U;
Actuator_Ch2_Command_Model.Coils_Stop_SET[i] = 0U;
}
/* End of BusCreator: '<S94>/Bus Creator' */
/* MATLAB Function: '<S94>/Move to position Max' incorporates:
* Constant: '<S94>/Constant'
* DataStoreRead: '<S94>/Data Store Read3'
* Sum: '<S94>/step inc'
*/
MovetopositionMax((int8_t)(rtb_Switch + 1), rtDW.LOGGER_LIN, &rtb_y_fb);
/* Merge: '<S6>/Merge' incorporates:
* Constant: '<S94>/Constant'
* SignalConversion generated from: '<S94>/step'
* Sum: '<S94>/step inc'
*/
rtB.Merge_cs = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S75>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S75>/If Action Subsystem3' incorporates:
* ActionPort: '<S95>/Action Port'
*/
IfActionSubsystem3_n(rtb_Switch, &rtB.Merge_cs);
/* End of Outputs for SubSystem: '<S75>/If Action Subsystem3' */
}
/* End of If: '<S75>/If1' */
/* End of Outputs for SubSystem: '<S6>/Move to position Max' */
break;
case 8:
/* Outputs for IfAction SubSystem: '<S6>/Check Stall Max' incorporates:
* ActionPort: '<S71>/Action Port'
*/
/* RelationalOperator: '<S71>/Relational Operator1' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* RelationalOperator: '<S71>/Relational Operator'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch2_Status_Model.in_Act_Stall_Slave[i] == 1);
}
/* End of RelationalOperator: '<S71>/Relational Operator1' */
/* Logic: '<S71>/Logical Operator2' incorporates:
* RelationalOperator: '<S71>/Relational Operator'
*/
tmp = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp = (tmp || rtb_RelationalOperator_j[i + 1]);
}
/* RelationalOperator: '<S71>/Relational Operator' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
*/
for (i = 0; i < 9; i++) {
rtb_RelationalOperator_j[i] =
(rtDW.Actuator_Ch2_Status_Model.in_CPOS_ALL[i] == 6000);
}
/* End of RelationalOperator: '<S71>/Relational Operator' */
/* Logic: '<S71>/Logical Operator1' incorporates:
* RelationalOperator: '<S71>/Relational Operator'
*/
tmp_0 = rtb_RelationalOperator_j[0];
for (i = 0; i < 8; i++) {
tmp_0 = (tmp_0 || rtb_RelationalOperator_j[i + 1]);
}
/* If: '<S71>/If2' incorporates:
* DataStoreRead: '<S6>/Data Store Read1'
* DataStoreWrite: '<S6>/Data Store Write'
* DataStoreWrite: '<S6>/Data Store Write1'
* DataTypeConversion: '<S71>/Data Type Conversion'
* DataTypeConversion: '<S71>/Data Type Conversion1'
* Logic: '<S71>/Logical Operator'
* Logic: '<S71>/Logical Operator1'
* Logic: '<S71>/Logical Operator2'
*/
if ((rtDW.Actuator_Ch2_Status_Model.Busy == 0) &&
(rtDW.Actuator_Ch2_Status_Model.Error_Connect == 0) && (tmp || tmp_0)) {
/* Outputs for IfAction SubSystem: '<S71>/If Action Subsystem2' incorporates:
* ActionPort: '<S80>/Action Port'
*/
/* Merge: '<S6>/Merge' incorporates:
* Constant: '<S80>/Constant'
* Sum: '<S80>/step inc'
*/
rtB.Merge_cs = (int8_t)(rtb_Switch + 1);
/* End of Outputs for SubSystem: '<S71>/If Action Subsystem2' */
for (i = 0; i < 9; i++) {
/* Outputs for IfAction SubSystem: '<S71>/If Action Subsystem2' incorporates:
* ActionPort: '<S80>/Action Port'
*/
rtb_y_ey[i] = rtDW.Actuator_Ch2_Status_Model.in_CPOS_ALL[i];
/* End of Outputs for SubSystem: '<S71>/If Action Subsystem2' */
}
/* Outputs for IfAction SubSystem: '<S71>/If Action Subsystem2' incorporates:
* ActionPort: '<S80>/Action Port'
*/
/* MATLAB Function: '<S80>/MIN POSITION' incorporates:
* DataStoreRead: '<S80>/Data Store Read3'
*/
MINPOSITION_g(rtb_y_ey, rtDW.LOGGER_LIN);
/* End of Outputs for SubSystem: '<S71>/If Action Subsystem2' */
} else {
/* Outputs for IfAction SubSystem: '<S71>/If Action Subsystem3' incorporates:
* ActionPort: '<S81>/Action Port'
*/
IfActionSubsystem3_n(rtb_Switch, &rtB.Merge_cs);
/* End of Outputs for SubSystem: '<S71>/If Action Subsystem3' */
}
/* End of If: '<S71>/If2' */
/* End of Outputs for SubSystem: '<S6>/Check Stall Max' */
break;
case 9:
break;
}
/* End of SwitchCase: '<S6>/Switch Case' */
/* Outport: '<Root>/Out1' incorporates:
* DataStoreRead: '<Root>/Data Store Read10'
*/
rtY.Out1 = CCU_Errors_Model;
/* DataStoreWrite: '<S6>/Finish write stepSig' */
rtDW.stepSig_private_p = rtB.Merge_cs;
/* MATLAB Function: '<S6>/Write Ignition' incorporates:
* DataStoreRead: '<S6>/Data Store Read3'
*/
/* : if(LOGGER) */
if (rtDW.LOGGER_LIN != 0.0) {
/* : fprintf('LIN 3 step = %d\n',step); */
printf("LIN 3 step = %d\n", rtb_Switch);
fflush(stdout);
}
/* End of MATLAB Function: '<S6>/Write Ignition' */
/* DataStoreWrite: '<S2>/Data Store Write' incorporates:
* Constant: '<S2>/Constant'
*/
rtDW.LOGGER_LIN = 1.0;
}
/* Model initialize function */
void HVAC_model_initialize(void)
{
/* (no initialization code required) */
}
/* Model terminate function */
void HVAC_model_terminate(void)
{
/* (no terminate code required) */
}
/*
* File trailer for generated code.
*
* [EOF]
*/