File: Top_Level_Mode_Functional.c1 /* 2 * Code generation for system model 'Top_Level_Mode_Functional' 3 * 4 * Model : Top_Level_Mode_Functional 5 * Model version : 1.1167 6 * Simulink Coder version : 8.4 (R2013a) 13-Feb-2013 7 * C source code generated on : Thu Sep 12 09:50:34 2013 8 * 9 * Note that the functions contained in this file are part of a Simulink 10 * model, and are not self-contained algorithms. 11 */ 12 13 #include "Top_Level_Mode_Functional.h" 14 #include "Top_Level_Mode_Functional_private.h" 15 16 /* Named constants for Chart: '<Root>/Top Level Mode Sub-System' */ 17 #define Top_Level_Mode_Functional_IN_Confirm_Stop ((uint8_T)1U) 18 #define Top_Level_Mode_Functional_IN_NOT_ON ((uint8_T)1U) 19 #define Top_Level_Mode_Functional_IN_NO_ACTIVE_CHILD ((uint8_T)0U) 20 #define Top_Level_Mode_Functional_IN_OFF ((uint8_T)1U) 21 #define Top_Level_Mode_Functional_IN_ON ((uint8_T)2U) 22 #define Top_Level_Mode_Functional_IN_TOP_Level_Mode ((uint8_T)2U) 23 24 /* Forward declaration for local functions */ 25 static void Top_Level_Mode_Functional_writeLog(uint8_T logEvent, 26 B_Top_Level_Mode_Functional_c_T *localB); 27 static real_T Top_Level_Mode_Functional_Step_Scaling_Factor(uint8_T inputVal); 28 29 /* Function for Chart: '<Root>/Top Level Mode Sub-System' */ 30 static void Top_Level_Mode_Functional_writeLog(uint8_T logEvent, 31 B_Top_Level_Mode_Functional_c_T *localB) 32 { 33 /* Graphical Function 'writeLog': '<S1>:4072' */ 34 /* Transition: '<S1>:4065' */ 35 localB->TLM_MODE_OUT_Log_Message_ID = logEvent; 36 } 37 38 /* Function for Chart: '<Root>/Top Level Mode Sub-System' */ 39 static real_T Top_Level_Mode_Functional_Step_Scaling_Factor(uint8_T inputVal) 40 { 41 /* Graphical Function 'Step_Scaling_Factor': '<S1>:4070' */ 42 /* Transition: '<S1>:4064' */ 43 return inputVal; 44 } 45 46 /* Initial conditions for referenced model: 'Top_Level_Mode_Functional' */ 47 void Top_Level_Mode_Functional_Init(B_Top_Level_Mode_Functional_c_T *localB, 48 DW_Top_Level_Mode_Functional_f_T *localDW) 49 { 50 /* InitializeConditions for Chart: '<Root>/Top Level Mode Sub-System' */ 51 localDW->is_TOP_Level_Mode = Top_Level_Mode_Functional_IN_NO_ACTIVE_CHILD; 52 localDW->is_Confirm_Stop = Top_Level_Mode_Functional_IN_NO_ACTIVE_CHILD; 53 localDW->is_active_c2_Top_Level_Mode_Functional = 0U; 54 localDW->is_c2_Top_Level_Mode_Functional = 55 Top_Level_Mode_Functional_IN_NO_ACTIVE_CHILD; 56 localDW->confirmStopTimer = 0.0; 57 localB->TLM_MODE_OUT_Request_Confirm_Stop = FALSE; 58 localB->TLM_MODE_OUT_Log_Message_ID = 0U; 59 } 60 61 /* Output and update for referenced model: 'Top_Level_Mode_Functional' */ 62 void Top_Level_Mode_Functional(const Operator_Commands *rtu_OP_CMD_IN, const 63 Device_Configuration_Inputs *rtu_CONST_IN, Top_Level_Mode_Outputs 64 *rty_TLM_MODE_OUT, B_Top_Level_Mode_Functional_c_T *localB, 65 DW_Top_Level_Mode_Functional_f_T *localDW) 66 { 67 boolean_T System_Stop; 68 boolean_T Cancel; 69 boolean_T TLM_MODE_OUT_System_On; 70 71 /* BusSelector: '<Root>/BusConversion_InsertedFor_OP_CMD_IN_at_outport_0' */ 72 System_Stop = rtu_OP_CMD_IN->System_Stop; 73 Cancel = rtu_OP_CMD_IN->Cancel; 74 75 /* Chart: '<Root>/Top Level Mode Sub-System' incorporates: 76 * BusSelector: '<Root>/BusConversion_InsertedFor_CONST_IN_at_outport_0' 77 * BusSelector: '<Root>/BusConversion_InsertedFor_OP_CMD_IN_at_outport_0' 78 */ 79 /* Gateway: Top Level Mode Sub-System */ 80 /* During: Top Level Mode Sub-System */ 81 if (localDW->is_active_c2_Top_Level_Mode_Functional == 0U) { 82 /* Entry: Top Level Mode Sub-System */ 83 localDW->is_active_c2_Top_Level_Mode_Functional = 1U; 84 85 /* Entry Internal: Top Level Mode Sub-System */ 86 if (rtu_OP_CMD_IN->System_Start) { 87 /* Transition: '<S1>:4040' */ 88 localDW->is_c2_Top_Level_Mode_Functional = 89 Top_Level_Mode_Functional_IN_TOP_Level_Mode; 90 91 /* Entry 'TOP_Level_Mode': '<S1>:4024' */ 92 TLM_MODE_OUT_System_On = TRUE; 93 94 /* Entry Internal 'TOP_Level_Mode': '<S1>:4024' */ 95 /* Transition: '<S1>:4056' */ 96 localDW->is_TOP_Level_Mode = Top_Level_Mode_Functional_IN_Confirm_Stop; 97 98 /* Entry Internal 'Confirm_Stop': '<S1>:4050' */ 99 if (rtu_OP_CMD_IN->System_Stop) { 100 /* Transition: '<S1>:4057' */ 101 localDW->is_Confirm_Stop = Top_Level_Mode_Functional_IN_ON; 102 103 /* Entry 'ON': '<S1>:4055' */ 104 localB->TLM_MODE_OUT_Request_Confirm_Stop = TRUE; 105 localDW->confirmStopTimer++; 106 } else { 107 /* Transition: '<S1>:4051' */ 108 localDW->is_Confirm_Stop = Top_Level_Mode_Functional_IN_OFF; 109 110 /* Entry 'OFF': '<S1>:4054' */ 111 localB->TLM_MODE_OUT_Request_Confirm_Stop = FALSE; 112 localDW->confirmStopTimer = 0.0; 113 } 114 } else { 115 /* Transition: '<S1>:4038' */ 116 localDW->is_c2_Top_Level_Mode_Functional = 117 Top_Level_Mode_Functional_IN_NOT_ON; 118 119 /* Entry 'NOT_ON': '<S1>:4034' */ 120 TLM_MODE_OUT_System_On = FALSE; 121 } 122 } else if (localDW->is_c2_Top_Level_Mode_Functional == 123 Top_Level_Mode_Functional_IN_NOT_ON) { 124 /* During 'NOT_ON': '<S1>:4034' */ 125 if (rtu_OP_CMD_IN->System_Start) { 126 /* Transition: '<S1>:4042' */ 127 Top_Level_Mode_Functional_writeLog(1U, localB); 128 129 /* Exit 'NOT_ON': '<S1>:4034' */ 130 localDW->is_c2_Top_Level_Mode_Functional = 131 Top_Level_Mode_Functional_IN_TOP_Level_Mode; 132 133 /* Entry 'TOP_Level_Mode': '<S1>:4024' */ 134 TLM_MODE_OUT_System_On = TRUE; 135 136 /* Entry Internal 'TOP_Level_Mode': '<S1>:4024' */ 137 /* Transition: '<S1>:4056' */ 138 localDW->is_TOP_Level_Mode = Top_Level_Mode_Functional_IN_Confirm_Stop; 139 140 /* Entry Internal 'Confirm_Stop': '<S1>:4050' */ 141 if (System_Stop) { 142 /* Transition: '<S1>:4057' */ 143 localDW->is_Confirm_Stop = Top_Level_Mode_Functional_IN_ON; 144 145 /* Entry 'ON': '<S1>:4055' */ 146 localB->TLM_MODE_OUT_Request_Confirm_Stop = TRUE; 147 localDW->confirmStopTimer++; 148 } else { 149 /* Transition: '<S1>:4051' */ 150 localDW->is_Confirm_Stop = Top_Level_Mode_Functional_IN_OFF; 151 152 /* Entry 'OFF': '<S1>:4054' */ 153 localB->TLM_MODE_OUT_Request_Confirm_Stop = FALSE; 154 localDW->confirmStopTimer = 0.0; 155 } 156 } else { 157 TLM_MODE_OUT_System_On = FALSE; 158 } 159 } else { 160 /* During 'TOP_Level_Mode': '<S1>:4024' */ 161 TLM_MODE_OUT_System_On = TRUE; 162 163 /* During 'Confirm_Stop': '<S1>:4050' */ 164 if (localDW->is_Confirm_Stop == Top_Level_Mode_Functional_IN_OFF) { 165 /* During 'OFF': '<S1>:4054' */ 166 if (rtu_OP_CMD_IN->System_Stop) { 167 /* Transition: '<S1>:4052' */ 168 localDW->is_Confirm_Stop = Top_Level_Mode_Functional_IN_ON; 169 170 /* Entry 'ON': '<S1>:4055' */ 171 localB->TLM_MODE_OUT_Request_Confirm_Stop = TRUE; 172 localDW->confirmStopTimer++; 173 } 174 } else { 175 /* During 'ON': '<S1>:4055' */ 176 if (!rtu_OP_CMD_IN->System_Start) { 177 /* Transition: '<S1>:4039' */ 178 Top_Level_Mode_Functional_writeLog(2U, localB); 179 180 /* Exit Internal 'TOP_Level_Mode': '<S1>:4024' */ 181 /* Exit Internal 'Confirm_Stop': '<S1>:4050' */ 182 localDW->is_Confirm_Stop = Top_Level_Mode_Functional_IN_NO_ACTIVE_CHILD; 183 localDW->is_TOP_Level_Mode = 184 Top_Level_Mode_Functional_IN_NO_ACTIVE_CHILD; 185 186 /* Exit 'TOP_Level_Mode': '<S1>:4024' */ 187 localDW->is_c2_Top_Level_Mode_Functional = 188 Top_Level_Mode_Functional_IN_NOT_ON; 189 190 /* Entry 'NOT_ON': '<S1>:4034' */ 191 TLM_MODE_OUT_System_On = FALSE; 192 } else { 193 if (Cancel || (localDW->confirmStopTimer > 194 Top_Level_Mode_Functional_Step_Scaling_Factor 195 (rtu_CONST_IN->Max_Confirm_Stop_Duration))) { 196 /* Transition: '<S1>:4053' */ 197 localDW->is_Confirm_Stop = Top_Level_Mode_Functional_IN_OFF; 198 199 /* Entry 'OFF': '<S1>:4054' */ 200 localB->TLM_MODE_OUT_Request_Confirm_Stop = FALSE; 201 localDW->confirmStopTimer = 0.0; 202 } else { 203 localDW->confirmStopTimer++; 204 } 205 } 206 } 207 } 208 209 /* End of Chart: '<Root>/Top Level Mode Sub-System' */ 210 211 /* BusCreator: '<Root>/BusConversion_InsertedFor_TLM_MODE_OUT_at_inport_0' */ 212 rty_TLM_MODE_OUT->System_On = TLM_MODE_OUT_System_On; 213 rty_TLM_MODE_OUT->Request_Confirm_Stop = 214 localB->TLM_MODE_OUT_Request_Confirm_Stop; 215 rty_TLM_MODE_OUT->Log_Message_ID = localB->TLM_MODE_OUT_Log_Message_ID; 216 } 217 218 /* Model initialize function */ 219 void Top_Level_Mode_Functional_initialize(const char_T **rt_errorStatus, 220 RT_MODEL_Top_Level_Mode_Functional_T *const Top_Level_Mode_Functional_M, 221 B_Top_Level_Mode_Functional_c_T *localB, DW_Top_Level_Mode_Functional_f_T 222 *localDW) 223 { 224 /* Registration code */ 225 226 /* initialize error status */ 227 rtmSetErrorStatusPointer(Top_Level_Mode_Functional_M, rt_errorStatus); 228 229 /* block I/O */ 230 (void) memset(((void *) localB), 0, 231 sizeof(B_Top_Level_Mode_Functional_c_T)); 232 233 /* states (dwork) */ 234 (void) memset((void *)localDW, 0, 235 sizeof(DW_Top_Level_Mode_Functional_f_T)); 236 } 237 |