Problem with bus in a s-function
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have a hand-written C S-Function, which compiles but when I execute it, it gives the following error:
" 'Proba1/SFunction' cannot modify the zero representation of data type 'BALISEDATA_MESSAGE'. "
I think my problem can be in the following piece of code:
#ifndef __SL_DTYPE_BALISEDATA_MSG_C__
#define __SL_DTYPE_BALISEDATA_MSG_C__
/* include *******************************************************************/
#include "simstruc.h"
#include "BaliseData_message.h"
DTypeId Register_DType_BALISEDATA_Msg( SimStruct *S )
{
/* Define variables */
int_T status;
DTypeId id;
BALISEDATA_DATATYPE tmp;
/* Register the user-defined data types */
id = ssRegisterDataType(S, "BALISEDATA_MESSAGE");
if(id != INVALID_DTYPE_ID)
{
/* Set the size of the user-defined data type */
status = ssSetDataTypeSize(S, id, sizeof(BALISEDATA_DATATYPE));
if(status == 0)
{
id = INVALID_DTYPE_ID;
}
}
if(id != INVALID_DTYPE_ID)
{
/* Set the zero representation */
uint8_T byteIndex;
tmp.New_Balisse = (boolean_T)0;
tmp.BalissePosition = (real32_T)0;
tmp.GroundInclination = (real32_T)0;
tmp.NextBalissePosition = (real32_T)0;
status = ssSetDataTypeZero(S, id, &tmp);
}
return(id);
}
#endif
Can anybody help me?
1 comentario
Kaustubha Govind
el 18 de Mayo de 2011
Perhaps the zero representation of the type had already been set to a different value while you were trying this out? Look at the value returned by ssGetDataTypeZero and try doing a memcmp to the value you are trying to set (tmp).
Respuestas (0)
Ver también
Categorías
Más información sobre Configure C/C++ S-Function Features en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!