#include #include #include #undef CONF_SHV_USED #ifdef CONF_SHV_USED #include #include #include #include #include #define CONF_SHV_TREE_TYPE 0 #undef CONF_SHV_TREE_STATIC #endif /* CONF_SHV_USED */ /* Function prototypes */ void constant(int Flag, python_block *block); void pid_FLOAT_function(int Flag, python_block *block); void speed_function(int Flag, python_block *block); void sum(int Flag, python_block *block); void duty1_function(int Flag, python_block *block); void pulse_function(int Flag, python_block *block); double mcc_target_get_tsamp(void) { return (0.001); } python_block block_mcc_target[7]; static double realPar_0[] = {0.01, 0.189, 0.0, 0.0, 0.0}; static char *realParNames_0[] = {"double0", "double1", "double2", "double3", "double4"}; static int intPar_0[] = {1, 0}; static char *intParNames_0[] = {"int0", "int1"}; static int nx_0[] = {0, 0}; static int nx_1[] = {0, 0}; static int nx_2[] = {0, 0}; static int nx_3[] = {0, 0}; static double realPar_4[] = {0}; static char *realParNames_4[] = {"Value"}; static int nx_4[] = {0, 0}; static double realPar_5[] = {0}; static char *realParNames_5[] = {"Value"}; static int nx_5[] = {0, 0}; static double realPar_6[] = {1, -1}; static char *realParNames_6[] = {"double0", "double1"}; static int nx_6[] = {0, 0}; /* Nodes */ static double Node_1[] = {0.0}; static double Node_2[] = {0.0}; static double Node_3[] = {0.0}; static double Node_4[] = {0.0}; static double Node_5[] = {0.0}; static double Node_6[] = {0.0}; static double Node_7[] = {0.0}; /* Input and outputs */ static void *inptr_0[] = {&Node_1}; static void *outptr_0[] = {&Node_2}; static void *inptr_1[] = {&Node_2}; static void *outptr_1[] = {&Node_3}; static void *inptr_2[] = {&Node_6}; static void *outptr_2[] = {&Node_4}; static void *inptr_3[] = {&Node_7}; static void *outptr_3[] = {&Node_5}; static void *outptr_4[] = {&Node_6}; static void *outptr_5[] = {&Node_7}; static void *inptr_6[] = {&Node_4,&Node_5}; static void *outptr_6[] = {&Node_1}; /* Initialization function */ void mcc_target_init(void) { /* Block definition */ block_mcc_target[0].nin = 1; block_mcc_target[0].nout = 1; block_mcc_target[0].nx = nx_0; block_mcc_target[0].u = inptr_0; block_mcc_target[0].y = outptr_0; block_mcc_target[0].realPar = realPar_0; block_mcc_target[0].realParNum = 5; block_mcc_target[0].realParNames = realParNames_0; block_mcc_target[0].intPar = intPar_0; block_mcc_target[0].intParNum = 2; block_mcc_target[0].intParNames = intParNames_0; block_mcc_target[0].str = ""; block_mcc_target[0].ptrPar = NULL; block_mcc_target[1].nin = 1; block_mcc_target[1].nout = 1; block_mcc_target[1].nx = nx_1; block_mcc_target[1].u = inptr_1; block_mcc_target[1].y = outptr_1; block_mcc_target[1].realPar = NULL; block_mcc_target[1].realParNum = 0; block_mcc_target[1].realParNames = NULL; block_mcc_target[1].intPar = NULL; block_mcc_target[1].intParNum = 0; block_mcc_target[1].intParNames = NULL; block_mcc_target[1].str = ""; block_mcc_target[1].ptrPar = NULL; block_mcc_target[2].nin = 1; block_mcc_target[2].nout = 1; block_mcc_target[2].nx = nx_2; block_mcc_target[2].u = inptr_2; block_mcc_target[2].y = outptr_2; block_mcc_target[2].realPar = NULL; block_mcc_target[2].realParNum = 0; block_mcc_target[2].realParNames = NULL; block_mcc_target[2].intPar = NULL; block_mcc_target[2].intParNum = 0; block_mcc_target[2].intParNames = NULL; block_mcc_target[2].str = ""; block_mcc_target[2].ptrPar = NULL; block_mcc_target[3].nin = 1; block_mcc_target[3].nout = 1; block_mcc_target[3].nx = nx_3; block_mcc_target[3].u = inptr_3; block_mcc_target[3].y = outptr_3; block_mcc_target[3].realPar = NULL; block_mcc_target[3].realParNum = 0; block_mcc_target[3].realParNames = NULL; block_mcc_target[3].intPar = NULL; block_mcc_target[3].intParNum = 0; block_mcc_target[3].intParNames = NULL; block_mcc_target[3].str = ""; block_mcc_target[3].ptrPar = NULL; block_mcc_target[4].nin = 0; block_mcc_target[4].nout = 1; block_mcc_target[4].nx = nx_4; block_mcc_target[4].u = NULL; block_mcc_target[4].y = outptr_4; block_mcc_target[4].realPar = realPar_4; block_mcc_target[4].realParNum = 1; block_mcc_target[4].realParNames = realParNames_4; block_mcc_target[4].intPar = NULL; block_mcc_target[4].intParNum = 0; block_mcc_target[4].intParNames = NULL; block_mcc_target[4].str = ""; block_mcc_target[4].ptrPar = NULL; block_mcc_target[5].nin = 0; block_mcc_target[5].nout = 1; block_mcc_target[5].nx = nx_5; block_mcc_target[5].u = NULL; block_mcc_target[5].y = outptr_5; block_mcc_target[5].realPar = realPar_5; block_mcc_target[5].realParNum = 1; block_mcc_target[5].realParNames = realParNames_5; block_mcc_target[5].intPar = NULL; block_mcc_target[5].intParNum = 0; block_mcc_target[5].intParNames = NULL; block_mcc_target[5].str = ""; block_mcc_target[5].ptrPar = NULL; block_mcc_target[6].nin = 2; block_mcc_target[6].nout = 1; block_mcc_target[6].nx = nx_6; block_mcc_target[6].u = inptr_6; block_mcc_target[6].y = outptr_6; block_mcc_target[6].realPar = realPar_6; block_mcc_target[6].realParNum = 2; block_mcc_target[6].realParNames = realParNames_6; block_mcc_target[6].intPar = NULL; block_mcc_target[6].intParNum = 0; block_mcc_target[6].intParNames = NULL; block_mcc_target[6].str = ""; block_mcc_target[6].ptrPar = NULL; /* Set initial outputs */ pid_FLOAT_function(CG_INIT, &block_mcc_target[0]); duty1_function(CG_INIT, &block_mcc_target[1]); pulse_function(CG_INIT, &block_mcc_target[2]); speed_function(CG_INIT, &block_mcc_target[3]); constant(CG_INIT, &block_mcc_target[4]); constant(CG_INIT, &block_mcc_target[5]); sum(CG_INIT, &block_mcc_target[6]); } /* ISR function */ void mcc_target_isr(double t) { pid_FLOAT_function(CG_OUT, &block_mcc_target[0]); duty1_function(CG_OUT, &block_mcc_target[1]); pulse_function(CG_OUT, &block_mcc_target[2]); speed_function(CG_OUT, &block_mcc_target[3]); constant(CG_OUT, &block_mcc_target[4]); constant(CG_OUT, &block_mcc_target[5]); sum(CG_OUT, &block_mcc_target[6]); } /* Termination function */ void mcc_target_end(void) { pid_FLOAT_function(CG_END, &block_mcc_target[0]); duty1_function(CG_END, &block_mcc_target[1]); pulse_function(CG_END, &block_mcc_target[2]); speed_function(CG_END, &block_mcc_target[3]); constant(CG_END, &block_mcc_target[4]); constant(CG_END, &block_mcc_target[5]); sum(CG_END, &block_mcc_target[6]); }