![]() |
Rsh API
SDK 2.1
Документация по программированию
|
Глобальные функции. Подробнее...


Макросы | |
| #define | RSH_FUNCTIONS_CPP |
Функции | |
| U64 | RshMix () |
| Генерация уникального числа Подробнее... | |
| U64 | RshMix (U64 seed) |
| Генерация уникального числа Подробнее... | |
| U32 | RshCRC32 (U8 *buf, size_t len) |
| Вычисление контрольной суммы CRC32. Подробнее... | |
| double | RshRoundD (double val, double pre) |
| Округление числа с заданной точностью Подробнее... | |
| double | RshLsbToVoltCoef (U32 gain, double range, U8 bitSize) |
| Вычисление коэффициента преобразования [МЗР/Вольт]. Подробнее... | |
| double | RshVoltToLsbCoef (U32 gain, double range, U8 bitSize) |
| Вычисление коэффициента преобразования [Вольт/МЗР]. Подробнее... | |
| double | RshLsbToVolt (double lsb, U32 gain, double range, U8 bitSize) |
| Преобразование данных из МЗР в вольты Подробнее... | |
| double | RshVoltToLsb (double voltage, U32 gain, double range, U8 bitSize) |
| Преобразование данных из вольт в МЗР Подробнее... | |
| 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<> | |
| U32 | RshCopyStringToBuffer (const char *str, RshBufferType< S8, rshBufferTypeS8 > &userBuffer) |
| template<> | |
| U32 | RshCopyStringToBuffer (const char *str, RshBufferType< U8, rshBufferTypeU8 > &userBuffer) |
| template<typename T , RshDataTypes dataCode> | |
| U32 | RshFillBufferWithRandomNumbers (RshBufferType< T, dataCode > &userBuffer, U32 seed) |
| Заполнение буфера случайными числами. Подробнее... | |
| template<> | |
| U32 | RshFillBufferWithRandomNumbers< U8, rshBufferTypeU8 > (RshBufferType< U8, rshBufferTypeU8 > &userBuffer, U32 seed) |
| template<> | |
| U32 | RshFillBufferWithRandomNumbers< S8, rshBufferTypeS8 > (RshBufferType< S8, rshBufferTypeS8 > &userBuffer, U32 seed) |
| template<> | |
| U32 | RshFillBufferWithRandomNumbers< U16, rshBufferTypeU16 > (RshBufferType< U16, rshBufferTypeU16 > &userBuffer, U32 seed) |
| template<> | |
| U32 | RshFillBufferWithRandomNumbers< S16, rshBufferTypeS16 > (RshBufferType< S16, rshBufferTypeS16 > &userBuffer, U32 seed) |
| template<> | |
| U32 | RshFillBufferWithRandomNumbers< U32, rshBufferTypeU32 > (RshBufferType< U32, rshBufferTypeU32 > &userBuffer, U32 seed) |
| template<> | |
| U32 | RshFillBufferWithRandomNumbers< S32, rshBufferTypeS32 > (RshBufferType< S32, rshBufferTypeS32 > &userBuffer, U32 seed) |
| template<> | |
| U32 | RshFillBufferWithRandomNumbers< double, rshBufferTypeDouble > (RshBufferType< double, rshBufferTypeDouble > &userBuffer, U32 seed) |
| template<> | |
| U32 | RshFillBufferWithRandomNumbers< float, rshBufferTypeFloat > (RshBufferType< float, rshBufferTypeFloat > &userBuffer, U32 seed) |
Глобальные функции.
В этом файле содержится реализация часто используемых функций, применяемых в RSH SDK.
| #define RSH_FUNCTIONS_CPP |
| 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.
| U32 RshCopyStringToBuffer | ( | const char * | str, |
| RshBufferType< S8, rshBufferTypeS8 > & | userBuffer | ||
| ) |
Перекрестные ссылки RshBufferType< T, dataCode >::Copy(), NULL, RshBufferType< T, dataCode >::PSize(), RSH_API_PARAMETER_ZEROADDRESS и RSH_API_SUCCESS.

| U32 RshCopyStringToBuffer | ( | const char * | str, |
| RshBufferType< U8, rshBufferTypeU8 > & | userBuffer | ||
| ) |
Перекрестные ссылки RshBufferType< T, dataCode >::Copy(), NULL, RshBufferType< T, dataCode >::PSize(), RSH_API_PARAMETER_ZEROADDRESS и RSH_API_SUCCESS.

Вычисление контрольной суммы CRC32.
Данная функция вычисляет crc32 заданной строки.
| [in] | buf | Указатель на буфер с данными (строку). |
| [in] | len | Количество символов в заданной строке, по которым будет производиться вычисление контрольной суммы. |
| 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.
| U32 RshFillBufferWithRandomNumbers< double, rshBufferTypeDouble > | ( | RshBufferType< double, rshBufferTypeDouble > & | userBuffer, |
| U32 | seed | ||
| ) |
| U32 RshFillBufferWithRandomNumbers< float, rshBufferTypeFloat > | ( | RshBufferType< float, rshBufferTypeFloat > & | userBuffer, |
| U32 | seed | ||
| ) |
| U32 RshFillBufferWithRandomNumbers< S16, rshBufferTypeS16 > | ( | RshBufferType< S16, rshBufferTypeS16 > & | userBuffer, |
| U32 | seed | ||
| ) |
| U32 RshFillBufferWithRandomNumbers< S32, rshBufferTypeS32 > | ( | RshBufferType< S32, rshBufferTypeS32 > & | userBuffer, |
| U32 | seed | ||
| ) |
| U32 RshFillBufferWithRandomNumbers< S8, rshBufferTypeS8 > | ( | RshBufferType< S8, rshBufferTypeS8 > & | userBuffer, |
| U32 | seed | ||
| ) |
| U32 RshFillBufferWithRandomNumbers< U16, rshBufferTypeU16 > | ( | RshBufferType< U16, rshBufferTypeU16 > & | userBuffer, |
| U32 | seed | ||
| ) |
| U32 RshFillBufferWithRandomNumbers< U32, rshBufferTypeU32 > | ( | RshBufferType< U32, rshBufferTypeU32 > & | userBuffer, |
| U32 | seed | ||
| ) |
| U32 RshFillBufferWithRandomNumbers< U8, rshBufferTypeU8 > | ( | RshBufferType< U8, rshBufferTypeU8 > & | userBuffer, |
| U32 | seed | ||
| ) |
Преобразование данных из МЗР в вольты
Данная функция выполняет действие, обратное вызову 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().

| 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().

1.8.4