ЄС-11

Цифрова комутаційна система

Науково-виробничий центр
"Автоматизовані мікропроцесорні системи"
ЄДРПОУ: 13807402 тел: +380-32-237-21-36

Користувальницькькі налаштування

Налаштування сайту


es11soft:preprocessing:buildswitch

Програма BuildSwitch

Програма BuildSwitch стоїть в самому початку технологічного ланцюжка створення внутрішнього програмного забезпечення (таблиці станції) процесорів комутатора або окремих БАДів станцій ЄС-11. Програма аналізує символьні файли "Загального опису комутатора", та синтезує символьні файли опису окремих частин комутатора - секцій. Також створюються символьний файл детального опису комутатора (як цілісної одиниці) та файли шаблонів зустрічного підключення підлеглих вузлів.

Опис комутатора та його модель

Програма детально аналізує файл загального опису комутатора, який створений користувачем (за допомогою текстових редакторів), та враховуючи особливості конкретної моделі будує його секційні описи. Програма 'вважає' що всі частини комутатора та його підлеглі БАДи включені в один спільний проект - тобто мають однаковий зоновий номер та єдиний зовнішній поінт-код в національній мережі. Також вважається, що внутрішні канали комутатора (між секціями та БАДами) працюють по сигналізації Ss7 та вміють передавати інформацію про початкову точку аналізу номера та детальні причині відбою.

Всі внутрішні міжсекційні зв'язки програма формує тільки на базі ОКСу; внутрішні напрямки та маршрути формуються тільки між тими секціями, які цього дійсно потребують. Всі секції комутатора та підлеглі БАДи поєднуються в єдину зонову мережу Zon; поверх цієї мережі накладається мережа діагностики, точки входу в яку доступні буквально в кожній секції та не потребують додаткового визначення.

Програма будує взаємно узгоджені між секціями та підлеглими вузлами маршрути ОКСу. Зняті обмеження на точки підключення та конфігурації тонал-сетів, лінк-сетів та резервних вузлів. Єдине обмеження, що залишилося - в одному лінк-сеті не більше чотирьох ланок сигналізації.

Врахування особливостей комутатора та принципи побудови внутрішньої мережі детально описані в "Налаштування на модель комутатора та його внутрішню мережу"

Командний рядок

Програма BuildSwitch - це класична консольна програма з запуском та передачею параметрів через командний рядок; порядок вказування параметрів в рядку несуттєвий - ключ, а потім назва файлу:

  BuildSwitch -Inp InpFil [-Lst LstFil] [-Inc IncFil] [-Pat PatFil]
  • -Inp - ключ вхідного файлу;
  • InpFil - каталог розміщення, назва та розширення 'головного' вхідного файлу опису комутатора - обов'язковий параметр;
  • -Lst - ключ створення вихідного файлу лістінгу;
  • LstFil - каталог розміщення, назва та розширення вихідного файлу лістінгу, що буде створений програмою;
  • -Inc - ключ створення вихідних файлів секційних описів;
  • IncFil - каталог розміщення та початок назви всіх вихідних файлів секційних описів, що будуть створені програмою; розширення, вказане в командному рядку, ігнорується; всі вихідні файли будуть мати розширення .Inc;
  • -Pat - ключ створення вихідних файлів шаблонів;
  • PatFil - каталог розміщення та початок назви всіх вихідних файлів шаблонів, що будуть створені програмою; розширення, вказане в командному рядку, ігнорується; всі вихідні файли будуть мати розширення .Pat;

Вказування вхідного файлу обов'язкове; початок назви головного вхідного файлу (до першої не букви або цифри) буде назвою комутатора по замовчуванню.

Якщо ключ вихідного файлу не вказаний - він не формується.

В командному рядку допускається вказувати перенаправлення стандартного виводу з терминалу StdOut у файл - >FileName.

Імена файлів в командному рядку бажано брати в подвійні лапки - особливо якщо в іменах зустрічаються пробіли. Символи \ у назвах файлів треба подвоювати!

Приклад командного рядку:

  BuildSwitch.pl -Inp 212-Swt.Prj -Inc "Yare-Sect\\212k" -Pat "Yare-Bads\\"

Тут вказаний вхідний файл 212-Swt.Prj. Файли секційних описів будуть створені в каталозі Yare-Sect, початок назви файлів - 212k; файли шаблонів підключення будуть створені в каталозі Yare-Bads, назви файлів повністю відповідають назвам вузлів. Назва комутатора по замовчуванню - 212.

