xPCGetSignals

Возвратите вектор значений сигналов

Прототип

int xPCGetSignals(int port, int numSignals, const int *signals, 
double *values);

Аргументы

port

Введите значение, возвращенное функцией xPCOpenTcpIpPort.

numSignals

Введите номер сигналов, которые будут получены (то есть, количество значений в signals).

signals

Введите список чисел сигнала, которые будут получены.

values

Возвращенные значения хранятся в двойном массиве values.

Возврат

Если функция завершает выполнение, не обнаруживая ошибку, это возвращает 0. Если функция обнаруживает ошибку, она возвращает -1.

Описание

xPCGetSignals функция является векторной версией функции xPCGetSignal. Эта функция возвращает значения вектора сигналов (до 1000) с такой скоростью, как это может получить их. Функция получает некоторые значения сигналов в одном временном шаге и более поздние сигналы в другом. Чтобы получить значения сигналов в одном временном шаге, задайте осциллограф типа SCTYPE_HOST и используйте xPCScGetData. xPCGetSignal, делает то же самое для одного сигнала и мог использоваться многократно, чтобы достигнуть того же результата. Однако xPCGetSignals функция быстрее, и значения сигналов, более вероятно, будут расположены с интервалами тесно вместе. Сигналы преобразованы в, удваивается независимо от фактического типа данных сигнала.

Для signals, сохраните список, который вы предоставляете в целочисленном массиве. Получите числа сигнала с функцией xPCGetSignalIdx.

Пример

Чтобы сослаться на данные о сигнальном векторе, а не скалярные значения, передайте вектор индексов для данных сигнала. Например:

/**********************************************************/ 
 
/* Assume a signal of width 10, with the blockpath 
* mySubsys/mySignal and the signal index s1. 
*/ 
 
int i; 
int sigId[10]; 
double sigVal[10]; /* Signal values are stored here */ 
 
/* Get the ID of the first signal */ 
sigId[0] = xPCGetSignalIdx(port, "mySubsys/mySignal/s1"); 
 
if (sigId[0] == -1) { 
/* Handle error */ 
} 
 
for (i = 1; i < 10; i++) { 
     sigId[i] = sigId[0] + i; 
} 
 
xPCGetSignals(port, 10, sigId, sigVal); 
/* If no error, sigVal should have the signal values */ 
 
/***********************************************************/

Чтобы неоднократно получать сигналы, повторите вызов xPCGetSignals. Если вы не изменяете sigID, вызовите xPCGetSignalIdx только однажды.

Смотрите также

|

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