Rsh API  SDK 2.1
Документация по программированию
 Указатель Классы Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы Страницы
Открытые типы | Открытые члены | Открытые атрибуты | Друзья | Полный список членов класса
Структура RshInitADC

Базовая структура инициализации для АЦП устройств Подробнее...

#include <RshInitADC.h>

Граф наследования:RshInitADC:
Inheritance graph
[см. легенду]
Граф связей класса RshInitADC:
Collaboration graph
[см. легенду]

Открытые типы

enum  StartType {
  Program = 0x1, Timer = 0x2, External = 0x4, Internal = 0x8,
  FrequencyExternal = 0x10, Master = 0x20
}
 Список режимов запуска Подробнее...
 
enum  ControlSynchro {
  FrequencySwitchOff = 0x0, SlopeFront = 0x0, SlopeDecline = 0x2, FrequencySwitchToMinimum = 0x4,
  FrequencySwitchToMaximum = 0x8
}
 Список дополнительных опций сбора данных Подробнее...
 

Открытые члены

 RshInitADC (const RshDataTypes type=rshInitADC, const size_t sizeType=sizeof(RshInitADC))
 
 RshInitADC (RshInitADC const &obj)
 
RshInitADCoperator= (const RshInitADC &obj)
 
bool operator== (RshInitADC &obj) const
 
bool operator!= (RshInitADC &obj) const
 
U32 ActiveChannelsNumber () const
 Число активных каналов в массиве каналов. Подробнее...
 
void SetSynchroSlopeFront ()
 Установка флага RshInitADC::SlopeFront. Подробнее...
 
void SetSynchroSlopeDecline ()
 Установка флага RshInitADC::SlopeDecline. Подробнее...
 
bool IsSynchroSlopeFrontActive () const
 Проверка наличия флага RshInitADC::SlopeFront. Подробнее...
 
bool IsSynchroSlopeDeclineActive () const
 Проверка наличия флага RshInitADC::SlopeDecline. Подробнее...
 
void SetSynchroFreqSwitchOff ()
 Установка флага RshInitADC::FrequencySwitchOff. Подробнее...
 
void SetSynchroFreqSwitchToMin ()
 Установка флага RshInitADC::FrequencySwitchToMinimum. Подробнее...
 
void SetSynchroFreqSwitchToMax ()
 Установка флага RshInitADC::FrequencySwitchToMaximum. Подробнее...
 
bool IsSynchroFreqSwitchToMinActive () const
 Проверка наличия флага RshInitADC::FrequencySwitchToMinimum. Подробнее...
 
bool IsSynchroFreqSwitchToMaxActive () const
 Проверка наличия флага RshInitADC::FrequencySwitchToMaximum. Подробнее...
 
- Открытые члены inherited from RshBaseType
 RshBaseType (const RshDataTypes type=rshTypeUndefined, const size_t typeSize=sizeof(RshBaseType))
 Конструктор Подробнее...
 
const char * GetTypeName () const
 

Открытые атрибуты

U32 startType
 Режим запуска сбора данных Подробнее...
 
U32 bufferSize
 Размер буфера в отсчетах Подробнее...
 
double frequency
 Частота дискретизации в Гц Подробнее...
 
RSH_BUFFER_CHANNEL channels
 Настройки аналоговых каналов Подробнее...
 
double threshold
 Уровень синхронизации Подробнее...
 
U32 controlSynchro
 Дополнительные параметры синхронизации Подробнее...
 
- Открытые атрибуты inherited from RshBaseType
const size_t _typeSize
 Размер структуры данных или класса. Подробнее...
 
const RshDataTypes _type
 Идентификатор типа данных. Подробнее...
 

Друзья

std::ostream & operator<< (std::ostream &out, const RshInitADC &obj)
 

Additional Inherited Members

- Открытые статические члены inherited from RshBaseType
static const char * GetTypeName (const RshDataTypes typeCode)
 Получение названия типа данных. Подробнее...
 

Подробное описание

Базовая структура инициализации для АЦП устройств

В этой структуре содержатся параметры инициализации, общие для всех АЦП устройств, такие как размер буфера, частота дискретизации и др.
Данная структура сама по себе не используется ни в одной из библиотек абстракции устройств - только в качестве предка для структур RshInitDMA и RshInitMemory.

См. также
RshInitDMA | RshInitMemory

Перечисления

Список дополнительных опций сбора данных

Флаги из этого списка можно объединять по 'ИЛИ'. Установив нужную комбинацию флагов в поле RshInitDMA::controlSynchro, можно задействовать дополнительные опции.

