Test program for master controller
Dependencies: Controller_Master mbed
Controller_Master.c@0:ae1df001727e, 2016-06-04 (annotated)
- Committer:
- AndreaAndreoli
- Date:
- Sat Jun 04 16:58:50 2016 +0000
- Revision:
- 0:ae1df001727e
First commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AndreaAndreoli | 0:ae1df001727e | 1 | /* |
AndreaAndreoli | 0:ae1df001727e | 2 | * Academic License - for use in teaching, academic research, and meeting |
AndreaAndreoli | 0:ae1df001727e | 3 | * course requirements at degree granting institutions only. Not for |
AndreaAndreoli | 0:ae1df001727e | 4 | * government, commercial, or other organizational use. |
AndreaAndreoli | 0:ae1df001727e | 5 | * |
AndreaAndreoli | 0:ae1df001727e | 6 | * File: Controller_Master.c |
AndreaAndreoli | 0:ae1df001727e | 7 | * |
AndreaAndreoli | 0:ae1df001727e | 8 | * Code generated for Simulink model 'Controller_Master'. |
AndreaAndreoli | 0:ae1df001727e | 9 | * |
AndreaAndreoli | 0:ae1df001727e | 10 | * Model version : 1.0 |
AndreaAndreoli | 0:ae1df001727e | 11 | * Simulink Coder version : 8.10 (R2016a) 10-Feb-2016 |
AndreaAndreoli | 0:ae1df001727e | 12 | * C/C++ source code generated on : Sat Jun 04 17:59:52 2016 |
AndreaAndreoli | 0:ae1df001727e | 13 | * |
AndreaAndreoli | 0:ae1df001727e | 14 | * Target selection: ert.tlc |
AndreaAndreoli | 0:ae1df001727e | 15 | * Embedded hardware selection: NXP->Cortex-M4 |
AndreaAndreoli | 0:ae1df001727e | 16 | * Code generation objectives: Unspecified |
AndreaAndreoli | 0:ae1df001727e | 17 | * Validation result: Not run |
AndreaAndreoli | 0:ae1df001727e | 18 | */ |
AndreaAndreoli | 0:ae1df001727e | 19 | |
AndreaAndreoli | 0:ae1df001727e | 20 | #include "Controller_Master.h" |
AndreaAndreoli | 0:ae1df001727e | 21 | |
AndreaAndreoli | 0:ae1df001727e | 22 | /* Named constants for Chart: '<S1>/AEB' */ |
AndreaAndreoli | 0:ae1df001727e | 23 | #define Controller_M_IN_NO_ACTIVE_CHILD ((uint8_T)0U) |
AndreaAndreoli | 0:ae1df001727e | 24 | #define Controller_Master_IN_ACTIVE ((uint8_T)1U) |
AndreaAndreoli | 0:ae1df001727e | 25 | #define Controller_Master_IN_BRAKE ((uint8_T)1U) |
AndreaAndreoli | 0:ae1df001727e | 26 | #define Controller_Master_IN_ERR ((uint8_T)1U) |
AndreaAndreoli | 0:ae1df001727e | 27 | #define Controller_Master_IN_IDLE ((uint8_T)2U) |
AndreaAndreoli | 0:ae1df001727e | 28 | #define Controller_Master_IN_OK ((uint8_T)2U) |
AndreaAndreoli | 0:ae1df001727e | 29 | #define Controller_Master_IN_READY ((uint8_T)2U) |
AndreaAndreoli | 0:ae1df001727e | 30 | #define Controller_Master_IN_WARNING ((uint8_T)3U) |
AndreaAndreoli | 0:ae1df001727e | 31 | |
AndreaAndreoli | 0:ae1df001727e | 32 | /* Named constants for Chart: '<S1>/select_command' */ |
AndreaAndreoli | 0:ae1df001727e | 33 | #define Controller_Master_IN_BLINK ((uint8_T)1U) |
AndreaAndreoli | 0:ae1df001727e | 34 | #define Controller_Master_IN_BLINK_OFF ((uint8_T)1U) |
AndreaAndreoli | 0:ae1df001727e | 35 | #define Controller_Master_IN_BLINK_ON ((uint8_T)2U) |
AndreaAndreoli | 0:ae1df001727e | 36 | #define Controller_Master_IN_OFF1 ((uint8_T)2U) |
AndreaAndreoli | 0:ae1df001727e | 37 | #define Controller_Master_IN_ON ((uint8_T)3U) |
AndreaAndreoli | 0:ae1df001727e | 38 | |
AndreaAndreoli | 0:ae1df001727e | 39 | /*===========* |
AndreaAndreoli | 0:ae1df001727e | 40 | * Constants * |
AndreaAndreoli | 0:ae1df001727e | 41 | *===========*/ |
AndreaAndreoli | 0:ae1df001727e | 42 | #define RT_PI 3.14159265358979323846 |
AndreaAndreoli | 0:ae1df001727e | 43 | #define RT_PIF 3.1415927F |
AndreaAndreoli | 0:ae1df001727e | 44 | #define RT_LN_10 2.30258509299404568402 |
AndreaAndreoli | 0:ae1df001727e | 45 | #define RT_LN_10F 2.3025851F |
AndreaAndreoli | 0:ae1df001727e | 46 | #define RT_LOG10E 0.43429448190325182765 |
AndreaAndreoli | 0:ae1df001727e | 47 | #define RT_LOG10EF 0.43429449F |
AndreaAndreoli | 0:ae1df001727e | 48 | #define RT_E 2.7182818284590452354 |
AndreaAndreoli | 0:ae1df001727e | 49 | #define RT_EF 2.7182817F |
AndreaAndreoli | 0:ae1df001727e | 50 | |
AndreaAndreoli | 0:ae1df001727e | 51 | /* |
AndreaAndreoli | 0:ae1df001727e | 52 | * UNUSED_PARAMETER(x) |
AndreaAndreoli | 0:ae1df001727e | 53 | * Used to specify that a function parameter (argument) is required but not |
AndreaAndreoli | 0:ae1df001727e | 54 | * accessed by the function body. |
AndreaAndreoli | 0:ae1df001727e | 55 | */ |
AndreaAndreoli | 0:ae1df001727e | 56 | #ifndef UNUSED_PARAMETER |
AndreaAndreoli | 0:ae1df001727e | 57 | # if defined(__LCC__) |
AndreaAndreoli | 0:ae1df001727e | 58 | # define UNUSED_PARAMETER(x) /* do nothing */ |
AndreaAndreoli | 0:ae1df001727e | 59 | # else |
AndreaAndreoli | 0:ae1df001727e | 60 | |
AndreaAndreoli | 0:ae1df001727e | 61 | /* |
AndreaAndreoli | 0:ae1df001727e | 62 | * This is the semi-ANSI standard way of indicating that an |
AndreaAndreoli | 0:ae1df001727e | 63 | * unused function parameter is required. |
AndreaAndreoli | 0:ae1df001727e | 64 | */ |
AndreaAndreoli | 0:ae1df001727e | 65 | # define UNUSED_PARAMETER(x) (void) (x) |
AndreaAndreoli | 0:ae1df001727e | 66 | # endif |
AndreaAndreoli | 0:ae1df001727e | 67 | #endif |
AndreaAndreoli | 0:ae1df001727e | 68 | |
AndreaAndreoli | 0:ae1df001727e | 69 | /* Model step function */ |
AndreaAndreoli | 0:ae1df001727e | 70 | void Controller_Master_step(RT_MODEL_Controller_Master_T *const |
AndreaAndreoli | 0:ae1df001727e | 71 | Controller_Master_M, real_T Controller_Master_U_V, real_T |
AndreaAndreoli | 0:ae1df001727e | 72 | Controller_Master_U_D_M, uint8_T Controller_Master_U_Slave, uint8_T |
AndreaAndreoli | 0:ae1df001727e | 73 | *Controller_Master_Y_BRAKE, uint8_T *Controller_Master_Y_LED_BLUE, uint8_T |
AndreaAndreoli | 0:ae1df001727e | 74 | *Controller_Master_Y_LED_RED, uint8_T *Controller_Master_Y_MASTER) |
AndreaAndreoli | 0:ae1df001727e | 75 | { |
AndreaAndreoli | 0:ae1df001727e | 76 | B_Controller_Master_T *Controller_Master_B = ((B_Controller_Master_T *) |
AndreaAndreoli | 0:ae1df001727e | 77 | Controller_Master_M->ModelData.blockIO); |
AndreaAndreoli | 0:ae1df001727e | 78 | DW_Controller_Master_T *Controller_Master_DW = ((DW_Controller_Master_T *) |
AndreaAndreoli | 0:ae1df001727e | 79 | Controller_Master_M->ModelData.dwork); |
AndreaAndreoli | 0:ae1df001727e | 80 | real_T K; |
AndreaAndreoli | 0:ae1df001727e | 81 | |
AndreaAndreoli | 0:ae1df001727e | 82 | /* Outputs for Atomic SubSystem: '<Root>/Controller_Master' */ |
AndreaAndreoli | 0:ae1df001727e | 83 | /* Chart: '<S1>/AEB' incorporates: |
AndreaAndreoli | 0:ae1df001727e | 84 | * Inport: '<Root>/D_M' |
AndreaAndreoli | 0:ae1df001727e | 85 | * Inport: '<Root>/V' |
AndreaAndreoli | 0:ae1df001727e | 86 | * Memory: '<S1>/Memory' |
AndreaAndreoli | 0:ae1df001727e | 87 | */ |
AndreaAndreoli | 0:ae1df001727e | 88 | /* Gateway: Controller_Master/AEB */ |
AndreaAndreoli | 0:ae1df001727e | 89 | /* During: Controller_Master/AEB */ |
AndreaAndreoli | 0:ae1df001727e | 90 | if (Controller_Master_DW->is_active_c3_Controller_Master == 0U) { |
AndreaAndreoli | 0:ae1df001727e | 91 | /* Entry: Controller_Master/AEB */ |
AndreaAndreoli | 0:ae1df001727e | 92 | Controller_Master_DW->is_active_c3_Controller_Master = 1U; |
AndreaAndreoli | 0:ae1df001727e | 93 | |
AndreaAndreoli | 0:ae1df001727e | 94 | /* Entry Internal: Controller_Master/AEB */ |
AndreaAndreoli | 0:ae1df001727e | 95 | /* Entry Internal 'AEB': '<S2>:35' */ |
AndreaAndreoli | 0:ae1df001727e | 96 | /* Entry Internal 'ERRORS_CHECK_THREAD': '<S2>:33' */ |
AndreaAndreoli | 0:ae1df001727e | 97 | /* Transition: '<S2>:38' */ |
AndreaAndreoli | 0:ae1df001727e | 98 | Controller_Master_DW->is_ERRORS_CHECK_THREAD = Controller_Master_IN_OK; |
AndreaAndreoli | 0:ae1df001727e | 99 | |
AndreaAndreoli | 0:ae1df001727e | 100 | /* Outport: '<Root>/LED_RED' */ |
AndreaAndreoli | 0:ae1df001727e | 101 | /* Entry 'OK': '<S2>:37' */ |
AndreaAndreoli | 0:ae1df001727e | 102 | /* '<S2>:37:1' Led_Red =uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 103 | *Controller_Master_Y_LED_RED = 0U; |
AndreaAndreoli | 0:ae1df001727e | 104 | |
AndreaAndreoli | 0:ae1df001727e | 105 | /* Outport: '<Root>/MASTER' */ |
AndreaAndreoli | 0:ae1df001727e | 106 | /* '<S2>:37:1' Master = uint8(1); */ |
AndreaAndreoli | 0:ae1df001727e | 107 | *Controller_Master_Y_MASTER = 1U; |
AndreaAndreoli | 0:ae1df001727e | 108 | |
AndreaAndreoli | 0:ae1df001727e | 109 | /* Entry Internal 'APPLICATION_THREAD': '<S2>:32' */ |
AndreaAndreoli | 0:ae1df001727e | 110 | /* Transition: '<S2>:27' */ |
AndreaAndreoli | 0:ae1df001727e | 111 | Controller_Master_DW->is_APPLICATION_THREAD = Controller_Master_IN_READY; |
AndreaAndreoli | 0:ae1df001727e | 112 | |
AndreaAndreoli | 0:ae1df001727e | 113 | /* Outport: '<Root>/BRAKE' */ |
AndreaAndreoli | 0:ae1df001727e | 114 | /* Entry 'READY': '<S2>:21' */ |
AndreaAndreoli | 0:ae1df001727e | 115 | /* '<S2>:21:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 116 | *Controller_Master_Y_BRAKE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 117 | |
AndreaAndreoli | 0:ae1df001727e | 118 | /* '<S2>:21:1' Led_Blue = 0; */ |
AndreaAndreoli | 0:ae1df001727e | 119 | Controller_Master_B->Led_Blue = 0.0; |
AndreaAndreoli | 0:ae1df001727e | 120 | } else { |
AndreaAndreoli | 0:ae1df001727e | 121 | /* During 'AEB': '<S2>:35' */ |
AndreaAndreoli | 0:ae1df001727e | 122 | /* During 'ERRORS_CHECK_THREAD': '<S2>:33' */ |
AndreaAndreoli | 0:ae1df001727e | 123 | if (Controller_Master_DW->is_ERRORS_CHECK_THREAD != Controller_Master_IN_ERR) |
AndreaAndreoli | 0:ae1df001727e | 124 | { |
AndreaAndreoli | 0:ae1df001727e | 125 | /* During 'OK': '<S2>:37' */ |
AndreaAndreoli | 0:ae1df001727e | 126 | /* '<S2>:46:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 127 | /* '<S2>:46:1' V > 180 || D > 200 || D < 0; */ |
AndreaAndreoli | 0:ae1df001727e | 128 | if ((Controller_Master_U_V > 180.0) || (Controller_Master_U_D_M > 200.0) || |
AndreaAndreoli | 0:ae1df001727e | 129 | (Controller_Master_U_D_M < 0.0)) { |
AndreaAndreoli | 0:ae1df001727e | 130 | /* Transition: '<S2>:46' */ |
AndreaAndreoli | 0:ae1df001727e | 131 | Controller_Master_DW->is_ERRORS_CHECK_THREAD = Controller_Master_IN_ERR; |
AndreaAndreoli | 0:ae1df001727e | 132 | |
AndreaAndreoli | 0:ae1df001727e | 133 | /* Outport: '<Root>/LED_RED' */ |
AndreaAndreoli | 0:ae1df001727e | 134 | /* Entry 'ERR': '<S2>:42' */ |
AndreaAndreoli | 0:ae1df001727e | 135 | /* '<S2>:42:1' Led_Red = uint8(1); */ |
AndreaAndreoli | 0:ae1df001727e | 136 | *Controller_Master_Y_LED_RED = 1U; |
AndreaAndreoli | 0:ae1df001727e | 137 | |
AndreaAndreoli | 0:ae1df001727e | 138 | /* Outport: '<Root>/MASTER' */ |
AndreaAndreoli | 0:ae1df001727e | 139 | /* Entry 'SENSOR_ERR': '<S2>:39' */ |
AndreaAndreoli | 0:ae1df001727e | 140 | /* '<S2>:39:1' Master = uint8(0) ; */ |
AndreaAndreoli | 0:ae1df001727e | 141 | /* '<S2>:39:1' En = false; */ |
AndreaAndreoli | 0:ae1df001727e | 142 | /* '<S2>:39:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 143 | /* '<S2>:39:3' Led_Blue = 0; */ |
AndreaAndreoli | 0:ae1df001727e | 144 | /* Entry 'MCU_ERR': '<S2>:40' */ |
AndreaAndreoli | 0:ae1df001727e | 145 | /* '<S2>:40:1' Master = uint8(0) ; */ |
AndreaAndreoli | 0:ae1df001727e | 146 | *Controller_Master_Y_MASTER = 0U; |
AndreaAndreoli | 0:ae1df001727e | 147 | |
AndreaAndreoli | 0:ae1df001727e | 148 | /* '<S2>:40:1' En = false; */ |
AndreaAndreoli | 0:ae1df001727e | 149 | Controller_Master_DW->En = false; |
AndreaAndreoli | 0:ae1df001727e | 150 | |
AndreaAndreoli | 0:ae1df001727e | 151 | /* Outport: '<Root>/BRAKE' */ |
AndreaAndreoli | 0:ae1df001727e | 152 | /* '<S2>:40:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 153 | *Controller_Master_Y_BRAKE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 154 | |
AndreaAndreoli | 0:ae1df001727e | 155 | /* '<S2>:40:3' Led_Blue = 0; */ |
AndreaAndreoli | 0:ae1df001727e | 156 | Controller_Master_B->Led_Blue = 0.0; |
AndreaAndreoli | 0:ae1df001727e | 157 | } else { |
AndreaAndreoli | 0:ae1df001727e | 158 | /* '<S2>:43:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 159 | /* '<S2>:43:1' D == 0; */ |
AndreaAndreoli | 0:ae1df001727e | 160 | if (Controller_Master_U_D_M == 0.0) { |
AndreaAndreoli | 0:ae1df001727e | 161 | /* Transition: '<S2>:43' */ |
AndreaAndreoli | 0:ae1df001727e | 162 | Controller_Master_DW->is_ERRORS_CHECK_THREAD = |
AndreaAndreoli | 0:ae1df001727e | 163 | Controller_Master_IN_ERR; |
AndreaAndreoli | 0:ae1df001727e | 164 | |
AndreaAndreoli | 0:ae1df001727e | 165 | /* Outport: '<Root>/LED_RED' */ |
AndreaAndreoli | 0:ae1df001727e | 166 | /* Entry 'ERR': '<S2>:42' */ |
AndreaAndreoli | 0:ae1df001727e | 167 | /* '<S2>:42:1' Led_Red = uint8(1); */ |
AndreaAndreoli | 0:ae1df001727e | 168 | *Controller_Master_Y_LED_RED = 1U; |
AndreaAndreoli | 0:ae1df001727e | 169 | |
AndreaAndreoli | 0:ae1df001727e | 170 | /* Outport: '<Root>/MASTER' */ |
AndreaAndreoli | 0:ae1df001727e | 171 | /* Entry 'SENSOR_ERR': '<S2>:39' */ |
AndreaAndreoli | 0:ae1df001727e | 172 | /* '<S2>:39:1' Master = uint8(0) ; */ |
AndreaAndreoli | 0:ae1df001727e | 173 | /* '<S2>:39:1' En = false; */ |
AndreaAndreoli | 0:ae1df001727e | 174 | /* '<S2>:39:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 175 | /* '<S2>:39:3' Led_Blue = 0; */ |
AndreaAndreoli | 0:ae1df001727e | 176 | /* Entry 'MCU_ERR': '<S2>:40' */ |
AndreaAndreoli | 0:ae1df001727e | 177 | /* '<S2>:40:1' Master = uint8(0) ; */ |
AndreaAndreoli | 0:ae1df001727e | 178 | *Controller_Master_Y_MASTER = 0U; |
AndreaAndreoli | 0:ae1df001727e | 179 | |
AndreaAndreoli | 0:ae1df001727e | 180 | /* '<S2>:40:1' En = false; */ |
AndreaAndreoli | 0:ae1df001727e | 181 | Controller_Master_DW->En = false; |
AndreaAndreoli | 0:ae1df001727e | 182 | |
AndreaAndreoli | 0:ae1df001727e | 183 | /* Outport: '<Root>/BRAKE' */ |
AndreaAndreoli | 0:ae1df001727e | 184 | /* '<S2>:40:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 185 | *Controller_Master_Y_BRAKE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 186 | |
AndreaAndreoli | 0:ae1df001727e | 187 | /* '<S2>:40:3' Led_Blue = 0; */ |
AndreaAndreoli | 0:ae1df001727e | 188 | Controller_Master_B->Led_Blue = 0.0; |
AndreaAndreoli | 0:ae1df001727e | 189 | } else { |
AndreaAndreoli | 0:ae1df001727e | 190 | /* '<S2>:45:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 191 | /* '<S2>:45:1' Slave ~= 1; */ |
AndreaAndreoli | 0:ae1df001727e | 192 | if (Controller_Master_DW->Memory_PreviousInput != 1) { |
AndreaAndreoli | 0:ae1df001727e | 193 | /* Transition: '<S2>:45' */ |
AndreaAndreoli | 0:ae1df001727e | 194 | Controller_Master_DW->is_ERRORS_CHECK_THREAD = |
AndreaAndreoli | 0:ae1df001727e | 195 | Controller_Master_IN_ERR; |
AndreaAndreoli | 0:ae1df001727e | 196 | |
AndreaAndreoli | 0:ae1df001727e | 197 | /* Outport: '<Root>/LED_RED' */ |
AndreaAndreoli | 0:ae1df001727e | 198 | /* Entry 'ERR': '<S2>:42' */ |
AndreaAndreoli | 0:ae1df001727e | 199 | /* '<S2>:42:1' Led_Red = uint8(1); */ |
AndreaAndreoli | 0:ae1df001727e | 200 | *Controller_Master_Y_LED_RED = 1U; |
AndreaAndreoli | 0:ae1df001727e | 201 | |
AndreaAndreoli | 0:ae1df001727e | 202 | /* Outport: '<Root>/MASTER' */ |
AndreaAndreoli | 0:ae1df001727e | 203 | /* Entry 'SENSOR_ERR': '<S2>:39' */ |
AndreaAndreoli | 0:ae1df001727e | 204 | /* '<S2>:39:1' Master = uint8(0) ; */ |
AndreaAndreoli | 0:ae1df001727e | 205 | /* '<S2>:39:1' En = false; */ |
AndreaAndreoli | 0:ae1df001727e | 206 | /* '<S2>:39:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 207 | /* '<S2>:39:3' Led_Blue = 0; */ |
AndreaAndreoli | 0:ae1df001727e | 208 | /* Entry 'MCU_ERR': '<S2>:40' */ |
AndreaAndreoli | 0:ae1df001727e | 209 | /* '<S2>:40:1' Master = uint8(0) ; */ |
AndreaAndreoli | 0:ae1df001727e | 210 | *Controller_Master_Y_MASTER = 0U; |
AndreaAndreoli | 0:ae1df001727e | 211 | |
AndreaAndreoli | 0:ae1df001727e | 212 | /* '<S2>:40:1' En = false; */ |
AndreaAndreoli | 0:ae1df001727e | 213 | Controller_Master_DW->En = false; |
AndreaAndreoli | 0:ae1df001727e | 214 | |
AndreaAndreoli | 0:ae1df001727e | 215 | /* Outport: '<Root>/BRAKE' */ |
AndreaAndreoli | 0:ae1df001727e | 216 | /* '<S2>:40:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 217 | *Controller_Master_Y_BRAKE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 218 | |
AndreaAndreoli | 0:ae1df001727e | 219 | /* '<S2>:40:3' Led_Blue = 0; */ |
AndreaAndreoli | 0:ae1df001727e | 220 | Controller_Master_B->Led_Blue = 0.0; |
AndreaAndreoli | 0:ae1df001727e | 221 | } |
AndreaAndreoli | 0:ae1df001727e | 222 | } |
AndreaAndreoli | 0:ae1df001727e | 223 | } |
AndreaAndreoli | 0:ae1df001727e | 224 | } else { |
AndreaAndreoli | 0:ae1df001727e | 225 | /* During 'ERR': '<S2>:42' */ |
AndreaAndreoli | 0:ae1df001727e | 226 | /* During 'SENSOR_ERR': '<S2>:39' */ |
AndreaAndreoli | 0:ae1df001727e | 227 | /* During 'MCU_ERR': '<S2>:40' */ |
AndreaAndreoli | 0:ae1df001727e | 228 | /* During 'SLAVE_ERR': '<S2>:41' */ |
AndreaAndreoli | 0:ae1df001727e | 229 | } |
AndreaAndreoli | 0:ae1df001727e | 230 | |
AndreaAndreoli | 0:ae1df001727e | 231 | /* During 'APPLICATION_THREAD': '<S2>:32' */ |
AndreaAndreoli | 0:ae1df001727e | 232 | if (Controller_Master_DW->is_APPLICATION_THREAD == |
AndreaAndreoli | 0:ae1df001727e | 233 | Controller_Master_IN_ACTIVE) { |
AndreaAndreoli | 0:ae1df001727e | 234 | /* During 'ACTIVE': '<S2>:1' */ |
AndreaAndreoli | 0:ae1df001727e | 235 | /* '<S2>:26:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 236 | /* '<S2>:26:1' En == false; */ |
AndreaAndreoli | 0:ae1df001727e | 237 | if (!Controller_Master_DW->En) { |
AndreaAndreoli | 0:ae1df001727e | 238 | /* Transition: '<S2>:26' */ |
AndreaAndreoli | 0:ae1df001727e | 239 | /* Exit Internal 'ACTIVE': '<S2>:1' */ |
AndreaAndreoli | 0:ae1df001727e | 240 | Controller_Master_DW->is_ACTIVE = Controller_M_IN_NO_ACTIVE_CHILD; |
AndreaAndreoli | 0:ae1df001727e | 241 | Controller_Master_DW->is_APPLICATION_THREAD = Controller_Master_IN_READY; |
AndreaAndreoli | 0:ae1df001727e | 242 | |
AndreaAndreoli | 0:ae1df001727e | 243 | /* Outport: '<Root>/BRAKE' */ |
AndreaAndreoli | 0:ae1df001727e | 244 | /* Entry 'READY': '<S2>:21' */ |
AndreaAndreoli | 0:ae1df001727e | 245 | /* '<S2>:21:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 246 | *Controller_Master_Y_BRAKE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 247 | |
AndreaAndreoli | 0:ae1df001727e | 248 | /* '<S2>:21:1' Led_Blue = 0; */ |
AndreaAndreoli | 0:ae1df001727e | 249 | Controller_Master_B->Led_Blue = 0.0; |
AndreaAndreoli | 0:ae1df001727e | 250 | } else { |
AndreaAndreoli | 0:ae1df001727e | 251 | /* '<S2>:1:1' K = (V^2)/D; */ |
AndreaAndreoli | 0:ae1df001727e | 252 | K = Controller_Master_U_V * Controller_Master_U_V / |
AndreaAndreoli | 0:ae1df001727e | 253 | Controller_Master_U_D_M; |
AndreaAndreoli | 0:ae1df001727e | 254 | switch (Controller_Master_DW->is_ACTIVE) { |
AndreaAndreoli | 0:ae1df001727e | 255 | case Controller_Master_IN_BRAKE: |
AndreaAndreoli | 0:ae1df001727e | 256 | /* During 'BRAKE': '<S2>:3' */ |
AndreaAndreoli | 0:ae1df001727e | 257 | /* '<S2>:10:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 258 | /* '<S2>:10:1' K < 100; */ |
AndreaAndreoli | 0:ae1df001727e | 259 | if (K < 100.0) { |
AndreaAndreoli | 0:ae1df001727e | 260 | /* Transition: '<S2>:10' */ |
AndreaAndreoli | 0:ae1df001727e | 261 | Controller_Master_DW->is_ACTIVE = Controller_Master_IN_WARNING; |
AndreaAndreoli | 0:ae1df001727e | 262 | |
AndreaAndreoli | 0:ae1df001727e | 263 | /* Outport: '<Root>/BRAKE' */ |
AndreaAndreoli | 0:ae1df001727e | 264 | /* Entry 'WARNING': '<S2>:5' */ |
AndreaAndreoli | 0:ae1df001727e | 265 | /* '<S2>:5:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 266 | *Controller_Master_Y_BRAKE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 267 | } |
AndreaAndreoli | 0:ae1df001727e | 268 | break; |
AndreaAndreoli | 0:ae1df001727e | 269 | |
AndreaAndreoli | 0:ae1df001727e | 270 | case Controller_Master_IN_IDLE: |
AndreaAndreoli | 0:ae1df001727e | 271 | /* During 'IDLE': '<S2>:6' */ |
AndreaAndreoli | 0:ae1df001727e | 272 | /* '<S2>:12:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 273 | /* '<S2>:12:1' K >= 70; */ |
AndreaAndreoli | 0:ae1df001727e | 274 | if (K >= 70.0) { |
AndreaAndreoli | 0:ae1df001727e | 275 | /* Transition: '<S2>:12' */ |
AndreaAndreoli | 0:ae1df001727e | 276 | Controller_Master_DW->is_ACTIVE = Controller_Master_IN_WARNING; |
AndreaAndreoli | 0:ae1df001727e | 277 | |
AndreaAndreoli | 0:ae1df001727e | 278 | /* Outport: '<Root>/BRAKE' */ |
AndreaAndreoli | 0:ae1df001727e | 279 | /* Entry 'WARNING': '<S2>:5' */ |
AndreaAndreoli | 0:ae1df001727e | 280 | /* '<S2>:5:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 281 | *Controller_Master_Y_BRAKE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 282 | } |
AndreaAndreoli | 0:ae1df001727e | 283 | break; |
AndreaAndreoli | 0:ae1df001727e | 284 | |
AndreaAndreoli | 0:ae1df001727e | 285 | default: |
AndreaAndreoli | 0:ae1df001727e | 286 | /* During 'WARNING': '<S2>:5' */ |
AndreaAndreoli | 0:ae1df001727e | 287 | /* '<S2>:9:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 288 | /* '<S2>:9:1' K >= 100; */ |
AndreaAndreoli | 0:ae1df001727e | 289 | if (K >= 100.0) { |
AndreaAndreoli | 0:ae1df001727e | 290 | /* Transition: '<S2>:9' */ |
AndreaAndreoli | 0:ae1df001727e | 291 | Controller_Master_DW->is_ACTIVE = Controller_Master_IN_BRAKE; |
AndreaAndreoli | 0:ae1df001727e | 292 | |
AndreaAndreoli | 0:ae1df001727e | 293 | /* Outport: '<Root>/BRAKE' */ |
AndreaAndreoli | 0:ae1df001727e | 294 | /* Entry 'BRAKE': '<S2>:3' */ |
AndreaAndreoli | 0:ae1df001727e | 295 | /* '<S2>:3:1' Brake = uint8(1); */ |
AndreaAndreoli | 0:ae1df001727e | 296 | *Controller_Master_Y_BRAKE = 1U; |
AndreaAndreoli | 0:ae1df001727e | 297 | |
AndreaAndreoli | 0:ae1df001727e | 298 | /* '<S2>:3:1' Led_Blue = 1; */ |
AndreaAndreoli | 0:ae1df001727e | 299 | Controller_Master_B->Led_Blue = 1.0; |
AndreaAndreoli | 0:ae1df001727e | 300 | } else { |
AndreaAndreoli | 0:ae1df001727e | 301 | /* '<S2>:11:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 302 | /* '<S2>:11:1' K < 70; */ |
AndreaAndreoli | 0:ae1df001727e | 303 | if (K < 70.0) { |
AndreaAndreoli | 0:ae1df001727e | 304 | /* Transition: '<S2>:11' */ |
AndreaAndreoli | 0:ae1df001727e | 305 | Controller_Master_DW->is_ACTIVE = Controller_Master_IN_IDLE; |
AndreaAndreoli | 0:ae1df001727e | 306 | |
AndreaAndreoli | 0:ae1df001727e | 307 | /* Outport: '<Root>/BRAKE' */ |
AndreaAndreoli | 0:ae1df001727e | 308 | /* Entry 'IDLE': '<S2>:6' */ |
AndreaAndreoli | 0:ae1df001727e | 309 | /* '<S2>:6:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 310 | *Controller_Master_Y_BRAKE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 311 | |
AndreaAndreoli | 0:ae1df001727e | 312 | /* '<S2>:6:1' Led_Blue = 0; */ |
AndreaAndreoli | 0:ae1df001727e | 313 | Controller_Master_B->Led_Blue = 0.0; |
AndreaAndreoli | 0:ae1df001727e | 314 | } else { |
AndreaAndreoli | 0:ae1df001727e | 315 | /* '<S2>:5:1' Led_Blue = (K-70)/30; */ |
AndreaAndreoli | 0:ae1df001727e | 316 | Controller_Master_B->Led_Blue = (K - 70.0) / 30.0; |
AndreaAndreoli | 0:ae1df001727e | 317 | } |
AndreaAndreoli | 0:ae1df001727e | 318 | } |
AndreaAndreoli | 0:ae1df001727e | 319 | break; |
AndreaAndreoli | 0:ae1df001727e | 320 | } |
AndreaAndreoli | 0:ae1df001727e | 321 | } |
AndreaAndreoli | 0:ae1df001727e | 322 | } else { |
AndreaAndreoli | 0:ae1df001727e | 323 | /* During 'READY': '<S2>:21' */ |
AndreaAndreoli | 0:ae1df001727e | 324 | /* '<S2>:23:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 325 | /* '<S2>:23:1' En == true; */ |
AndreaAndreoli | 0:ae1df001727e | 326 | if (Controller_Master_DW->En) { |
AndreaAndreoli | 0:ae1df001727e | 327 | /* Transition: '<S2>:23' */ |
AndreaAndreoli | 0:ae1df001727e | 328 | Controller_Master_DW->is_APPLICATION_THREAD = |
AndreaAndreoli | 0:ae1df001727e | 329 | Controller_Master_IN_ACTIVE; |
AndreaAndreoli | 0:ae1df001727e | 330 | |
AndreaAndreoli | 0:ae1df001727e | 331 | /* Entry 'ACTIVE': '<S2>:1' */ |
AndreaAndreoli | 0:ae1df001727e | 332 | /* '<S2>:1:1' K = (V^2)/D; */ |
AndreaAndreoli | 0:ae1df001727e | 333 | /* Entry Internal 'ACTIVE': '<S2>:1' */ |
AndreaAndreoli | 0:ae1df001727e | 334 | /* Transition: '<S2>:51' */ |
AndreaAndreoli | 0:ae1df001727e | 335 | Controller_Master_DW->is_ACTIVE = Controller_Master_IN_IDLE; |
AndreaAndreoli | 0:ae1df001727e | 336 | |
AndreaAndreoli | 0:ae1df001727e | 337 | /* Outport: '<Root>/BRAKE' */ |
AndreaAndreoli | 0:ae1df001727e | 338 | /* Entry 'IDLE': '<S2>:6' */ |
AndreaAndreoli | 0:ae1df001727e | 339 | /* '<S2>:6:1' Brake = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 340 | *Controller_Master_Y_BRAKE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 341 | |
AndreaAndreoli | 0:ae1df001727e | 342 | /* '<S2>:6:1' Led_Blue = 0; */ |
AndreaAndreoli | 0:ae1df001727e | 343 | Controller_Master_B->Led_Blue = 0.0; |
AndreaAndreoli | 0:ae1df001727e | 344 | } |
AndreaAndreoli | 0:ae1df001727e | 345 | } |
AndreaAndreoli | 0:ae1df001727e | 346 | } |
AndreaAndreoli | 0:ae1df001727e | 347 | |
AndreaAndreoli | 0:ae1df001727e | 348 | /* End of Chart: '<S1>/AEB' */ |
AndreaAndreoli | 0:ae1df001727e | 349 | |
AndreaAndreoli | 0:ae1df001727e | 350 | /* Chart: '<S1>/select_command' */ |
AndreaAndreoli | 0:ae1df001727e | 351 | if (Controller_Master_DW->temporalCounter_i1 < MAX_uint32_T) { |
AndreaAndreoli | 0:ae1df001727e | 352 | Controller_Master_DW->temporalCounter_i1++; |
AndreaAndreoli | 0:ae1df001727e | 353 | } |
AndreaAndreoli | 0:ae1df001727e | 354 | |
AndreaAndreoli | 0:ae1df001727e | 355 | /* Gateway: Controller_Master/select_command */ |
AndreaAndreoli | 0:ae1df001727e | 356 | /* During: Controller_Master/select_command */ |
AndreaAndreoli | 0:ae1df001727e | 357 | if (Controller_Master_DW->is_active_c2_Controller_Master == 0U) { |
AndreaAndreoli | 0:ae1df001727e | 358 | /* Entry: Controller_Master/select_command */ |
AndreaAndreoli | 0:ae1df001727e | 359 | Controller_Master_DW->is_active_c2_Controller_Master = 1U; |
AndreaAndreoli | 0:ae1df001727e | 360 | |
AndreaAndreoli | 0:ae1df001727e | 361 | /* Entry Internal: Controller_Master/select_command */ |
AndreaAndreoli | 0:ae1df001727e | 362 | /* Transition: '<S3>:2' */ |
AndreaAndreoli | 0:ae1df001727e | 363 | Controller_Master_DW->is_c2_Controller_Master = Controller_Master_IN_OFF1; |
AndreaAndreoli | 0:ae1df001727e | 364 | |
AndreaAndreoli | 0:ae1df001727e | 365 | /* Outport: '<Root>/LED_BLUE' */ |
AndreaAndreoli | 0:ae1df001727e | 366 | /* Entry 'OFF1': '<S3>:3' */ |
AndreaAndreoli | 0:ae1df001727e | 367 | /* '<S3>:3:1' led = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 368 | *Controller_Master_Y_LED_BLUE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 369 | } else { |
AndreaAndreoli | 0:ae1df001727e | 370 | switch (Controller_Master_DW->is_c2_Controller_Master) { |
AndreaAndreoli | 0:ae1df001727e | 371 | case Controller_Master_IN_BLINK: |
AndreaAndreoli | 0:ae1df001727e | 372 | /* During 'BLINK': '<S3>:20' */ |
AndreaAndreoli | 0:ae1df001727e | 373 | /* '<S3>:7:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 374 | /* '<S3>:7:1' enable == 1; */ |
AndreaAndreoli | 0:ae1df001727e | 375 | if (Controller_Master_B->Led_Blue == 1.0) { |
AndreaAndreoli | 0:ae1df001727e | 376 | /* Transition: '<S3>:7' */ |
AndreaAndreoli | 0:ae1df001727e | 377 | /* Exit Internal 'BLINK': '<S3>:20' */ |
AndreaAndreoli | 0:ae1df001727e | 378 | Controller_Master_DW->is_BLINK = Controller_M_IN_NO_ACTIVE_CHILD; |
AndreaAndreoli | 0:ae1df001727e | 379 | Controller_Master_DW->is_c2_Controller_Master = Controller_Master_IN_ON; |
AndreaAndreoli | 0:ae1df001727e | 380 | |
AndreaAndreoli | 0:ae1df001727e | 381 | /* Outport: '<Root>/LED_BLUE' */ |
AndreaAndreoli | 0:ae1df001727e | 382 | /* Entry 'ON': '<S3>:6' */ |
AndreaAndreoli | 0:ae1df001727e | 383 | /* '<S3>:6:1' led = uint8(1); */ |
AndreaAndreoli | 0:ae1df001727e | 384 | *Controller_Master_Y_LED_BLUE = 1U; |
AndreaAndreoli | 0:ae1df001727e | 385 | } else { |
AndreaAndreoli | 0:ae1df001727e | 386 | /* '<S3>:21:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 387 | /* '<S3>:21:1' enable == 0; */ |
AndreaAndreoli | 0:ae1df001727e | 388 | if (Controller_Master_B->Led_Blue == 0.0) { |
AndreaAndreoli | 0:ae1df001727e | 389 | /* Transition: '<S3>:21' */ |
AndreaAndreoli | 0:ae1df001727e | 390 | /* Exit Internal 'BLINK': '<S3>:20' */ |
AndreaAndreoli | 0:ae1df001727e | 391 | Controller_Master_DW->is_BLINK = Controller_M_IN_NO_ACTIVE_CHILD; |
AndreaAndreoli | 0:ae1df001727e | 392 | Controller_Master_DW->is_c2_Controller_Master = |
AndreaAndreoli | 0:ae1df001727e | 393 | Controller_Master_IN_OFF1; |
AndreaAndreoli | 0:ae1df001727e | 394 | |
AndreaAndreoli | 0:ae1df001727e | 395 | /* Outport: '<Root>/LED_BLUE' */ |
AndreaAndreoli | 0:ae1df001727e | 396 | /* Entry 'OFF1': '<S3>:3' */ |
AndreaAndreoli | 0:ae1df001727e | 397 | /* '<S3>:3:1' led = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 398 | *Controller_Master_Y_LED_BLUE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 399 | } else if (Controller_Master_DW->is_BLINK == |
AndreaAndreoli | 0:ae1df001727e | 400 | Controller_Master_IN_BLINK_OFF) { |
AndreaAndreoli | 0:ae1df001727e | 401 | /* During 'BLINK_OFF': '<S3>:11' */ |
AndreaAndreoli | 0:ae1df001727e | 402 | /* '<S3>:14:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 403 | /* '<S3>:14:1' after(1-enable,sec); */ |
AndreaAndreoli | 0:ae1df001727e | 404 | if (Controller_Master_DW->temporalCounter_i1 >= (uint32_T)ceil((1.0 - |
AndreaAndreoli | 0:ae1df001727e | 405 | Controller_Master_B->Led_Blue) / 0.2 - 2.0E-9)) { |
AndreaAndreoli | 0:ae1df001727e | 406 | /* Transition: '<S3>:14' */ |
AndreaAndreoli | 0:ae1df001727e | 407 | Controller_Master_DW->is_BLINK = Controller_Master_IN_BLINK_ON; |
AndreaAndreoli | 0:ae1df001727e | 408 | Controller_Master_DW->temporalCounter_i1 = 0U; |
AndreaAndreoli | 0:ae1df001727e | 409 | |
AndreaAndreoli | 0:ae1df001727e | 410 | /* Outport: '<Root>/LED_BLUE' */ |
AndreaAndreoli | 0:ae1df001727e | 411 | /* Entry 'BLINK_ON': '<S3>:13' */ |
AndreaAndreoli | 0:ae1df001727e | 412 | /* '<S3>:13:1' led = uint8(1); */ |
AndreaAndreoli | 0:ae1df001727e | 413 | *Controller_Master_Y_LED_BLUE = 1U; |
AndreaAndreoli | 0:ae1df001727e | 414 | } |
AndreaAndreoli | 0:ae1df001727e | 415 | } else { |
AndreaAndreoli | 0:ae1df001727e | 416 | /* During 'BLINK_ON': '<S3>:13' */ |
AndreaAndreoli | 0:ae1df001727e | 417 | /* '<S3>:15:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 418 | /* '<S3>:15:1' after(0.1,sec); */ |
AndreaAndreoli | 0:ae1df001727e | 419 | if (Controller_Master_DW->temporalCounter_i1 >= 1U) { |
AndreaAndreoli | 0:ae1df001727e | 420 | /* Transition: '<S3>:15' */ |
AndreaAndreoli | 0:ae1df001727e | 421 | Controller_Master_DW->is_BLINK = Controller_Master_IN_BLINK_OFF; |
AndreaAndreoli | 0:ae1df001727e | 422 | Controller_Master_DW->temporalCounter_i1 = 0U; |
AndreaAndreoli | 0:ae1df001727e | 423 | |
AndreaAndreoli | 0:ae1df001727e | 424 | /* Outport: '<Root>/LED_BLUE' */ |
AndreaAndreoli | 0:ae1df001727e | 425 | /* Entry 'BLINK_OFF': '<S3>:11' */ |
AndreaAndreoli | 0:ae1df001727e | 426 | /* '<S3>:11:1' led = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 427 | *Controller_Master_Y_LED_BLUE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 428 | } |
AndreaAndreoli | 0:ae1df001727e | 429 | } |
AndreaAndreoli | 0:ae1df001727e | 430 | } |
AndreaAndreoli | 0:ae1df001727e | 431 | break; |
AndreaAndreoli | 0:ae1df001727e | 432 | |
AndreaAndreoli | 0:ae1df001727e | 433 | case Controller_Master_IN_OFF1: |
AndreaAndreoli | 0:ae1df001727e | 434 | /* During 'OFF1': '<S3>:3' */ |
AndreaAndreoli | 0:ae1df001727e | 435 | /* '<S3>:22:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 436 | /* '<S3>:22:1' enable == 1; */ |
AndreaAndreoli | 0:ae1df001727e | 437 | if (Controller_Master_B->Led_Blue == 1.0) { |
AndreaAndreoli | 0:ae1df001727e | 438 | /* Transition: '<S3>:22' */ |
AndreaAndreoli | 0:ae1df001727e | 439 | Controller_Master_DW->is_c2_Controller_Master = Controller_Master_IN_ON; |
AndreaAndreoli | 0:ae1df001727e | 440 | |
AndreaAndreoli | 0:ae1df001727e | 441 | /* Outport: '<Root>/LED_BLUE' */ |
AndreaAndreoli | 0:ae1df001727e | 442 | /* Entry 'ON': '<S3>:6' */ |
AndreaAndreoli | 0:ae1df001727e | 443 | /* '<S3>:6:1' led = uint8(1); */ |
AndreaAndreoli | 0:ae1df001727e | 444 | *Controller_Master_Y_LED_BLUE = 1U; |
AndreaAndreoli | 0:ae1df001727e | 445 | } else { |
AndreaAndreoli | 0:ae1df001727e | 446 | /* '<S3>:12:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 447 | /* '<S3>:12:1' enable >0 && enable <1; */ |
AndreaAndreoli | 0:ae1df001727e | 448 | if ((Controller_Master_B->Led_Blue > 0.0) && |
AndreaAndreoli | 0:ae1df001727e | 449 | (Controller_Master_B->Led_Blue < 1.0)) { |
AndreaAndreoli | 0:ae1df001727e | 450 | /* Transition: '<S3>:12' */ |
AndreaAndreoli | 0:ae1df001727e | 451 | Controller_Master_DW->is_c2_Controller_Master = |
AndreaAndreoli | 0:ae1df001727e | 452 | Controller_Master_IN_BLINK; |
AndreaAndreoli | 0:ae1df001727e | 453 | |
AndreaAndreoli | 0:ae1df001727e | 454 | /* Entry Internal 'BLINK': '<S3>:20' */ |
AndreaAndreoli | 0:ae1df001727e | 455 | /* Transition: '<S3>:24' */ |
AndreaAndreoli | 0:ae1df001727e | 456 | Controller_Master_DW->is_BLINK = Controller_Master_IN_BLINK_OFF; |
AndreaAndreoli | 0:ae1df001727e | 457 | Controller_Master_DW->temporalCounter_i1 = 0U; |
AndreaAndreoli | 0:ae1df001727e | 458 | |
AndreaAndreoli | 0:ae1df001727e | 459 | /* Outport: '<Root>/LED_BLUE' */ |
AndreaAndreoli | 0:ae1df001727e | 460 | /* Entry 'BLINK_OFF': '<S3>:11' */ |
AndreaAndreoli | 0:ae1df001727e | 461 | /* '<S3>:11:1' led = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 462 | *Controller_Master_Y_LED_BLUE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 463 | } |
AndreaAndreoli | 0:ae1df001727e | 464 | } |
AndreaAndreoli | 0:ae1df001727e | 465 | break; |
AndreaAndreoli | 0:ae1df001727e | 466 | |
AndreaAndreoli | 0:ae1df001727e | 467 | default: |
AndreaAndreoli | 0:ae1df001727e | 468 | /* During 'ON': '<S3>:6' */ |
AndreaAndreoli | 0:ae1df001727e | 469 | /* '<S3>:4:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 470 | /* '<S3>:4:1' enable == 0; */ |
AndreaAndreoli | 0:ae1df001727e | 471 | if (Controller_Master_B->Led_Blue == 0.0) { |
AndreaAndreoli | 0:ae1df001727e | 472 | /* Transition: '<S3>:4' */ |
AndreaAndreoli | 0:ae1df001727e | 473 | Controller_Master_DW->is_c2_Controller_Master = |
AndreaAndreoli | 0:ae1df001727e | 474 | Controller_Master_IN_OFF1; |
AndreaAndreoli | 0:ae1df001727e | 475 | |
AndreaAndreoli | 0:ae1df001727e | 476 | /* Outport: '<Root>/LED_BLUE' */ |
AndreaAndreoli | 0:ae1df001727e | 477 | /* Entry 'OFF1': '<S3>:3' */ |
AndreaAndreoli | 0:ae1df001727e | 478 | /* '<S3>:3:1' led = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 479 | *Controller_Master_Y_LED_BLUE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 480 | } else { |
AndreaAndreoli | 0:ae1df001727e | 481 | /* '<S3>:23:1' sf_internal_predicateOutput = ... */ |
AndreaAndreoli | 0:ae1df001727e | 482 | /* '<S3>:23:1' enable >0 && enable <1; */ |
AndreaAndreoli | 0:ae1df001727e | 483 | if ((Controller_Master_B->Led_Blue > 0.0) && |
AndreaAndreoli | 0:ae1df001727e | 484 | (Controller_Master_B->Led_Blue < 1.0)) { |
AndreaAndreoli | 0:ae1df001727e | 485 | /* Transition: '<S3>:23' */ |
AndreaAndreoli | 0:ae1df001727e | 486 | Controller_Master_DW->is_c2_Controller_Master = |
AndreaAndreoli | 0:ae1df001727e | 487 | Controller_Master_IN_BLINK; |
AndreaAndreoli | 0:ae1df001727e | 488 | |
AndreaAndreoli | 0:ae1df001727e | 489 | /* Entry Internal 'BLINK': '<S3>:20' */ |
AndreaAndreoli | 0:ae1df001727e | 490 | /* Transition: '<S3>:24' */ |
AndreaAndreoli | 0:ae1df001727e | 491 | Controller_Master_DW->is_BLINK = Controller_Master_IN_BLINK_OFF; |
AndreaAndreoli | 0:ae1df001727e | 492 | Controller_Master_DW->temporalCounter_i1 = 0U; |
AndreaAndreoli | 0:ae1df001727e | 493 | |
AndreaAndreoli | 0:ae1df001727e | 494 | /* Outport: '<Root>/LED_BLUE' */ |
AndreaAndreoli | 0:ae1df001727e | 495 | /* Entry 'BLINK_OFF': '<S3>:11' */ |
AndreaAndreoli | 0:ae1df001727e | 496 | /* '<S3>:11:1' led = uint8(0); */ |
AndreaAndreoli | 0:ae1df001727e | 497 | *Controller_Master_Y_LED_BLUE = 0U; |
AndreaAndreoli | 0:ae1df001727e | 498 | } |
AndreaAndreoli | 0:ae1df001727e | 499 | } |
AndreaAndreoli | 0:ae1df001727e | 500 | break; |
AndreaAndreoli | 0:ae1df001727e | 501 | } |
AndreaAndreoli | 0:ae1df001727e | 502 | } |
AndreaAndreoli | 0:ae1df001727e | 503 | |
AndreaAndreoli | 0:ae1df001727e | 504 | /* End of Chart: '<S1>/select_command' */ |
AndreaAndreoli | 0:ae1df001727e | 505 | |
AndreaAndreoli | 0:ae1df001727e | 506 | /* Update for Memory: '<S1>/Memory' incorporates: |
AndreaAndreoli | 0:ae1df001727e | 507 | * Update for Inport: '<Root>/SLAVE' |
AndreaAndreoli | 0:ae1df001727e | 508 | */ |
AndreaAndreoli | 0:ae1df001727e | 509 | Controller_Master_DW->Memory_PreviousInput = Controller_Master_U_Slave; |
AndreaAndreoli | 0:ae1df001727e | 510 | |
AndreaAndreoli | 0:ae1df001727e | 511 | /* End of Outputs for SubSystem: '<Root>/Controller_Master' */ |
AndreaAndreoli | 0:ae1df001727e | 512 | } |
AndreaAndreoli | 0:ae1df001727e | 513 | |
AndreaAndreoli | 0:ae1df001727e | 514 | /* Model initialize function */ |
AndreaAndreoli | 0:ae1df001727e | 515 | void Controller_Master_initialize(RT_MODEL_Controller_Master_T *const |
AndreaAndreoli | 0:ae1df001727e | 516 | Controller_Master_M, real_T *Controller_Master_U_V, real_T |
AndreaAndreoli | 0:ae1df001727e | 517 | *Controller_Master_U_D_M, uint8_T *Controller_Master_U_Slave, uint8_T |
AndreaAndreoli | 0:ae1df001727e | 518 | *Controller_Master_Y_BRAKE, uint8_T *Controller_Master_Y_LED_BLUE, uint8_T |
AndreaAndreoli | 0:ae1df001727e | 519 | *Controller_Master_Y_LED_RED, uint8_T *Controller_Master_Y_MASTER) |
AndreaAndreoli | 0:ae1df001727e | 520 | { |
AndreaAndreoli | 0:ae1df001727e | 521 | DW_Controller_Master_T *Controller_Master_DW = ((DW_Controller_Master_T *) |
AndreaAndreoli | 0:ae1df001727e | 522 | Controller_Master_M->ModelData.dwork); |
AndreaAndreoli | 0:ae1df001727e | 523 | B_Controller_Master_T *Controller_Master_B = ((B_Controller_Master_T *) |
AndreaAndreoli | 0:ae1df001727e | 524 | Controller_Master_M->ModelData.blockIO); |
AndreaAndreoli | 0:ae1df001727e | 525 | |
AndreaAndreoli | 0:ae1df001727e | 526 | /* Registration code */ |
AndreaAndreoli | 0:ae1df001727e | 527 | |
AndreaAndreoli | 0:ae1df001727e | 528 | /* block I/O */ |
AndreaAndreoli | 0:ae1df001727e | 529 | (void) memset(((void *) Controller_Master_B), 0, |
AndreaAndreoli | 0:ae1df001727e | 530 | sizeof(B_Controller_Master_T)); |
AndreaAndreoli | 0:ae1df001727e | 531 | |
AndreaAndreoli | 0:ae1df001727e | 532 | /* states (dwork) */ |
AndreaAndreoli | 0:ae1df001727e | 533 | (void) memset((void *)Controller_Master_DW, 0, |
AndreaAndreoli | 0:ae1df001727e | 534 | sizeof(DW_Controller_Master_T)); |
AndreaAndreoli | 0:ae1df001727e | 535 | |
AndreaAndreoli | 0:ae1df001727e | 536 | /* external inputs */ |
AndreaAndreoli | 0:ae1df001727e | 537 | (*Controller_Master_U_V) = 0.0; |
AndreaAndreoli | 0:ae1df001727e | 538 | (*Controller_Master_U_D_M) = 0.0; |
AndreaAndreoli | 0:ae1df001727e | 539 | (*Controller_Master_U_Slave) = 0U; |
AndreaAndreoli | 0:ae1df001727e | 540 | |
AndreaAndreoli | 0:ae1df001727e | 541 | /* external outputs */ |
AndreaAndreoli | 0:ae1df001727e | 542 | (*Controller_Master_Y_BRAKE) = 0U; |
AndreaAndreoli | 0:ae1df001727e | 543 | (*Controller_Master_Y_LED_BLUE) = 0U; |
AndreaAndreoli | 0:ae1df001727e | 544 | (*Controller_Master_Y_LED_RED) = 0U; |
AndreaAndreoli | 0:ae1df001727e | 545 | (*Controller_Master_Y_MASTER) = 0U; |
AndreaAndreoli | 0:ae1df001727e | 546 | |
AndreaAndreoli | 0:ae1df001727e | 547 | /* SystemInitialize for Atomic SubSystem: '<Root>/Controller_Master' */ |
AndreaAndreoli | 0:ae1df001727e | 548 | /* InitializeConditions for Memory: '<S1>/Memory' */ |
AndreaAndreoli | 0:ae1df001727e | 549 | Controller_Master_DW->Memory_PreviousInput = 1U; |
AndreaAndreoli | 0:ae1df001727e | 550 | |
AndreaAndreoli | 0:ae1df001727e | 551 | /* SystemInitialize for Chart: '<S1>/AEB' */ |
AndreaAndreoli | 0:ae1df001727e | 552 | Controller_Master_DW->is_APPLICATION_THREAD = Controller_M_IN_NO_ACTIVE_CHILD; |
AndreaAndreoli | 0:ae1df001727e | 553 | Controller_Master_DW->is_ACTIVE = Controller_M_IN_NO_ACTIVE_CHILD; |
AndreaAndreoli | 0:ae1df001727e | 554 | Controller_Master_DW->is_ERRORS_CHECK_THREAD = Controller_M_IN_NO_ACTIVE_CHILD; |
AndreaAndreoli | 0:ae1df001727e | 555 | Controller_Master_DW->is_active_c3_Controller_Master = 0U; |
AndreaAndreoli | 0:ae1df001727e | 556 | Controller_Master_DW->En = true; |
AndreaAndreoli | 0:ae1df001727e | 557 | |
AndreaAndreoli | 0:ae1df001727e | 558 | /* SystemInitialize for Chart: '<S1>/select_command' */ |
AndreaAndreoli | 0:ae1df001727e | 559 | Controller_Master_DW->is_BLINK = Controller_M_IN_NO_ACTIVE_CHILD; |
AndreaAndreoli | 0:ae1df001727e | 560 | Controller_Master_DW->temporalCounter_i1 = 0U; |
AndreaAndreoli | 0:ae1df001727e | 561 | Controller_Master_DW->is_active_c2_Controller_Master = 0U; |
AndreaAndreoli | 0:ae1df001727e | 562 | Controller_Master_DW->is_c2_Controller_Master = |
AndreaAndreoli | 0:ae1df001727e | 563 | Controller_M_IN_NO_ACTIVE_CHILD; |
AndreaAndreoli | 0:ae1df001727e | 564 | |
AndreaAndreoli | 0:ae1df001727e | 565 | /* End of SystemInitialize for SubSystem: '<Root>/Controller_Master' */ |
AndreaAndreoli | 0:ae1df001727e | 566 | } |
AndreaAndreoli | 0:ae1df001727e | 567 | |
AndreaAndreoli | 0:ae1df001727e | 568 | /* Model terminate function */ |
AndreaAndreoli | 0:ae1df001727e | 569 | void Controller_Master_terminate(RT_MODEL_Controller_Master_T *const |
AndreaAndreoli | 0:ae1df001727e | 570 | Controller_Master_M) |
AndreaAndreoli | 0:ae1df001727e | 571 | { |
AndreaAndreoli | 0:ae1df001727e | 572 | /* (no terminate code required) */ |
AndreaAndreoli | 0:ae1df001727e | 573 | UNUSED_PARAMETER(Controller_Master_M); |
AndreaAndreoli | 0:ae1df001727e | 574 | } |
AndreaAndreoli | 0:ae1df001727e | 575 | |
AndreaAndreoli | 0:ae1df001727e | 576 | /* |
AndreaAndreoli | 0:ae1df001727e | 577 | * File trailer for generated code. |
AndreaAndreoli | 0:ae1df001727e | 578 | * |
AndreaAndreoli | 0:ae1df001727e | 579 | * [EOF] |
AndreaAndreoli | 0:ae1df001727e | 580 | */ |
AndreaAndreoli | 0:ae1df001727e | 581 |