Вы находитесь на странице: 1из 56

TEMS™ DISCOVERY

Использование скриптов

TEMS Discovery , январь 2012, © Ascom 1


СОДЕРЖАНИЕ
Что такое скрипты и как они работают в TD
Интерфейс редактора скриптов (Script Builder)
Типы переменных и их инициализация
Работа с массивами (Array)
Операторы и инструкции управления
Обзор функций
Триггеры.Захват параметров
Использование флагов (FLAG)
Параметры задаваемые пользователем (User Defined Parameters)
Типы скриптов
Изменение результатов в прошлом

TEMS Discovery 3, январь 2012, © Ascom 2


Что такое скрипты и как они работают в TD

TEMS Discovery 3, январь 2012, © Ascom 3


[]

Что такое скрипт

Скрипт – это микропрограмма, выполняющая определённые действия «сценарии»,


последовательности операций, которые выполняются в TEMS Discovery над данными
(метрики и события, информация о сетевой конфигурации)

Синтаксис: C#

Результат работы скрипта:


• Новая метрика, событие (в списке .Advanced Metric & Event (User-defined))
• Отфильтрованные данные (использование скрипта как фильтр, поле Condition)
• Изменение атрибутов DataSet

TEMS Discovery 3.0, May 2011 © Ascom 4


[]

Что такое скрипт. Примеры.

Скрипт – метрика,
содержит извлеченные
значения и
посчитанные события с
индивидуальными
пиктограммами

Скрипт – фильтр,
отображает только
данные определяемые
условием

TEMS Discovery 3.0, May 2011 © Ascom 5


[]

Как работают скрипты в TEMS Discovery

• Скрипт применяется к каждому из выбранных файлов и


устройств независимо.
• Код скрипта «пробегает» через файлы от начала до конца
• Скрипт может исполняться на этапе импорта файлов
и/или в процессе работы с проектом
• Скрипт начинает исполнятся при перетаскивании метрики
из скрипта в рабочую область или из меню “Generate
Result”
• Результаты работы скрипта сохраняются и удаляются при
изменении кода скрипта
• Можно удалять результат работы или генерировать
новые данные скриптом вручную

TEMS Discovery 3.0, May 2011 © Ascom 6


Интерфейс редактора скриптов (Script Builder)

TEMS Discovery 3, январь 2012, © Ascom 7


[]

Script Builder
Тип скрипта Название скрипта

Область переменных.
Меняется в
зависимости от типа
скрипта

Редактор

Объекты данных
Окно описания метрики
TEMS Discovery 3.0, May 2011 © Ascom
[]

Объекты данных

Список всех Информационные Пользовательские Встроенные Категории


доступных метрик элементы WCDMA пороги, задаваемые в функции, классы и
и скриптов, RRC User Defined флаги
включая Layer 3 Parameters

TEMS Discovery 3.0, May 2011 © Ascom


[]

Редактор. Collapse/Expand

TEMS Discovery 3.0, May 2011 © Ascom


[]

Редактор. Поиск и подсветка строк

TEMS Discovery 3.0, May 2011 © Ascom


Типы переменных и их инициализация

TEMS Discovery 3, январь 2012, © Ascom 12


[]

Типы переменных Alias, Static и Metric.


Alias – короткое название сохраненной в лог файле метрики
 Может быть статической или динамической
 arraylist, float, floatlist, gps, string, stringlist, timestamp
 Пример : aMIB_MNC = [!SIB].[WCDMA].[WCDMA RRC Signaling].[SIB-Data].[MasterInfoBlock].[plmn-Type].[gsm-MAP].[plmn-Identity].[mnc]

Static Variable – для хранения промежуточных значений в скрипте


 Удерживает последнее присвоенное значение
 arraylist, float, floatlist, gps, string, hashtable, timestamp

Metric – результат работы скрипта - метрика


 Может быть статической или динамической
 float, gps, string, timestamp

TEMS Discovery 3.0, May 2011 © Ascom


[]

Типы значений переменных Alias, Static и Metric.

Arraylist – класс, массив объектов IList с индивидуальным доступом с помощью индекса


http://msdn2.microsoft.com/en-us/library/system.collections.arraylist.aspx
Float – простой тип, используемый для хранения 32-разрядных значений с плавающей запятой.
Floatlist – класс представляющий массив переменных Float
GPS – тип формата GPS (не используется)
Hashtable – коллекция пар "ключ-значение", которые упорядочены по хэш-коду ключа.
http://msdn2.microsoft.com/en-us/library/system.collections.hashtable.aspx
String – тип представляет последовательность из нуля или более символов в кодировке Юникод.
Stringlist – класс представляющий список строк типа String
Timestamp – тип представления времени в миллисекундах

TEMS Discovery 3.0, May 2011 © Ascom


[]

Типы значений внутренних переменных.


Тип Диапазон Длина Описание
float -3.4 × 1038 ~ +3.4 × 1038 32 разряда простой тип, используемый для хранения 32-
разрядных значений с плавающей запятой
bool true, false 1 разряд логический тип переменных истина, ложь

byte 0 ~ 250 8 разрядов целочисленный тип данных без знака

short -32768 ~ 32768 16 разрядов целочисленный тип данных со знаком

Int -2147483648 ~ 2147483647 32 разряда целочисленный тип данных со знаком

long -9223372036854775808 ~ 64 разряда целочисленный тип данных со знаком


9223372036854775807
double -5,0 x 10−324 ~ 1,7 x 10308 64 разряда простой тип, используемый для хранения 64-
разрядных значений с плавающей запятой.

TEMS Discovery 3.0, May 2011 © Ascom


[]

Объявление переменных и их инициализация.


Для объявления переменной необходимо задать её тип и название:
int i;
string Message ;
float x;
Hashtable Var_array;
Инициализация переменной происходит при присвоении значения
i= 5; Message =“RSCP low”; x = 0.5;

Инициализация класса призводится созданием нового экземпляра:


Hashtable My_table = new Hashtable();

TEMS Discovery 3.0, May 2011 © Ascom


Работа с массивами (Array)

TEMS Discovery 3, январь 2012, © Ascom 17


[]

Работа с массивами (Array)

• Массив может задаваться “Declaration Section”


• Инициализируется как класс:
MyArray = new ArrayList();

• Добавление элементов массива через метод Add:


MyArray.Add(1);
MyArray.Add(2);

• Доступ к элементам массива через индекс [index]:


X = MyArray [0];
• Количество элементов массива через свойство Count:
MyArray.Count;
• Всё содержимое массива в строке через запятую:
• GetDisplayString(MyArray);

TEMS Discovery 3.0, May 2011 © Ascom 18


Операторы и инструкции управления

TEMS Discovery 3, январь 2012, © Ascom 19


[]

Операторы.

Математические Логические Сравнения и присвоения


+ Сложение, конкатенация && логическое И (AND) < меньше
- Вычитание || логическое ИЛИ (OR) <= меньше или равно
* Умножение ! логическое НЕ (NOT) == равно
/ Деление != не равно
% Модуль >= больше или равно
++ Инкремент > меньше
-- Декремент
+= добавление текста
= присвоить

TEMS Discovery 3.0, May 2011 © Ascom


[]

Комментарии

// Однострочный комментарий

/*
Закомментированный регион
*/

#region Сворачивающийся регион


<script code here>
#endregion

TEMS Discovery 3.0, May 2011 © Ascom


[]

Инструкции управления.

Условие IF - ELSE Цикл Переключаетель Switch


If ( x == 1 ) { for ( int = 0; i < 50; i++ ) { switch( var) {
// do something // do something case var_value1:
} // do something;
}
else {
break;
// do something
Int = 0; case var_value2:
}
while (i < 50) { // do something;
// do something break;
i++; defult:
} // do something;
break;
foreach ( int i in collection) { }
// do something
}
TEMS Discovery 3.0, May 2011 © Ascom
Обзор функций

TEMS Discovery 3, январь 2012, © Ascom 23


[]

Встроенные функции

Математические Вспомогательные Специальные


Math.Abs ArrayList ConvertToInt(ArrayList) string GetDeviceAttribute(string)
Math.Acos ArrayList ElementMissing(ArrayList, ArrayList) string GetOperatorByMncMcc(object, object)
Math.Asin bool ArrayListContains(ArrayList, object) string GetSectorParameter(string, string, string)
Math.Atan bool IsIdentical(ArrayList, ArrayList) void ClearAllEvents(object)
Math.Atan2 bool IsValueValid(object) void GetLatLon(object, double ByRef, double ByRef)
Math.Cos int ArrayListIndexOf(ArrayList, object) …
Math.Cosh int CountOfArrayList(ArrayList)
… …

TEMS Discovery 3.0, May 2011 © Ascom


[]

Функции пользователя

Функция возвращающая параметр Функция не возвращающая параметр


Int Foo () { Void Foo () {
// do something // do something
return var }
}

TEMS Discovery 3.0, May 2011 © Ascom


Триггеры.Захват параметров

TEMS Discovery 3, январь 2012, © Ascom 26


[]

Триггеры. События. 1/3


Для фиксирования момента появления и событий (Event) и сообщений Layer 3 (RRC,NAS)
используется конструкция IF - ELSE
0 – события нет
1 – событие захвачено

If ( Event == 1 ) {
// do something
}

TEMS Discovery 3.0, May 2011 © Ascom


[]

Триггеры. Метрики. 2/3


Для остальных метрик используется функция IsValueValid(object)

If (IsValueValid(metric)) {
// do something
}

TEMS Discovery 3.0, May 2011 © Ascom


[]

Триггеры в сообщениях RRC


Для того чтобы получить элемент сообщения независимо от ветвления в узле необходимо
использовать символ [*]

WCDMA RRC / Sys Info Type 11 / Neighbor Scrambling Code


[!SIB].[WCDMA].[WCDMA RRC Signaling].[SIB Data].[SysInfoType11].[measurementControlSysInfo].[*].[intraFreqMeasurementSysInfo].
[intraFreqCellInfoSI-List].[newIntraFreqCellList].[*].[cellInfo].[modeSpecificInfo].[fdd].[primaryCPICH-Info].[primaryScramblingCode]

TEMS Discovery 3.0, May 2011 © Ascom 29


Использование флагов (FLAG)

TEMS Discovery 3, январь 2012, © Ascom 30


[]

Флаги вывода результата 1/3


• CONDITION_FLAG - предопределённая переменная которая используется для хранения результата
работы фильтра Condition Expression.
Используется только в скриптах типа Condition.

• TARGET_VALUE - предопределённая переменная которая используется для хранения результата


глобального параметра Global Parameter или Custom Metric.
Используется только в скриптах типа Global Parameter и Custom Metric.

• EVENT – квалификатор, который используется для объявление события, заданного в Declaration


Section. Инициализация события задаётся оператором SetEvent или флагом EVENT_TYPE.

• EVENT_TYPE – флаг пополнения коллекции , сохраняет один


или несколько событий в текущей итерации

TEMS Discovery 3.0, May 2011 © Ascom 31


[]

Флаги вывода результата 2/3


• TIMESTAMP - предопределённая переменная которая содержит информацию о времени (UNIX
Timestamp) текущей итерации. Изменение этого параметра приведёт к изменению времени
результата текущей итерации

• EVENT_TIMESTAMP - Hash таблица текущих событий и времени (в мсек) когда они происходят .
Используется для изменения времени (позиции в логфайле)
определённого пользователем события.

• MESSAGE - предопределённая переменная которая используется для вывода дополнительной


информации в hint.

• MESSAGE_INDEX – предопределённая переменная которая содержит индекс текущей итерации.


Изменение этого параметра приведёт к переходу текущей
итерации к получившейся позиции.

TEMS Discovery 3.0, May 2011 © Ascom 32


[]

Информационные флаги 3/3


• EOF - предопределённая переменная типа boolean которая принимает значение true когда достигнут
конец файла

• IS_TEMS_DATA, IS_JDSU_DATA, IS_NEMO_DATA, IS_QVOICE_DATA, IS_QVOICE_MASTER,


IS_QVOICE_SLAVE - предопределённая переменная типа boolean которая принимает значение true
если данные принадлежат определённому вендору (TEMS, JDSU, NEMO, QVOICE)

• LOG_FILE_NAME – предопределённая переменная которая содержит имя лог файла текущей


итерации.

• TIMESTAMP_START_OF_FILE – предопределённая переменная которая содержит информацию о


времени начала лог файла текущей итерации.

TEMS Discovery 3.0, May 2011 © Ascom 33


Параметры задаваемые пользователем
(User Defined Parameters)

TEMS Discovery 3, январь 2012, © Ascom 34


[]

Параметры задаваемые пользователем (User Defined Parameters)


Изменяемые переменные скрипта
выносятся в отдельную таблицу

TEMS Discovery 3.0, May 2011 © Ascom


Типы скриптов

TEMS Discovery 3, январь 2012, © Ascom 36


[]

Типы скриптов

Типы скриптов Примеры использования


• Advance Metric & Events: Позволяет • Advance Metric & Events: Мерить время
добавлять новые метрики, события и между двумя сообщениями layer 3 и создавать
информацию по этим событиям. новое событие если это время превышает
• Condition Expression: Позволяет добавлять определённое значение.
новые критерии которые позволяют видеть • Condition Expression: Отображать или
определённый набор данных (фильтры). выводить в отчёт только покрытие с уровнем
• Customer Metric: Позволяет пользователю сигнала ниже определённого значения.
создавать одиночные метрики. • Customer Metric: Выделять определённые
• Global Parameter: Позволяет создавать параметры сети (вещающие в системной
глобальный параметр уникальный для информации) в новые метрики.
устройства и который будет действителен в • Global Parameter: Измерения
рамках всего файла. ассоциированые (помеченные) с
определённой комбинацией MCC и MNC.

TEMS Discovery 3.0, May 2011 © Ascom


[]

Типы скриптов: Advanced Metric & Event 1/9

Позволяют добавлять новые метрики, события и информацию по этим событиям. Результаты работы
скриптов будут доступны в дереве метрик для анализа, отчетности и скриптов.

Алиасы (Alias)
• Задаются источники метрик и событий на которые можно ссылаться из скрипта

TEMS Discovery 3.0, May 2011 © Ascom 38


[]

Типы скриптов: Advanced Metric & Event 2/9 Is Static

Пример:
Алиас: RxLev, RxQual
Скрипт: if ((RxQualFull<=X) && (RxLevFull>=Y)) {Target=Z}

Is Static не установлено:
RxLev RxLev
RxLev RxQual RxQual RxLev
Taget Target [t]

Is Static установлено для RxQual


RxLev RxLev
RxLev RxQual RxQual RxLev
Taget Target Target [t]

TEMS Discovery 3.0, May 2011 © Ascom 39


[]

Типы скриптов: Advanced Metric & Event 3/9

Статические переменные (Static variables)


• Переменные используемые внутри скрипта

TEMS Discovery 3.0, May 2011 © Ascom 40


[]

Типы скриптов: Advanced Metric & Event 4/9

Метрики (Metrics)
• Название метрики для вывода результатов
• Категории для группировки результатов
• Нумерование используется для возвращения типа float и используется при построении PlotBand

TEMS Discovery 3.0, May 2011 © Ascom 41


[]

Типы скриптов: Advanced Metric & Event 5/9

События (Events)
• Enum: Имя, используемое в скрипте для обозначения события (Event)
• Category: Категории для группировки событий (как для метрик)
• Event description: Описание события, отображаемое в подсказке (hint)
• Priority: Не используется (группировка по приоритету использовалась в старых версиях TD)
• Associated Analysis Set: Связанный с данным событием набор Analysis Set
• Color: Цвет используемый в Time-Series для отображения события вертикальной линией
• Icon: Задаётся иконка для отображения события на карте или Time-Series
• Attribute 1…10: Данные метрики отображаются в Message View и в качестве дополнительной
информации на карте по клику на событие

TEMS Discovery 3.0, May 2011 © Ascom 42


[]

Типы скриптов: Advanced Metric & Event 6/9

Отображение переменных (Report Variables)


• Отображение метрик, переменных или алиасов до и после совершения события

TEMS Discovery 3.0, May 2011 © Ascom 43


[]

Типы скриптов: Advanced Metric & Event 7/9

Отношение к технологии (Technologies Related)


• Скрипт виден , если присутствует данная технология

TEMS Discovery 3.0, May 2011 © Ascom 44


[]

Типы скриптов: Advanced Metric & Event 8/9

TEMS Discovery 3.0, May 2011 © Ascom 45


[]

Типы скриптов: Advanced Metric & Event 9/9


• Как генерировать метрику
• Задать алиас
• Задать метрику
• Установить связь в скрипте: Metric = Alias или Variable;

• Как генерировать событие


• Задать алиас
• Задать событие
• Занести событие в коллекцию событий: EVENT_TYPE = EVENT.Enum;

Упражнение 1:
• Создать событие когда MS в режиме dedicated (опираться на Transport Channel type в группе
WCDMA Radio Bearer Info) и отобразить Ec/Io в этот момент вместе с событием.
• Протестировать скрипт на проекте DemoProject_WCDMA
• Время 15 минут

TEMS Discovery 3.0, May 2011 © Ascom 46


[]

Типы скриптов: Advanced Metric & Event 9/9


• Работа с атрибутами
• GetDeviceAttribute(Attribute);
• SetDeviceAttribute(Attribute, Object);
• Заполнение атрибута происходит в конце файла.

Упражнение 2:
• Заполнить атрибут Operator на основании метрик MCC и MNC. Использовать функцию
GetOperatorByMncMcc(MNC, MCC);
• Протестировать скрипт на проекте DemoProject_WCDMA
• Время 15 минут

TEMS Discovery 3.0, May 2011 © Ascom 47


[]

Типы скриптов: Condition Expression


Позволяют создавать фильтры, оставляющие в DataSet только те данные которые удовлетворяют
условиям фильтра

Состав закладок в Declaration Section:


• Alias
• Static Variables
• Technologies Related

TEMS Discovery 3.0, May 2011 © Ascom 48


[]

Типы скриптов: Condition Expression

Упражнение 3:
• Создать фильтр для отображения участков плохого покрытия обслуживающего сектора
(RSCP < -95 и Ec/N0 < -12)
• Протестировать скрипт на проекте DemoProject_WCDMA
• Вынести пороги условий в User Defined Parameters
• Время 15 минут

Упражнение 4:
• Создать фильтр для отображения метрик в период между „Call Attempt“ и „Call Established“
(между нажатием на Dial и установлением соединения Connect). Скрипт универсален для GSM и
WCDMA
• Протестировать скрипт на проекте DemoProject_WCDMA
• Время 15 минут

TEMS Discovery 3.0, May 2011 © Ascom 49


[]

Типы скриптов: Custom Metric

Позволяют создавать новые простые метрики

Упражнение 5:
• Создать метрику таймера T3212
• Протестировать скрипт на проекте DemoProject_GSM_QVoice
• Время 10 минут

TEMS Discovery 3.0, May 2011 © Ascom 50


[]

Типы скриптов : Global Parameter

 “Global Parameter” уникальный в пределах лог файла параметр для


измерительного устройства:
 Mobile ID
 Country Code (при условии отсутствия роуминга вблизи границ измерений )
 Системные параметры (палагая что они не меняются на всех секторах которые учавствуют в драйв тесте)

TEMS Discovery 3.0, May 2011 © Ascom 51


Изменение результатов в прошлом

TEMS Discovery 3, январь 2012, © Ascom 52


[]

Изменение результатов в прошлом

• События
• Удалить существующий Event:
• ClearEvent(<Message Index>, EVENT.<Event Enum>);
• Заменить существующий Event :
• ReplaceEvent(<Message Index>, EVENT.<Event Enum>, <New Event Enum>);

• Метрики
• Заменить существующее значение метрики
• ReplaceMetric(<Message Index>, <Metric Name>, <New Value>);
• Удалить существующую метрику
• ReplaceMetric(<Message Index>, <Metric Name>, null);

TEMS Discovery 3.0, May 2011 © Ascom 53


[]

Изменение результатов в прошлом

Упражнение 1
• Расчитать продолжительность [мс] между Call Attempt из TEMS Collector Events и RRC Connection
Request
• Убедитесь что скрипт работает только с данными TEMS
• Удалить результат в случае если вызов не завершен
• Протестировать скрипт на проекте DemoProject_WCDMA
• Время: 30 минут

TEMS Discovery 3.0, May 2011 © Ascom 54


[]

Создание скрипта для генерации Call Summaries

Упражнение 2
• Написать скрипт возвращающий две метрики для каждого Dial (Call Initiation)
• Строку с датой и временем: 5/13/2008 15:25:44.734
• Строку с датой, временем и именем файла:
5/13/2008 3:28:40 PM - NENY_C01b_S03_K03_D01_05132008_002_MS2
• Протестировать скрипт на проекте DemoProject_WCDMA
• Время: 20 минут

TEMS Discovery 3.0, May 2011 © Ascom 55


THANK YOU!

TEMS Discovery 3, январь 2012, © Ascom 57

Вам также может понравиться