Элементы перечислений
FrequencySwitchOff 

Предыстория и история собираются с одной частотой дискретизации

Данный флаг ставится по умолчанию, и работает для всех устройств.
Аналог в SDK1 - константа ADC_CONTROL_ESW.

См. также
RSH_CAPS_DEVICE_FREQUENCY_SWITCH_PREHISTORY
SlopeFront 

Синхронизация по фронту

Данный флаг актуален только при работе в режиме синхронизации (см. RshInitDMA::startType).
Взаимоисключающий с флагом RshInitDMA::SlopeDecline.

SlopeDecline 

Синхронизация по спаду

Данный флаг актуален только при работе в режиме синхронизации (см. RshInitDMA::startType).
Взаимоисключающий с флагом RshInitDMA::SlopeFront.

FrequencySwitchToMinimum 

Предыстория и история собираются с разными частотами (переключение на низкую частоту)

Данный флаг может использоваться только для устройств, которые поддерживают данную возможность ( RSH_CAPS_DEVICE_FREQUENCY_SWITCH_PREHISTORY). Если флаг активен, частота дискретизации будет изменена (на низкую частоту, F = Fmax/8, см. документацию к устройству). в момент срабатывания синхронизации, и предыстория будет оцифрована с одной частотой, а основной сигнал - с другой.
Аналог в SDK1 - константа ADC_CONTROL_FSW.

FrequencySwitchToMaximum 

Предыстория и история собираются с разными частотами (переключение на высокую частоту)

Данный флаг может использоваться только для устройств, которые поддерживают данную возможность ( RSH_CAPS_DEVICE_FREQUENCY_SWITCH_PREHISTORY). Если флаг активен, частота дискретизации будет изменена (на высокую частоту, см. документацию к устройству). в момент срабатывания синхронизации, и предыстория будет оцифрована с одной частотой, а основной сигнал - с другой.

Список режимов запуска

Элементы этого перечисления используются для задания режима запуска АЦП.
Чтобы выбрать режим, нужно установить одно из этих значений в поле RshInitADC::startType.

См. также
Синхронизация
Элементы перечислений
Program 

Программный запуск

Преобразование будет запущено сразу же после получения устройством команды на запуск.
Это означает, что АЦП будет запущено сразу же после вызова метода IRshDevice::Start().

Прим.
"Сразу же" на самом деле происходит не мгновенно, так как всегда есть задержки - вызов функций, передача данных по шине, отклик устройства.
Timer 

Запуск по таймеру

Запуск преобразования по внутреннему таймеру.

Уст.:
На текущий момент данный режим не используется ни в одной библиотеке абстракции устройства. В SDK1 некоторые устройства использовали флаг Program, другие Timer для одного и того же режима - запуск преобразования по вызову команды IRshDevice::Start().
Возможно, данный флаг будет удален в будущих релизах.
External 

Внешняя синхронизации (или внешний запуск)

Использовать внешний источник для запуска преобразования.
В качестве внешнего источнка может выступать либо вход внешней синхронизации, либо вход внешнего запуска.

Прим.
Существуют два различных механизма, которые включаются данным флагом: использование входа внешней синхронизации (как правило, данный режим есть у "Memory" устройств - см. RSH_CAPS_DEVICE_SYNCHRO_EXTERNAL) или использование внешнего старта (как правило, данный режим есть у "DMA" устройств - см. RSH_CAPS_DEVICE_EXTERNAL_START).
Internal 

Внутренняя синхронизация

Использование одного из аналоговых входов в качестве источника сигнала для запуска АЦП.

Прим.
Используйте RSH_CAPS_DEVICE_SYNCHRO_INTERNAL чтобы проверить, поддерживает ли устройство данный режим или нет.
Как правило, данная возможность поддерживается устройствами типа "Memory".
См. также
RshChannel::Synchro | RshInitMemory::threshold
FrequencyExternal 

Использование внешней частоты дискретизации

АЦП будет сэмплироваться от внешнего источника частоты дискретизации. См. RSH_CAPS_DEVICE_EXTERNAL_FREQUENCY

Необходимо сделать:
Напрашивается перенос данного поля в control, возможно нужно объединить контролы из RshInitMemory и RshInitDMA и перенести все флаги в RshInitADC
Master 

Запуск от ведущего устройства

Актуально для систем, где несколько устройств запускаются синхронно. Одно из устройств выступает в качестве ведущего, все остальные - в качестве ведомых.

