Интерфейс используется для управления практически всеми АЦП/ЦАП устройствами ЗАО "Руднев-Шиляев".
Подробнее...
#include <IRshDevice.h>
Интерфейс используется для управления практически всеми АЦП/ЦАП устройствами ЗАО "Руднев-Шиляев".
Основной интерфейс для управления устройствами, выпускаемыми фирмой ЗАО "Руднев-Шиляев", а также некоторыми устройствами других фирм.
Обычный сценарий работы - получение объекта, реализующего интерфейс IRshDevice, из библиотеки абстракции, которая может быть загружена используя класс RshDllClient. После этого пользователь получает доступ ко всем возможностям устройства, при этом ему не нужно знать низкоуровневых деталей реализации аппаратной структуры устройства и драйвера.
- См. также
- RshDllClient.
- Примеры:
- GSPF-052PCI_Generate.cpp, GSPF-053USB_Generate.cpp, IRshDevice_DoubleFreqMode_RU.cpp, IRshDevice_Get_RSH_GET_BUFFER_READY_RU.cpp, IRshDevice_Get_RSH_GET_DEVICE_BASE_LIST_EXT_RU.cpp, IRshDevice_Get_RSH_GET_DEVICE_BASE_LIST_RU.cpp, IRshDevice_Get_RSH_GET_DEVICE_INFORMATION_RU.cpp, IRshDevice_Get_RSH_GET_DEVICE_IS_CAPABLE_RU.cpp, IRshDevice_Get_RSH_GET_WAIT_BUFFER_READY_EVENT_RU.cpp, IRshDevice_Get_RSH_GET_WAIT_GATHERING_COMPLETE_RU.cpp, IRshDevice_GetData_DigitalInput_RU.cpp, IRshDevice_Init_RshInitDMA_RU.cpp, LA-1.5PCI_Persistent.cpp, LA-1.5PCI_Port.cpp, LA-1.5PCI_StartStop.cpp, LA-20USB_Persistent.cpp, LA-20USB_Port.cpp, LA-20USB_StartStop.cpp, LA-2M5PCI_Persistent.cpp, LA-2M5PCI_Port.cpp, LA-2M5PCI_StartStop.cpp, LA-2USB_Persistent.cpp, LA-2USB_Port.cpp, LA-2USB_StartStop.cpp, LA-50USB_Persistent.cpp, LA-50USB_Port.cpp, LA-50USB_StartStop.cpp, LA-5Net_Persistent.cpp, LA-5Net_Port.cpp, LA-5Net_StartStop.cpp, LA-i24USB_Persistent.cpp, LA-i24USB_Port.cpp, LA-i24USB_StartStop.cpp, LA-n10-12PCI_StartStop.cpp, LA-n10-12USB_StartStop.cpp, LA-n10M8-100PCI_StartStop.cpp, LA-n10M8-500PCI_StartStop.cpp, LA-n150PCI_Persistent.cpp, LA-n150PCI_Port.cpp, LA-n150PCI_StartStop.cpp, LA-n1USB_StartStop.cpp, LA-n20-12PCI_Port.cpp, LA-n20-12PCI_StartStop.cpp, LA-n2USB_StartStop.cpp, LA48DPCI_Port.cpp, Leonardo2_Persistent.cpp, Leonardo2_Port.cpp, Leonardo2_StartStop.cpp, Python_Continuous.cpp, Python_Port.cpp, Python_StartStop.cpp, RshInitDAC_RU.cpp и Sirius_StartStop.cpp.
Подключение к заданному устройству.
- Аргументы
-
[in] | key | Идентификационный ключ устройства. В зависимости от выбранного режима подключения может быть индексом устройства, его серийным номером или строкой подключения.
В качестве ключа используется структура RshDeviceKey (тип параметра RshBaseType оставлен для большей универсальности). |
[in] | mode | Режим подключения к устройству с использованием серийного номера устройства, его индекса или строки подключения. |
- Возвращает
- RSH_API_SUCCESS или код ошибки.
Данный метод нужно вызывать первым, до вызова любых других методов доступа к устройству.
После успешного вызова этого метода устройство полностью готово к использованию и может быть настроено для сбора данных. Большинство других методов интерфейса (такие как Init(), Start()) вернут ошибку, если вызвать их до вызова Connect().
Можно, однако, получить некоторые статические параметры библиотеки абстракции и устройства, используя метод Get().
- См. также
- Get() | RSH_CONNECT_MODES | RshDeviceKey
- Примеры:
- GSPF-052PCI_Generate.cpp, GSPF-053USB_Generate.cpp, IRshDevice_Get_RSH_GET_DEVICE_BASE_LIST_RU.cpp, LA-1.5PCI_Persistent.cpp, LA-1.5PCI_Port.cpp, LA-1.5PCI_StartStop.cpp, LA-20USB_Persistent.cpp, LA-20USB_Port.cpp, LA-20USB_StartStop.cpp, LA-2M5PCI_Persistent.cpp, LA-2M5PCI_Port.cpp, LA-2M5PCI_StartStop.cpp, LA-2USB_Persistent.cpp, LA-2USB_Port.cpp, LA-2USB_StartStop.cpp, LA-50USB_Persistent.cpp, LA-50USB_Port.cpp, LA-50USB_StartStop.cpp, LA-5Net_Persistent.cpp, LA-5Net_Port.cpp, LA-5Net_StartStop.cpp, LA-i24USB_Persistent.cpp, LA-i24USB_Port.cpp, LA-i24USB_StartStop.cpp, LA-n10-12PCI_StartStop.cpp, LA-n10-12USB_StartStop.cpp, LA-n10M8-100PCI_StartStop.cpp, LA-n10M8-500PCI_StartStop.cpp, LA-n150PCI_Persistent.cpp, LA-n150PCI_Port.cpp, LA-n150PCI_StartStop.cpp, LA-n1USB_StartStop.cpp, LA-n20-12PCI_Port.cpp, LA-n20-12PCI_StartStop.cpp, LA-n2USB_StartStop.cpp, LA48DPCI_Port.cpp, Leonardo2_Persistent.cpp, Leonardo2_Port.cpp, Leonardo2_StartStop.cpp, Python_Continuous.cpp, Python_Port.cpp, Python_StartStop.cpp и Sirius_StartStop.cpp.
Получение различной информации об устройстве и библиотеке абстракции.
- Аргументы
-
[in] | mode | Одна из констант списка RSH_GET. В зависимости от используемой константы, действие метода будет меняться. Все необходимые сведения приведены в описании конкретной константы. |
[in,out] | adr | Адрес объекта, унаследованного от класса RshBaseType. Какой конкретно тип будет использоваться, зависит от используемого режима (параметр mode ). В некоторых случаях можно передавать NULL. |
- Возвращает
- RSH_API_SUCCESS или код ошибки.
Данный метод используется для выполнения широкого спектра действий ввиду его гибкости. С помощью этого метода можно получать информацию (как статическую, так и динамическую) об устройстве и библиотеке абстракции, а также управлять некоторыми функциями библиотеки и устройства.
- См. также
- RSH_GET
- Примеры:
- GSPF-052PCI_Generate.cpp, GSPF-053USB_Generate.cpp, IRshDevice_DoubleFreqMode_RU.cpp, IRshDevice_Get_RSH_GET_BUFFER_READY_RU.cpp, IRshDevice_Get_RSH_GET_DEVICE_BASE_LIST_EXT_RU.cpp, IRshDevice_Get_RSH_GET_DEVICE_BASE_LIST_RU.cpp, IRshDevice_Get_RSH_GET_DEVICE_INFORMATION_RU.cpp, IRshDevice_Get_RSH_GET_DEVICE_IS_CAPABLE_RU.cpp, IRshDevice_Get_RSH_GET_WAIT_BUFFER_READY_EVENT_RU.cpp, IRshDevice_Get_RSH_GET_WAIT_GATHERING_COMPLETE_RU.cpp, IRshDevice_GetData_DigitalInput_RU.cpp, LA-1.5PCI_Persistent.cpp, LA-1.5PCI_Port.cpp, LA-1.5PCI_StartStop.cpp, LA-20USB_Persistent.cpp, LA-20USB_Port.cpp, LA-20USB_StartStop.cpp, LA-2M5PCI_Persistent.cpp, LA-2M5PCI_Port.cpp, LA-2M5PCI_StartStop.cpp, LA-2USB_Persistent.cpp, LA-2USB_Port.cpp, LA-2USB_StartStop.cpp, LA-50USB_Persistent.cpp, LA-50USB_Port.cpp, LA-50USB_StartStop.cpp, LA-5Net_Persistent.cpp, LA-5Net_Port.cpp, LA-5Net_StartStop.cpp, LA-i24USB_Persistent.cpp, LA-i24USB_Port.cpp, LA-i24USB_StartStop.cpp, LA-n10-12PCI_StartStop.cpp, LA-n10-12USB_StartStop.cpp, LA-n10M8-100PCI_StartStop.cpp, LA-n10M8-500PCI_StartStop.cpp, LA-n150PCI_Persistent.cpp, LA-n150PCI_Port.cpp, LA-n150PCI_StartStop.cpp, LA-n1USB_StartStop.cpp, LA-n20-12PCI_Port.cpp, LA-n20-12PCI_StartStop.cpp, LA-n2USB_StartStop.cpp, LA48DPCI_Port.cpp, Leonardo2_Persistent.cpp, Leonardo2_Port.cpp, Leonardo2_StartStop.cpp, Python_Continuous.cpp, Python_Port.cpp, Python_StartStop.cpp, RshInitDAC_RU.cpp и Sirius_StartStop.cpp.
Получение (или отправка) буфера с данными.
- Аргументы
-
[in,out] | buffer | Буфер для данных (или буфер с данными при генерации сигнала). Одна из реализаций шаблона RshBufferType для простых типов данных.
Чаще всего для передачи данных используются типы буфера RSH_BUFFER_S8, RSH_BUFFER_S16, RSH_BUFFER_S32. Данные всегда приводятся к старшему биту (исключение - специальные дополнительные флаги преобразования данных, см. flags).
Кроме того, иногда удобно использовать RSH_BUFFER_DOUBLE, в котором данные будут сразу в вольтах, а не в МЗР.
Пользователь должен сам выделить память под данные перед вызовом GetData(). Это можно сделать с помощью метода RshBufferType::Allocate. |
[in] | flags | Дополнительные флаги преобразования данных. Могут использоваться, например, для того, чтобы получить сигналы с цифровых линий одновременно с данными аналоговых каналов. Полный список флагов: RSH_DATA_MODES. |
- Возвращает
- RSH_API_SUCCESS или код ошибки.
Этот метод используется для передачи данных из (или к) библиотеке абстракции устройства. После получения события RSH_GET_WAIT_BUFFER_READY_EVENT данные готовы (уже находятся в компьютере, в памяти библиотеки абстракции). Можно забрать их в свою программу, предварительно выделив память в объекте RshBufferType. Если размер выделенного буфера окажется меньше, чем размер доступных данных, ничего страшного не произойдет - буфер будет заполнен полностью. В обратной ситуации (когда размер выделенного буфера больше чем размер доступных данных) в буфер будет переложено столько данных, сколько есть в наличии. В поле RshBufferType::size после вызова GetData() содержится фактический размер переданных данных.
Все размеры всегда в словах (отсчетах АЦП).
- См. также
- RshBufferType | RSH_DATA_MODES
- Примеры:
- GSPF-052PCI_Generate.cpp, GSPF-053USB_Generate.cpp, IRshDevice_Get_RSH_GET_BUFFER_READY_RU.cpp, IRshDevice_Get_RSH_GET_WAIT_BUFFER_READY_EVENT_RU.cpp, IRshDevice_GetData_DigitalInput_RU.cpp, LA-1.5PCI_Persistent.cpp, LA-1.5PCI_StartStop.cpp, LA-20USB_Persistent.cpp, LA-20USB_StartStop.cpp, LA-2M5PCI_Persistent.cpp, LA-2M5PCI_StartStop.cpp, LA-2USB_Persistent.cpp, LA-2USB_StartStop.cpp, LA-50USB_Persistent.cpp, LA-50USB_StartStop.cpp, LA-5Net_Persistent.cpp, LA-5Net_StartStop.cpp, LA-i24USB_Persistent.cpp, LA-i24USB_StartStop.cpp, LA-n10-12PCI_StartStop.cpp, LA-n10-12USB_StartStop.cpp, LA-n10M8-100PCI_StartStop.cpp, LA-n10M8-500PCI_StartStop.cpp, LA-n150PCI_Persistent.cpp, LA-n150PCI_StartStop.cpp, LA-n1USB_StartStop.cpp, LA-n20-12PCI_StartStop.cpp, LA-n2USB_StartStop.cpp, Leonardo2_Persistent.cpp, Leonardo2_StartStop.cpp, Python_Continuous.cpp, Python_StartStop.cpp и Sirius_StartStop.cpp.
Установка параметров сбора и настройка устройства.
- Аргументы
-
[in,out] | structure | Структура инициализации, унаследованная от RshBaseType.
Каждое устройство поддерживает как минимум одну структуру инициализации, такую как RshInitDMA или RshInitMemory. |
[in] | mode | RSH_INIT_MODE_CHECK - проверка полей в переданной структуре инициализаци, неподходящие значения будут исправлены на допустимые. После исправления параметров метод завершает работу, обращений к устройству не производится.
RSH_INIT_MODE_INIT - действительня реализация, после исправления значений в структуре производится передача выбранных параметров к устройству, запись в регистры и тому подобное. |
- Возвращает
- RSH_API_SUCCESS или код ошибки.
Данный метод используется для задания параметров сбора (генерации). Для передачи параметров используется одна из специальных структур инициализации:
RshInitDMA: как правило, данная структура используется для низкочастотных (до 10Мгц) устройств без установленной флэш памяти для данных.
RshInitMemory: для высокочастотных устройств с собственной памятью.
RshInitGSPF: для цифровых генераторов сигнала.
RshInitVoltmeter: для вольтметра В7/78
RshInitPort: для доступа к цифровым портам.
RshInitDAC: для доступа к ЦАПам.
Используя данные структуры, можно задать различные параметры сбора, такие как частоту дискретизации, число каналов, размер буфера и др. Более подробно - в описании структур инициализации.
Пример использования метода:
if(res != RSH_API_SUCESS)
{
}
- См. также
- RshInitDMA | RshInitMemory | RshInitDAC | RshInitVoltmeter | RshInitPort | RshInitGSPF
- Примеры:
- GSPF-052PCI_Generate.cpp, GSPF-053USB_Generate.cpp, IRshDevice_Get_RSH_GET_WAIT_GATHERING_COMPLETE_RU.cpp, IRshDevice_Init_RshInitDMA_RU.cpp, LA-1.5PCI_Persistent.cpp, LA-1.5PCI_Port.cpp, LA-1.5PCI_StartStop.cpp, LA-20USB_Persistent.cpp, LA-20USB_Port.cpp, LA-20USB_StartStop.cpp, LA-2M5PCI_Persistent.cpp, LA-2M5PCI_Port.cpp, LA-2M5PCI_StartStop.cpp, LA-2USB_Persistent.cpp, LA-2USB_Port.cpp, LA-2USB_StartStop.cpp, LA-50USB_Persistent.cpp, LA-50USB_Port.cpp, LA-50USB_StartStop.cpp, LA-5Net_Persistent.cpp, LA-5Net_Port.cpp, LA-5Net_StartStop.cpp, LA-i24USB_Persistent.cpp, LA-i24USB_Port.cpp, LA-i24USB_StartStop.cpp, LA-n10-12PCI_StartStop.cpp, LA-n10-12USB_StartStop.cpp, LA-n10M8-100PCI_StartStop.cpp, LA-n10M8-500PCI_StartStop.cpp, LA-n150PCI_Persistent.cpp, LA-n150PCI_Port.cpp, LA-n150PCI_StartStop.cpp, LA-n1USB_StartStop.cpp, LA-n20-12PCI_Port.cpp, LA-n20-12PCI_StartStop.cpp, LA-n2USB_StartStop.cpp, LA48DPCI_Port.cpp, Leonardo2_Persistent.cpp, Leonardo2_Port.cpp, Leonardo2_StartStop.cpp, Python_Continuous.cpp, Python_Port.cpp, Python_StartStop.cpp, RshInitDAC_RU.cpp и Sirius_StartStop.cpp.
virtual U32 __stdcall IRshDevice::Start |
( |
) | |
|
|
pure virtual |
Запуск процесса сбора данных или генерации сигнала.
- Возвращает
- RSH_API_SUCCESS или код ошибки.
Устройства сбора данных начинают процесс сбора и передачи данных, когда вызывается этот метод. После завершения передачи ставится флаг готовности данных, и данные можно получить с помощью метода GetData()
Генераторы сигнала (серия ГСПФ) начинают проигрование буфера по этой команде. Таким образом, для генераторов порядок команд будет обратным: сначала нужно передать подготовленный буфер с данными с помощью метода GetData() и только затем запустить генарацию, вызвав Start().
- См. также
- RSH_GET_WAIT_BUFFER_READY_EVENT | Синхронизация
- Примеры:
- GSPF-052PCI_Generate.cpp, GSPF-053USB_Generate.cpp, IRshDevice_Get_RSH_GET_BUFFER_READY_RU.cpp, IRshDevice_Get_RSH_GET_WAIT_BUFFER_READY_EVENT_RU.cpp, IRshDevice_Get_RSH_GET_WAIT_GATHERING_COMPLETE_RU.cpp, LA-1.5PCI_Persistent.cpp, LA-1.5PCI_StartStop.cpp, LA-20USB_Persistent.cpp, LA-20USB_StartStop.cpp, LA-2M5PCI_Persistent.cpp, LA-2M5PCI_StartStop.cpp, LA-2USB_Persistent.cpp, LA-2USB_StartStop.cpp, LA-50USB_Persistent.cpp, LA-50USB_StartStop.cpp, LA-5Net_Persistent.cpp, LA-5Net_StartStop.cpp, LA-i24USB_Persistent.cpp, LA-i24USB_StartStop.cpp, LA-n10-12PCI_StartStop.cpp, LA-n10-12USB_StartStop.cpp, LA-n10M8-100PCI_StartStop.cpp, LA-n10M8-500PCI_StartStop.cpp, LA-n150PCI_Persistent.cpp, LA-n150PCI_StartStop.cpp, LA-n1USB_StartStop.cpp, LA-n20-12PCI_StartStop.cpp, LA-n2USB_StartStop.cpp, Leonardo2_Persistent.cpp, Leonardo2_StartStop.cpp, Python_Continuous.cpp, Python_StartStop.cpp и Sirius_StartStop.cpp.
virtual U32 __stdcall IRshDevice::Stop |
( |
) | |
|
|
pure virtual |
Остановка процесса сбора данных или генерации сигнала.
- Возвращает
- RSH_API_SUCCESS или код ошибки.
При вызове этого метода вся активность, связанная со сбором или генерацией прекращается: останавливается АЦП (ЦАП), сбрасывается процесс передачи по USB, ПДП каналы возвращаются в исходное состояние. Устройство готово к следующему вызову метода Start().
- См. также
- RSH_GET_WAIT_BUFFER_READY_EVENT
- Примеры:
- IRshDevice_Get_RSH_GET_WAIT_GATHERING_COMPLETE_RU.cpp, LA-1.5PCI_Persistent.cpp, LA-1.5PCI_StartStop.cpp, LA-20USB_Persistent.cpp, LA-20USB_StartStop.cpp, LA-2M5PCI_Persistent.cpp, LA-2M5PCI_StartStop.cpp, LA-2USB_Persistent.cpp, LA-2USB_StartStop.cpp, LA-50USB_Persistent.cpp, LA-50USB_StartStop.cpp, LA-5Net_Persistent.cpp, LA-5Net_StartStop.cpp, LA-i24USB_Persistent.cpp, LA-i24USB_StartStop.cpp, LA-n10-12PCI_StartStop.cpp, LA-n10-12USB_StartStop.cpp, LA-n10M8-100PCI_StartStop.cpp, LA-n10M8-500PCI_StartStop.cpp, LA-n150PCI_Persistent.cpp, LA-n150PCI_StartStop.cpp, LA-n1USB_StartStop.cpp, LA-n20-12PCI_StartStop.cpp, LA-n2USB_StartStop.cpp, Leonardo2_Persistent.cpp, Leonardo2_StartStop.cpp, Python_Continuous.cpp, Python_StartStop.cpp и Sirius_StartStop.cpp.
Объявления и описания членов структуры находятся в файле: