Обучающая программа — Создание прикладной программы в LabWindows/CVI, страница 23

Рисунок 12-2. Диалоговое окно Translate LW DOS Program.

• Start - начало процесса трансляции.

• Read Me - отображает описание процесса трансляции.

• Cancel  - прерывает процесс трансляции.

• Выбирают текст для трансляции: транслировать весь файл, трансляция с текущей позиции курсора, или трансляция только выбранного текста.

• Prompt on every change вызывает диалоговое окно всякий раз, когда изменение в вашем исходном тексте необходимо. Вы можете подтвердить, выделить, или пропустить изменение, отменить предыдущее действие, или остановить трансляцию в этом диалоговом окне.

• Mark only добавляет комментарии к вашей программе, но не делает никаких функциональных изменений.

5. После того, как вы сконфигурировали диалоговое меню Translate LW DOS Program, выберите Start и завершите автоматизированный процесс трансляции.

6. Библиотечные функции Analysis/Advanced Analysis не модифицируют глобальную переменную dsp_err в LabWindows/CVI. Вместо этого, возвращаемое значение для каждой функции указывает статус функции. Если ваша программа проверяет значения dsp_err, вы должны будете изменить вашу программу так, чтобы она проверяла возвращаемые значения ошибки библиотечной функции Analysis/Advanced Analysis.

7. Вы будете должны изменить любые int массивы, которые переданы в GPIB, VXI, или функциям DAQ. В LabWindows DOS, целые переменные - 16 бит (2 байта). В LabWindows/CVI, целые переменные - 32 бит (4 байта).

Содержание целочисленных элементов массива 0 и 1 в LabWindows для DOS (16-разрядная система) упаковано в целочисленный элемент массива 0 в LabWindows/CVI (32-разрядная система). Любая попытка обратиться к массиву на основе элемент-элемент не будет работать. Вы должны вместо этого объявить массив как short, и любые спецификаторы типа, которые обращаются к нему, должны иметь модификатор [b2], который вы передаете им как параметр библиотечной функции Formatting and I/O.

8. Вы будете должны изменить любые int переменные, которые вы используете в способе требующем, чтобы они были целыми числами с двумя байтами. Например, если вы передаете параметр int адресом в библиотечной функции Formatting and I/O (источник Scan или адресат Scan/Fmt) и это соответствует спецификатору %d [b2] или %i [b2], это не будет работать правильно. Вы будете должны удалить модификатор [b2], или объявить переменную как short.

И наоборот, если вы передаете короткий параметр адресом, и это соответствует спецификатору %d или %i без модификатора [b2], это не будет работать правильно. В этом случае, вы должны добавить модификатор [b2].

Внимание!!! Поскольку значение по умолчанию для %d - 2 байта в 16-разрядном компиляторе, это - 4 байта на 32-разрядном компиляторе. Аналогично, значение по умолчанию для int - 2 байта на 16-разрядном компиляторе, и это - 4 байта на 32-разрядном компиляторе. Таким образом, если спецификатор для переменной типа int - %d, вам не нужно делать любые модификации.

9. Вы должны будете изменить библиотечные функции Formatting and I/O, которые используют модификатор [о]. Модификатор [о] в библиотеке Formatting and I/O имеет различные значения для LabWindows/CVI и для LabWindows для DOS. Если ваша программа использует модификатор [o], вы должны будете изменить это как объяснено в следующих абзацах.

В LabWindows для DOS, вы используете модификатор [o], чтобы изменить упорядочение байтов, которые составляют целое число. Это необходимо, если прибор посылает двоичные многобайтовые данные и они не в формате Intel.

Поскольку LabWindows/CVI поддерживает архитектуры как Intel (PC) так и Motorola (SPARCstation), вы используете модификатор [o] в LabWindows/CVI, чтобы описать упорядочение байта в данных, быстрей чем изменять их. В функции Fmt/Scan буфер содержащий необработанные данные прибора должен иметь модификатор [o], описывающий упорядочение байта. Буфер без модификатора [o] будет в режиме главного процессора.

Другими словами, LabWindows/CVI обращает упорядочение байта буфера без модификатора [o], в зависимости от архитектуры на которой  программа выполняется.