ssGetInputPortSignal

Получите адрес непрерывного сигнала, вводящего входной порт

Синтаксис

const void *ssGetInputPortSignal(SimStruct *S, int_T inputPortIdx)

Аргументы

S

SimStruct, представляющий Блок s-function.

inputPortIdx

Индекс порта, адрес которого требуется.

Возвращается

Указатель (void *) к входному порту, заданному индексом inputPortIdx.

Описание

Используйте, чтобы получить адрес непрерывного сигнала, вводящего входной порт. Ваша S-функция должна использовать этот макрос только если mdlInitializeSizes указал, что элементы входного сигнала непрерывны, с помощью ssSetInputPortRequiredContiguous. Для входа, состоящего из нескольких несмежных участков, используйте ssGetInputPortSignalPtrs функция.

Примечание

Если вы указали, что входные порты являются допускающим повторное использование использованием ssSetInputPortOptimOpts, затем вы не можете использовать ssGetInputPortSignal где угодно кроме mdlOutputs. Например, если входные параметры были заданы как допускающие повторное использование с SS_REUSABLE_AND_LOCAL отметьте, mdlUpdate стандартные ошибки, потому что это пытается получить доступ к входу memory, который недоступен.

Примечание

ssGetInputPortSignal макрос становится функцией, когда вы компилируете свою S-функцию в режиме отладки (mex -g).

Языки

C, C++

Пример

Следующий код демонстрирует использование ssGetInputPortSignal.

nInputPorts = ssGetNumInputPorts(S);
	for (i = 0; i < nInputPorts; i++) {
		int_T nu = ssGetInputPortWidth(S,i);

	if ( ssGetInputPortRequiredContiguous(S,i) ) {
  
		const void *u = ssGetInputPortSignal(S,i);
		UseInputVectorInSomeFunction(u, nu);

		} else {

		InputPtrsType u  = ssGetInputPortSignalPtrs(S,i);
			for (j = 0; j < nu; j++) {
			UseInputInSomeFunction(*u[j]);
			}
		}
	}

Если вы знаете, что входными параметрами всегда является real_T сигналы, ssGetInputPortSignal линия в вышеупомянутом фрагменте кода была бы

const real_T *u = ssGetInputPortRealSignal(S,i);

Представлено до R2006a