Всі ці можливості додаткового опису в першу чергу забезпечуються можливостями програм BuildSwitch для полегшення побудови секційних описів.
При описі каналів дуже часто використовують спрощений та скорочений опис режимів роботи каналів:
TrunkLine xBrd,<L2,L3>,<13579BDFIK>,00eh,,<0,bMa,A,It,gwt,All,SS0>
Це потребує попереднього визначення додаткових ключів, наприклад:
Ft = FnModTonal ;; тональний d17 = DINRange17 dOv = DsModOverl Nsp = IsUsePream Nvp = WhUsePream gwt = RgWhodlTlk Ic = DrInternal+DrTownOnly It = DrInternal+DrTownOnly+DrOverTown+DrOverSeas ;1-категорiя
Додаткові визначення ключів можуть бути в будь-якому місці вхідних файлів; можливе повторне визначення ключа, але тільки текстово-ідентичне. Такі додаткові визначення після додаткових перевірок у всі вихідні файли таблиць ліній для секцій.
Підключення будь-якого файлу проводиться директивою:
include AnyFile
де AnyFile - назва файлу. Якщо в назві файлу присутні пробіли або інші сумнівні символи - назву файлу треба брати в подвійні лапки, приклад:
include "Switch\\Local Bades.inc"
Рівень вкладеності директив include - не більше 9. Принцип розподілу інформації по вкладеним файлам довільний, наприклад: в одному файлі - опис взаємодії з міжмістом, в іншому - опис підключення до БАДів або опис параметрів транків.
Текстові підстановки визначаються директивою:
macrotext defn = .text.
Область дії текстової текстової підстановки - відразу після визначення по всьому тексту вхідного файлу, в будь-яких директивах та коментарях; допускається можливість ПЕРЕвизначення текстової підстановки. Приклади визначення:
macrotext Z = .380-3434-. ;; зоновий номер проекту
або якщо в тексті самої підстановки використовується символ “.”:
macrotext Geo = %21.1202, 34.3563% ;; Україна, ????????????????
Всюди в тексті після цього визначення (навіть в коментарях) послідовність символів .Z. буде замінена на послідовність 380-3434-. Ще невизначена послідовність НЕ ЗАМІНЮЄТЬСЯ! Приклади:
;; аналіз для зони .Z. BackwardRule PolyRul, ".Z.37xxx", + macrotext .Z. = .380- 3434- . ;; зоновий номер проекту BackwardRule PramAon, ".Z.6102x", + ;; АОН на десяток
В коментарі та для PolyRul текстова підстановка .Z. виконуватись не буде! А замість останнього рядка отримаємо:
BackwardRule PramAon, "380- 3434- 6102x", + ;; АОН на десяток
Текстова вставка забезпечує безумовне перенесення фрагменту тексту (після виконання текстових підстановок) з вхідного файлу у відповідні вихідні файли - секцій або шаблони. Під час переносу фрагмент тесту жодним чином не обробляється; весь фрагмент повинен бути повністю визначений в одному файлі (include не спрацьовує). Початок текстової вставки визначається директивою:
insertbeg Bad1
Фрагмент текстової вставки повинен закінчуватись директивою:
insertend
Список директиви insertbeg визначає у які вихідні файли буде проводитись вставка; в списку можна вказувати назви підлеглих вузлів (як в прикладі) - і тоді така вставка попаде у вихідні файли шаблонів цих вузлів.
Фрагмент текстової вставки можна скерувати і у вихідні файли секційних описів (-pl.inc, -lk.inc, -nr.inc, -ln.inc) - для цього в списку треба вказати відповідні ключі: -pl, -lk, -nr, -ln.
Тестова вставка може використовувати для передачі специфічних режимів роботи в конкретні вихідні файли.
insertbeg Bad7 ;; абонентська частина - вставляється в шаблон ;=================================================== AlloctTract B, ,Mtu,0 ;; без каналів AlloctTract <C,D,E,F,G,H,I,J,K,L>, ,Akf; ;;...................................... DirectionStrt 486xxx MultiLine aAbn, <C,D,E,F,G,H,I,J,K,L>,< >, aon3,"486650", <0, Ft, A,Ic,wRgt,Any,486> DirectionEnds 486xxx ;=================================================== insertend ;; BAD7
Ці рядки попадуть в файл шаблонів для вузла Bad7.
Для передачі однакових рядків в шаблони підключення підлеглих БАДів можна скористатись такою послідовністю команд:
insertbeg <Bad1,Bad2,Bad3,Bad4,Bad5,Bad6,Bad7> ;; вставляється в шаблон ;=================================================== ;; СПІЛЬНЕ для всіх підлеглих БАДів - вставляється в усі шаблони ;=================================================== ;; режими роботи каналів Ft = FnModTonal Ic = DrInternal+DrTownOnly+DrOverTown+DrOverSeas wRgt = RgWhodlTlk ;; ;=================================================== ;; параметри для абонентських тисяч TrunkExtraPar 485, ".Znu. 5xxxx" , < .Geo. >; TrunkExtraPar 486, ".Znu. 6xxxx" , < .Geo. >; ;=================================================== insertend ;;
Ці рядки відразу попадуть в декілька вихідних файлів шаблонів для кожного вузла, вказаного в списку директиви insertbeg.
Як-що використовується модель багато-секційного комутатора (374 або 376), то в списку параметрів директиви insertbeg, на початку назви ключа необхідно вказувати позицію цієї секції. Наприклад, в описі комутатора вказано:
insertbeg A-nr DefineIPNet <000h,008h,002h,094h,02Bh,0CCh>,<192,168,000,004>,0e800h insertend insertbeg B-nr DefineIPNet <000h,008h,002h,094h,02Bh,0CDh>,<192,168,000,005>,0e800h insertend
Відповідні тексти попадуть в файли опису нумерації (вказаний параметр -nr) для секцій A та B - в результаті ці секції отримають різні адреси в IP-мережі.