Після виконання командного рядка:

  BuildSwitch.pl -Inp 212.Prj -Lst Yare > Yare.Err

буде створено вихідний файл лістінгу Yare.Lst в поточному каталозі та тут-же, у поточному каталозі, буде створено файл з повідомленнями про помилки, його назва - Yare.Err.

Командний рядок:

  BuildSwitch.pl -Inp 212Bad4.Prj -Inc Bad4 -Lst 212Bad4 

створює файл лістінгу та файли секційних описів вузла Bad4 у поточному каталозі.

Вхідні файли опису комутатора

На вхід програм BuildSwitch подається символьний файл загального опису комутатора. Правила опису комутатора (незалежно від моделі та кросу) приведено в "Загальний опис комутатора".

В "Додаткові можливості загального опису" описана робота програми з декількома вхідними файлами та макро-вставками; там-же приведені правила опису вставок у вихідні файли .inc та .pat.

Налаштування програми BuildSwitch на конкретну модель комутатора за допомогою директиви Model: дивись в "Налаштування на модель комутатора".

Порядок обробки вхідних рядків такий:

  • - виконання всіх можливих макро-замін в рядку;
  • - обробка операційних дужок insertbeg/insertend та формування текстів вставок;
  • - аналіз директив include та відкриття нових вхідних файлів;
  • - обробка та аналіз багаторядкових директив BegExtra/EndExtra;
  • - обробка всіх інших директив опису;

Вихідний файл лістінгу

Цей символьний файл з розширенням .Lst містить перелік оброблених директив та повідомлення про знайдені синтаксичні помилки; повідомлення про помилки виводяться перед помилковим рядком. Назва цього файлу та необхідність його формування вказується в командному рядку ключем -Lst. В цьому файлі директиви представлені в порядку надходження на аналіз - після виконання директив include та macrotext. На початку кожного рядка цього вихідного файлу вказується рівень вкладенності вхідних файлів (по include) та номер рядка у вхідному файлі:

  1  146  ;; для каналів з міжміста - тільки внутршня
  1  147     ForwardRule Au  ,!"51337"      , , $,T51337 ;;Заміна на 103
  1  148     ForwardRule Au  , "2[PDG,0]"   , ,  ,A ;; Це тут !!!
  1  149     ForwardRule Au  , "3[PDG,0]"   , ,  ,A ;; Це тут !!!
  1  150     ForwardRule Au  , "4[PDG,0]"   , ,  ,A ;; Це тут !!!
  1  151     ForwardRule Au  , "5[PDG,0]"   , ,  ,A ;;
  1  152     ForwardRule Au  , "6[PDG,0]"   , ,  ,A ;; Це тут !!!

Вихідні файли секційного опису

Ця група символьних файлів з розширенням .Inc містять посекційні описи кожної складової частини (секції) комутатора; для кожної секції формується чотири файли з частинами секційних описів; в файлах вже враховані тонкощі міжсекційної взаємодії. Саме ці файли використовуються для формування двійкових таблиць секцій комутатора. Початок назви цих файлів та необхідність їх формування вказується в командному рядку ключем -Inc; назви цих файлів містять назви секцій, які вони описують; а завершення назв (-Pl.Inc, -Lk.Inc, -Ln.Inc, -Nr.Inc) визначає характер інформації, що в них міститься.

На початку та в кінці кожного файлу формуються рядки з довідковою інформацією про назву головного вхідного файлу, назву комутатора, назву та дату створення цього вихідного файлу.

В "Додаткові можливості загального опису" приведені правила опису текстових вставок фрагментів при формуванні вихідних файлів секційного опису.

Як-що використовується модель багато-секційного комутатора (374 або 376), то в списку параметрів директиви insertbeg, в назві ключа необхідно вказувати позицію цієї секції.

Блокування виводу в файли секційного опису

Для блокування видачі окремих фрагментів в файли секційних описів використовується директива supressfrag, приклад її використання:

supressfrag PlCross
  • PlCross - ключ блокування, визначає видачу яких саме фрагментів треба блокувати при формування файлів секційного опису; список ключів треба вказувати в кутових дужках;

Як-що використовується багато-секційна модель комутатора (наприклад - 374 або 376), то другим параметром директиви supressfrag повинен бути список секцій для яких ця директива дійсна:

supressfrag <PlCross,PlLinks,PlPcm>, <A,B>
  • <PlCross,PlLinks,PlPcm> - список ключів блокування, визначає видачу яких саме фрагментів треба блокувати при формування файлів секційного опису;
  • <A,B> - список позицій секцій (або одна позиція без кутових дужок) для яких треба блокувати видачу цих фрагментів;

