Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.17. Работа с глобальными данными схемы

А.5.17.5. rdsSGPSetData – запись значения глобального параметра

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.5. Сервисные функции и макросы RDS

#### А.5.17. Работа с глобальными данными схемы

##### А.5.17.5. rdsSGPSetData – запись значения глобального параметра

Функция rdsSGPSetData устанавливает значение глобального параметра схемы по его имени или целому идентификатору.

      BOOL RDSCALL rdsSGPSetDataA(
        RDS_PSGPDATA Data // Указатель на структуру описания параметра (имя параметра - UTF8)
      );
      BOOL RDSCALL rdsSGPSetDataW(
        RDS_PSGPDATA Data // Указатель на структуру описания параметра (имя параметра - UTF16)
      );
      // Функция-псевдоним
      BOOL RDSCALL rdsSGPSetData(
        RDS_PSGPDATA Data // Указатель на структуру описания параметра (имя параметра - кодировка по умолчанию)
      );

Тип указателя на эту функцию

RDS_BSgp

Параметры

Data(RDS_PSGPDATA)
  Указатель на структуру описания параметра с заполненными полями.

Возвращаемое значение

TRUE – значение параметра успешно установлено, FALSE – в ненулевом поле структуры Id передан идентификатор несуществующего параметра.

Примечания

Перед вызовом этой функции в структуре RDS_SGPDATA, указатель на которую передается в параметре, должно быть заполнено поле размера servSize и поля, указывающих на конкретный параметр: Id или NameA/NameW/Name. (это структура со строковыми полями, поэтому в ней есть поля для двух разных кодировок). Если в поле Id записано ненулевое значение, поиск уже существующего параметра в схеме будет осуществляться по этому полю. Если же Id==0, то, в зависимости от суффикса вызванной функции, поиск параметра будет осуществляться по его имени из поля

- для rdsSGPSetDataA – из поля NameA в кодировке UTF8;
- для rdsSGPSetDataW – из поля NameW в кодировке UTF16;
- для функции-псевдонима rdsSGPSetData – из поля-псевдонима Name в кодировке по умолчанию.

При этом, если параметр с данным именем не будет найден, он будет создан, его имя зарегистрировано в RDS, и полученный при регистрации идентификатор записан в поле Id переданной структуры.

В структуре RDS_SGPDATA, указатель на которую передан в параметре Data, помимо идентификатора или имени параметра должно быть заполнено поле Type, указывающее на тип значения параметра, и поля значения, соответствующие этому типу:

- для присвоения параметру целого числа: в поле в поле Type записывается RDS_VARTYPE_INT, в поле IntValue – значение;
- для присвоения параметру вещественного числа: в поле в поле Type записывается RDS_VARTYPE_DOUBLE, в поле DoubleValue – значение;
- для присвоения параметру строки: в поле в поле Type записывается RDS_VARTYPE_STRING, в поле StrValueA (в кодировке UTF8 при вызове rdsSGPSetDataA), StrValueW (в кодировке UTF16 при вызове rdsSGPSetDataW) или StrValue (в кодировке по умолчанию при вызове функции-псевдонима rdsSGPSetData) – указатель на строку, которая бужет скопирована в значение параметра;
- для присвоения параметру блока двоичных данных: в поле в поле Type записывается RDS_VARTYPE_BINARY, в поле Bytes – указатель на начало блока данных, в поле BytesCount – длина блока в байтах (блок будт скопирован в значение параметра).

Если в результате вызова функции значение параметра изменилось, модели всех блоков схемы будут вызваны для реакции на событие RDS_BFM_GLOBALPARAMCHANGE.

См. также

rdsSGPGetData, rdsSGPRegisterName, RDS_SGPDATA, RDS_BFM_GLOBALPARAMCHANGE,.