/* * File: Model_actuator.c * * Code generated for Simulink model 'Model_actuator'. * * Model version : 1.552 * Simulink Coder version : 24.1 (R2024a) 19-Nov-2023 * C/C++ source code generated on : Wed Dec 24 11:40:12 2025 * * 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 "Model_actuator.h" #include #include "Model_actuator_private.h" #include #include "Model_actuator_types.h" /* Exported block states */ ActuatorCmdBus controllerData; /* '/Data Store Memory15' */ /* Block signals (default storage) */ B rtB; /* Block states (default storage) */ DW rtDW; /* External inputs (root inport signals with default storage) */ ExtU rtU; /* 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: * '/If Action Subsystem3' * '/If Action Subsystem3' * '/If Action Subsystem3' * '/If Action Subsystem3' * '/If Action Subsystem3' * '/If Action Subsystem3' * '/If Action Subsystem3' */ void IfActionSubsystem3(int8_t rtu_stepIn, int8_t *rty_step, uint8_t rtd_com_loc[9]) { int32_t i; /* DataStoreWrite: '/Data Store Write3' */ for (i = 0; i < 9; i++) { rtd_com_loc[i] = 0U; } /* End of DataStoreWrite: '/Data Store Write3' */ /* SignalConversion generated from: '/stepIn' */ *rty_step = rtu_stepIn; } /* * Output and update for atomic system: * '/MAX POSITION' * '/MAX POSITION' */ void MAXPOSITION(const int16_t rtu_step[9], int16_t rty_y[9]) { int32_t i; /* : y = step; */ for (i = 0; i < 9; i++) { rty_y[i] = rtu_step[i]; } /* : fprintf('SIMULINK POSITION '); */ printf("SIMULINK POSITION "); fflush(stdout); /* : for i = 1:numel(step) */ for (i = 0; i < 9; i++) { /* : fprintf('%d ', int16(step(i))); */ printf("%d ", rtu_step[i]); fflush(stdout); } /* : fprintf('\n'); */ printf("\n"); fflush(stdout); } /* * Output and update for atomic system: * '/MAX POSITION1' * '/MAX POSITION1' */ void MAXPOSITION1(const int8_t rtu_step[9], int8_t rty_y[9]) { int32_t i; /* : y = step; */ for (i = 0; i < 9; i++) { rty_y[i] = rtu_step[i]; } /* : fprintf('SIMULINK Stall_Slave '); */ printf("SIMULINK Stall_Slave "); fflush(stdout); /* : for i = 1:numel(step) */ for (i = 0; i < 9; i++) { /* : fprintf('%d ', int16(step(i))); */ printf("%d ", (int16_t)rtu_step[i]); fflush(stdout); } /* : fprintf('\n'); */ printf("\n"); fflush(stdout); } /* Model step function */ void Model_actuator_step(void) { int32_t i; int16_t rtb_y_ff[9]; int8_t rtb_y_b[9]; bool rtb_RelationalOperator_j[9]; bool tmp; bool tmp_0; /* Switch: '/Switch' incorporates: * DataStoreRead: '/Data Store Read' */ if (rtDW.stepSig < 1) { /* Switch: '/Switch' incorporates: * Constant: '/Constant1' */ rtDW.UnitDelay_DSTATE = 1; } /* End of Switch: '/Switch' */ /* SwitchCase: '/Switch Case' */ switch (rtDW.UnitDelay_DSTATE) { case 1: /* Outputs for IfAction SubSystem: '/Stop Mode' incorporates: * ActionPort: '/Action Port' */ /* If: '/If1' incorporates: * Inport: '/in_Busy_Ch0' * Inport: '/in_Error_Connect_Ch0' */ if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* DataStoreWrite: '/Data Store Write2' */ rtDW.mode_loc[i] = 2U; /* DataStoreWrite: '/Data Store Write3' */ rtDW.com_loc[i] = 1U; } /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Merge: '/Merge' * SignalConversion generated from: '/step' * Sum: '/step inc' */ rtB.Merge = (int8_t)(rtDW.UnitDelay_DSTATE + 1); /* MATLAB Function: '/stop mode' */ /* : y = step; */ /* : fprintf('SIMULINK Stop Mode\n'); */ printf("SIMULINK Stop Mode\n"); fflush(stdout); printf("SIMULINK Stop Mode2\n"); fflush(stdout); /* End of Outputs for SubSystem: '/If Action Subsystem2' */ } else { /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ /* Merge: '/Merge' */ IfActionSubsystem3(rtDW.UnitDelay_DSTATE, &rtB.Merge, rtDW.com_loc); /* 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: * Inport: '/in_Busy_Ch0' * Inport: '/in_Error_Connect_Ch0' */ if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) { /* Outputs for IfAction SubSystem: '/If Action Subsystem' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* DataStoreWrite: '/Data Store Write' */ rtDW.pos_loc[i] = 6000U; /* DataStoreWrite: '/Data Store Write1' */ rtDW.com_loc[i] = 2U; } /* MATLAB Function: '/Initial CPOS Min' */ /* : y = step; */ /* : fprintf('SIMULINK Initial CPOS Min - 6000\n'); */ printf("SIMULINK Initial CPOS Min - 6000\n"); fflush(stdout); /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Merge: '/Merge' * SignalConversion generated from: '/step' * Sum: '/step inc' */ rtB.Merge = (int8_t)(rtDW.UnitDelay_DSTATE + 1); /* End of Outputs for SubSystem: '/If Action Subsystem' */ } else { /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write3' */ for (i = 0; i < 9; i++) { rtDW.com_loc[i] = 0U; } /* End of DataStoreWrite: '/Data Store Write3' */ /* Merge: '/Merge' incorporates: * Merge: '/Merge' * SignalConversion generated from: '/stepIn1' */ rtB.Merge = rtDW.UnitDelay_DSTATE; /* 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: * Inport: '/in_Busy_Ch0' * Inport: '/in_Error_Connect_Ch0' */ if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* DataStoreWrite: '/Data Store Write' */ rtDW.mode_loc[i] = 0U; /* DataStoreWrite: '/Data Store Write2' */ rtDW.com_loc[i] = 1U; } /* MATLAB Function: '/Normal Mode' */ /* : y = step; */ /* : fprintf('SIMULINK Normal Mode\n'); */ printf("SIMULINK Normal Mode\n"); fflush(stdout); /* Merge: '/Merge' incorporates: * Constant: '/Constant' * SignalConversion generated from: '/step' * Sum: '/step inc' */ rtB.Merge = (int8_t)(rtDW.UnitDelay_DSTATE + 1); /* End of Outputs for SubSystem: '/If Action Subsystem2' */ } else { /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ IfActionSubsystem3(rtDW.UnitDelay_DSTATE, &rtB.Merge, rtDW.com_loc); /* 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: * Inport: '/in_Busy_Ch0' * Inport: '/in_Error_Connect_Ch0' */ if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.stall_set_loc[i] = 1U; /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Constant2' */ rtDW.lnoise_set_loc[i] = 0U; /* DataStoreWrite: '/Data Store Write2' */ rtDW.com_loc[i] = 3U; /* DataStoreWrite: '/Data Store Write4' incorporates: * Constant: '/Constant4' */ rtDW.autos_set_loc[i] = 0U; /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant5' */ rtDW.speed_set_loc[i] = 0U; /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant6' */ rtDW.coils_stop_set_loc[i] = 0U; /* DataStoreWrite: '/Data Store Write' */ rtDW.pos_loc[i] = 1U; } /* MATLAB Function: '/Move to position Min' */ /* : y = step; */ /* : fprintf('SIMULINK Move to position Min - 1\n'); */ printf("SIMULINK Move to position Min - 1\n"); fflush(stdout); /* Merge: '/Merge' incorporates: * Constant: '/Constant' * SignalConversion generated from: '/step' * Sum: '/step inc' */ rtB.Merge = (int8_t)(rtDW.UnitDelay_DSTATE + 1); /* End of Outputs for SubSystem: '/If Action Subsystem2' */ } else { /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ IfActionSubsystem3(rtDW.UnitDelay_DSTATE, &rtB.Merge, rtDW.com_loc); /* 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' */ /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreWrite: '/Data Store Write4' * Inport: '/in_Act_Stall_Slave_Ch0' */ for (i = 0; i < 9; i++) { rtb_RelationalOperator_j[i] = (rtU.in_Act_Stall_Slave_Ch0[i] == 1); } /* End of RelationalOperator: '/Relational Operator1' */ /* Logic: '/Logical Operator2' */ tmp = rtb_RelationalOperator_j[0]; for (i = 0; i < 8; i++) { tmp = (tmp || rtb_RelationalOperator_j[i + 1]); } /* RelationalOperator: '/Relational Operator' incorporates: * DataStoreWrite: '/Data Store Write1' * Inport: '/in_CPOS_ALL_Ch0' */ for (i = 0; i < 9; i++) { rtb_RelationalOperator_j[i] = (rtU.in_CPOS_ALL_Ch0[i] == 1); } /* End of RelationalOperator: '/Relational Operator' */ /* Logic: '/Logical Operator1' */ tmp_0 = rtb_RelationalOperator_j[0]; for (i = 0; i < 8; i++) { tmp_0 = (tmp_0 || rtb_RelationalOperator_j[i + 1]); } /* If: '/If2' incorporates: * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion1' * Inport: '/in_Busy_Ch0' * Inport: '/in_Error_Connect_Ch0' * Logic: '/Logical Operator' * Logic: '/Logical Operator1' * Logic: '/Logical Operator2' */ if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0) && (tmp || tmp_0)) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataStoreWrite: '/Data Store Write1' * Inport: '/in_CPOS_ALL_Ch0' */ for (i = 0; i < 9; i++) { rtDW.Min_position_Ch0[i] = rtU.in_CPOS_ALL_Ch0[i]; } /* End of DataStoreWrite: '/Data Store Write1' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge = (int8_t)(rtDW.UnitDelay_DSTATE + 1); /* MATLAB Function: '/MIN POSITION' incorporates: * DataStoreWrite: '/Data Store Write1' * Inport: '/in_CPOS_ALL_Ch0' */ /* : y = step; */ /* : 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 ", rtU.in_CPOS_ALL_Ch0[i]); fflush(stdout); } /* : fprintf('\n'); */ printf("\n"); fflush(stdout); /* End of MATLAB Function: '/MIN POSITION' */ /* End of Outputs for SubSystem: '/If Action Subsystem2' */ } else { /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ IfActionSubsystem3(rtDW.UnitDelay_DSTATE, &rtB.Merge, rtDW.com_loc); /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If2' */ /* MATLAB Function: '/MAX POSITION' incorporates: * Inport: '/in_CPOS_ALL_Ch0' */ MAXPOSITION(rtU.in_CPOS_ALL_Ch0, rtb_y_ff); /* MATLAB Function: '/MAX POSITION1' incorporates: * Inport: '/in_Act_Stall_Slave_Ch0' */ MAXPOSITION1(rtU.in_Act_Stall_Slave_Ch0, rtb_y_b); /* 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: * Inport: '/in_Busy_Ch0' * Inport: '/in_Error_Connect_Ch0' */ if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* DataStoreWrite: '/Data Store Write' */ rtDW.pos_loc[i] = 1U; /* DataStoreWrite: '/Data Store Write1' */ rtDW.com_loc[i] = 2U; } /* MATLAB Function: '/Initial CPOS Max' */ /* : y = step; */ /* : fprintf('SIMULINK Initial CPOS Max - 1\n'); */ printf("SIMULINK Initial CPOS Max - 1\n"); fflush(stdout); /* Merge: '/Merge' incorporates: * Constant: '/Constant' * SignalConversion generated from: '/step' * Sum: '/step inc' */ rtB.Merge = (int8_t)(rtDW.UnitDelay_DSTATE + 1); /* End of Outputs for SubSystem: '/If Action Subsystem2' */ } else { /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ IfActionSubsystem3(rtDW.UnitDelay_DSTATE, &rtB.Merge, rtDW.com_loc); /* 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: * Inport: '/in_Busy_Ch0' * Inport: '/in_Error_Connect_Ch0' */ if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ for (i = 0; i < 9; i++) { /* DataStoreWrite: '/Data Store Write1' */ rtDW.stall_set_loc[i] = 1U; /* DataStoreWrite: '/Data Store Write3' incorporates: * Constant: '/Constant2' */ rtDW.lnoise_set_loc[i] = 0U; /* DataStoreWrite: '/Data Store Write2' */ rtDW.com_loc[i] = 3U; /* DataStoreWrite: '/Data Store Write4' incorporates: * Constant: '/Constant4' */ rtDW.autos_set_loc[i] = 0U; /* DataStoreWrite: '/Data Store Write5' incorporates: * Constant: '/Constant5' */ rtDW.speed_set_loc[i] = 0U; /* DataStoreWrite: '/Data Store Write6' incorporates: * Constant: '/Constant6' */ rtDW.coils_stop_set_loc[i] = 0U; /* DataStoreWrite: '/Data Store Write' */ rtDW.pos_loc[i] = 6000U; } /* MATLAB Function: '/Move to position Max' */ /* : y = step; */ /* : fprintf('SIMULINK Move to position Max - 6000\n'); */ printf("SIMULINK Move to position Max - 6000\n"); fflush(stdout); /* Merge: '/Merge' incorporates: * Constant: '/Constant' * SignalConversion generated from: '/step' * Sum: '/step inc' */ rtB.Merge = (int8_t)(rtDW.UnitDelay_DSTATE + 1); /* End of Outputs for SubSystem: '/If Action Subsystem2' */ } else { /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ IfActionSubsystem3(rtDW.UnitDelay_DSTATE, &rtB.Merge, rtDW.com_loc); /* 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' */ /* RelationalOperator: '/Relational Operator1' incorporates: * DataStoreWrite: '/Data Store Write4' * Inport: '/in_Act_Stall_Slave_Ch0' */ for (i = 0; i < 9; i++) { rtb_RelationalOperator_j[i] = (rtU.in_Act_Stall_Slave_Ch0[i] == 1); } /* End of RelationalOperator: '/Relational Operator1' */ /* Logic: '/Logical Operator2' */ tmp = rtb_RelationalOperator_j[0]; for (i = 0; i < 8; i++) { tmp = (tmp || rtb_RelationalOperator_j[i + 1]); } /* RelationalOperator: '/Relational Operator' incorporates: * DataStoreWrite: '/Data Store Write1' * Inport: '/in_CPOS_ALL_Ch0' */ for (i = 0; i < 9; i++) { rtb_RelationalOperator_j[i] = (rtU.in_CPOS_ALL_Ch0[i] == 6000); } /* End of RelationalOperator: '/Relational Operator' */ /* Logic: '/Logical Operator1' */ tmp_0 = rtb_RelationalOperator_j[0]; for (i = 0; i < 8; i++) { tmp_0 = (tmp_0 || rtb_RelationalOperator_j[i + 1]); } /* If: '/If2' incorporates: * DataTypeConversion: '/Data Type Conversion' * DataTypeConversion: '/Data Type Conversion1' * Inport: '/in_Busy_Ch0' * Inport: '/in_Error_Connect_Ch0' * Logic: '/Logical Operator' * Logic: '/Logical Operator1' * Logic: '/Logical Operator2' */ if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0) && (tmp || tmp_0)) { /* Outputs for IfAction SubSystem: '/If Action Subsystem2' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write1' incorporates: * DataStoreWrite: '/Data Store Write1' * Inport: '/in_CPOS_ALL_Ch0' */ for (i = 0; i < 9; i++) { rtDW.Max_position_Ch0[i] = rtU.in_CPOS_ALL_Ch0[i]; } /* End of DataStoreWrite: '/Data Store Write1' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant' * Sum: '/step inc' */ rtB.Merge = (int8_t)(rtDW.UnitDelay_DSTATE + 1); /* MATLAB Function: '/MIN POSITION' incorporates: * DataStoreWrite: '/Data Store Write1' * Inport: '/in_CPOS_ALL_Ch0' */ /* : y = step; */ /* : 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 ", rtU.in_CPOS_ALL_Ch0[i]); fflush(stdout); } /* : fprintf('\n'); */ printf("\n"); fflush(stdout); /* End of MATLAB Function: '/MIN POSITION' */ /* End of Outputs for SubSystem: '/If Action Subsystem2' */ } else { /* Outputs for IfAction SubSystem: '/If Action Subsystem3' incorporates: * ActionPort: '/Action Port' */ IfActionSubsystem3(rtDW.UnitDelay_DSTATE, &rtB.Merge, rtDW.com_loc); /* End of Outputs for SubSystem: '/If Action Subsystem3' */ } /* End of If: '/If2' */ /* MATLAB Function: '/MAX POSITION' incorporates: * Inport: '/in_CPOS_ALL_Ch0' */ MAXPOSITION(rtU.in_CPOS_ALL_Ch0, rtb_y_ff); /* MATLAB Function: '/MAX POSITION1' incorporates: * Inport: '/in_Act_Stall_Slave_Ch0' */ MAXPOSITION1(rtU.in_Act_Stall_Slave_Ch0, rtb_y_b); /* End of Outputs for SubSystem: '/Check Stall Max' */ break; case 9: /* Outputs for IfAction SubSystem: '/Homing' incorporates: * ActionPort: '/Action Port' */ /* DataStoreWrite: '/Data Store Write3' */ for (i = 0; i < 9; i++) { rtDW.com_loc[i] = 0U; } /* End of DataStoreWrite: '/Data Store Write3' */ /* Merge: '/Merge' incorporates: * Constant: '/Constant2' * SignalConversion generated from: '/step' */ rtB.Merge = 1; /* MATLAB Function: '/MAX POSITION' incorporates: * DataStoreRead: '/Data Store Read2' */ /* : y = step; */ /* : fprintf('SIMULINK MAX POSITION '); */ printf("SIMULINK MAX POSITION "); fflush(stdout); /* : for i = 1:numel(step) */ for (i = 0; i < 9; i++) { /* : fprintf('%d ', int16(step(i))); */ printf("%d ", rtDW.Max_position_Ch0[i]); fflush(stdout); } /* : fprintf('\n'); */ printf("\n"); fflush(stdout); /* End of MATLAB Function: '/MAX POSITION' */ /* MATLAB Function: '/MIN POSITION' incorporates: * DataStoreRead: '/Data Store Read3' */ /* : y = step; */ /* : fprintf('SIMULINK MIN POSITION '); */ printf("SIMULINK MIN POSITION "); fflush(stdout); /* : for i = 1:numel(step) */ for (i = 0; i < 9; i++) { /* : fprintf('%d ', int16(step(i))); */ printf("%d ", rtDW.Min_position_Ch0[i]); fflush(stdout); } /* : fprintf('\n'); */ printf("\n"); fflush(stdout); /* End of MATLAB Function: '/MIN POSITION' */ /* End of Outputs for SubSystem: '/Homing' */ break; case 0: /* Outputs for IfAction SubSystem: '/Homing1' incorporates: * ActionPort: '/Action Port' */ /* Merge: '/Merge' incorporates: * SignalConversion generated from: '/stepIn' */ rtB.Merge = rtDW.UnitDelay_DSTATE; /* End of Outputs for SubSystem: '/Homing1' */ break; } /* End of SwitchCase: '/Switch Case' */ /* DataStoreWrite: '/Start write stepSig' incorporates: * Constant: '/Constant1' */ rtDW.stepSig = 1; /* BusCreator: '/Bus Creator' incorporates: * 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' * DataStoreRead: '/Data Store Read9' * DataStoreWrite: '/Data Store Write' */ for (i = 0; i < 9; i++) { controllerData.POS[i] = rtDW.pos_loc[i]; controllerData.BUS_ADR[i] = rtDW.busAdr_loc[i]; controllerData.MODE[i] = rtDW.mode_loc[i]; controllerData.COM[i] = rtDW.com_loc[i]; controllerData.Stall_SET[i] = rtDW.stall_set_loc[i]; controllerData.Lnoise_SET[i] = rtDW.lnoise_set_loc[i]; controllerData.Autos_SET[i] = rtDW.autos_set_loc[i]; controllerData.Speed_SET[i] = rtDW.speed_set_loc[i]; controllerData.Coils_Stop_SET[i] = rtDW.coils_stop_set_loc[i]; } /* End of BusCreator: '/Bus Creator' */ /* Outport: '/Out1' incorporates: * DataStoreRead: '/Data Store Read10' */ rtY.Out1 = controllerData; /* Update for Switch: '/Switch' incorporates: * UnitDelay: '/Unit Delay' */ rtDW.UnitDelay_DSTATE = rtB.Merge; } /* Model initialize function */ void Model_actuator_initialize(void) { /* (no initialization code required) */ } /* Model terminate function */ void Model_actuator_terminate(void) { /* (no terminate code required) */ } /* * File trailer for generated code. * * [EOF] */