ЄС-11

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

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

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

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


extrasoft:buildproject:convnumr

Програма конвертації таблиць аналізу номерів

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

Основне призначення вихідного файлу - це використання його в якості складової частини загального опису комутатора.

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

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

  ConvertNumeration InpFil OutFil ModeKey 
  • InpFil - каталог розміщення, назва та розширення головного вхідного файлу - обов'язковий параметр; в цьому ж каталозі буде створено вихідний файл з переліком синтаксичних помилок (розширення - .Lst);
  • OutFil - каталог розміщення, назва та розширення вихідного файлу;
  • ModeKey - режими роботи програми, а саме:
    • -Wn - перетворення кирилиці з кодування Dos766 у кодування Win1251, але тільки у вкладених вхідних файлах, для формування файлу .Lst;

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

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

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

  ConvertNumeration MikoNumrTable.Inc "С:\\Switch\\MykoNumer.-Prj-" -Wn
  • Основний вхідний файл - MikoNumrTable.Inc у поточному каталозі;
  • Вихідний файл з переліком синтаксичних помилок MikoNumrTable.Lst у поточному каталозі;
  • Вихідний файл з результатами - С:\Switch\MykoNumer.-Prj-;
  • Режим роботи - перекодування кирилиці, але тільки у вкладених вхідних файлах; кирилиця потрапить до файлу MikoNumrTable.Lst;

Підключення вкладених вхідних файлів

Приклад підключення будь-якого файлу:

include "239KA-nr-V3.inc"  ;;

Якщо в назві файлу присутні пробіли або інші сумнівні символи - назву файлу треба брати в подвійні лапки. Рівень вкладеності директив include - не більше 9. Принцип розподілу інформації по вкладеним файлам довільний; як правило, це секційні файли опису нумерації (-Nr) комутатора.

Головний вхідний файл

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

;;################################################################
;;      нумерація комутатора
;;================================================================
include 239KA-nr-V5.inc  ;; секція A
include 239KB-nr-V5.inc  ;; секція B
;;################################################################
    MakeForwardTables   < A, AU >  ;; корені аналізу
    MakeBackwardTables  < All, ANx >
;;################################################################

Директиви MakeForwardTables та MakeBackwardTables визначають початкові точки дерев аналізу номерів; відносно цих точок буде проводитись побудова та оптимізація дерев аналізу номерів.

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

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

Після успішного створення та закриття кожного вихідного файлу на термінал видається повідомлення:

   ++-++-++ File  "FFFFFFFF"  created and closed.
  • Файл FFFFFFFF створено та закрито.

Після створення всіх вихідних файлів видається повідомлення:

   ==:==:== Errors detected:  NNN    Warnings:  MMM

та робота програми закінчується.

Ці повідомлення програми виводяться на “термінал помилок” (StdErr).

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

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

!!-01-!! Cannot open   >->:=:=:=:=:=:<-<

* Не знайдено вхідний файл, який вказано в командному рядку, або його неможливо відкрити.

!!-01-!! Cannot open   >->:=:=:=:=:=:<-<  in include level N

* Не знайдено вхідний файл, який вказано в директиві include, або його неможливо відкрити; N - рівень вкладеності директив include.

!!-02-!! Cannot close  >->:=:=:=:=:=:<-<

* Неможливо закрити вхідний файл.

!!-04-!! Cannot create >->:=:=:=:=:=:<-<

* Неможливо створити вихідний файл.

!!-05-!! Cannot close  >->:=:=:=:=:=:<-<

* Неможливо закрити вихідний файл. де замість :=:=:=:=:=: вказується ім'я конкретного файлу або символи, які програма сприймає як ім'я файлу.

!!-07-!! Illegal Key  >ZZZZ<  Cannot contunue!

* Неправильний ключ ZZZZ у командному рядку, неможливо продовжити.

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

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

      US = -1    ; не более 18 цифр
  **.ERR** "239KA-nr-V3.inc" ( 43) :  Невідома директива  >->->US

У файл .Lst виводяться оброблені директиви в порядку надходження на аналіз та повідомлення про помилку:

  1   43          US = -1    ; не более 18 цифр
  **.ERR**  Невідома директива  >->->US

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

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

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

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

Обробка вхідних даних

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

Мітка визначення початку таблиць

  NumerationDecode :       ; ; початок всіх таблиць

Ця мітка тепер вважається застарілою та не потрібною - ігнорується; у вихідний файл не виводиться.

Директиви визначення напрямків та сотень

 DircDefin	Evans, 0, Side
 HundDefin	Abn0

Параметри директив визначення напрямків (DircDefin) та сотень (HundDefin) - а саме назви напрямків та сотень - запам'ятовуються та використовуються на етапі формування таблиць аналізу номера. Ці директиви у вихідний файл не поступають.

Директива створення таблиці аналізу номера

    MakeForwardTables < A, AU, R, Office> 

В загальному описі ця директива визначає перелік початкових точок аналізу прямих номерів, індекси яких можуть передаватися між процесорами комутатора. В контексті програми ConvertNumeration ця директива використовується для визначення точок (коренів дерева), відносно яких проводити оптимізацію та згортку дерева аналізу прямих номерів. Допускається декілька таких директив у будь-якому місці вхідного файлу, списки параметрів цих директив можуть перетинатися. Оптимально, в якості параметрів, треба використовувати початкові точки вказані в параметрах директив визначення каналів у файлі каналів. У вихідний файл виводиться тільки одна директива MakeForwardTables з відповідним списком початкових точок.

Примітка: Спосіб оптимізації дерева та результат оптимізації дуже сильно залежить від переліку початкових точок в цій директиві - використання проміжних точок в якості початкових може звести нанівець всі спроби оптимізації.

Директива заміни номера

NumberTransform Tr109, "029999419", A

Директива визначає правило перетворення прямого номера; директива без змін виводиться у вихідний файл.

Директиви визначення правил аналізу номера

 ForwardRule  A, "104",    DrTownOnly, #,     BAD9,  3,0
 ForwardRule  A, "109",    DrTownOnly, =,     Va09,  3,0
 ForwardRule  A, "1508",   DrTownOnly, =,      76C, -1,0
 ForwardRule  A, "506",    DrTownOnly, #,     BADc,  5,0
 ForwardRule  A, "507x",   DrTownOnly, #,     BADd,  5,0

Ці директиви визначають радіальний спосіб опису дерева аналізу номерів - від кореня до кінцевої гілки. Параметри цих директив перевіряються на сумісність. У вхідному файлі допускається декілька ідентичних (по параметрам) директив - під час обробки ідентичні гілки дерева обрізаються, а мертві корені (не вказані в MakeFoerwardTables) - видаляються.

Директиви аналізу номера по-цифрі

NmrDigit  A , 0, DrOverTown,  , A0
 NmrDigit   ,1,    DrOverTown, ,    A1
 NmrDigit   , 8 ,   DrOverTown,,     A8
 NmrDigit  , *, DrTownOnly, #, Uper, 5

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

Директива створення таблиці аналізу зворотнього номера

    MakeBackwardTables <All, An>

В загальному описі ця директива завершує таблицю аналізу зворотніх номерів та не має параметрів. В контексті програми ConvertNumeration ця директива використовується для визначення точок (коренів дерева), відносно яких проводити оптимізацію та згортку дерева аналізу зворотніх номерів. Допускається декілька таких директив у будь-якому місці вхідного файлу, списки параметрів цих директив можуть перетинатися. Оптимально, в якості параметрів, треба використовувати початкові точки вказані в параметрах директив визначення каналів у файлі каналів. У вихідний файл виводиться тільки одна директива MakeBackwardTables з відповідним списком початкових точок.

Директиви визначення правил аналізу зворотнього номера

    BackwardRule  Mist, "3803048380", +
    BackwardRule  Mist, "3803048381", +
    BackwardRule  Mist, "3803048382", +

Ці директиви визначають радіальний спосіб опису дерева аналізу зворотніх номерів - від кореня до кінцевої гілки. Параметри цих директив перевіряються на сумісність. У вхідному файлі допускається декілька ідентичних (по параметрам) директив - під час обробки ідентичні гілки дерева обрізаються, а мертві корені (не вказані в MakeBackwardTables) - видаляються.

Директиви аналізу зворотнього номера по-цифрі

  AonRange   YJz, 3548380,+,Users ;;		
  DigitAon      ,       1,+
  DigitAon      ,       2,+
  DigitAon       ANx, 3, ,ANx3
  DigitAon      ANx3, 5, ,ANx35
  DigitAon     ANx35, 4, ,ANx354

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

Директиви опису параметрів транків

  BegExtra SS7			;;
    Reload TPf,'380324150'	
  EndExtra SS7

Весь блок детального опису параметрів транків, що описаний директивами BegExtra/Reload/EndExtra без змін поступає у вихідний файл.

Директива скороченого опису параметрів транків

    TrunkExtraPar  SS7, "380-3241-50xxx"  ; Україна, Львівська область, Миколаїв

Ця директива скороченого опису блоку без змін поступає у вихідний файл. У вхідному файлі можливий повторний опис блоків параметрів транків з тим самим іменем.

Директиви опису дескрипторів та ключів

    DefineStationNmr 15,'Районний комутатор - повний аналіз номера '	;;
    DefineStationLin 15,' Канали ОКСу, CAS-1, CAS-2 та Pri'
    DefineModem        **Serg**,1
    DefineParol        ********
    DefineIPNet      <000h,008h,002h,094h,02Bh,0CCh>,<192,168,000,004>,0e800h
    TableCryptKey    <1333-9CC9-0100-5555-1779-9FE9-0120-8778>

Ця директиви опису без змін поступають у вихідний файл. У вхідних даних можливий повторне використання цих директив.

Мітки визначення початку текстових описів

  StationNmr: db 'Районний комутатор - повний аналіз номера ',0
  StationLin:
      db      ' Канали ОКСу, CAS-1, CAS-2 та Pri'
      db      ??date,' ',??time,0

Текстові описи після цих міток перетворюються у директиви DefineStationNmr/DefineStationLin та поступають у вихідний файл.

Формування вихідного файлу

Програма ConvertNumer аналізує директиви у вхідних даних (можливо декілька вхідних файлів) та, після оптимізації та переформатування, виводить їх у вихідний файл у вигляді директив загального опису комутатора. Тексти пояснень програма формує в кирилиці Win1251. Інформація у вихідному файлі групується у фрагменти опису.

Опис дескрипторів та ключів

Цей фрагмент файлу формується з відповідних директив, що зустрічалися у вхідних даних. Виводяться всі варіанти однотипних описів для подальшого візуального порівняння, вибору найкращого та редагування. Приклад фрагменту:

  DefineStationNmr  ' ЦАТС "ЕС-11"  ',' блок 1079кa - ',??date,' ',??time,0,0
  DefineStationNmr  ' ЦАТС "ЕС-11"  ',' блок 1079кb - ',??date,' ',??time,0,0
  DefineStationLin  'Двонаправленi швидкiснi лiнiї Lhf з частотним човником. ',0
  DefineStationLin  'Двонаправленi швидкiснi лiнiї Lhf з частотним човником. ',0
  DefineParol       ********
  DefineParol       ********
  TableCryptKey     <1537-5765-AB5C-9FDE-123A-34BC-1ADE-87BD>
  TableCryptKey     <1537-5765-AB5C-9FDE-123A-34BC-1ADE-87BD>

Правила аналізу номерів

На початку цих правил виводиться перелік початкових точок (коренів дерев) аналізу номера. Цей перелік формується з параметрів оброблених директив MakeForwardTables; після переліку виводяться всі сформовані правила аналізу номера:

;;################################################################
;;	Правила аналізу для коренів  : A
;;================================================================
   ForwardRule  A, "0x",     DrOverTown, #,     Utel, 10,0
   ForwardRule  A, "00xxx",  DrOverSeas, #,     Utel, -1,0
   ForwardRule  A, "01x",    DrTownOnly, #,     Utel,  3,0
   ForwardRule  A, "010x",   DrTownOnly, #,     Utel, -1,0
   ForwardRule  A, "010050", DrTownOnly, #,     Utel, 10,0
   ForwardRule  A, "014",    DrTownOnly, #,     Utel,  5,0
   ForwardRule  A, "017",    DrTownOnly, #,     Utel,  4,0
   ForwardRule  A, "019",    DrTownOnly, #,     Utel,  4,0
   ForwardRule  A, "02x",    DrOverTown, #,     Utel,  9,0
   ForwardRule  A, "021x",   DrOverTown, #,     Utel,  9,0
   ForwardRule  A, "0216",   DrTownOnly, #,     Utel,  4,0
   ForwardRule  A, "08",     DrTownOnly, #,     Utel, 10,0
   ForwardRule  A, "09",     DrOverTown, #,     Utel, 10,0
   ForwardRule  A, "101",    DrTownOnly, #,     Town,  3,0
   ForwardRule  A, "102",    DrTownOnly, #,     Town,  3,0
   ForwardRule  A, "103",    DrTownOnly, #,     Town,  3,0
   ForwardRule  A, "104",    DrTownOnly, #,     BAD9,  3,0

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

В кінці таблиці програма виводить:

  ForwardRule  A, "8216",   DrTownOnly, =,     Utel,  4,0
  ForwardRule  A, "87",     DrTownOnly, =,     Utel, 11,0
  ForwardRule  A, "88",     DrTownOnly, =,     Utel, 11,0
;;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
;;	Визначено правил  : 312
;;================================================================
    MakeForwardTables  < A >
;;################################################################

- число сформованих правил та директиву MakeForwardTables з переліком початкових точок (коренів дерев) аналізу номерів.

Статистика використання точок

Ця довідкова таблиця містить перелік всіх (навіть не використаних) точок аналізу номера та скільки разів використовувалась кожна точка під час створення дерев аналізу номерів:

;;################################################################
;;	Статистика використання точок аналізу номера
;;================================================================
;; Використано 0 раз:  R, R3, _, 
;; Використано 1 раз:  A, A0, A01, A010, A0100, A01005, A1, A10, A15, A150, 
;; Використано 1 раз:  A2, A3, A30, A31, A4, A41, A5, A50, A502, A5023, A504, 
;; Використано 1 раз:  A507, A509, A5093, A51, A512, A5123, A514, A519, A5192, 
;; Використано 1 раз:  A52, A521, A523, A5237, A525, A528, A5280, A53, A530, 
;; Використано 1 раз:  A531, A5311, A532, A535, A5353, A538, A5380, A59, A6, 
;; Використано 1 раз:  A60, A61, A62, A63, A64, A65, A651, A66, A67, A68, 
;; Використано 1 раз:  A7, D2, D21, E, F, F0, H, H0, I, I0, U, Z2, Z21, 
;;================================================================
;; Потенційно початкова: A, R, _, 
;;################################################################

Таблиця корисна для визначення точок, що використовуються неодноразово та для пошуку мертвих (не використаних) коренів та точок. Рядки потенційно початкові визначають точки, на які повинні бути посилання з таблиць каналів.

Статистика звертань до напрямків

Ця довідкова таблиця містить перелік кінцевих напрямків та правил, завдяки яким можна вийти на цей напрямок:

;;################################################################
;;	Статистика звертань до напрямків 
;;================================================================
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
;;  Utel      :  A, 00xxx,         DrOverSeas, #,     Utel, -1
;;  Utel      :  A,    010050...., DrTownOnly, #,     Utel, 10
;;  Utel      :  A, 010x,          DrTownOnly, #,     Utel, -1
;;  Utel      :  A,         014.., DrTownOnly, #,     Utel,  5
;;  Utel      :  A,          017., DrTownOnly, #,     Utel,  4
;;  Utel      :  A,          019., DrTownOnly, #,     Utel,  4
;;  Utel      :  A,           01x, DrTownOnly, #,     Utel,  3
;;  Utel      :  A,          0216, DrTownOnly, #,     Utel,  4
;;  Utel      :  A,     021x....., DrOverTown, #,     Utel,  9
;;  Utel      :  A,     02x......, DrOverTown, #,     Utel,  9
;;  Utel      :  A,    08........, DrTownOnly, #,     Utel, 10
;;  Utel      :  A,    09........, DrOverTown, #,     Utel, 10
;;  Utel      :  A,    0x........, DrOverTown, #,     Utel, 10
;;  Utel      :  A, 1508,          DrTownOnly, =,     Utel, -1
;;  Utel      :  A, 810xxx,        DrOverSeas, =,     Utel, -1
;;  Utel      :  A,          819., DrTownOnly, =,     Utel,  4
;;  Utel      :  A,          8216, DrTownOnly, =,     Utel,  4
;;  Utel      :  A,     821x....., DrOverTown, =,     Utel,  9
;;  Utel      :  A,     82x......, DrOverTown, =,     Utel,  9
;;  Utel      :  A,   87........., DrTownOnly, =,     Utel, 11
;;  Utel      :  A,   88........., DrTownOnly, =,     Utel, 11
;;  Utel      :  A,   8x........., DrOverTown, =,     Utel, 11
  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .

В правилах вказується початкова точка аналізу номера (корень дерева) та номер (схематично з довжиною) виходу у відповідний напрямок. Рядки в цій таблиці відсортовані по напрямкам, точкам аналізу та номерам.

Правила аналізу АВН

На початку правил для АВН виводиться перелік початкових точок (коренів дерев) аналізу номера. Цей перелік формується з параметрів оброблених директив MakeBackwardTables; після переліку виводяться всі сформовані правила аналізу номера АВН:

;;################################################################
;;	Правила аналізу АВН для точок  : ANx,All
;;================================================================
   BackwardRule  ANx, "3548380", +, Users    
   BackwardRule  ANx, "3548381", +
   BackwardRule  ANx, "3548382", +
   BackwardRule  ANx, "3548383", +
   BackwardRule  ANx, "3548384", +
;;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
   BackwardRule  All, "x",       +
;;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
;;	Визначено правил  : 6
;;================================================================
      MakeBackwardTables ;;++ < ANx,All >
;;################################################################

В кінці таблиці програма виводить число сформованих правил та директиву MakeBackwardTables

Статистика використання точок аналізу АВН

;;################################################################
;;	Статистика використання точок аналізу АВН
;;================================================================
;; Потенційно початкова: ALL, Byr, Cher, Denh, Dibr, Dorod, Dzvin, Gorosh, KV, 
;; Потенційно початкова: Kash, Kluk, Nend, Pogr, Pos, Ptg, SI2000, Skib, Sof, 
;; Потенційно початкова: Stadn, Step, Tajnica, Tel, Visk, 
;;################################################################

Рядки потенційно початкові визначають точки, на які повинні бути посилання з таблиць каналів.

Блоки параметрів транків

Спочатку виводиться перелік назв блоків, що зустрілися у вхідних даних:

;;################################################################
;;	Параметри транків для блоків  : Abn,CAS,SS7  
;;================================================================
  BegExtra     Abn;; 	для абонент?в - Україна Львiвська область
    Reload   TPf,'380324153'	
    Reload   NPf,'0'	
   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
    Reload   NNL,9	;;	National Number Length
  EndExtra     SS7
;;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
;;    Визначено блоків  3
;;################################################################

В цю таблицю поступають всі варіанти визначення блоків у вхідних даних; можливе повторне визначення блоків. В кінці таблиці виводиться кількість визначених блоків.

Використання вихідного файлу

На вхід програми ConvertNumeration може одночасно поступати декілька файлів опису номерів (-Nr) від різних секцій - найкраще від верхніх. Програма призначена для отримання файлу з оптимальною, мінімізованою та упорядкованою таблицею правил аналізу номерів для всього комутатора. У вихідному файлі з'являються всі варіанти описів блоків параметрів транків, дескрипторів та ключів - з них треба вибрати необхідний. Після необхідних редагувань вихідний файл може використовуватись для побудови секційних файлів опису номерів (-Nr) комутатора.

Основне призначення вихідного файлу - це використання його в якості складової частини загального опису комутатора.

=======================================================
extrasoft/buildproject/convnumr.txt · В останнє змінено: 2015/04/17 15:24 (зовнішнє редагування)