Навигация:
<< >> Оглавление Указатель

Приложения

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

А.2. События блока и связанные с ними описания

А.2.4. События общего назначения

А.2.4.9. RDS_BFM_GLOBALPARAMCHANGE – изменение глобального параметра схемы

Поток, в котором вызывается функция модели

Главный поток RDS или поток расчета (вызов выполняется в одном потоке с моделью, изменяющей параметр).

Первый параметр функции модели (int CallMode)

Константа RDS_BFM_GLOBALPARAMCHANGE.

Третий параметр функции модели (void *ExtParam)

Указатель на структуру RDS_SGPDATA, в которой содержится описание и значение изменившегося парамера.

Возвращаемое функцией модели значение

Не используется, можно возвращать любое значение.

Примечания

При изменении глобального параметра схемы функцией rdsSGPSetData или его удалении функцией rdsSGPDelete модели всех блоков схемы вызываются для реакции на событие RDS_BFM_GLOBALPARAMCHANGE. В третьем параметре функции модели при этом передается указатель на структуру RDS_SGPDATA, которая также используется в функциях доступа к глобальным параметрам:

  typedef struct {
     servSize;       // Размер этой структуры в байтах
     Id;          // Уникальный идентификатор параметра
     NameA;        // Имя параметра (UTF8)
     NameW;       // Имя параметра (UTF16)
    // Name;      // Имя параметра ()
  
     Type;        // Тип параметра (RDS_VARTYPE_INT,RDS_VARTYPE_DOUBLE,RDS_VARTYPE_STRING,RDS_VARTYPE_BINARY)
  
    // Значения (заполняются только те поля, которые соответствует Type)
    double DoubleValue;   // Вещественное значение
     IntValue;    // Целое значение
     StrValueA;    // Текстовое значение (UTF8)
     StrValueW;   // Текстовое значение (UTF16)
    // StrValue;  // Текстовое значение ()
     Bytes;       // Значение - массив байтов
     BytesCount;  // Размер массива байтов
  
     Flags;          // Флаги RDS_SGP_*
  
     Exists;          // Параметр существует
  } RDS_SGPDATA;
  typedef RDS_SGPDATA *RDS_PSGPDATA;

Поля структуры

servSize (DWORD)
Размер этой структуры в байтах. В реакции на событие RDS_BFM_GLOBALPARAMCHANGE значение этому полю присваивает RDS. При вызове модель блока должна присвоить этому полю значение sizeof(RDS_SGPDATA).
Id (RDSINT32)
Уникальный ненулевой идентификатор глобального параметра, ранее полученный вызовом функции регистрации имени параметра rdsSGPRegisterName. В реакции на событие RDS_BFM_GLOBALPARAMCHANGE это поле всегда заполнено. При вызове в это поле можно записать ноль, в этом случае имя, записанное в поле NameA/NameW/Name (в зависимости от суффикса вызванной функции) будет зарегистрировано в RDS автоматически и в поле Id будет записан присвоенный этому имени идентификатор.
NameA (RDSCSTR), NameW (RDSWCSTR), Name (RDSXCSTR)
Имя глобального параметра. В реакции на событие RDS_BFM_GLOBALPARAMCHANGE это поле всегда заполнено. При вызове это поле игнорируется, если в поле Id находится ненулевое значение. Если же в Id записан ноль, из структуры будет считано поле, соответствующее .
Type ()
Тип глобального параметра, определяющий, в каком из полей структуры записано его значение:
RDS_VARTYPE_INT Целое число в поле IntValue.
RDS_VARTYPE_DOUBLE Вещественное число в поле DoubleValue.
RDS_VARTYPE_STRING Строка, указатель на которую находится в поле StrValueA/StrValueW/StrValue. При вызове считывается поле с , при реакции на событие RDS_BFM_GLOBALPARAMCHANGE заполнены все поля.
RDS_VARTYPE_BINARY Двоичные данные, указатель на начало которых находится в поле Bytes, а длина в байтах – в поле BytesCount.
DoubleValue (double)
Вещественное значение параметра при Type==RDS_VARTYPE_DOUBLE.
IntValue ()
Целое значение параметра при Type==RDS_VARTYPE_INT.
StrValueA (), StrValueW (), StrValue ()
Строковое значение параметра при Type==RDS_VARTYPE_STRING.
Bytes (RDSBYTES)
Указатель на начало двоичных данных параметра при Type==RDS_VARTYPE_BINARY.
BytesCount ()
Размер в байтах области памяти с двоичными данными, на которую указывает поле Bytes.
Flags ()
Битовые флаги глобального параметра. На данный момент поддерживается единственный флаг:
RDS_SGP_TRANSLATE Требуется перевод текста для строкового параметра.
Exists ()
TRUE – параметр существует, FALSE – параметр не существует или удаляется в данный момент.

См. также

rdsSGPSetData


<< >> Оглавление Указатель