Приложения
Приложение А. Функции, константы и структуры 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.