Library for the master controller

Dependents:   Test_Controller_Master AEB

Committer:
AndreaAndreoli
Date:
Sat Jun 04 17:01:58 2016 +0000
Revision:
0:8e9e8bee3cf4
Child:
1:03ec2e1d1008
First commit;

Who changed what in which revision?

UserRevisionLine numberNew 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 0:8e9e8bee3cf4 10 * Model version : 1.0
AndreaAndreoli 0:8e9e8bee3cf4 11 * Simulink Coder version : 8.10 (R2016a) 10-Feb-2016
AndreaAndreoli 0:8e9e8bee3cf4 12 * C/C++ source code generated on : Sat Jun 04 17:59:52 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 0:8e9e8bee3cf4 101 * hilite_system('untitled/Controller/Controller_Master') - opens subsystem untitled/Controller/Controller_Master
AndreaAndreoli 0:8e9e8bee3cf4 102 * hilite_system('untitled/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 0:8e9e8bee3cf4 106 * '<Root>' : 'untitled/Controller'
AndreaAndreoli 0:8e9e8bee3cf4 107 * '<S1>' : 'untitled/Controller/Controller_Master'
AndreaAndreoli 0:8e9e8bee3cf4 108 * '<S2>' : 'untitled/Controller/Controller_Master/AEB'
AndreaAndreoli 0:8e9e8bee3cf4 109 * '<S3>' : 'untitled/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