Примітка: Програма BuildSwitch під-час формування файлів шаблонів виводить символи ';~~' (початок коментарю) на початку рядків блокованих фрагментів, наприклад, для фрагменту опису лінків:

;~~ DefineOksLink ADA0,-W,LsHugB
;~~ DefineOksLink A0A0,-W,LsSctC
;~~ DefineOksLink A1A0,-W,LsSctD
;~~ DefineOksLink A2E0,-W,LsSctE

Ключі блокування видачі можуть приймати такі значення:

  • PlCross - “коментувати” опис кросу в секційному файлі плат;
  • PlLinks - “коментувати” опис лінків в секційному файлі плат;
  • PlPcm - “коментувати” опис потоків в секційному файлі плат;
  • PlTract - “коментувати” опис аналогових плат або віртуальних блоків в секційному файлі плат;
  • PlDiag - “коментувати” опис діагностики в секційному файлі плат;
  • PlTonSet - “коментувати” опис тоналсетів в секційному файлі плат;
  • PlLinkSet - “коментувати” опис лінксетів в секційному файлі плат;
  • LkPcodes - “коментувати” опис поінт-кодів в секційному файлі маршрутів;
  • LkRoutTS - “коментувати” опис маршрутів тоналсетів в секційному файлі маршрутів;
  • LkRoutLS - “коментувати” опис маршрутів лінксетів в секційному файлі маршрутів;
  • LkRoutDg - “коментувати” опис діагностики в секційному файлі маршрутів;
  • NrStation - “коментувати” загальні описи в секційному файлі нумерації;
  • NrDirect - “коментувати” описи напрямків в секційному файлі нумерації;
  • NrForward - “коментувати” опис таблиці аналізу прямого номера в секційному файлі нумерації;
  • NrBackward - “коментувати” опис таблиці аналізу зворотнього номера в секційному файлі нумерації;
  • NrTrunkPar - “коментувати” описи параметрів транків в секційному файлі нумерації;
  • LnChnKeys - “коментувати” описи ключів роботи каналів в секційному файлі нумерації;
  • LnChannel - “коментувати” описи каналів та напрямків в секційному файлі нумерації;
  • LnTranzit - “коментувати” описи транзитних каналів в секційному файлі нумерації;

Користувач може використовувати таке блокування, як-що вважає за потрібне самостійно описувати ці функціональні фрагменти в секційних описах.

Вихідний файл опису комутатора

Програма BuildSwitch створює цей один символьний файл опису комутатора, як цілісної одиниці - без поділу на секції. Початок назви цього файлу та необхідність його формування вказується в командному рядку ключем -Inc; назва файлу закінчується на -ModelXXX.Inc, де XXX - тип використаної моделі комутатора. Весь опис комутатора виконується типовими директивами, які сформовані відповідно правил “Опису окремих файлів конфігурації одного процесора”.

Цей файл використовується для візуального аналізу і подальшої оптимізації; файл містить багато довідкових таблиць, які детально розкривають використання ресурсів по замовчуванню. Всі директиви упорядковані та відсортовані по назвам основних ресурсів. Окремі частини файлу можна вставляти в секційні описи. Детально цей файл описано в "Файл опису комутатора"

Файли шаблонів підключення підлеглих вузлів

Програма BuildSwitch виконує обернений аналіз конфігурації комутатора - з точки зору підлеглих вузлів - та створює не повну модель цих периферійних вузлів для підключення їх до комутатора; модель створюється тільки для ЄС-11 і тільки в мережі ОКС. Кожен з цих файлів містить тільки інтерфейсну частину опису підлеглого периферійного вузла - БАДа або комутатора. Початок назви таких файлів шаблонів та необхідність їх формування вказується в командному рядку ключем -Pat.

Програма базується на припущенні “однопроцесорності” підлеглого вузла та весь його опис виконує типовими директивами, які сформовані відповідно правил “Загального опису комутатора”. Опис, створений програмою, не повний; для БАДів, наприклад, відсутній опис абонентської частини - плат та ліній. Ці файли, після об'єднання з лінійною або абонентською частиною, можуть повторно подаватися на вхід програми BuildSwitch для створення відповідних секційних описів вже цього периферійного вузла.

