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

Введение

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

Чтобы видеть пример получения информации о синхронизации, смотрите Определение Длительности Задержки Кадра.

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

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

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

InitialTriggerTime записывает первое триггерное выполнение

Триггерная информация о синхронизации хранится в векторном формате часов MATLAB®. Следующий пример отображает время первого триггера для объекта vid ввода видео. Пример использует функцию datestr MATLAB, чтобы преобразовать информацию в форму, которая более удобна для представления.

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, чтобы получить конструктора Object для вашего устройства получения изображений и заменить тем синтаксисом следующий код.

    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