Rsh API
SDK 2.1
Документация по программированию
|
Прототипы глобальных функций. Подробнее...
Функции | |
U64 | RshMix () |
Генерация уникального числа Подробнее... | |
U64 | RshMix (U64 seed) |
Генерация уникального числа Подробнее... | |
U32 | RshCRC32 (U8 *buf, size_t len) |
Вычисление контрольной суммы CRC32. Подробнее... | |
double | RshLsbToVoltCoef (U32 gain, double range, U8 bitSize) |
Вычисление коэффициента преобразования [МЗР/Вольт]. Подробнее... | |
double | RshVoltToLsbCoef (U32 gain, double range, U8 bitSize) |
Вычисление коэффициента преобразования [Вольт/МЗР]. Подробнее... | |
double | RshVoltToLsb (double voltage, U32 gain, double range, U8 bitSize) |
Преобразование данных из вольт в МЗР Подробнее... | |
double | RshLsbToVolt (double lsb, U32 gain, double range, U8 bitSize) |
Преобразование данных из МЗР в вольты Подробнее... | |
double | RshRoundD (double value, double precision) |
Округление числа с заданной точностью Подробнее... | |
const wchar_t * | RshConvertToUTF16 (const char *pStr) |
Преобразование строки в кодировку UTF-16 из UTF-8. Подробнее... | |
template<typename T , RshDataTypes dataCode> | |
U32 | RshCopyStringToBuffer (const char *str, RshBufferType< T, dataCode > &userBuffer) |
Копирование данных из строки в буфер RSH_BUFFER_U8 или RSH_BUFFER_S8. Подробнее... | |
template<typename T , RshDataTypes dataCode> | |
U32 | RshFillBufferWithRandomNumbers (RshBufferType< T, dataCode > &userBuffer, U32 seed=0) |
Заполнение буфера случайными числами. Подробнее... | |
template<typename T > | |
T | RshCutV (T v, T min, T max) |
Корректировка значения переменной - попадание в границы диапазона. Подробнее... | |
template<typename T > | |
void | RshCut (T &v, T min, T max) |
Корректировка значения переменной - попадание в границы диапазона. Подробнее... | |
template<typename T > | |
void | RshMiMa (T v, T &min, T &max) |
Сравнение значения с текущим максимумом и минимумом Подробнее... | |
Прототипы глобальных функций.
В этом файле содержатся прототипы функций, часто используемых в RSH SDK.
const wchar_t* RshConvertToUTF16 | ( | const char * | pStr) |
Преобразование строки в кодировку UTF-16 из UTF-8.
Данная функция используется в основном для инициализации строк std::wstring значениями строковых констант. Дело в том, что если исходник имеет кодировку UTF-8, возникают проблемы с кирилическими символами (по крайней мере в Windows) при преобразовании их в формат UTF-16. Данная функция позволяет обойти эту проблему.
[in] | pStr | Строка в кодировке UTF-8 |
U32 RshCopyStringToBuffer | ( | const char * | str, |
RshBufferType< T, dataCode > & | userBuffer | ||
) |
Копирование данных из строки в буфер RSH_BUFFER_U8 или RSH_BUFFER_S8.
Данная функция может быть использована для того, чтобы скопировать данные из строки в буфер. Тип буфера должен быть rshBufferTypeU8 или rshBufferTypeS8, иначе будет возвращен код ошибки.
[in] | str | Строка, которая будет скопирована в буфер. Должна завершаться нулем, т.к. для определения длины строки используется вызов strlen() |
[in,out] | userBuffer | Буфер, в который будут скопированы данные строки |
Перекрестные ссылки RSH_API_PARAMETER_NOTSUPPORTED.
Вычисление контрольной суммы CRC32.
Данная функция вычисляет crc32 заданной строки.
[in] | buf | Указатель на буфер с данными (строку). |
[in] | len | Количество символов в заданной строке, по которым будет производиться вычисление контрольной суммы. |
|
inline |
Корректировка значения переменной - попадание в границы диапазона.
[in,out] | v | Ссылка на переменную, значение которой нужно откорректировать |
[in] | min | Нижняя граница диапазона |
[in] | max | Верхняя граница диапазона |
Новое "обрезанное" значение переменной. Если начальное значение v лежит внутри границ [min;max], будет возвращено это значение.
Если v было меньше, чем min, будет возвращено значение min.
Если v было больше, чем max, будет возвращено значение max.
Данная функция - аналог RshCutV(), но "обрезка" выполняется на месте, т.к. значение v передается по ссылке.
|
inline |
Корректировка значения переменной - попадание в границы диапазона.
[in] | v | Начальное значение переменной |
[in] | min | Нижняя граница диапазона |
[in] | max | Верхняя граница диапазона |
U32 RshFillBufferWithRandomNumbers | ( | RshBufferType< T, dataCode > & | userBuffer, |
U32 | seed = 0 |
||
) |
Заполнение буфера случайными числами.
[in] | seed | Зерно для функции std::srand(). По умолчанию (seed = 0) будет использовано значение, полученное с помощью функции RshMix(). |
Буфер будет заполнен случайными числами, сгенеренными функцией std::rand(). После выполнения этого метода, поле RshBufferType::Size() станет равным RshBufferType::PSize().
Перекрестные ссылки RSH_API_PARAMETER_NOTSUPPORTED.
Преобразование данных из МЗР в вольты
Данная функция выполняет действие, обратное вызову RshVoltToLsb() - преобразовывает данные из МЗР в вольты.
Перекрестные ссылки RshVoltToLsbCoef().
Вычисление коэффициента преобразования [МЗР/Вольт].
Данная функция вычисляет коэффициент, который может быть использован для преобразования данных из Вольт в МЗР (и наоборот).
Например, если нужно загрузить буфер с данными в ГСПФ, можно подготовить буфер с отсчетами в вольтах (результат вычисления некой функции, к примеру), и затем преобразовать данный буфер в формат МЗР, который уже можно загрузить в устройство. Для этого каждый отсчет нужно домножить на коэффициент, который и рассчитывает данная функция.
[in] | gain | Коэффициент усиления, используемый устройством или каналом, данные для которого нужно преобразовать. |
[in] | range | Полный входной диапазон устройства (при коэффициенте усиления равном 1). Можно получить максимальное положительное значение напряжения используя метод IRshDevice::Get() с параметром RSH_GET_DEVICE_INPUT_RANGE_VOLTS, и затем умножить полученное значение на 2, чтобы получить полный входной диапазон. |
[in] | bitSize | Количество бит. Данное значение определяет максимальный диапазон в МЗР (диапазон = 1<<bitSize) Метод RshApi IRshDevice::GetData() сдвигает данные влево, чтобы был заполнен максимальный значащий разряд, поэтому при работе с этими данными размер bitSize будет равен 8, 16, или 32 (а не разрядности АЦП/ЦАП). |
Перекрестные ссылки RSH_CMPDOUBLE.
Используется в RshVoltToLsb().
|
inline |
Сравнение значения с текущим максимумом и минимумом
[in] | v | Значение, которое нужно сравнить |
[in,out] | min | Ссылка на переменную, в которой хранится текущее значение минимума |
[in,out] | max | Ссылка на переменную, в которой хранится текущее значение максимума |
Данная функция может использоваться в циклах для определения максимума и минимума в массиве или буфере.
U64 RshMix | ( | ) |
Генерация уникального числа
Данная функция генерирует 64битное число, используя текущее время, идентификатор процесса и данные функции clock().
Перекрестные ссылки __rshgetpid и NULL.
Используется в RshFillBufferWithRandomNumbers< double, rshBufferTypeDouble >(), RshFillBufferWithRandomNumbers< float, rshBufferTypeFloat >(), RshFillBufferWithRandomNumbers< S16, rshBufferTypeS16 >(), RshFillBufferWithRandomNumbers< S32, rshBufferTypeS32 >(), RshFillBufferWithRandomNumbers< S8, rshBufferTypeS8 >(), RshFillBufferWithRandomNumbers< U16, rshBufferTypeU16 >(), RshFillBufferWithRandomNumbers< U32, rshBufferTypeU32 >() и RshFillBufferWithRandomNumbers< U8, rshBufferTypeU8 >().
Генерация уникального числа
Данная функция генерирует 64битное число, используя заданное начальное значение (seed). Генерация числа также зависит от текущего времени и идентификатора процесса
[in] | seed | Исходное число |
Перекрестные ссылки __rshgetpid и NULL.
double RshRoundD | ( | double | value, |
double | precision | ||
) |
Округление числа с заданной точностью
Данная функция округляет число с плавающей точкой до заданного количества знаков после запятой.
Например, если передать в функцию значение 3.14159 и указать precision=2, результат будет равено 3.14
[in] | value | Число, которое нужно округлить |
[in] | precision | Желаемая точность (количество знаков после запятой) |
Преобразование данных из вольт в МЗР
Данная функция преобразует значение напряжения в вольтах соответствующий ему код АЦП в МЗР.
[in] | voltage | Значение напряжения, которое необходимо преобразовать |
[in] | gain | Коэффициент усиления, используемый устройством или каналом, данные для которого нужно преобразовать. |
[in] | range | Полный входной диапазон устройства (при коэффициенте усиления равном 1). Можно получить максимальное положительное значение напряжения используя метод IRshDevice::Get() с параметром RSH_GET_DEVICE_INPUT_RANGE_VOLTS, и затем умножить полученное значение на 2, чтобы получить полный входной диапазон. |
[in] | bitSize | Количество бит. Данное значение определяет максимальный диапазон в МЗР (диапазон = 1<<bitSize) Метод RshApi IRshDevice::GetData() сдвигает данные влево, чтобы был заполнен максимальный значащий разряд, поэтому при работе с этими данными размер bitSize будет равен 8, 16, или 32 (а не разрядности АЦП/ЦАП). |
Перекрестные ссылки RshLsbToVoltCoef().
Вычисление коэффициента преобразования [Вольт/МЗР].
Данная функция - аналог функции RshLsbToVoltCoef() function, но вычисляет обратный коэффициент.
RshVoltToLsbCoef() = 1/RshLsbToVoltCoef();
Добавлена для удобства.
Используется в RshLsbToVolt().