Підлеглими до комутатора вузлами вважаються, ті що підключені по ОКСу директивами ConnectOksPeer; можливе мульти-адресне підключення декількома цими директивам. Для кожного такого вузла (наприклад, Vlk1) програма створює файл, з типовою назвою Verhovina-Vlk1.pat, в якому описані правила підключення вузла Vlk1 до комутатора Verhovina - де Verhovina було вказано в командному рядку. Для побудови коректної інтерфейсної моделі вузла необхідно, що-би в описі комутатора назва напрямку виходу на цей вузол (канали) відповідала назві самого вузла (потоки).

В "Додаткові можливості загального опису" приведені правила опису текстових вставок при формуванні вихідних файлів шаблонів.

В "Описі файлів шаблонів" приведені правила формування та детальний опис цього вихідного файлу.

Повідомлення програми

Під час обробки вхідних даних програми видає на “термінал помилок” (StdErr) повідомлення:

Перебіг обробки вхідних даних

Інформаційні повідомлення починаються з символів ..Info:: та, як правило, повідомляють про створення та закриття кожного вихідного файлу:

  ..Info::   File  "190Semc-HugA.Inc"  created and closed.
  • - Файл “190Semc-HugA.Inc” створено та закрито

Попереджувальні повідомлення починаються з символів –Warn:::

  ..Warn::   Lines:  4061  Errors detected:  0/12 
  • - Оброблено 4061 рядків, помилок 0, попереджень 12

Після таких повідомлень робота програми продовжується.

Фатальні помилки

При помилках файлових операцій (відкриття, створення, закриття) програма видає повідомлення про помилку на “термінал помилок” (StdErr) та припиняє свою роботу. Тексти повідомлень приведено нижче:

  !!-01-!!  Cannot open  >->PrjName<-<
  • - Не знайдено вхідний файл, який вказано в командному рядку або його неможливо відкрити include
  !!-02-!!  Cannot close >->PrjName<-<
  • - Неможливо закрити вхідний файл.
  !!-03-!! Invalid comand line parameters (key or file) >->'
  • - Неправильний параметр у командному рядку
  !!-03-!!  No InputFile in comand line !!
  • - Не вказаний вхідний файл у командному рядку
  !!-04-!!  Cannot create >->LstFilNam<-<
  • - Неможливо створити вихідний файл.
  !!-05-!!  Cannot close >->LstFilNam<-<
  • - Неможливо закрити вихідний файл.
  !!-06-!!  Invalid file name at >->se<-<
  • - Не знайдено вхідний файл, який в директиві include або його неможливо відкрити.
  !!-07-!!  Too deep Include level at >->se<-<'
  • - Рівень include перевищує 9;
  !!-08-!!  Too short file name flName  Cannot contunue!
  • - Помилка в назві вхідного файлу в командному рядку
  !!-10-!! Errors detected:  81/0  Cannot contunue!
  • - Виявлено 81 помилок, неможливо продовжити.

Синтаксичні та семантичні помилки

При виявлені такої помилки програма видає повідомлення на термінал (StdOut); всі помилки згруповані по вхідних файлах. На термінал виводиться назва вхідного файлу, текст повідомлення про помилку та сам рядок з помилкою (на початку цього рядка - рівень вкладеності по include та номер рядка у вхідному файлі):

   Помилки  у  файлі  :  Verhovina-Switch.Prj
  **Err Невідомий параметр моделі  iList
  .   23  Model:    iList    = Bad2,Vlk1   ;; повна деталізація

У файл .Lst виводяться оброблені директиви в порядку надходження на аналіз - після виконання директив include та macrotext. На початку кожного рядка цього вихідного файлу вказується рівень вкладенності вхідних файлів по include та номер рядка у вхідному файлі:

  1   19            DirectionStrt    Bad1, 0
  1   20  	InternalTrunkSs7 <C6,D5>, < >
  1   21            DirectionEnds    Bad1

В файл Lst також виводяться повідомлення про помилку - перед рядком що її викликав. Після виявлення помилки у рядку програма припиняє обробку цього рядка та ігнорує його повністю. При виявлені хоч одної такої помилки всі вихідні файли, крім .Lst, не формуються.

Попередження

Програма формує попередження - повідомлення про можливу помилку під час подальшої обробки, такі повідомлення видаються у вихідний файл Lst; причиною попередження може бути, наприклад, використання не визначених елементів опису. Таке попередження починається з символів –Wrn та видається перед рядком що викликав сумнів:

  ..Wrn Напрямок  VerhovinaUnKnown  не має каналів взагалі
  1   37      DirectionStrt VerhovinaUnKnown
  1   38      DirectionEnds VerhovinaUnKnown
es11soft/preprocessing/buildswitch.txt · В останнє змінено: 2015/10/23 15:29 (зовнішнє редагування)