Library for the master controller
Dependents: Test_Controller_Master AEB
Controller_Master.h@1:03ec2e1d1008, 2016-06-04 (annotated)
- Committer:
- AndreaAndreoli
- Date:
- Sat Jun 04 18:37:52 2016 +0000
- Revision:
- 1:03ec2e1d1008
- Parent:
- 0:8e9e8bee3cf4
- Child:
- 2:d114feef8f3b
fixed bug error handling
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AndreaAndreoli | 0:8e9e8bee3cf4 | 1 | /* |
AndreaAndreoli | 0:8e9e8bee3cf4 | 2 | * Academic License - for use in teaching, academic research, and meeting |
AndreaAndreoli | 0:8e9e8bee3cf4 | 3 | * course requirements at degree granting institutions only. Not for |
AndreaAndreoli | 0:8e9e8bee3cf4 | 4 | * government, commercial, or other organizational use. |
AndreaAndreoli | 0:8e9e8bee3cf4 | 5 | * |
AndreaAndreoli | 0:8e9e8bee3cf4 | 6 | * File: Controller_Master.h |
AndreaAndreoli | 0:8e9e8bee3cf4 | 7 | * |
AndreaAndreoli | 0:8e9e8bee3cf4 | 8 | * Code generated for Simulink model 'Controller_Master'. |
AndreaAndreoli | 0:8e9e8bee3cf4 | 9 | * |
AndreaAndreoli | 1:03ec2e1d1008 | 10 | * Model version : 1.2 |
AndreaAndreoli | 0:8e9e8bee3cf4 | 11 | * Simulink Coder version : 8.10 (R2016a) 10-Feb-2016 |
AndreaAndreoli | 1:03ec2e1d1008 | 12 | * C/C++ source code generated on : Sat Jun 04 20:35:28 2016 |
AndreaAndreoli | 0:8e9e8bee3cf4 | 13 | * |
AndreaAndreoli | 0:8e9e8bee3cf4 | 14 | * Target selection: ert.tlc |
AndreaAndreoli | 0:8e9e8bee3cf4 | 15 | * Embedded hardware selection: NXP->Cortex-M4 |
AndreaAndreoli | 0:8e9e8bee3cf4 | 16 | * Code generation objectives: Unspecified |
AndreaAndreoli | 0:8e9e8bee3cf4 | 17 | * Validation result: Not run |
AndreaAndreoli | 0:8e9e8bee3cf4 | 18 | */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 19 | |
AndreaAndreoli | 0:8e9e8bee3cf4 | 20 | #ifndef RTW_HEADER_Controller_Master_h_ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 21 | #define RTW_HEADER_Controller_Master_h_ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 22 | #include <math.h> |
AndreaAndreoli | 0:8e9e8bee3cf4 | 23 | #include <string.h> |
AndreaAndreoli | 0:8e9e8bee3cf4 | 24 | #ifndef Controller_Master_COMMON_INCLUDES_ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 25 | # define Controller_Master_COMMON_INCLUDES_ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 26 | #include "rtwtypes.h" |
AndreaAndreoli | 0:8e9e8bee3cf4 | 27 | #endif /* Controller_Master_COMMON_INCLUDES_ */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 28 | |
AndreaAndreoli | 0:8e9e8bee3cf4 | 29 | /* Macros for accessing real-time model data structure */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 30 | #ifndef rtmGetErrorStatus |
AndreaAndreoli | 0:8e9e8bee3cf4 | 31 | # define rtmGetErrorStatus(rtm) ((rtm)->errorStatus) |
AndreaAndreoli | 0:8e9e8bee3cf4 | 32 | #endif |
AndreaAndreoli | 0:8e9e8bee3cf4 | 33 | |
AndreaAndreoli | 0:8e9e8bee3cf4 | 34 | #ifndef rtmSetErrorStatus |
AndreaAndreoli | 0:8e9e8bee3cf4 | 35 | # define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val)) |
AndreaAndreoli | 0:8e9e8bee3cf4 | 36 | #endif |
AndreaAndreoli | 0:8e9e8bee3cf4 | 37 | |
AndreaAndreoli | 0:8e9e8bee3cf4 | 38 | /* Forward declaration for rtModel */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 39 | typedef struct tag_RTM_Controller_Master_T RT_MODEL_Controller_Master_T; |
AndreaAndreoli | 0:8e9e8bee3cf4 | 40 | |
AndreaAndreoli | 0:8e9e8bee3cf4 | 41 | /* Block signals (auto storage) */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 42 | typedef struct { |
AndreaAndreoli | 0:8e9e8bee3cf4 | 43 | real_T Led_Blue; /* '<S1>/AEB' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 44 | } B_Controller_Master_T; |
AndreaAndreoli | 0:8e9e8bee3cf4 | 45 | |
AndreaAndreoli | 0:8e9e8bee3cf4 | 46 | /* Block states (auto storage) for system '<Root>' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 47 | typedef struct { |
AndreaAndreoli | 0:8e9e8bee3cf4 | 48 | uint32_T temporalCounter_i1; /* '<S1>/select_command' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 49 | uint8_T Memory_PreviousInput; /* '<S1>/Memory' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 50 | uint8_T is_active_c2_Controller_Master;/* '<S1>/select_command' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 51 | uint8_T is_c2_Controller_Master; /* '<S1>/select_command' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 52 | uint8_T is_BLINK; /* '<S1>/select_command' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 53 | uint8_T is_active_c3_Controller_Master;/* '<S1>/AEB' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 54 | uint8_T is_ERRORS_CHECK_THREAD; /* '<S1>/AEB' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 55 | uint8_T is_APPLICATION_THREAD; /* '<S1>/AEB' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 56 | uint8_T is_ACTIVE; /* '<S1>/AEB' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 57 | boolean_T En; /* '<S1>/AEB' */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 58 | } DW_Controller_Master_T; |
AndreaAndreoli | 0:8e9e8bee3cf4 | 59 | |
AndreaAndreoli | 0:8e9e8bee3cf4 | 60 | /* Real-time Model Data Structure */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 61 | struct tag_RTM_Controller_Master_T { |
AndreaAndreoli | 0:8e9e8bee3cf4 | 62 | const char_T * volatile errorStatus; |
AndreaAndreoli | 0:8e9e8bee3cf4 | 63 | |
AndreaAndreoli | 0:8e9e8bee3cf4 | 64 | /* |
AndreaAndreoli | 0:8e9e8bee3cf4 | 65 | * ModelData: |
AndreaAndreoli | 0:8e9e8bee3cf4 | 66 | * The following substructure contains information regarding |
AndreaAndreoli | 0:8e9e8bee3cf4 | 67 | * the data used in the model. |
AndreaAndreoli | 0:8e9e8bee3cf4 | 68 | */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 69 | struct { |
AndreaAndreoli | 0:8e9e8bee3cf4 | 70 | B_Controller_Master_T *blockIO; |
AndreaAndreoli | 0:8e9e8bee3cf4 | 71 | DW_Controller_Master_T *dwork; |
AndreaAndreoli | 0:8e9e8bee3cf4 | 72 | } ModelData; |
AndreaAndreoli | 0:8e9e8bee3cf4 | 73 | }; |
AndreaAndreoli | 0:8e9e8bee3cf4 | 74 | |
AndreaAndreoli | 0:8e9e8bee3cf4 | 75 | /* Model entry point functions */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 76 | extern void Controller_Master_initialize(RT_MODEL_Controller_Master_T *const |
AndreaAndreoli | 0:8e9e8bee3cf4 | 77 | Controller_Master_M, real_T *Controller_Master_U_V, real_T |
AndreaAndreoli | 0:8e9e8bee3cf4 | 78 | *Controller_Master_U_D_M, uint8_T *Controller_Master_U_Slave, uint8_T |
AndreaAndreoli | 0:8e9e8bee3cf4 | 79 | *Controller_Master_Y_BRAKE, uint8_T *Controller_Master_Y_LED_BLUE, uint8_T |
AndreaAndreoli | 0:8e9e8bee3cf4 | 80 | *Controller_Master_Y_LED_RED, uint8_T *Controller_Master_Y_MASTER); |
AndreaAndreoli | 0:8e9e8bee3cf4 | 81 | extern void Controller_Master_step(RT_MODEL_Controller_Master_T *const |
AndreaAndreoli | 0:8e9e8bee3cf4 | 82 | Controller_Master_M, real_T Controller_Master_U_V, real_T |
AndreaAndreoli | 0:8e9e8bee3cf4 | 83 | Controller_Master_U_D_M, uint8_T Controller_Master_U_Slave, uint8_T |
AndreaAndreoli | 0:8e9e8bee3cf4 | 84 | *Controller_Master_Y_BRAKE, uint8_T *Controller_Master_Y_LED_BLUE, uint8_T |
AndreaAndreoli | 0:8e9e8bee3cf4 | 85 | *Controller_Master_Y_LED_RED, uint8_T *Controller_Master_Y_MASTER); |
AndreaAndreoli | 0:8e9e8bee3cf4 | 86 | extern void Controller_Master_terminate(RT_MODEL_Controller_Master_T *const |
AndreaAndreoli | 0:8e9e8bee3cf4 | 87 | Controller_Master_M); |
AndreaAndreoli | 0:8e9e8bee3cf4 | 88 | |
AndreaAndreoli | 0:8e9e8bee3cf4 | 89 | /*- |
AndreaAndreoli | 0:8e9e8bee3cf4 | 90 | * The generated code includes comments that allow you to trace directly |
AndreaAndreoli | 0:8e9e8bee3cf4 | 91 | * back to the appropriate location in the model. The basic format |
AndreaAndreoli | 0:8e9e8bee3cf4 | 92 | * is <system>/block_name, where system is the system number (uniquely |
AndreaAndreoli | 0:8e9e8bee3cf4 | 93 | * assigned by Simulink) and block_name is the name of the block. |
AndreaAndreoli | 0:8e9e8bee3cf4 | 94 | * |
AndreaAndreoli | 0:8e9e8bee3cf4 | 95 | * Note that this particular code originates from a subsystem build, |
AndreaAndreoli | 0:8e9e8bee3cf4 | 96 | * and has its own system numbers different from the parent model. |
AndreaAndreoli | 0:8e9e8bee3cf4 | 97 | * Refer to the system hierarchy for this subsystem below, and use the |
AndreaAndreoli | 0:8e9e8bee3cf4 | 98 | * MATLAB hilite_system command to trace the generated code back |
AndreaAndreoli | 0:8e9e8bee3cf4 | 99 | * to the parent model. For example, |
AndreaAndreoli | 0:8e9e8bee3cf4 | 100 | * |
AndreaAndreoli | 1:03ec2e1d1008 | 101 | * hilite_system('Controller_Model_06_04_v02/Controller/Controller_Master') - opens subsystem Controller_Model_06_04_v02/Controller/Controller_Master |
AndreaAndreoli | 1:03ec2e1d1008 | 102 | * hilite_system('Controller_Model_06_04_v02/Controller/Controller_Master/Kp') - opens and selects block Kp |
AndreaAndreoli | 0:8e9e8bee3cf4 | 103 | * |
AndreaAndreoli | 0:8e9e8bee3cf4 | 104 | * Here is the system hierarchy for this model |
AndreaAndreoli | 0:8e9e8bee3cf4 | 105 | * |
AndreaAndreoli | 1:03ec2e1d1008 | 106 | * '<Root>' : 'Controller_Model_06_04_v02/Controller' |
AndreaAndreoli | 1:03ec2e1d1008 | 107 | * '<S1>' : 'Controller_Model_06_04_v02/Controller/Controller_Master' |
AndreaAndreoli | 1:03ec2e1d1008 | 108 | * '<S2>' : 'Controller_Model_06_04_v02/Controller/Controller_Master/AEB' |
AndreaAndreoli | 1:03ec2e1d1008 | 109 | * '<S3>' : 'Controller_Model_06_04_v02/Controller/Controller_Master/select_command' |
AndreaAndreoli | 0:8e9e8bee3cf4 | 110 | */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 111 | #endif /* RTW_HEADER_Controller_Master_h_ */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 112 | |
AndreaAndreoli | 0:8e9e8bee3cf4 | 113 | /* |
AndreaAndreoli | 0:8e9e8bee3cf4 | 114 | * File trailer for generated code. |
AndreaAndreoli | 0:8e9e8bee3cf4 | 115 | * |
AndreaAndreoli | 0:8e9e8bee3cf4 | 116 | * [EOF] |
AndreaAndreoli | 0:8e9e8bee3cf4 | 117 | */ |
AndreaAndreoli | 0:8e9e8bee3cf4 | 118 |