diff --git a/EF3Lite/hal_3axis_magn_wrapper.c b/EF3Lite/hal_3axis_magn_wrapper.c new file mode 100644 index 0000000..139e066 --- /dev/null +++ b/EF3Lite/hal_3axis_magn_wrapper.c @@ -0,0 +1,84 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + +#include "hal_api.h" + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/* TODO include files */ +#endif +#include +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int magn_inited[3]; + +void initialize_3axis_magn(uint8_t id) +{ + switch (id) + { + case 0: + if (!magn_inited[0]) + { +#ifdef HAL_IMPL + // TODO initialize 3axis-magn No.0 + magn_inited[0] = 1; +#endif + } + break; + default: + break; + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_3axis_magn_Start_wrapper(const uint8_T *id, const int_T p_width0) +{ + /* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ + initialize_3axis_magn(id[0]); + /* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_3axis_magn_Outputs_wrapper(HAL_magn_mG_t *magn, + int32_T *ErrorCode, + const uint8_T *id, const int_T p_width0) +{ + /* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ + ErrorCode[0] = -1; + switch (id[0]) + { + case 0: + if (magn_inited[0]) + { +#ifdef HAL_IMPL + // TODO read 6axis-IMU + ErrorCode[0] = 0; +#endif + } + break; + default: + break; + } + /* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} diff --git a/EF3Lite/hal_6axis_imu_wrapper.c b/EF3Lite/hal_6axis_imu_wrapper.c new file mode 100644 index 0000000..af5963c --- /dev/null +++ b/EF3Lite/hal_6axis_imu_wrapper.c @@ -0,0 +1,88 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + +#include "hal_api.h" + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/* TODO include files */ +#endif +#include +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int imu_inited[3]; + +void initialize_6axis_imu(uint8_t id) +{ + switch (id) + { + case 0: + if (!imu_inited[0]) + { +#ifdef HAL_IMPL + // TODO initialize 6axis-IMU No.0 + imu_inited[0] = 1; +#endif + } + break; + default: + break; + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_6axis_imu_Start_wrapper(const uint8_T *id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +initialize_6axis_imu(id[0]); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_6axis_imu_Outputs_wrapper(HAL_acc_SI_t *acc, + HAL_gyro_SI_t *gyro, + int32_T *ErrorCode, + const uint8_T *id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +ErrorCode[0] = -1; + switch (id[0]) + { + case 0: + if (imu_inited[0]) + { +#ifdef HAL_IMPL + // TODO read 6axis-IMU + ErrorCode[0] = 0; +#endif + } + break; + default: + break; + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_ai_wrapper.c b/EF3Lite/hal_ai_wrapper.c new file mode 100644 index 0000000..e62c627 --- /dev/null +++ b/EF3Lite/hal_ai_wrapper.c @@ -0,0 +1,77 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +//#include "param_mgr.h" +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define u_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int is_analog_input_init = 0; + +void analog_input_init() +{ + if (!is_analog_input_init) + { +#ifdef HAL_IMPL + //TODO + is_analog_input_init = 1; +#endif + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_ai_Start_wrapper(void) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +analog_input_init(); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_ai_Outputs_wrapper(const uint16_T *start_idx, + uint16_T *AI, + int32_T *ErrorCode, + const int_T y_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +ErrorCode[0] = -1; + if (is_analog_input_init) + { +#ifdef HAL_IMPL + /* + * input *AI* from ADC channels from *start_idx* to *start_idx*+y_width-1. + * + * ErrorCode - return zero on success, otherwise nonzero on failures. + */ + // TODO set analog inputs + ErrorCode[0] = 0; +#endif + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_ao_wrapper.c b/EF3Lite/hal_ao_wrapper.c new file mode 100644 index 0000000..71a5165 --- /dev/null +++ b/EF3Lite/hal_ao_wrapper.c @@ -0,0 +1,77 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +//#include "param_mgr.h" +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int is_analog_output_init = 0; + +void analog_output_init() +{ + if (!is_analog_output_init) + { +#ifdef HAL_IMPL + //TODO + is_analog_output_init = 1; +#endif + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_ao_Start_wrapper(void) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +analog_output_init(); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_ao_Outputs_wrapper(const uint16_T *AO, + const uint16_T *start_idx, + int32_T *ErrorCode, + const int_T u_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +ErrorCode[0] = -1; + if (is_analog_output_init) + { +#ifdef HAL_IMPL + /* + * output *AO* to analog output devices from *start_idx* to *start_idx*+u_width-1. + * + * ErrorCode - return zero on success, otherwise nonzero on failures. + */ + // TODO set AO to DAC channels + ErrorCode[0] = 0; +#endif + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_clock_wrapper.c b/EF3Lite/hal_clock_wrapper.c new file mode 100644 index 0000000..5ff00d0 --- /dev/null +++ b/EF3Lite/hal_clock_wrapper.c @@ -0,0 +1,69 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/* TODO include files */ +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +static int is_init = 0; + +static void initialize_clock() +{ + if (!is_init) + { +#ifdef HAL_IMPL + /* TODO setup clock */ + is_init = 1; +#endif + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_clock_Start_wrapper(const uint8_T *typ, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +initialize_clock(); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_clock_Outputs_wrapper(uint32_T *boot_time, + const uint8_T *typ, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +if (is_init) +{ +#ifdef HAL_IMPL +//TODO get clock + // typ: 0 - msec; 1 - usec; +#endif +} +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_di_wrapper.c b/EF3Lite/hal_di_wrapper.c new file mode 100644 index 0000000..2717b0e --- /dev/null +++ b/EF3Lite/hal_di_wrapper.c @@ -0,0 +1,77 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +//#include "param_mgr.h" +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define u_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int is_discrete_input_init = 0; + +void discrete_input_init() +{ + if (!is_discrete_input_init) + { +#ifdef HAL_IMPL + //TODO + is_discrete_input_init = 1; +#endif + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_di_Start_wrapper(void) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +discrete_input_init(); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_di_Outputs_wrapper(const uint16_T *start_idx, + boolean_T *DI, + int32_T *ErrorCode, + const int_T y_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +ErrorCode[0] = -1; + if (is_discrete_input_init) + { +#ifdef HAL_IMPL + /* + * input *DI* from DI devices from *start_idx* to *start_idx*+y_width-1. + * + * ErrorCode - return zero on success, otherwise nonzero on failures. + */ + // TODO set pwm outputs + ErrorCode[0] = 0; +#endif + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_do_wrapper.c b/EF3Lite/hal_do_wrapper.c new file mode 100644 index 0000000..79057ed --- /dev/null +++ b/EF3Lite/hal_do_wrapper.c @@ -0,0 +1,78 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +//#include "param_mgr.h" +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int is_discrete_output_init = 0; + +void discrete_output_init() +{ + if (!is_discrete_output_init) + { +#ifdef HAL_IMPL + + //TODO + is_discrete_output_init = 1; +#endif + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_do_Start_wrapper(void) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +discrete_output_init(); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_do_Outputs_wrapper(const boolean_T *DO, + const uint16_T *start_idx, + int32_T *ErrorCode, + const int_T u_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +ErrorCode[0] = -1; + if (is_discrete_output_init) + { +#ifdef HAL_IMPL + /* + * output *DO* to digital output devices from *start_idx* to *start_idx*+u_width-1. + * + * ErrorCode - return zero on success, otherwise nonzero on failures. + */ + // TODO set DOs + ErrorCode[0] = 0; +#endif + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_general_in_wrapper.c b/EF3Lite/hal_general_in_wrapper.c new file mode 100644 index 0000000..4b9563c --- /dev/null +++ b/EF3Lite/hal_general_in_wrapper.c @@ -0,0 +1,97 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +//#include "param_mgr.h" +#endif +#include +#include +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +typedef int (*genral_in_ptr)(uint8_t *packed_in, const int y_width, void **pW); + +//Demo +int demo_init_func(void **pW) +{ + static int is_init = 0; + if (!is_init) + { + is_init = 1; + } + return 0; +} + +int demo_in_func(uint8_t *packed_in, const int y_width, void **pW) +{ + + return 0; +} + +//TODO add other init/input functions +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_general_in_Start_wrapper(void **pW, + const uint8_T *device_id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +int *valid = (int *)&pW[0]; /* 0-invalid; 1-valid; */ + genral_in_ptr *func = (genral_in_ptr *)&pW[1]; + + valid[0] = 0; + if (strncmp(device_id, "demo", p_width0)) + { + if (!demo_init_func(&pW[2])) + { + *valid = 1; + *func = &demo_in_func; + } + } + //TODO add other cases +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_general_in_Outputs_wrapper(uint8_T *packed_in, + int32_T *ErrorCode, + void **pW, + const uint8_T *device_id, const int_T p_width0, + const int_T y_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +int *valid = (int *)&pW[0]; /* 0-invalid; 1-valid; */ + if (valid[0]) + { + genral_in_ptr func = (genral_in_ptr)pW[1]; + ErrorCode[0] = (*func)(packed_in, y_width, &pW[2]); + } + else + { + ErrorCode[0] = -1; + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_general_out_wrapper.c b/EF3Lite/hal_general_out_wrapper.c new file mode 100644 index 0000000..aff1aa0 --- /dev/null +++ b/EF3Lite/hal_general_out_wrapper.c @@ -0,0 +1,93 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +//#include "param_mgr.h" +#endif +#include +#include +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +typedef int (*genral_out_ptr)(const uint8_t *packed_out, const int u_width, void **pW); + +#ifdef HAL_IMPL +extern int demo_init_func(void **pW); +#else +int demo_init_func(void **pW) +{ +} +#endif + +int demo_out_func(const uint8_t *packed_out, const int u_width, void **pW) +{ + return 0; +} +//TODO add other init/output functions +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_general_out_Start_wrapper(void **pW, + const uint8_T *device_id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +int *valid = (int *)&pW[0]; /* 0-invalid; 1-valid; */ + genral_out_ptr *func = (genral_out_ptr *)&pW[1]; + + valid[0] = 0; + if (strncmp(device_id, "demo", p_width0)) + { + if (!demo_init_func(&pW[2])) + { + *valid = 1; + *func = &demo_out_func; + } + } + //TODO add other cases +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_general_out_Outputs_wrapper(const uint8_T *packed_out, + int32_T *ErrorCode, + void **pW, + const uint8_T *device_id, const int_T p_width0, + const int_T u_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +int *valid = (int *)&pW[0]; /* 0-invalid; 1-valid; */ + if (valid[0]) + { + genral_out_ptr func = (genral_out_ptr)pW[1]; + ErrorCode[0] = (*func)(packed_out, u_width, &pW[2]); + } + else + { + ErrorCode[0] = -1; + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_gps_wrapper.c b/EF3Lite/hal_gps_wrapper.c new file mode 100644 index 0000000..5a57631 --- /dev/null +++ b/EF3Lite/hal_gps_wrapper.c @@ -0,0 +1,87 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + +#include "hal_api.h" + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/* TODO include files */ +#endif +#include +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int gps_inited[4]; + +void initialize_gps(uint8_t id) +{ + switch (id) + { + case 0: + if (!gps_inited[0]) + { +#ifdef HAL_IMPL + // TODO initialize GPS No.0 + gps_inited[0] = 1; +#endif + } + break; + default: + break; + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_gps_Start_wrapper(const uint8_T *id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +initialize_gps(id[0]); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_gps_Outputs_wrapper(HAL_GPS_SI_t *gps, + int32_T *ErrorCode, + const uint8_T *id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +ErrorCode[0] = -1; + switch (id[0]) + { + case 0: + if (gps_inited[0]) + { +#ifdef HAL_IMPL + // TODO read pressure + ErrorCode[0] = 0; +#endif + } + break; + default: + break; + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_ins_wrapper.c b/EF3Lite/hal_ins_wrapper.c new file mode 100644 index 0000000..606c5f6 --- /dev/null +++ b/EF3Lite/hal_ins_wrapper.c @@ -0,0 +1,87 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + +#include "hal_api.h" + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/* TODO include files */ +#endif +#include +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int ins_inited[1]; + +void initialize_ins(uint8_t id) +{ + switch (id) + { + case 0: + if (!ins_inited[0]) + { +#ifdef HAL_IMPL + // TODO initialize GPS No.0 + ins_inited[0] = 1; +#endif + } + break; + default: + break; + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_ins_Start_wrapper(const uint8_T *id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +initialize_ins(id[0]); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_ins_Outputs_wrapper(HAL_INS_SI_t *ins, + int32_T *ErrorCode, + const uint8_T *id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +ErrorCode[0] = -1; + switch (id[0]) + { + case 0: + if (ins_inited[0]) + { +#ifdef HAL_IMPL + // TODO read pressure + ErrorCode[0] = 0; +#endif + } + break; + default: + break; + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_led_set_wrapper.c b/EF3Lite/hal_led_set_wrapper.c new file mode 100644 index 0000000..e894b65 --- /dev/null +++ b/EF3Lite/hal_led_set_wrapper.c @@ -0,0 +1,88 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + +#include "hal_api.h" + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +//#include "param_mgr.h" +#endif +#include +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define u_width 1 +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int is_led_init[1]; + +void led_set_init(uint8_t id) +{ + switch (id) + { + case 0u: + if (!is_led_init[0]) + { +#ifdef HAL_IMPL + //TODO + is_led_init[0] = 1; +#endif + } + break; + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_led_set_Start_wrapper(const uint8_T *id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +led_set_init(id[0]); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_led_set_Outputs_wrapper(const HAL_led_color_t *color, + int32_T *ErrorCode, + const uint8_T *id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +/* + * set LED group *id* with *color* + * + * ErrorCode - return zero on success, otherwise nonzero on failures. + */ + ErrorCode[0] = -1; + switch (id[0]) + { + case 0u: + if (is_led_init[0]) + { +#ifdef HAL_IMPL + // TODO set led color + ErrorCode[0] = 0; +#endif + } + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_nvram_cancel_wrapper.c b/EF3Lite/hal_nvram_cancel_wrapper.c new file mode 100644 index 0000000..7163e9b --- /dev/null +++ b/EF3Lite/hal_nvram_cancel_wrapper.c @@ -0,0 +1,91 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +#include "hal_nvram_read.h" +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define u_width 1 +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ + +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_nvram_cancel_Start_wrapper(const uint8_T *nvram_id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL + initialize_nvram_device(nvram_id[0]); +#endif +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_nvram_cancel_Outputs_wrapper(const uint32_T *address, + int32_T *ErrorCode, + const uint8_T *nvram_id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/* **************************************** + * Cancel to read/write NAVRAM device + * this call should return immediately, so it's better to state the + * backgournd task to do the real work. + * + * inputs: + * address - Starting address to be write + * + * parameter: + * nvram_id - NV-RAM device/proxy ID + * + * outputs: + * ErrorCode - return 0 when success cancelling, otherwise return -1 + */ + ErrorCode[0] = -1; + switch (nvram_id[0]) + { + case 0: + if (is_nvram0_init) + { + //TODO + //ErrorCode[0] = 0; + } + break; + case 1: + if (is_nvram1_init) + { + //TODO + //ErrorCode[0] = 0; + } + break; + } +#else +ErrorCode[0] = 0; +#endif +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_nvram_read.h b/EF3Lite/hal_nvram_read.h new file mode 100644 index 0000000..d153d89 --- /dev/null +++ b/EF3Lite/hal_nvram_read.h @@ -0,0 +1,16 @@ +#ifndef __HAL_NVRAM_READ_H__ +#define __HAL_NVRAM_READ_H__ + +/* TODO include platform head files */ +#include + +/* + * 0 - uninitialized + * 1 - initialized + */ +extern int is_nvram0_init; +extern int is_nvram1_init; + +extern void initialize_nvram_device(uint8_t); + +#endif /* __HAL_NVRAM_READ_H__ */ diff --git a/EF3Lite/hal_nvram_read_wrapper.c b/EF3Lite/hal_nvram_read_wrapper.c new file mode 100644 index 0000000..1c6af6c --- /dev/null +++ b/EF3Lite/hal_nvram_read_wrapper.c @@ -0,0 +1,125 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +#include "hal_nvram_read.h" // for parameter registration +#include "param_mgr.h" // for parameter registration +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define u_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +int is_nvram0_init = 0; +int is_nvram1_init = 0; + +void initialize_nvram_device(uint8_t nvram_id) +{ +if (nvram_id == 0u && !is_nvram0_init) +{ + /* + * initialize nvram device 0 here + */ + //is_nvram0_init = 1; +} +else if (nvram_id == 1u && !is_nvram1_init) +{ + /* + * initialize nvram device 1 here + */ + //is_nvram1_init = 1; +} + +} +#endif +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_nvram_read_Start_wrapper(const uint8_T *nvram_id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL + initialize_nvram_device(nvram_id[0]); +#endif +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_nvram_read_Outputs_wrapper(const uint32_T *address, + const uint16_T *read_len, + uint8_T *buffer, + int32_T *ErrorCode, + const uint8_T *nvram_id, const int_T p_width0, + const int_T y_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/* **************************************** + * read from NAVRAM device + * this call should return immediately, so it's better to state the + * backgournd task to do the real work. + * + * inputs: + * address - Starting address to be read + * read_len - maxium bytes to be read + * + * outputs: + * buffer - read data to buffer + * ErrorCode - return 0 when read complete, otherwise + * return remaining length when readling uncompletly, + * return -1 on genral failures. + * return -2 on busy(ocuppied). + * return -3 on cancelled. + * + * parameter: + * nvram_id - NV-RAM device/proxy ID + * + * constant: + * y_width - the size of buffer, do not write overflow. + */ + ErrorCode[0] = -1; + switch (nvram_id[0]) + { + case 0: + if (is_nvram0_init) + { + //TODO + //ErrorCode[0] = 0; + } + break; + case 1: + if (is_nvram1_init) + { + //TODO + //ErrorCode[0] = 0; + } + break; + } +#else +ErrorCode[0] = 0; +#endif +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_nvram_write_wrapper.c b/EF3Lite/hal_nvram_write_wrapper.c new file mode 100644 index 0000000..5189c00 --- /dev/null +++ b/EF3Lite/hal_nvram_write_wrapper.c @@ -0,0 +1,102 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +#include "hal_nvram_read.h" +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ + +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_nvram_write_Start_wrapper(const uint8_T *nvram_id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL + initialize_nvram_device(nvram_id[0]); +#endif +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_nvram_write_Outputs_wrapper(const uint8_T *buffer, + const uint32_T *address, + const uint16_T *write_len, + int32_T *ErrorCode, + const uint8_T *nvram_id, const int_T p_width0, + const int_T u_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/* **************************************** + * write to NAVRAM device + * this call should return immediately, so it's better to state the + * backgournd task to do the real work. + * + * inputs: + * buffer - write data to buffer + * address - Starting address to be write + * read_len - maxium bytes to be write + * + * outputs: + * ErrorCode - return 0 when write complete, otherwise + * return remaining length when writting uncompletly, + * return -1 on genral failures. + * return -2 on busy(ocuppied). + * return -3 on cancelled. + * + * parameter: + * nvram_id - NV-RAM device/proxy ID + * + * constant: + * u_width - the size of buffer, do not write overflow. + */ + ErrorCode[0] = -1; + switch (nvram_id[0]) + { + case 0: + if (is_nvram0_init) + { + //TODO + //ErrorCode[0] = 0; + } + break; + case 1: + if (is_nvram1_init) + { + //TODO + //ErrorCode[0] = 0; + } + break; + } +#else +ErrorCode[0] = 0; +#endif +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_pressure_wrapper.c b/EF3Lite/hal_pressure_wrapper.c new file mode 100644 index 0000000..8baeb0f --- /dev/null +++ b/EF3Lite/hal_pressure_wrapper.c @@ -0,0 +1,87 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + +#include "hal_api.h" + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/* TODO include files */ +#endif +#include +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int pres_inited[4]; + +void initialize_pressure(uint8_t id) +{ + switch (id) + { + case 0: + if (!pres_inited[0]) + { +#ifdef HAL_IMPL + // TODO initialize pressure No.0 + pres_inited[0] = 1; +#endif + } + break; + default: + break; + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_pressure_Start_wrapper(const uint8_T *id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +initialize_pressure(id[0]); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_pressure_Outputs_wrapper(HAL_pressure_SI_t *pres, + int32_T *ErrorCode, + const uint8_T *id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +ErrorCode[0] = -1; + switch (id[0]) + { + case 0: + if (pres_inited[0]) + { +#ifdef HAL_IMPL + // TODO read pressure + ErrorCode[0] = 0; +#endif + } + break; + default: + break; + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_pwm_in_wrapper.c b/EF3Lite/hal_pwm_in_wrapper.c new file mode 100644 index 0000000..044a1f7 --- /dev/null +++ b/EF3Lite/hal_pwm_in_wrapper.c @@ -0,0 +1,77 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +//#include "param_mgr.h" +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define u_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int is_pwm_in_init = 0; + +void pwm_in_init() +{ + if (!is_pwm_in_init) + { +#ifdef HAL_IMPL + //TODO + is_pwm_in_init = 1; +#endif + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_pwm_in_Start_wrapper(void) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +pwm_in_init(); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_pwm_in_Outputs_wrapper(const uint16_T *start_idx, + uint16_T *pwm, + int32_T *ErrorCode, + const int_T y_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +ErrorCode[0] = -1; + if (is_pwm_in_init) + { +#ifdef HAL_IMPL + /* + * input *pwm* from pwm devices from *start_idx* to *start_idx*+y_width-1. + * + * ErrorCode - return zero on success, otherwise nonzero on failures. + */ + // TODO set pwm outputs + ErrorCode[0] = 0; +#endif + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_pwm_out_wrapper.c b/EF3Lite/hal_pwm_out_wrapper.c new file mode 100644 index 0000000..20ed208 --- /dev/null +++ b/EF3Lite/hal_pwm_out_wrapper.c @@ -0,0 +1,100 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +#include "param_mgr.h" +#endif +#include +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +void get_pwm0peroid(param_value_ptr_t p) +{ + //TODO + p.I[0] = 400u; +} + +void set_pwm0peroid(param_value_ptr_t p) +{ + uint32_t peroid_req; + peroid_req = p.I[0]; + //TODO +} +#endif + +int is_pwm_out_init = 0; + +void pwm_out_init() +{ + if (!is_pwm_out_init) + { +#ifdef HAL_IMPL + //TODO + param_prop p; + strncpy(p.name, "pwm_peroid_g0", 16); + p.val_ptr.s = NULL; + p.getter_ptr = &get_pwm0peroid; + p.setter_ptr = &set_pwm0peroid; + p.typ = PARAM_TYPE_UINT32; + param_mgr_regist(&p); + is_pwm_out_init = 1; +#endif + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_pwm_out_Start_wrapper(void) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +pwm_out_init(); +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_pwm_out_Outputs_wrapper(const uint16_T *pwm, + const uint16_T *start_idx, + int32_T *ErrorCode, + const int_T u_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +ErrorCode[0] = -1; + if (is_pwm_out_init) + { +#ifdef HAL_IMPL + /* + * output *pwm* to pwm devices from *start_idx* to *start_idx*+u_width-1. + * + * ErrorCode - return zero on success, otherwise nonzero on failures. + */ + // TODO set pwm outputs + ErrorCode[0] = 0; +#endif + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_sbus_in_wrapper.c b/EF3Lite/hal_sbus_in_wrapper.c new file mode 100644 index 0000000..c61f4ae --- /dev/null +++ b/EF3Lite/hal_sbus_in_wrapper.c @@ -0,0 +1,84 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + +#include "hal_api.h" + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +//#include "param_mgr.h" +#endif +#include +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +int is_sbus_in_init[1]; + +void sbus_input_init(uint8_t id) +{ + switch (id) + { + case 0: + if (!is_sbus_in_init[0]) + { +#ifdef HAL_IMPL + //TODO config channels, update rate, etc. and bind properties + is_sbus_in_init[0] = 1; +#endif + } + } +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_sbus_in_Start_wrapper(const uint8_T *id, const int_T p_width0) +{ + /* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ + sbus_input_init(id[0]); + /* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_sbus_in_Outputs_wrapper(HAL_sbus_in_t *sbus, + int32_T *ErrorCode, + const uint8_T *id, const int_T p_width0) +{ + /* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ + ErrorCode[0] = -1; + /* + * input *AI* from ADC channels from *start_idx* to *start_idx*+y_width-1. + * + * ErrorCode - return zero on success, otherwise nonzero on failures. + */ + switch (id[0]) + { + case 0u: + if (is_sbus_in_init[0]) + { +#ifdef HAL_IMPL + // TODO set sbus outputs + ErrorCode[0] = 0; +#endif + } + break; + } + /* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} diff --git a/EF3Lite/hal_sen_read_wrapper.c b/EF3Lite/hal_sen_read_wrapper.c new file mode 100644 index 0000000..46593b9 --- /dev/null +++ b/EF3Lite/hal_sen_read_wrapper.c @@ -0,0 +1,275 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +//#include "param_mgr.h" +#endif +#include +#include +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +typedef enum PROP_TYPE +{ + PROP_ARRAY_UINT8 = 1, /* 8-bit unsigned integer | */ + PROP_ARRAY_INT8 = 2, /* 8-bit signed integer | */ + PROP_ARRAY_UINT16 = 3, /* 16-bit unsigned integer | */ + PROP_ARRAY_INT16 = 4, /* 16-bit signed integer | */ + PROP_ARRAY_UINT32 = 5, /* 32-bit unsigned integer | */ + PROP_ARRAY_INT32 = 6, /* 32-bit signed integer | */ + PROP_ARRAY_REAL32 = 7, /* 32-bit floating-point | */ + PROP_FUNC_UINT8 = 8, /* 8-bit unsigned integer | */ + PROP_FUNC_INT8 = 9, /* 8-bit signed integer | */ + PROP_FUNC_UINT16 = 10, /* 16-bit unsigned integer | */ + PROP_FUNC_INT16 = 11, /* 16-bit signed integer | */ + PROP_FUNC_UINT32 = 12, /* 32-bit unsigned integer | */ + PROP_FUNC_INT32 = 13, /* 32-bit signed integer | */ + PROP_FUNC_REAL32 = 14, /* 32-bit floating-point | */ +} PROP_TYPE; + +typedef int8_t (*get_prop_b_func_ptr)(int index, void *paramter); +typedef uint8_t (*get_prop_B_func_ptr)(int index, void *paramter); +typedef int16_t (*get_prop_h_func_ptr)(int index, void *paramter); +typedef uint16_t (*get_prop_H_func_ptr)(int index, void *paramter); +typedef int32_t (*get_prop_i_func_ptr)(int index, void *paramter); +typedef uint32_t (*get_prop_I_func_ptr)(int index, void *paramter); +typedef float (*get_prop_f_func_ptr)(int index, void *paramter); + +float RPM0[4]; + +float RPM1(int index, void *paramter) +{ + (void *)paramter; + + return RPM0[index]; +} +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_sen_read_Start_wrapper(void **pW, + const uint8_T *name, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +/* initialize code to bind property; */ + int *valid = (int *)&pW[0]; /* 0-invalid; 1-valid; */ + PROP_TYPE *type = (PROP_TYPE *)&pW[1]; + int *len = (int *)&pW[2]; /* parameter length; */ + void **val_ptr = &pW[3]; /* pointer to value array */ + void **parameter = &pW[4]; /* parameter for function */ + + /* set default pW values */ + *valid = 0; + *type = 0; + *val_ptr = NULL; + *parameter = NULL; + *len = 0; + if (strncmp(name, "RPM0", p_width0)) + { + *valid = 1; + *type = PROP_ARRAY_REAL32; + *len = 4; + *val_ptr = &RPM0; + } + else if (strncmp(name, "RPM1", p_width0)) + { + *valid = 1; + *type = PROP_FUNC_REAL32; + *len = 4; + *val_ptr = &RPM1; + } +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_sen_read_Outputs_wrapper(real32_T *value, + int32_T *ErrorCode, + void **pW, + const uint8_T *name, const int_T p_width0, + const int_T y_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +/* get binded property value; */ + ErrorCode[0] = -1; + + int *valid = (int *)&pW[0]; + if (*valid) + { + int *len = (int *)&pW[2]; + if (y_width > *len) + { + ErrorCode[0] = -2; + } + else + { + int i; + PROP_TYPE *type = (PROP_TYPE *)&pW[1]; + switch (*type) + { + case PROP_ARRAY_UINT8: + { + uint8_t *val = *(uint8_t **)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)val[i]; + } + ErrorCode[0] = 0; + } + break; + case PROP_ARRAY_INT8: + { + int8_t *val = *(int8_t **)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)val[i]; + } + ErrorCode[0] = 0; + } + break; + case PROP_ARRAY_UINT16: + { + uint16_t *val = *(uint16_t **)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)val[i]; + } + ErrorCode[0] = 0; + } + break; + case PROP_ARRAY_INT16: + { + int16_t *val = *(int16_t **)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)val[i]; + } + ErrorCode[0] = 0; + } + break; + case PROP_ARRAY_UINT32: + { + uint32_t *val = *(uint32_t **)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)val[i]; + } + ErrorCode[0] = 0; + } + break; + case PROP_ARRAY_INT32: + { + int32_t *val = *(int32_t **)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)val[i]; + } + ErrorCode[0] = 0; + } + break; + case PROP_ARRAY_REAL32: + { + float *val = *(float **)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = val[i]; + } + ErrorCode[0] = 0; + } + break; + case PROP_FUNC_UINT8: + { + get_prop_B_func_ptr func = *(get_prop_B_func_ptr *)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)(*func)(i, pW[4]); + } + ErrorCode[0] = 0; + } + break; + case PROP_FUNC_INT8: + { + get_prop_b_func_ptr func = *(get_prop_b_func_ptr *)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)(*func)(i, pW[4]); + } + ErrorCode[0] = 0; + } + break; + case PROP_FUNC_UINT16: + { + get_prop_H_func_ptr func = *(get_prop_H_func_ptr *)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)(*func)(i, pW[4]); + } + ErrorCode[0] = 0; + } + break; + case PROP_FUNC_INT16: + { + get_prop_h_func_ptr func = *(get_prop_h_func_ptr *)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)(*func)(i, pW[4]); + } + ErrorCode[0] = 0; + } + break; + case PROP_FUNC_UINT32: + { + get_prop_I_func_ptr func = *(get_prop_I_func_ptr *)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)(*func)(i, pW[4]); + } + ErrorCode[0] = 0; + } + break; + case PROP_FUNC_INT32: + { + get_prop_i_func_ptr func = *(get_prop_i_func_ptr *)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (float)(*func)(i, pW[4]); + } + ErrorCode[0] = 0; + } + break; + case PROP_FUNC_REAL32: + { + get_prop_f_func_ptr func = *(get_prop_f_func_ptr *)&pW[3]; + for (i = 0; i < y_width; ++i) + { + value[i] = (*func)(i, pW[4]); + } + ErrorCode[0] = 0; + } + break; + } + } + } +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_uart_in_wrapper.c b/EF3Lite/hal_uart_in_wrapper.c new file mode 100644 index 0000000..0240bce --- /dev/null +++ b/EF3Lite/hal_uart_in_wrapper.c @@ -0,0 +1,99 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +#include "hal_uart_init.h" +#include "uart_fifos.h" +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ + +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_uart_in_Start_wrapper(const uint8_T *uart_id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL + initialize_uart_device(uart_id[0]); +#endif +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_uart_in_Outputs_wrapper(uint8_T *Data, + uint16_T *Data_len, + int32_T *ErrorCode, + const uint8_T *uart_id, const int_T p_width0, + const int_T y_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/* ********************************************************** + * collect all data from this uart and push to Data buffer; + * + * parameter: + * uart_id - uart FIFO device to read + * + * outputs: + * Data - read all FIFO data and write to Data array + * Data_len[0] - the number of written data + * ErrorCode[0] - return zero for success, others for failail. + * + * constant: + * y_width - maximum length to write to Data array + ************************************************************/ +Data_len[0] = 0u; +ErrorCode[0] = -1; + switch (uart_id[0]) + { + case 0: + if (is_uart0_init == 2) + { + // TODO read all data from fifo + Data_len[0] = UART_RX_FIFO_read(&rs232_rx1, Data, y_width); + + ErrorCode[0] = 0; + } + break; + case 1: + if (is_uart1_init == 2) + { + // TODO read all data from fifo + Data_len[0] = UART_RX_FIFO_read(&rs232_rx2, Data, y_width); + + ErrorCode[0] = 0; + } + break; + } +#else +/* dummy function for generate mex file for sim*/ +Data_len[0] = 0u; +ErrorCode[0] = 0; +#endif +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_uart_init.h b/EF3Lite/hal_uart_init.h new file mode 100644 index 0000000..7a87b79 --- /dev/null +++ b/EF3Lite/hal_uart_init.h @@ -0,0 +1,17 @@ +#ifndef __HAL_UART_INIT_H__ +#define __HAL_UART_INIT_H__ + +/* TODO include platform head files */ +#include + +/* + * 0 - uninitialized + * 1 - initialized but not configurated + * 2 - initialized and configurated + */ +extern int is_uart0_init; +extern int is_uart1_init; + +extern void initialize_uart_device(uint8_t); + +#endif /* __HAL_UART_INIT_H__ */ diff --git a/EF3Lite/hal_uart_init_wrapper.c b/EF3Lite/hal_uart_init_wrapper.c new file mode 100644 index 0000000..ce57f3f --- /dev/null +++ b/EF3Lite/hal_uart_init_wrapper.c @@ -0,0 +1,291 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +#include "hal_uart_init.h" +#include "param_mgr.h" // for parameter registration +#include + +/** LQH add */ +#include "uart_fifos.h" +#include "usart.h" +extern UART_HandleTypeDef huart5; +extern UART_HandleTypeDef huart6; + +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define u_width 1 +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL + +void get_uart0_baud(param_value_ptr_t p) +{ + //TODO + p.I[0] =115200u; +} + +void set_uart0_baud(param_value_ptr_t p) +{ + uint32_t buad_req; + buad_req = p.I[0]; + //TODO +} + +void get_uart0_stopbits(param_value_ptr_t p) +{ + //TODO + p.B[0] =1u; +} + +void set_uart0_stopbits(param_value_ptr_t p) +{ + uint8_t stopbits_req; + stopbits_req = p.B[0]; + //TODO +} + +void get_uart0_wordlen(param_value_ptr_t p) +{ + //TODO + p.B[0] =8u; +} + +void set_uart0_wordlen(param_value_ptr_t p) +{ + uint8_t wordlen_req; + wordlen_req = p.B[0]; + //TODO +} + +void get_uart0_parity(param_value_ptr_t p) +{ + //TODO + p.B[0] =0u; +} + +void set_uart0_parity(param_value_ptr_t p) +{ + uint8_t parity_req; + parity_req = p.B[0]; + //TODO +} + +int is_uart0_init = 0; +int is_uart1_init = 0; + +void initialize_uart_device(uint8_t nvram_id) +{ +if (nvram_id == 0u && is_uart0_init == 0) +{ + /* + * initialize uart device 0 here + */ + + // bind property to config functions + param_prop p; + strncpy(p.name, "uart0_baud", 16); + p.val_ptr.s = NULL; + p.getter_ptr = &get_uart0_baud; + p.setter_ptr = &set_uart0_baud; + p.typ = PARAM_TYPE_UINT32; + param_mgr_regist(&p); + + strncpy(p.name, "uart0_stopbits", 16); + p.getter_ptr = &get_uart0_stopbits; + p.setter_ptr = &set_uart0_stopbits; + p.typ = PARAM_TYPE_UINT8; + param_mgr_regist(&p); + + strncpy(p.name, "uart0_wordlen", 16); + p.getter_ptr = &get_uart0_wordlen; + p.setter_ptr = &set_uart0_wordlen; + p.typ = PARAM_TYPE_UINT8; + param_mgr_regist(&p); + + strncpy(p.name, "uart0_parity", 16); + p.getter_ptr = &get_uart0_parity; + p.setter_ptr = &set_uart0_parity; + p.typ = PARAM_TYPE_UINT8; + param_mgr_regist(&p); + + is_uart0_init = 1; // initialized +} +else if (nvram_id == 1u && is_uart1_init == 0) +{ + /* + * initialize uart device 1 here + */ + is_uart1_init = 0; //TODO not initialized, change to 1 when done +} + +} +#endif +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_uart_init_Start_wrapper(const uint8_T *uart_id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL + initialize_uart_device(uart_id[0]); +#endif +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_uart_init_Outputs_wrapper(const uint32_T *baudrate, + const uint8_T *wordlen, + const uint8_T *stopbits, + const uint8_T *parity, + const uint16_T *buff_rx, + const uint16_T *buff_tx, + const uint32_T *opts, + int32_T *ErrCode, + const uint8_T *uart_id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/******************************* + * config code for No.uart_id uart FIFO device; + * which is called as initialization code for the first time, + * then as func-call for update uart config, such as baud/stopbits/parity/... + * + * inputs: + * baudrate[0] - config uart baudrate (115200 for default) + * wordlen[0] - word length (7/8/9, 8 for 8bits in default) + * stopbits[0] - stop bits (1/2, 1 stop bits for default) + * parity[0] - parity check (0 for None, 1 for Odd and 2 for Even) + * buff_rx[0] - buffer length for RX, set zero for disable RX + * buff_tx[0] - buffer length for TX, set zero for disable TX + * opts[0] - option flags for advance setting + * + * output: + * ErrCode[0] - return zero for success, others for failures. + * + * parameter: + * uart_id - uart device id (start from zero) + *********************************/ + ErrCode[0] = -1; + switch (uart_id[0]) + { + case 0: + if (is_uart0_init == 1) // init + { + huart6.Instance = USART6; + huart6.Init.BaudRate = baudrate[0]; + if(wordlen[0] == 7) + huart6.Init.WordLength = UART_WORDLENGTH_7B; + else if(wordlen[0] == 8) + huart6.Init.WordLength = UART_WORDLENGTH_8B; + else if(wordlen[0] == 9) + huart6.Init.WordLength = UART_WORDLENGTH_9B; + else + huart6.Init.WordLength = UART_WORDLENGTH_8B; + + if(stopbits[0] == 1) + huart6.Init.StopBits = UART_STOPBITS_1; + else if(stopbits[0] == 2) + huart6.Init.StopBits = UART_STOPBITS_2; + else + huart6.Init.StopBits = UART_STOPBITS_1; + + if(parity[0] == 0) + huart6.Init.Parity = UART_PARITY_NONE; + else if(parity[0] == 1) + huart6.Init.Parity = UART_PARITY_ODD; + else if(parity[0] == 2) + huart6.Init.Parity = UART_PARITY_EVEN; + else + huart6.Init.Parity = UART_PARITY_NONE; + + if (HAL_UART_Init(&huart6) != HAL_OK) + { + Error_Handler(); + } + + //TODO config uart0 fifo + UART_RX_FIFO_open(&rs232_rx1,&huart6,buff_rx[0],UART_FIFO_DMA); + UART_TX_FIFO_open(&rs232_tx1,&huart6,buff_tx[0],UART_FIFO_DMA); + + is_uart0_init = 2; // init done + ErrCode[0] = 0; + } + break; + case 1: + if (is_uart1_init == 1) + { + huart5.Instance = UART5; + huart5.Init.BaudRate = baudrate[0]; + if(wordlen[0] == 7) + huart5.Init.WordLength = UART_WORDLENGTH_7B; + else if(wordlen[0] == 8) + huart5.Init.WordLength = UART_WORDLENGTH_8B; + else if(wordlen[0] == 9) + huart5.Init.WordLength = UART_WORDLENGTH_9B; + else + huart5.Init.WordLength = UART_WORDLENGTH_8B; + + if(stopbits[0] == 1) + huart5.Init.StopBits = UART_STOPBITS_1; + else if(stopbits[0] == 2) + huart5.Init.StopBits = UART_STOPBITS_2; + else + huart5.Init.StopBits = UART_STOPBITS_1; + + if(parity[0] == 0) + huart5.Init.Parity = UART_PARITY_NONE; + else if(parity[0] == 1) + huart5.Init.Parity = UART_PARITY_ODD; + else if(parity[0] == 2) + huart5.Init.Parity = UART_PARITY_EVEN; + else + huart5.Init.Parity = UART_PARITY_NONE; + + if (HAL_UART_Init(&huart5) != HAL_OK) + { + Error_Handler(); + } + //TODO config uart1 fifo + UART_RX_FIFO_open(&rs422_rx2,&huart5,buff_rx[0],UART_FIFO_DMA); + UART_TX_FIFO_open(&rs422_tx2,&huart5,buff_tx[0],UART_FIFO_IT); + + is_uart1_init = 2; // init done + ErrCode[0] = 0; + } + break; + case 2: + break; + case 3: + break; + } +#else +/* dummy function for generate mex file for sim*/ +ErrCode[0] = 0; +#endif +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + + diff --git a/EF3Lite/hal_uart_out_wrapper.c b/EF3Lite/hal_uart_out_wrapper.c new file mode 100644 index 0000000..d35fc47 --- /dev/null +++ b/EF3Lite/hal_uart_out_wrapper.c @@ -0,0 +1,95 @@ + +/* + * Include Files + * + */ +#if defined(MATLAB_MEX_FILE) +#include "tmwtypes.h" +#include "simstruc_types.h" +#else +#include "rtwtypes.h" +#endif + + + +/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +#include "hal_uart_init.h" +#endif +/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */ +#define y_width 1 + +/* + * Create external references here. + * + */ +/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */ + +/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */ + +/* + * Start function + * + */ +void hal_uart_out_Start_wrapper(const uint8_T *uart_id, const int_T p_width0) +{ +/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL + initialize_uart_device(uart_id[0]); +#endif +/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */ +} +/* + * Output function + * + */ +void hal_uart_out_Outputs_wrapper(const uint8_T *buff, + const uint16_T *len, + const uint8_T *sep, + int32_T *ErrorCode, + const uint8_T *uart_id, const int_T p_width0, + const int_T u_width) +{ +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */ +#ifdef HAL_IMPL +/* *********************************************** + * push all data to this uart output queue; + * + * inputs: + * buff - data array to be sent + * len[0] - available length in the data array + * sep[0] - it means the data array updated when sep[0] changed, + * uart_id[0] - uart FIFO device which is required to send data + * + * output: + * ErrorCode[0] - return zero for success, others for failail. + * + * constant: + * u_width - the maximum size of buff, do not read buff out of range. + *************************************************/ +ErrorCode[0] = -1; + switch (uart_id[0]) + { + case 0: + if (is_uart0_init == 2) + { + // TODO write all data to fifo + ErrorCode[0] = 0; + } + break; + case 1: + if (is_uart1_init == 2) + { + // TODO write all data to fifo + ErrorCode[0] = 0; + } + break; + } +#else +/* dummy function for generate mex file for sim*/ +ErrorCode[0] = 0; +#endif +/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */ +} + +