exponenta event banner

Получение информации о синхронизации

Введение

В следующих разделах описывается, как инструментарий предоставляет информацию о времени сбора данных, в частности:

Пример получения информации о синхронизации см. в разделе Определение длительности задержки кадра.

Определение момента выполнения триггера

Чтобы определить, когда триггер выполнен, проверьте информацию, возвращенную событием триггера в журнале событий объекта. Вы также можете получить доступ к этой информации в функции обратного вызова, связанной с событием триггера. Дополнительные сведения см. в разделе Получение информации о событии.

Для удобства панель инструментов возвращает время выполнения первого триггера в объекте ввода видео InitialTriggerTime собственность. На этом рисунке показано, какой триггер возвращается в этом свойстве при настройке нескольких триггеров.

InitiveTriggerTime: выполнение первого триггера записей

Информация о синхронизации триггера сохраняется в формате вектора синхронизации MATLAB ®. В следующем примере показано время первого триггера для объекта ввода видеоvid. В примере используется MATLAB datestr для преобразования информации в форму, удобную для просмотра.

datestr(vid.InitialTriggerTime)

ans =

02-Mar-2007 13:00:24

Определение момента получения кадра

Панель инструментов предоставляет два способа определения того, когда был получен конкретный кадр:

  • К абсолютному времени приобретения

  • По прошедшему времени относительно выполнения триггера

Вы можете использовать getdata функция для извлечения информации о синхронизации обоих типов.

Получение относительного времени сбора данных

При использовании getdata при необходимости можно указать два возвращаемых значения. Одно возвращаемое значение содержит данные изображения; другое возвращаемое значение содержит вектор временных меток, которые измеряют в секундах время, когда кадр был получен относительно первого триггера.

[data time] = getdata(vid);

Пример см. в разделе Определение длительности задержки кадра.

Получение абсолютного времени сбора данных

При использовании getdata при необходимости можно указать три возвращаемых значения. Первый содержит данные изображения, второй содержит вектор относительного времени обнаружения, а третий является массивом структур, где каждая структура содержит метаданные, связанные с конкретным кадром.

[data time meta ] = getdata(vid);

Каждая структура в массиве содержит следующие четыре поля. AbsTime содержит абсолютное время получения кадра. Эти метаданные также можно получить с помощью обратных вызовов событий. Дополнительные сведения см. в разделе Получение сведений о событии.

Метаданные кадра

Имя поля

Описание

AbsTime

Абсолютное время получения кадра, возвращенного в MATLAB clock формат

[year month day hour minute seconds]

FrameNumber

Номер кадра относительно момента запуска объекта

RelativeFrame

Номер кадра относительно выполнения триггера

TriggerIndex

Триггер, с которым связано событие. Например, при запуске объекта соответствующий триггер равен 0. При остановке он эквивалентен TriggersExecuted собственность.

Определение длительности задержки кадра

Для иллюстрации в этом примере вычисляется длительность задержки, указанной TriggerFrameDelay собственность.

  1. Создание объекта получения изображения - в этом примере создается объект ввода видео для устройства получения изображения Data Translation ® с использованием формата видео по умолчанию. Для запуска этого примера в системе используйте imaqhwinfo чтобы получить конструктор объекта для устройства получения изображения и заменить этот синтаксис следующим кодом.

    vid = videoinput('dt',1);
  2. Настроить свойства - в этом примере можно настроить достаточно большую задержку триггерного кадра, чтобы получить заметную продолжительность.

    vid.TriggerFrameDelay = 50
  3. Запуск объекта сбора изображений - вызовите start для запуска объекта получения изображения.

    start(vid)

    Объект выполняет немедленный триггер и начинает получение кадров данных. start функция возвращает управление в командную строку немедленно, но регистрация данных не начинается до тех пор, пока не истечет задержка триггерного кадра. После регистрации указанного количества кадров объект прекращает работу.

  4. Перенос полученных данных в рабочую область - вызов getdata для ввода кадров в рабочую область. Укажите возвращаемое значение для принятия информации синхронизации, возвращаемой getdata.

    [data time ] = getdata(vid);

    Переменная time - вектор, содержащий время регистрации каждого кадра, измеренное в секундах относительно выполнения первого триггера. Проверьте первое значение в векторе времени. Он должен отражать продолжительность задержки перед началом регистрации данных.

    time
    
    time =
    
        4.9987
        5.1587
        5.3188
        5.4465
        5.6065
        5.7665
        5.8945
        6.0544
        6.2143
        6.3424
  5. Очистить - всегда удалять объекты сбора изображений из памяти и переменные, которые ссылаются на них, когда они больше не нужны.

    delete(vid)
    clear vid