Я могу вводить логические данные в C s-функцию, определяя ее как int32 (см. Код ниже).Как мне ввести логические данные с типом SS_BOOLEAN или SS_UINT8?Я явно указал тип данных сигнала в моей модели Simulink и s-функции, но когда я определил данные как логические или uint8, я получил странные числа вместо 1 или 0.
static void mdlInitializeSizes( SimStruct *S )
{
...
ssSetInputPortRequiredContiguous(S, 0, true);
ssSetInputPortDataType(S, 0, SS_INT32);
...
}
static void mdlOutputs( SimStruct *S, int_T tid )
{
const int *myBoolean = (const int*) ssGetInputPortSignal( S, 0 );
...
}
Обновить (20 мая 2011 г.): Я попробовал решение , предложенное MikeT , но безрезультатно.В качестве результата я ожидал [10 20 30], но получил [1 2 3].Ниже представлена модель Simulink, окно вывода команды и код s-функции: