Приложения
Приложение А. Функции, константы и структуры RDS
А.4. Структуры RDS
А.4.5. RDS_CONNDESCRIPTION – описание связи или шины
Структура RDS_CONNDESCRIPTION используется для получения описания связи или шины – ее идентификатора, числа точек и линий, составляющих геометрию связи и т.п. Описания внешнего вида, толщины линий и других параметров внешнего вида связи или шины в этой структуре не содержится, для них используется структура RDS_CONNAPPEARANCE. Для анализа соединяемых связью переменных или получения списка каналов шины нужно, как правило, сначала заполнить эту структуру вызовом функции rdsGetConnDescription, а потом уже, зная число точек, линий и каналов, перебирать их по одному при помощи других функций.
Эта структура используется только для получения описания связей и шин, изменить их параметры с ее помощью нельзя. Для изменения параметров существующих связей или шин и создания новых используется вспомогательный объект, создаваемый функцией rdsCECreateEditor.
typedef struct { DWORD servSize; // Размер этой структуры в байтах RDS_CHANDLE Conn; // Идентификатор связи RDSINT32 ConnType; // Тип связи RDS_BHANDLE Parent; // Идентификатор родительской подсистемы RDSCSTR ParentNameA; // Имя родительской подсистемы (UTF8) RDSWCSTR ParentNameW; // Имя родительской подсистемы (UTF16) //RDSXCSTR ParentName; // Имя родительской подсистемы (поле-псевдоним) BOOL Active; // Состояние связи (включена или отключена) RDSINT32 LayerId; // Идентификатор слоя RDSINT32 NumPoints; // Число точек в связи RDSCSTR BusNameA; // Имя (только для шины, UTF8) RDSWCSTR BusNameW; // Имя (только для шины, UTF16) //RDSXCSTR BusName; // Имя (только для шины, поле-псевдоним) RDSINT32 NumChannels; // Число каналов (только для шины) RDSINT32 NumLines; // Число линий DWORD ExtId; // Внешний уникальный идентификатор } RDS_CONNDESCRIPTION; typedef RDS_CONNDESCRIPTION *RDS_PCONNDESCRIPTION;
Поля структуры
- servSize (DWORD)
- Размер этой структуры в байтах. Перед вызовом любой сервисной функции, работающей с этой структурой, полю servSize необходимо присвоить значение sizeof(RDS_CONNDESCRIPTION).
- Conn (RDS_CHANDLE)
- Уникальный идентификатор данной связи или шины. Для идентификаторов связей и шин в RDS введен специальный тип RDS_CHANDLE, такие идентификаторы используются в сервисных функциях для указания связи или шины, с которыми нужно произвести то или иное действие.
- ConnType (RDSINT32)
- Тип объекта: связь или шина. В RDS шины являются подвидом связей,
поэтому большинство сервисных функция у шин и связей общие. В этом поле содержится одна из
следующих констант:
RDS_TUNKNOWN Неизвестный тип (при вызове функции, заполняющей эту структуру, возникла ошибка). RDS_CTCONNECTION Связь. RDS_CTBUS Шина. - Parent (RDS_BHANDLE)
- Идентификатор родительской подсистемы, то есть подсистемы, непосредственно внутри которой находится данная связь или шина.
- ParentNameA (RDSCSTR), ParentNameW (RDSWCSTR), ParentName (RDSXCSTR)
- Указатель на строку с именем родительской подсистемы. Строка находится во внутренней памяти RDS, ее нельзя изменять.
- Active (BOOL)
- TRUE, если связь включена, и FALSE, если выключена. Включение/выключение связей обычно производится пользователем с клавиатуры или через контекстное меню.
- LayerId (RDSINT32)
- Идентификатор слоя подсистемы, на котором находится данная связь или шина. Для ее перемещения на другой слой можно использовать функцию rdsSetConnLayer.
- NumPoints (RDSINT32)
- Общее число узловых точек в геометрическом изображении связи или шины. В это число входят и точки соединения с блоками, и промежуточные точки (точки излома), и точки разветвления. Получить описание конкретной точки с заданным номером (ее координаты, тип и т.п.) можно при помощи функции rdsGetPointDescription.
- BusNameA (RDSCSTR), BusNameW (RDSWCSTR), BusName (RDSXCSTR)
- Указатель на строку с именем шины (только для шин, для связей не используется). Строка находится во внутренней памяти RDS, ее нельзя изменять.
- NumChannels (RDSINT32)
- Общее число каналов передачи данных в шине (для связей не используется).
- NumLines (RDSINT32)
- Общее число линий (прямых и кривых Безье), соединяющих пары узловых точек в геометрическом изображении связи или шины. Получить описание линии с заданным номером (ее тип, координаты касательных кривой и т.п.) можно при помощи функции rdsGetLineDescription.
- ExtId (DWORD)
- Уникальный в пределах схемы целый идентификатор данной связи или шины, не изменяющийся при сохранении и последующей загрузке этой схемы.
Пример
Пример использования структуры RDS_CONNDESCRIPTION приведен в §2.13.4 руководства программиста.
См. также
rdsGetConnDescription, rdsGetFirstConn, rdsGetNextConn, RDS_CONNAPPEARANCE, rdsSetConnLayer, rdsGetPointDescription, rdsGetLineDescription, rdsCECreateEditor.