manually merged with ARM version
This commit is contained in:
162
l502/l502api.h
Normal file
162
l502/l502api.h
Normal file
@ -0,0 +1,162 @@
|
||||
/***************************************************************************//**
|
||||
@file l502api.h
|
||||
Файл содержит все необходимые описания типов, констант и функций для работы
|
||||
с модулем L-502 из пользовательской программы.
|
||||
@date 11.03.2012
|
||||
@author Borisov Alexey <borisov@lcard.ru>
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef L502_API_H
|
||||
#define L502_API_H
|
||||
|
||||
#include "l502api_compat.h"
|
||||
#include "x502api.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/***************************************************************************//**
|
||||
@addtogroup func_open
|
||||
@{
|
||||
*******************************************************************************/
|
||||
|
||||
/***************************************************************************//**
|
||||
@brief Получение списка серийных номеров модулей L-502
|
||||
|
||||
Функция возвращает список номеров всех найденных модулей L-502, независимо от
|
||||
того, открыты они сейчас или нет.
|
||||
|
||||
Если нужен список только тех модулей, которые не открыты (то есть
|
||||
только тех, с которыми можно установить соединение), то для этого можно
|
||||
передать в функцию флаг #X502_GETDEVS_FLAGS_ONLY_NOT_OPENED.
|
||||
|
||||
@param[in] serials Массив размером size*#X502_SERIAL_SIZE байт, в который
|
||||
будут сохранены серийные номера найденных модулей.
|
||||
Может быть NULL, если size=0, а devcnt!=NULL, в случае,
|
||||
если нужно только получить количество модулей в системе.
|
||||
@param[in] size Определяет, сколько максимально серийных номеров может
|
||||
быть сохранено в массив serial. Будут сохранены только
|
||||
первые size серийных номеров.
|
||||
Может быть 0, если serials=NULL
|
||||
@param[in] flags Флаги из #t_x502_getdevs_flags, определяющие поведение
|
||||
функции.
|
||||
@param[out] devcnt Если devcnt!=NULL, то в данную переменную сохраняется
|
||||
общее число найденных модулей L502
|
||||
(может быть больше size).
|
||||
@return Если <0 - код ошибки, иначе количество сохраненных
|
||||
серийных номеров в массиве serials (всегда <= size)
|
||||
*******************************************************************************/
|
||||
X502_EXPORT(int32_t) L502_GetSerialList(char serials[][X502_SERIAL_SIZE], uint32_t size,
|
||||
uint32_t flags, uint32_t *devcnt);
|
||||
|
||||
/***************************************************************************//**
|
||||
@brief Открытие модуля L-502 по его серийному номеру
|
||||
|
||||
Функция устанавливает связь с модулем L-502 по его серийному номеру.
|
||||
После успешного выполнения этой функции, пользователь получает эксклюзивный
|
||||
доступ к модулю через описатель модуля. До закрытия связи с помощью
|
||||
X502_Close() никто другой установить связь с модулем не сможет
|
||||
(будет возвращена ошибка #X502_ERR_DEVICE_ACCESS_DENIED).
|
||||
|
||||
Если в качестве серийного номера передан NULL или пустая строка, то будет
|
||||
установлена связь с первым найденным модулем, с которым получится успешно
|
||||
ее установить.
|
||||
Если в системе нет ни одного модуля, то будет возвращена ошибка
|
||||
#X502_ERR_DEVICE_NOT_FOUND. Если в системе присутствуют модули L-502, но
|
||||
соединение ни с одним из них установить не удалось, то будет возвращена
|
||||
ошибка, полученная при попытке установить соединение с последним
|
||||
найденным модулем.
|
||||
|
||||
После завершения работы с устройством соединение должно быть закрыто с
|
||||
помощью X502_Close().
|
||||
|
||||
@param[in] hnd Описатель устройства.
|
||||
@param[in] serial Указатель на строку с серийным номером открываемого
|
||||
модуля или NULL.
|
||||
@return Код ошибки.
|
||||
*******************************************************************************/
|
||||
X502_EXPORT(int32_t) L502_Open(t_x502_hnd hnd, const char *serial);
|
||||
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
/***************************************************************************//**
|
||||
@addtogroup func_devrec
|
||||
@{
|
||||
*******************************************************************************/
|
||||
|
||||
/***************************************************************************//**
|
||||
@brief Получить список записей, соответствующих подключенным модулям L502
|
||||
|
||||
Функция находит все подключенные модули L-502 и инициализирует
|
||||
записи о каждом найденном устройстве и сохраняет их в переданный список
|
||||
(если не нулевой).
|
||||
Возвращенные в списке записи должны быть очищены после использования
|
||||
с помощью X502_FreeDevRecordList() (также в случае повторного
|
||||
вызов L502_GetDevRecordsList() с тем же массивом записей, записи, полученные
|
||||
при предыдущем вызове, должны быть сперва очищены).
|
||||
|
||||
@param[in] list Массив для сохранения записей о найденных устройствах.
|
||||
Должен содержать место для сохранения не менее size записей.
|
||||
Может быть NULL, если size=0, а devcnt!=NULL, в случае,
|
||||
если нужно только получить количество модулей в системе.
|
||||
@param[in] size Определяет, сколько максимально записей может
|
||||
быть сохранено в массив list. Будут сохранены только
|
||||
первые size записей, если устройств найденно больше.
|
||||
@param[in] flags Флаги из #t_x502_getdevs_flags, определяющие поведение
|
||||
функции.
|
||||
@param[out] devcnt Если не нулевой указатель, то в данную переменную сохраняется
|
||||
общее число найденных модулей L-502 (может быть больше size).
|
||||
@return Если <0 --- код ошибки, иначе количество сохраненных
|
||||
записей о найденных устройствах (всегда <= size).
|
||||
Именно на этот размер нужно сделать в дальнейшем
|
||||
X502_FreeDevRecordList() для освобождения памяти,
|
||||
выделенной под информацию, на которую ссылается запись.
|
||||
******************************************************************************/
|
||||
X502_EXPORT(int32_t) L502_GetDevRecordsList(t_x502_devrec *list, uint32_t size,
|
||||
uint32_t flags, uint32_t *devcnt) ;
|
||||
/** @} */
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************//**
|
||||
@addtogroup func_misc
|
||||
@{
|
||||
*******************************************************************************/
|
||||
|
||||
/**************************************************************************//**
|
||||
@brief Получить версию драйвера модуля L-502
|
||||
|
||||
Функция возвращает версию драйвера, установленного для
|
||||
указанного открытого устройства.
|
||||
Версия возвращается в виде 32-битного числа.
|
||||
Строковое представление возвращенной версии - четыре числа,
|
||||
старшее соответствует старшему байту, младшее - младшему.
|
||||
|
||||
Старший байт - мажорная версия, второй по старшинству байт - минорная,
|
||||
третий - ревизия, четвертый - номер сборки (не используется - всегда 0).
|
||||
|
||||
Это та версия, которая отображается в диспетчере устройств в Windows или
|
||||
с помощью modinfo в Linux.
|
||||
|
||||
Данная функция доступна только для устройств с интерфейсом PCI/PCI-Express (L502)
|
||||
|
||||
@param[in] hnd Описатель модуля.
|
||||
@param[out] ver 32-битное число, представляющее собой версию драйвера
|
||||
@return Код ошибки.
|
||||
*****************************************************************************/
|
||||
X502_EXPORT(int32_t) L502_GetDriverVersion(t_x502_hnd hnd, uint32_t* ver);
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user