Files
sil/SIL/otherFiles/set_param_val_wrapper.c
T
Matthew 282e5684b1 init
2020-09-30 11:44:05 +08:00

103 lines
2.2 KiB
C

/*
* 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 WITH_CAPI
#include "param_mgr.h"
#include <string.h>
#endif
/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */
#define u_width 16
#define y_width 1
/*
* Create external references here.
*
*/
/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */
#ifdef WITH_CAPI
void scan_params(void);
#endif
/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */
/*
* Start function
*
*/
void set_param_val_Start_wrapper(void)
{
/* %%%-SFUNWIZ_wrapper_Start_Changes_BEGIN --- EDIT HERE TO _END */
#ifdef WITH_CAPI
scan_params();
#endif
/* %%%-SFUNWIZ_wrapper_Start_Changes_END --- EDIT HERE TO _BEGIN */
}
/*
* Output function
*
*/
void set_param_val_Outputs_wrapper(const uint8_T *name,
const uint8_T *value,
const uint8_T *type,
int16_T *index)
{
/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */
#ifdef WITH_CAPI
int16_t i = param_get_idx_by_name(name);
if (i >= 0)
{
param_prop *p = param_get_by_idx(i);
if (p->typ == type[0])
{
param_set_value(p, value);
}
else
{
if (type[0] < PARAM_TYPE_REAL32)
{
if (p->typ < PARAM_TYPE_REAL32)
{
param_set_value(p, value);
}
else
{
float val;
val = *(int32_t *)value;
param_set_value(p, (uint8_t *)&val);
}
}
else
{
if (p->typ < PARAM_TYPE_REAL32)
{
int32_t val;
val = *(float *)value;
param_set_value(p, (uint8_t *)&val);
}
else
{
param_set_value(p, value);
}
}
}
index[0] = i;
return;
}
#endif
index[0] = -1;
/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */
}