BioAPI_RETURN BioAPI BioAPI_QueryUnits | ||||
(const BioAPI_UUID *BSPUuid, | ||||
BioAPI_UNIT_SCHEMA **UnitSchemaArray, | ||||
uint32_t *NumberOfElements); |
8.1.9.1 Описание
Данная функция предоставляет информацию обо всех модулях БиоАПИ, которые непосредственно или косвенно управляются ПБУ, идентифицированных предоставляемым УУИД ПБУ и присутствующих в системе. Функция выполняет действия в следующем порядке:
a) устанавливает число модулей БиоАПИ, которые будут управляться непосредственно или косвенно данным ПБУ;
b) выделяет блок памяти, достаточный для размещения массива элементов типа BioAPI_UNIT_SCHEMA с числом элементов, равным числу модулей БиоАПИ, определенному в перечислении а);
c) заполняет массив схемами всех модулей БиоАПИ, определенных в перечислении а);
d) возвращает адрес массива в параметре UnitSchemaArray и размер массива в параметре NumberOfElements.
Примечание - Когда инфраструктура вызывает функцию ПБУ BioSPI_QueryUnits, ПБУ выделяет память для данных, которые должны быть возвращены инфраструктуре. В некоторых реализациях архитектуры инфраструктура передает данные приложению в точности о том, как возвращено ПБУ, так как приложение интерпретирует адрес так же, как и ПБУ, и сможет получить доступ к данным, которые размещены по этому адресу. В других реализациях архитектуры инфраструктура должна переместить все данные, возвращенные ПБУ, во вновь выделенный блок памяти, доступный приложению, и вызвать функцию BioSPI_Free после копирования каждого блока памяти, но перед возвращением вызова BioAPI_QueryUnits. В первом случае, когда приложение вызывает функцию BioAPI_Free, инфраструктура делает соответствующий вызов BioSPI_Free. Во втором случае вызов BioAPI_Free обрабатывается самой инфраструктурой. Однако особенности данных реализаций инфраструктуры не видны приложению.
Блок памяти, содержащий массив, должен быть освобожден приложением путем вызова функции BioAPI_Free (см. 8.7.2), если он больше не нужен приложению. Блок памяти, на который ссылаются элементы UnitProperties в пределах каждого элемента массива, должен также быть освобожден приложением путем вызова функции BioAPI_Free, если он больше не нужен приложению. Данная функция может быть вызвана только после вызова функции BioAPI_Load для ПБУ и не может быть вызвана после вызова функции BioAPI_Unload для ПБУ.
8.1.9.2 Параметры
BSPUuid (входной) - УУИД ПБУ, на который должна быть возвращена информация о модуле.
UnitSchemaArray (выходной) - указатель на массив элементов типа BioAPI_UNIT_SCHEMA (распределенный ПБУ, см. примечание к 8.1.9.1), содержащий информацию о схемах модуля.
NumberOfElements (выходной) - указатель на число элементов массива.
8.1.9.3 Возвращаемое значение
Значение BioAPI_RETURN указывает на успешное выполнение функции или определяет тип ошибки. Значение BioAPI_OK указывает на отсутствие ошибки. Все остальные значения описывают тип ошибки.
8.1.9.4 Ошибки
BioAPIERR _BSP_NOT_LOADED | |||
BioAPIERR_INVALID_UUID |
Данные об обработке ошибок БиоАПИ приведены в разделе 11.