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

Описания RDS

Приложения

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

А.4. Структуры RDS

А.4.14. RDS_POINTDESCRIPTION – описание точки связи или шины

# Приложения

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

### А.4. Структуры RDS

#### А.4.14. RDS_POINTDESCRIPTION – описание точки связи или шины

Структура RDS_POINTDESCRIPTION используется для получения описания отдельной точки внутри связи или шины. Эта структура заполняется сервисной функцией rdsGetPointDescription и некоторыми другими функциями. Примеры ее использования приведены в §2.7.4, §2.13.2 и §2.13.4 руководства программиста.

Структура используется только для получения описания точки, изменить параметры этой точки с ее помощью нельзя. Для изменения параметров существующих связей или шин и создания новых используется вспомогательный объект, создаваемый функцией rdsCECreateEditor.

      typedef struct {
        DWORD servSize;     // Размер этой структуры в байтах
        RDSINT32 PointType; // Тип точки (RDS_PT*)
        BOOL Source;        // TRUE - источник данных, FALSE - получатель
        RDSINT32 Status;    // Состояние (RDS_PS*)
        LPSTR ObjectName;   // Имя соединенного блока или шины
        LPSTR VarName;      // Имя соединенной переменной
        RDS_BHANDLE Block;  // Соединенный блок или NULL
        RDS_CHANDLE Bus;    // Соединенная шина или NULL
        RDS_CHANDLE Owner;  // Связь-владелец точки
        RDSINT32 x,y;       // Координаты точки
        RDSINT32 PointNum;  // Номер этой точки внутри связи или шины
      } RDS_POINTDESCRIPTION;
      typedef RDS_POINTDESCRIPTION *RDS_PPOINTDESCRIPTION;

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

servSize(DWORD)
  Размер этой структуры в байтах. Перед вызовом любой сервисной функции, работающей с этой структурой, полю servSize необходимо присвоить значение sizeof(RDS_POINTDESCRIPTION).
PointType(RDSINT32)
  Тип точки. В этом поле может находиться одна из четырех констант:

  RDS_PTINTERNAL | Промежуточная точка связи или шины (излом или разветвление).
  RDS_PTBLOCK | Точка соединения связи с блоком.
  RDS_PTBUS | Точка соединения связи с шиной.
  RDS_PTBUSTOBLOCK | Точка соединения шины с подсистемой или шинным вводом.

Source(BOOL)
  TRUE, если данная точка связи является источником данных (подключена к выходу блока или шины), и FALSE, если она получает данные (подключена ко входу блока или шины). Используется только для точек соединения с блоками и шинами (в поле PointType – RDS_PTBLOCK или RDS_PTBUS).
Status(RDSINT32)
  Состояние точки (только для точек, не являющихся промежуточными). В этом поле может находиться одна из следующих констант, указывающих на ошибки соединения:

  RDS_PSNORMAL | Нет ошибок соединения.
  RDS_PSBADVAR | Отсутствует либо указанный в параметрах точки блок, либо указанная переменная в блоке.
  RDS_PSBADTYPE | Вход блока, с которой соединена точка, имеет тип, несовместимый с типом выхода, к которому присоединена связь.

ObjectNameA(RDSCSTR),ObjectNameW(RDSWCSTR),ObjectName(RDSXCSTR)
  Указатель на строку (char*) во внутренней памяти RDS, в которой хранится имя соединенного с точкой блока (для точек соединения с блоками, типы RDS_PTBLOCK и RDS_PTBUSTOBLOCK) или соединенной шины (для точек соединения связей с шинами, тип RDS_PTBUS). Для промежуточных точек в этом поле записано значение NULL.
VarNameA(RDSCSTR),VarNameW(RDSWCSTR),VarName(RDSXCSTR)
  Указатель на строку (char*) во внутренней памяти RDS, в которой хранится имя соединенной с точкой переменной (для точек соединения связей с блоками, тип RDS_PTBLOCK) или канала шины (для точек соединения связей с шинами, тип RDS_PTBUS). Для всех остальных типов точек в этом поле записано значение NULL.
Block(RDS_BHANDLE)
  Идентификатор соединенного с точкой блока для точек соединения с блоками (типы RDS_PTBLOCK и RDS_PTBUSTOBLOCK). Для всех остальных типов точек в этом поле записано значение NULL.
Bus(RDS_CHANDLE)
  Идентификатор соединенной с точкой шины для точек соединения связей с шинами (тип RDS_PTBUS). Для всех остальных типов точек в этом поле записано значение NULL.
Owner(RDS_CHANDLE)
  Идентификатор связи или шины, которой принадлежит данная точка.
x, y(RDSINT32)
  Горизонтальная (x) и вертикальная (y) координаты точки. Для промежуточных точек и точек соединения связей с шинами (типы RDS_PTINTERNAL и RDS_PTBUS) указываются абсолютные координаты на рабочем поле, то есть смещения относительно его левого верхнего угла. Для точек соединения связей и шин с блоками (типы RDS_PTBLOCK и RDS_PTBUSTOBLOCK) указываются относительные координаты, то есть смещения относительно координат точки привязки соединенного блока. Все координаты указаны для масштаба 100%, горизонтальная ось координат направлена вправо, вертикальная – вниз, начало координат – левый верхний угол рабочего поля (для абсолютных координат) или точка привязки блока (для относительных).
PointNum(RDSINT32)
  Порядковый номер данной точки в связи или шине. Обращение к точкам всегда идет по их номеру, общее число точек можно получить через поле NumPoints структуры RDS_CONNDESCRIPTION.

См. также

rdsGetPointDescription, RDS_CONNDESCRIPTION, rdsGetConnDescription, rdsCECreateEditor.