См. также
RSH_CAPS_DEVICE_SLAVE_MASTER_SWITCH

Конструктор(ы)

RshInitADC::RshInitADC ( const RshDataTypes  type = rshInitADC,
const size_t  sizeType = sizeof(RshInitADC) 
)

Перекрестные ссылки bufferSize, controlSynchro, frequency, Program, startType и threshold.

RshInitADC::RshInitADC ( RshInitADC const &  obj)

Перекрестные ссылки bufferSize, channels, controlSynchro, RshBufferType< T, dataCode >::Copy(), frequency, startType и threshold.

Граф вызовов:

Методы

U32 RshInitADC::ActiveChannelsNumber ( ) const

Число активных каналов в массиве каналов.

Возвращает
Количество активных каналов.

Данный метод позволяет получить число каналов с установленным флагом RshChannel::Used.

Перекрестные ссылки channels, RshChannel::IsUsed(), RshBufferType< T, dataCode >::ptr и RshBufferType< T, dataCode >::Size().

Граф вызовов:

bool RshInitADC::IsSynchroFreqSwitchToMaxActive ( ) const

Проверка наличия флага RshInitADC::FrequencySwitchToMaximum.

Перекрестные ссылки controlSynchro и FrequencySwitchToMaximum.

bool RshInitADC::IsSynchroFreqSwitchToMinActive ( ) const

Проверка наличия флага RshInitADC::FrequencySwitchToMinimum.

Перекрестные ссылки controlSynchro и FrequencySwitchToMinimum.

bool RshInitADC::IsSynchroSlopeDeclineActive ( ) const

Проверка наличия флага RshInitADC::SlopeDecline.

Перекрестные ссылки controlSynchro и SlopeDecline.

Используется в IsSynchroSlopeFrontActive().

Граф вызова функции:

bool RshInitADC::IsSynchroSlopeFrontActive ( ) const

Проверка наличия флага RshInitADC::SlopeFront.

Перекрестные ссылки IsSynchroSlopeDeclineActive().

Граф вызовов:

bool RshInitADC::operator!= ( RshInitADC obj) const

Перекрестные ссылки operator==().

Граф вызовов:

RshInitADC & RshInitADC::operator= ( const RshInitADC obj)

Перекрестные ссылки bufferSize, channels, controlSynchro, frequency, startType и threshold.

bool RshInitADC::operator== ( RshInitADC obj) const

Перекрестные ссылки bufferSize, channels, controlSynchro, frequency, RSH_CMPDOUBLE, startType и threshold.

Используется в operator!=().

Граф вызова функции:

void RshInitADC::SetSynchroFreqSwitchOff ( )

Установка флага RshInitADC::FrequencySwitchOff.

Перекрестные ссылки controlSynchro, FrequencySwitchToMaximum и FrequencySwitchToMinimum.

void RshInitADC::SetSynchroFreqSwitchToMax ( )

Установка флага RshInitADC::FrequencySwitchToMaximum.

Перекрестные ссылки controlSynchro и FrequencySwitchToMaximum.

void RshInitADC::SetSynchroFreqSwitchToMin ( )

Установка флага RshInitADC::FrequencySwitchToMinimum.

Перекрестные ссылки controlSynchro и FrequencySwitchToMinimum.

void RshInitADC::SetSynchroSlopeDecline ( )

Установка флага RshInitADC::SlopeDecline.

Синхронизация по спаду

Перекрестные ссылки controlSynchro и SlopeDecline.

void RshInitADC::SetSynchroSlopeFront ( )

Установка флага RshInitADC::SlopeFront.

Синхронизация по фронту

Перекрестные ссылки controlSynchro и SlopeDecline.

Документация по друзьям класса и функциям, отноносящимся к классу

std::ostream& operator<< ( std::ostream &  out,
const RshInitADC obj 
)
friend

Данные класса

U32 RshInitADC::bufferSize

Размер буфера в отсчетах

Размер буфера данных, в отсчетах на канал.

Прим.
Размер задается на канал, т.е. при использовании нескольких каналов фактический размер собранных данных будет пропорционален числу каналов.
Это надо учитывать при вызове метода IRshDevice::GetData(). Если число используемых каналов равно N, при получении данных в метод IRshDevice::GetData() нужно передать размер, равный RshInitADC::bufferSize*N.
См. также
IRshDevice::GetData()
Примеры:
FrameFrequencyMode_RU.cpp, IRshDevice_DoubleFreqMode_RU.cpp, IRshDevice_Init_RshInitDMA_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.

