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

Пример настройки аналоговых каналов.

//каждая структура инициализации, унаследованная от RshInitADC имеет список каналов, состоящий из 32 объектов RshChannel
RshInitMemory initStucture;
...
//Выбор канала для настройки осуществеляется с помощью индекса (нумерация начинается с нуля)
initStucture.channels[0].gain = 1; //установка коэффициента усиления
initStucture.channels[0].adjustment = 0.0; // аппаратная подстройка уровня входного сигнала не используется
/*Другие параметры канала настраиваются с помощью флагов в поле RshChannel::control.
Все управляющие флаги перечислены в списке RshChannel::Control
Некоторые из них имеют нулевое значение - это дефолтные параметры:
NotUsed - канал не будет использоваться при сборе данных
NoSynchro - канал не будет использоваться в качестве источника синхронизации
Resist1MOhm - входное сопротивление канала - 1МОм
DC - открытый вход
Когда создается объект RshChannel, поле control имеет значение ноль,
таким образом, устанавливаются дефолтные параметры перечисленные выше.
*/
initStucture.channels[0].control = 0;
/*
Эта операция является избыточной, т.к. она выполняется в конструкторе класса RshChannel.
Тем не менее, ее можно выполнять в дальнейшем, для сброса настроек канала.
*/
//альтернативный вариант (аналог трех предыдущих вызовов)
initStucture.channels[0].SetDefaultPatameters();
//канал будет использоваться при сборе
initStucture.channels[0].SetUsed();
//альтернативный вариант:
//initStucture.channels[0].control |= RshChannel::Used;
/*
сопротивление входа - 1МОм
избыточная и, по сути, бессмысленная (т.к. RshChannel::Resist1MOhm == 0) операция,
но она делает код более читаемым.
*/
initStucture.channels[0].control |= RshChannel::Resist1MOhm;
//альтернативный вариант:
//initStucture.channels[0].SetResist1MOhm();
//вход закрытый
initStucture.channels[0].control |= RshChannel::AC;
//альтернативный вариант:
//initStucture.channels[0].SetInputAC();
//второй канал
initStucture.channels[1].SetUsed();
initStucture.channels[1].SetResist1MOhm(false);
//initStucture.channels[1].SetResist50Ohm(); //то же самое
...
//используем его в качестве источника синхронизации (не забывайте про установку нужного варианта запуска в поле RshInitADC::startType)
initStucture.channels[1].SetSynchro(true);
//можно копировать настройки одного канала на другой
initStucture.channels[2] = initStucture.channels[0];