Effacer les filtres
Effacer les filtres

Problem with bus in a s-function

2 vues (au cours des 30 derniers jours)
Iban
Iban le 18 Mai 2011
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 commentaire
Kaustubha Govind
Kaustubha Govind le 18 Mai 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).

Connectez-vous pour commenter.

Réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by