Используется в operator<<(), RshInitDMA::operator=(), RshInitMemory::operator=(), operator=(), RshInitDMA::operator==(), RshInitMemory::operator==(), operator==(), RshInitADC(), RshInitDMA::RshInitDMA() и RshInitMemory::RshInitMemory().

RSH_BUFFER_CHANNEL RshInitADC::channels

Настройки аналоговых каналов

Список структур RshChannel. Количество структур в списке равно RSH_MAX_CHANNEL_NUMBER. Если устройство имеет меньшее число каналов (это справедливо для большинства устройств), используется только часть списка, отвечающая фактическому количеству каналов.

Прим.
Узнать количество каналов устройства можно, вызвав метод IRshDevice::Get() с параметром RSH_GET_DEVICE_NUMBER_CHANNELS.
См. также
RshChannel
Примеры:
FrameFrequencyMode_RU.cpp, IRshDevice_DoubleFreqMode_RU.cpp, IRshDevice_Init_RshInitDMA_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, RshChannelSetup_RU.cpp и Sirius_StartStop.cpp.

Используется в ActiveChannelsNumber(), operator<<(), RshInitDMA::operator=(), RshInitMemory::operator=(), operator=(), RshInitDMA::operator==(), RshInitMemory::operator==(), operator==(), RshInitADC(), RshInitDMA::RshInitDMA() и RshInitMemory::RshInitMemory().

U32 RshInitADC::controlSynchro

Дополнительные параметры синхронизации

Комбинация флагов из перечисления RshInitDMA::ControlSynchro.
По умолчанию, данный параметр равен нулю, что соответствует сочетанию флагов: RshInitDMA::FrequencySwitchOff | RshInitDMA::SlopeFront

Используется в IsSynchroFreqSwitchToMaxActive(), IsSynchroFreqSwitchToMinActive(), IsSynchroSlopeDeclineActive(), operator<<(), RshInitDMA::operator=(), RshInitMemory::operator=(), operator=(), RshInitDMA::operator==(), RshInitMemory::operator==(), operator==(), RshInitADC(), RshInitDMA::RshInitDMA(), RshInitMemory::RshInitMemory(), SetSynchroFreqSwitchOff(), SetSynchroFreqSwitchToMax(), SetSynchroFreqSwitchToMin(), SetSynchroSlopeDecline() и SetSynchroSlopeFront().

double RshInitADC::frequency

Частота дискретизации в Гц

Частота дискретизации в Гц на канал. Также как и размер RshInitADC::bufferSize, эта настройка привязывается к каналу.

Прим.
Для устройств с мультиплексированными каналами, максимальная частота дискретизации зависит от числа используемых каналов.
Всегда проверяйте поле частоты дискретизации и размера буфера в стркутуре после вызова метода IRshDevice::Init() чтобы узнать, какие параметры были фактически установлены при инициализации.
См. также
RSH_CAPS_DEVICE_SYNCHRO_CHANNELS | RSH_INIT_MODE_CHECK
Примеры:
FrameFrequencyMode_RU.cpp, IRshDevice_DoubleFreqMode_RU.cpp, IRshDevice_Init_RshInitDMA_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.

Используется в operator<<(), RshInitDMA::operator=(), RshInitMemory::operator=(), operator=(), RshInitDMA::operator==(), RshInitMemory::operator==(), operator==(), RshInitADC(), RshInitDMA::RshInitDMA() и RshInitMemory::RshInitMemory().

U32 RshInitADC::startType
double RshInitADC::threshold

Уровень синхронизации

Уровень синхронизации в вольтах. Данный параметр актуален, когда устройство работает в режиме синхронизации (т.е. тип запуска RshInitDMA::startType установлен либо RshInitDMA::Internal, либо RshInitMemory::External).
Когда сигнал на выбранном для синхронизации входе достигает заданного порога (сверху или снизу, в зависимости от состояния поля RshInitDMA::controlSynchro), происходит событие синхронизации, и начинается процесс сбора и передача данных.

Прим.
Если синхронизация выключана, данное поле не используется
См. также
Синхронизация

Используется в operator<<(), RshInitDMA::operator=(), RshInitMemory::operator=(), operator=(), RshInitDMA::operator==(), RshInitMemory::operator==(), operator==(), RshInitADC(), RshInitDMA::RshInitDMA() и RshInitMemory::RshInitMemory().


Объявления и описания членов структур находятся в файлах: