Програма ConvertChannels374 призначена для оптимізації та упорядкування таблиць каналів комутатора, побудованого на базі кросу 374. На вхід програми подається символьний файл з таблицями каналів верхніх секцій комутатора (-Ln файли); після їх аналізу та оптимізації програма створює фрагмент файлу загального опису комутатора з таблицею каналів. Основна функція програми - спустити канали з рівня 8 mbs (верхніх секцій) до рівня підключення потоків IKM-30 (нижніх секцій). Також, у вихідний файл виводяться довідкові та статистичні таблиці використання каналів та напрямків.
Основне призначення вихідного файлу - це використання його в якості складової частини загального опису комутатора.
Програма ConvertChannels374 - це консольна програма з запуском та передачею параметрів через командний рядок; порядок вказування параметрів в рядку суттєвий :
ConvertChannels374 InpFil OutFil ModeKey
В командному рядку допускається вказувати перенаправлення стандартного виводу з терминалу StdOut у файл - >FileName.
Імена файлів в командному рядку бажано брати в подвійні лапки “ - особливо якщо в іменах зустрічаються пробіли. Символи \ у назвах файлів треба подвоювати!
Приклад командного рядка:
ConvertChannels374 062-ChanTable.Inc "C:\\Switch\\TrosChanl.-Prj-" -Wn > Chan.Err
Приклад підключення будь-якого файлу:
include 062KA-ln-V1.inc ;;
Якщо в назві файлу присутні пробіли або інші сумнівні символи - назву файлу треба брати в подвійні лапки. Рівень вкладеності директив include - не більше 9. Принцип розподілу інформації по вкладеним файлам довільний; як правило, це секційні файли опису каналів (-Ln) комутатора.
Як правило, у головному вхідному файлі вказується, які секційні файли обробляються. Приклад файлу:
;;################################################################ ;; канали комутатора Trostjanec - 062 ;;################################################################ include 062KA-ln-V1.inc ;; include 062KB-ln-V1.inc ;; ;;################################################################ ;-------------------------------------------------- ;; C Pc76q AlloctOksPass C,1,H--,0A,8--,32,<--23456789ABCDEFGHIJKLMNOPQRSTUV> AlloctOksPass C,2,H--,0G,8--,32,<-123456789ABCDEFGHIJKLMNOPQRSTUV> AlloctHwa C,3, HP2N, 0C, 0I ; AlloctHwa C,4, HP2N, 0D, 0J ; AlloctHwa C,5, HP2N, 0E, 0K ; AlloctHwa C,6, HP2N, 0F, 0L ; ;--------------------------------------------------- ;; D Pc76q AlloctOksPass D,1,H--,0A,8--,32,<-123456789ABCDEFGHIJKLMNOPQRSTUV> AlloctOksPass D,2,H--,0G,8--,32,<--23456789ABCDEFGHIJKLMNOPQRSTUV> AlloctOksPass D,3,H--,0C,8--,32,<-123456789ABCDEFGHIJKLMNOPQRSTUV> AlloctOksPass D,4,H--,0I,8--,32,<-123456789ABCDEFGHIJKLMNOPQRSTUV> AlloctOksPass D,5,H--,0E,8--,32,<--23456789ABCDEFGHIJKLMNOPQRSTUV> AlloctOksPass D,6,H--,0K,8--,32,<--23456789ABCDEFGHIJKLMNOPQRSTUV> ;--------------------------------------------------------- ;; E Cikm6 AlloctOksPass E,1,C--,0A,8--,32,<-123456789ABCDEF-HIJKLMNOPQRSTUV> AlloctOksPass E,2,C--,0G,8--,32,<-123456789ABCDEF-HIJKLMNOPQRSTUV> AlloctHwa E,3, HP2N, 0C, 0I ; AlloctHwa E,4, HP2N, 0D, 0J ; AlloctHwa E,5, HP2N, 0E, 0K ; AlloctHwa E,6, HP2N, 0F, 0L ; ;---------------------------------------------------------
Директиви AlloctOksPass, AlloctHwa та AlloctOksHMix визначають схеми підняття потоків в комутаторі; можна використовувати директиви опису з секційних файлів плат (-Pl) готового дворівневого комутатора.
Опис повідомлень програми приведено в Програмі конвертації таблиць аналізу номерів.
На вхід програми ConvertChannel374 подається символьний файл з типовою таблицею каналів (-Ln файл), взятий з опису “верхньої секції” комутатора; допускається подача файлів від обох секцій одразу. Програма аналізує директиви опису каналів та, після опускання, об'єднання одно-іменних напрямків та переформатування виводить їх у вихідний файл.
Ці директиви визначають схему підняття потоків комутатора до рівня 8 mbs; фактично ці директиви визначають по-канальну відповідність між рівнем IKM-30 та рівнем 8 mbs. Обробка параметрів цих директив дозволяє вирішити обернену задачу - спустити всі канали до рівня підключення потоків IKM-30 - яке використовується в загальному описі комутатора. Можна використовувати директиви опису з секційних файлів плат (-Pl) готового дворівневого комутатора.
Схеми підняття потоків та, відповідно, їх опускання визначається директивами:
AlloctOksPass C,1,H--,0A,8--,32,<--23456789ABCDEFGHIJKLMNOPQRSTUV> AlloctOksHway C,1,H--,0A,8--,32,<--23456789ABCDEFGHIJKLMNOPQRSTUV> AlloctOksHMix F, 2, C--, 0B, 8--, 0H, 8-- AlloctHwa C,3, HP2N, 0C, 0I ;
Ці директиви не поступають у вихідний файл. Інформація, що міститься у цих директивах, запам'ятовується, та використовується для визначення відповідності між “верхнім” та “нижнім” каналом. Як-що для якогось каналу невизначена схема опускання, то у вихідному файлі він відмічається символом '~' - як не оброблений.
LineAloc x1Dn,A9F3, 00eh,77, 0, iDc+vFa, %rSht,It,gwt,All,SS0 ; ExtraNumer A9F3, 57, Nsp
В цих директивах позиція каналу, (у прикладі - A9F3), змінюється на відповідну позицію каналу рівня IKM-30 та перетворена директива запам'ятовується для формування напрямку. Якщо канал не має відповідності на рівні IKM-30, він відмічається символом '~' - ~A9F3.
TrunkLine ySs7,<A2A,A3A>,<VUTSRQPONMLKJIH-FEDCBA987654321->,00ah, ,<mI, dOv,A ,It,0 ,All,SS8>
В цих директивах субтракт рівня 8 mbs, (у прикладі - A2A,A3A), змінюється на відповідний потік IKM-30, також обробляється список каналів; перетворена директива запам'ятовується для формування напрямку. Якщо субтракт не має відповідності на рівні IKM-30, він відмічається символом '~' - ~A2A.
MultyLine xAbn,G3,<12345> ,1,05,<0,Ft,A,Ic,gAB>,ALL,Abn6051
Аналогічно, субтракт змінюється на потік, перетворена директива запам'ятовується для формування напрямку.
ChanAloc x2Tz,A8CF, 0,59, 0, 0, AAD6,
Позиції обох каналів (в прикладі A8CF та AAD6) змінюються на відповідні позиції каналів рівня IKM-30 та перетворена директива запам'ятовується. Після отримання оберненого транзитного каналу (у прикладі AA6D » A8CF) ці обидві директиви опису транзитних каналів замінюються на одну директиву TranzitPair. Якщо канал не має відповідності на рівні IKM-30, він відмічається символом '~' - ~A8CF.
HundredStart Bad4 . . . . . . . . . . . . . . HundredStart Bad4
Директиви визначають початок та кінець напрямку (тут Bad4); всі канали визначені між цими директивами попадають в один напрямок - Bad4. Напрямок може складатися з декількох частин - особливо якщо на вхід програми подається декілька вхідних файлів -Ln. Вкладене визначення напрямків не допускається; вкладенність унеможливлює об'єднання одно-іменних напрямків. Після обробки, всі канали одного напрямку виводяться разом. З каналів, що не попали в жоден з напрямків, формується напрямок NoName.
HundredStart Abnt
Директива визначає початок нової сотні (тут Abnt) та, відповідно, автоматичне завершення попередньої сотні. Під час формування вихідного файлу, програма зберігає послідовність цих директив, з тим щоби канали зберегли свої сотні.
Для спрощення опису таблиці каналів (файл -Ln) користувач може може перевизначати режими роботи каналів (ключі) за допомогою відповідних директив:
iNo = DsNoInform ; nPr = DsModNo810 ; wE=CtCllKtgrE
Визначення ключів запам'ятовуються та у відсортованому вигляді виводяться у вихідний файл. У випадку неідентичного перевизначення ключа формується повідомлення про помилку.
Програма ConvertChannel374 аналізує директиви у вхідних даних (можливо декілька вхідних файлів) та, після сортування та переформатування, виводить їх у вихідний файл у вигляді директив загального опису комутатора. Тексти пояснень програма формує в кирилиці Win1251. Інформація у вихідному файлі групується у фрагменти опису.
Цей фрагмент файлу формується з відповідних директив, що зустрічалися у вхідних даних. Виводиться тільки перше визначення; ідентичні повторні визначення ігноруються, не ідентичні - вважаються помилкою. Визначення упорядковані по іменам ключів. Приклад фрагменту:
;;################################################################ ;; Визначення режімів роботи каналів, визначених: 30 ;;================================================================ Ft = FnModTonal ;; вR- <м-лc - ІRа Ia = DrInternal+DrTownOnly+DrOverTown;;;;;;;;;;;+DrOverSeas Ic = DrInternal+DrTownOnly It = DrInternal+DrTownOnly+DrOverTown+DrOverSeas ;1-категорiя No8 = DsModNo810
Цей фрагмент формується з директив визначення тональних каналів та напрямків; всі канали, як-що це було можливо, приведені до рівня IKM-30. Канали згруповані по напрямкам, напрямки упорядковані за назвами. Приклад одного напрямку:
;;################################################################ ;; Напрямки та канали Використано напрямків 46 ;; Пустих напрямків 0 : ;;================================================================ DirectionStrt 5ESS3 TrunkLine xBrd,<L2>,<MOQSU>,00eh,00,<0,bMa,%rSht,It,gwt,All,SS0> TrunkLine xBrd,<M2>,<QS>,00eh,00,<0,bMa,%rSht,It,gwt,All,SS0> TrunkLine xBrd,<M2>,<U>,00eh,00,<wE,bMa,%rSht,It,gwt,All,SS0> ;;!! В транку /M2,/ тільки один канал /U/ - використовуйте /LineAlloc/ TrunkLine xBrd,<H2>,<13579BDFIKMOQSU>,00eh,00,<0,bMa,%rSht,It,gwt,All,SS0> TrunkLine xBrd,<I2>,<13579BD>,00eh,00,<0,bMa,%rSht,It,gwt,All,SS0> TrunkLine xBrd,<L3>,<MOQSU>,00eh,00,<0,bMa,%rSht,It,gwt,All,SS0> TrunkLine xBrd,<M3>,<QS>,00eh,00,<0,bMa,%rSht,It,gwt,All,SS0> TrunkLine xBrd,<M3>,<U>,00eh,00,<wE,bMa,%rSht,It,gwt,All,SS0> ;;!! В транку /M3,/ тільки один канал /U/ - використовуйте /LineAlloc/ TrunkLine xBrd,<H3>,<13579BDFIKMOQSU>,00eh,00,<0,bMa,%rSht,It,gwt,All,SS0> TrunkLine xBrd,<I3>,<13579BD>,00eh,00,<0,bMa,%rSht,It,gwt,All,SS0> DirectionEnds 5ESS3
В кінці цього фрагменту виводяться канали, що не попали в жоден з напрямків; ці канали групуються в напрямок ~~NoName~~:
DirectionStrt ~~None~~ HundredStart 0,Hnd00; Пуста сотня (не?снуючий номер) TrunkLine ySs7,<J3>,<765----->,00ah,,<mI,dOv,AT,It,0,All,SS8> TrunkLine ySs7,<G1>,<543--->,00ah,,<mI,dOv,AT,It,0,All,SS8> TrunkLine ySs7,<G1>,<V>,00ah,,<wE,0,AT,It,0,All,SS8> ;;!! В транку /G1,/ тільки один канал /V/ - використовуйте /LineAlloc/ LineAloc x1Dn,I49,00eh,34,0,iDc+vSn+vFa,%rSht,It,gwt,All,SS0 ; ExtraNumer I49,6,Nsp LineAloc x1Dn,I17,00eh,33,0,iDc,A,It,0,All,SS0 ; LineAloc x1Dn,I19,00eh,34,0,iDc,A,It,0,All,SS0 ;
Ця довідкова таблиця містить перелік всіх напрямків та число каналів у кожному напрямку. Додатково вказується тип та число використаних канальних драйверів у цьому напрямку:
;;################################################################ ;; Статистика напрямків :: напрямкок >> тип та число каналів ;;================================================================ ;; 5ESS3 / 60/ >> xBrd / 60/, ;; AMTS / 45/ >> ySs7 / 45/, ;; AMTS_R / 47/ >> ySs7 / 47/, ;; ATSKC / 76/ >> x1Dn / 36/, xBrd / 40/, ;; ATSKC_v / 31/ >> x1Dn / 31/, ;; BAD1 / 60/ >> ySs7 / 60/, ;; BAD2 / 60/ >> ySs7 / 60/,
Складається з декількох довідкових таблиць.
містить число каналів кожного типу та скільки каналів кожного типу використано в кожному напрямку:
;;################################################################ ;; Статистика каналів :: тип каналу >> напрямок та число каналів ;;================================================================ ;; x1Dn / 424/ >> ATSKC/36/, ATSKC_v/31/, Bilka/29/, Borom/29/, Buym/9/, Dern/5/, ;; Gaj/29/, Giga/9/, Greb/9/, Kamen/27/, Kvt2/58/, Ludj/15/, ;; Mach/5/, Mart/5/, Niza/5/, Pech/5/, Pola/14/, ~~None~~/104/, ;; x2Wh / 30/ >> OPM/30/, ;; xAbn / 6/ >> ~~None~~/6/,
містить кількість каналів, що мають таку категорію:
;;################################################################ ;; Статистика каналів :: Категорія АВН/ISUP >> число каналів ;;================================================================ ;; Категорія 0 >> каналів 5 ;; Категорія 00ah >> каналів 338 ;; Категорія 00eh >> каналів 408 ;; Категорія 0e0h >> каналів 744 ;;################################################################
містить кількість каналів, що використовують таку точку аналізу номера:
;;################################################################ ;; Статистика каналів :: Аналіз номера >> число каналів ;;================================================================ ;; Початкова точка %rSht >> каналів 540 ;; Початкова точка A >> каналів 711 ;; Початкова точка AK >> каналів 30 ;; Початкова точка AT >> каналів 214 ;;################################################################
містить кількість каналів, що використовують таку точку аналізу зворотнього номера:
;;################################################################ ;; Статистика каналів :: Аналіз зворотнього номера >> число каналів ;;================================================================ ;; Початкова точка All >> каналів 1437 ;; Початкова точка Bilka >> каналів 29 ;; Початкова точка Gaj >> каналів 29 ;;################################################################
містить кількість каналів, що використовують такі блоки:
;;################################################################ ;; Статистика каналів :: Блоки параметрів транків >> число каналів ;;================================================================ ;; Назва блоку S68 >> каналів 6 ;; Назва блоку SS0 >> каналів 884 ;; Назва блоку SS8 >> каналів 605 ;;################################################################
В кінці файлу програма виводить таблицю транзитних каналів.
;;################################################################ ;; Транзитні канали, визначених: 44 ;;================================================================
в цьому фрагменті приведено транзитні канали, що зсилаються сам на себе:
;; Точки сигналізації, сформовано: 54 AlarmPoint H6D,0 ;; A5F7 <<<<< AlarmPoint H6F,0 ;; A5F8 <<<<< AlarmPoint H6I,0 ;; A5F9 <<<<< AlarmPoint H6K,0 ;; A5FA <<<<<
в цьому фрагменті однією директивою описані обидва канали транзитного з'єднання:
;; Транзитні пари, сформовано: 22 TranzitPair H5I,0,M49,0 ;; A5E9 <> AAD5 TranzitPair I6F,0,M4D,0 ;; A6F8 <> AAD7 TranzitPair I6S,0,M4U,0 ;; A6FE <> AADF TranzitPair K3U,0,M4B,0 ;; A8CF <> AAD6 TranzitPair K6U,0,M4M,0 ;; A8FF <> AADB TranzitPair L5O,0,M41,0 ;; A9EC <> AAD1
В цьому фрагменті вказуються канали, що були не коректно описані, або не знайшли своєї пари:
;; Не побудовані пари, помилок: 0
На вхід програми ConvertChanels374 може одночасно поступати декілька файлів опису каналів (-Ln) від різних секцій - найкраще від верхніх. Програма використовує схему підняття потоків IKM-30 та створює файл з оптимальною таблицею каналів, приведеною до рівня потоків IKM-30. Всі канали одно-іменних напрямків об'єднанні, всі канали за межами напрямків відсортовані та зібрані в один напрямок NoName. Всі транзитні канали об'єднуються у відповідні пари та описуються однією директивою.
Основне призначення вихідного файлу - це використання його в якості складової частини загального опису комутатора.
======================================================================================