summaryrefslogtreecommitdiffstats
path: root/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent
diff options
context:
space:
mode:
authordemx8as6 <martin.skorupski@highstreet-technologies.com>2018-07-10 18:07:44 +0200
committerTimoney, Dan (dt5972) <dt5972@att.com>2018-07-11 16:30:28 -0400
commit27fb2d06608fbb070ae2c15a5580a4f5b2423d15 (patch)
treeccd717991b4e556b67f1fd2cacb345b4d174b41f /sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent
parent60315525ab5e7c12a9f47c409092e8dba6ad656d (diff)
Add seed code for sdnr app based on ONF Centennial
At this point in time all the Carbon code from ONF Centennial is added to ONAP. Later it needs to be refactored and modified for ODL Oxygen. Change-Id: Iff85dd940c05c3827f1c4e6f9542ecd060c58a46 Issue-ID: SDNC-374 Signed-off-by: demx8as6 <martin.skorupski@highstreet-technologies.com>
Diffstat (limited to 'sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent')
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-bundle/pom.xml89
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml19
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/pom.xml14
-rwxr-xr-xsdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/images/mwtnPerformance.pngbin0 -> 2974 bytes
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent-custom.css13
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.controller.js741
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.module.js55
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.services.js30
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.tpl.html119
-rw-r--r--sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/pom.xml24
10 files changed, 1104 insertions, 0 deletions
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-bundle/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-bundle/pom.xml
new file mode 100644
index 00000000..0b03bf59
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-bundle/pom.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>mwtnPerformanceCurrent</artifactId>
+ <groupId>com.highstreet.technologies.odl.dlux</groupId>
+ <version>0.5.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>mwtnPerformanceCurrent-bundle</artifactId>
+ <name>${prefix} ${project.artifactId}</name>
+ <packaging>bundle</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>${osgi.core.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <version>${osgi.core.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <version>${apache.felix.compendium}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.dlux</groupId>
+ <artifactId>loader</artifactId>
+ <version>${dlux.loader.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.highstreet.technologies.odl.dlux</groupId>
+ <artifactId>mwtnPerformanceCurrent-module</artifactId>
+ <version>0.5.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <resources>
+ <resource>
+ <directory>target/generated-resources</directory>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>2.6</version>
+ <executions>
+ <!--loader Resources -->
+ <execution>
+ <id>unpack-loader-resources</id>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <phase>generate-resources</phase>
+ <configuration>
+ <outputDirectory>${project.build.directory}/generated-resources</outputDirectory>
+ <groupId>com.highstreet.technologies.odl.dlux</groupId>
+ <includeArtifactIds>mwtnPerformanceCurrent-module</includeArtifactIds>
+ <excludes>META-INF\/**</excludes>
+ <excludeTransitive>true</excludeTransitive>
+ <ignorePermissions>false</ignorePermissions>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Import-Package>org.osgi.service.http,
+ org.osgi.framework;version="1.0.0",
+ org.opendaylight.dlux.loader
+ </Import-Package>
+ <Export-Package></Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml
new file mode 100644
index 00000000..4f73e930
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-bundle/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -0,0 +1,19 @@
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+ <reference id="httpService" availability="mandatory" activation="eager" interface="org.osgi.service.http.HttpService"/>
+ <reference id="loader" availability="mandatory" activation="eager" interface="org.opendaylight.dlux.loader.DluxModuleLoader"/>
+
+ <bean id="bundle" init-method="initialize" destroy-method="clean" class="org.opendaylight.dlux.loader.DluxModule">
+ <property name="httpService" ref="httpService"/>
+ <property name="loader" ref="loader"/>
+ <property name="moduleName" value="mwtnPerformanceCurrent"/>
+ <property name="url" value="/src/app/mwtnPerformanceCurrent"/>
+ <property name="directory" value="/mwtnPerformanceCurrent"/>
+ <property name="requireJs" value="app/mwtnPerformanceCurrent/mwtnPerformanceCurrent.module"/>
+ <property name="angularJs" value="app.mwtnPerformanceCurrent"/>
+ <property name="cssDependencies">
+ <list>
+ <value>src/app/mwtnPerformanceCurrent/mwtnPerformanceCurrent-custom.css</value>
+ </list>
+ </property>
+ </bean>
+</blueprint>
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/pom.xml
new file mode 100644
index 00000000..2573f41a
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>mwtnPerformanceCurrent</artifactId>
+ <groupId>com.highstreet.technologies.odl.dlux</groupId>
+ <version>0.5.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>mwtnPerformanceCurrent-module</artifactId>
+ <name>${prefix} ${project.artifactId}</name>
+ <packaging>jar</packaging>
+</project> \ No newline at end of file
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/images/mwtnPerformance.png b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/images/mwtnPerformance.png
new file mode 100755
index 00000000..5517f5b1
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/images/mwtnPerformance.png
Binary files differ
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent-custom.css b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent-custom.css
new file mode 100644
index 00000000..5e3cf838
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent-custom.css
@@ -0,0 +1,13 @@
+/**
+ * Add your application related css here
+ */
+
+.mwtnCurrentGrid{
+ height: 600px;
+ background-color: white;
+ color:black;
+}
+
+.mwtnCurrentGrid span{
+ color: #393939;
+} \ No newline at end of file
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.controller.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.controller.js
new file mode 100644
index 00000000..bffc77be
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.controller.js
@@ -0,0 +1,741 @@
+/*
+ * @copyright 2017 highstreet technologies GmbH and others. All rights reserved.
+ *
+ * @license
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+define(['app/mwtnPerformanceCurrent/mwtnPerformanceCurrent.module',
+ 'app/mwtnPerformanceCurrent/mwtnPerformanceCurrent.services'],
+ function (mwtnPerformanceCurrentApp) {
+
+ mwtnPerformanceCurrentApp.register.controller('mwtnPerformanceCurrentCtrl', ['$scope', '$rootScope', '$window', '$translate', '$mwtnLog', '$mwtnPerformanceCurrent', 'uiGridConstants', 'OnfNetworkElement',
+ function ($scope, $rootScope, $window, $translate, $mwtnLog, $mwtnPerformanceCurrent, uiGridConstants, OnfNetworkElement) {
+
+ var COMPONENT = 'mwtnPerformanceCurrent';
+ $mwtnLog.info({ component: COMPONENT, message: 'mwtnPerformanceCurrent started!' });
+
+ $rootScope.section_logo = 'src/app/mwtnPerformanceCurrent/images/mwtnPerformance.png'; // Add your topbar logo location here such as 'assets/images/logo_topology.gif'
+
+ var radioSignalMap = new Map(); //holds uuid/singalid
+
+ var initPac = {
+ layerProtocol: 'unknown'
+ };
+
+ $scope.layerProtocol = 'MWPS';
+ $scope.layerProtocols = ['MWPS', 'ETC'];
+
+ var updateNe = function (data) {
+ if (!data) return;
+
+ // update onfNetworkElement
+ switch (data.revision) {
+ case '2016-03-23':
+ $mwtnLog.info({ component: COMPONENT, message: 'Revision ' + data.revision + 'not supported!' });
+ break;
+ default: //4. PoC
+ $scope.onfNetworkElement = JSON.parse(JSON.stringify(data['network-element']));
+ $scope.onfLtps = data['network-element'].ltp;
+ $scope.onfNetworkElement.ltpRefList = undefined;
+ }
+
+ // update onfLTPs
+ var order = $mwtnPerformanceCurrent.layerProtocolNameOrder;
+ $scope.onfLtps.sort(function (a, b) {
+ if (order[a.lp[0]['layer-protocol-name']] < order[b.lp[0]['layer-protocol-name']]) return -1;
+ if (order[a.lp[0]['layer-protocol-name']] > order[b.lp[0]['layer-protocol-name']]) return 1;
+ if (a.lp[0].uuid < b.lp[0].uuid) return -1;
+ if (a.lp[0].uuid > b.lp[0].uuid) return 1;
+ return 0;
+ });
+
+ // calculate conditional packages
+ $scope.airinterfaces = [];
+ $scope.ethernets = [];
+ $scope.tdms = [];
+ $scope.onfLtps.map(function (ltp) {
+ var lpId = ltp.lp[0].uuid;
+
+
+
+ switch (ltp.lp[0]['layer-protocol-name']) {
+ case "MWPS":
+ var init = JSON.parse(JSON.stringify(initPac));
+ init.layerProtocol = lpId;
+ $scope.airinterfaces.push(init);
+
+ break;
+ case "ETH-CTP":
+ case "ETC":
+ var init = JSON.parse(JSON.stringify(initPac));
+ init.layerProtocol = lpId;
+ $scope.ethernets.push(init);
+ break;
+
+ default:
+ $mwtnLog.info({ component: COMPONENT, message: 'The layerProtocol ' + ltp.lp[0]['layer-protocol-name'] + ' is not supported (yet)!' });
+ }
+ });
+
+ data.revision = undefined;
+ };
+
+ var updateAirInterface = function (data, key) {
+ // console.log(JSON.stringify(data), lpId);
+
+ if (Object.keys(data)[0].startsWith('air-interface-current-performance')) {
+
+ $scope.jsonvalue.push(data);
+ var label = new OnfNetworkElement($scope.onfNetworkElement).getLpById(data['layer-protocol']).getLabel() || data['layer-protocol'];
+ var radioSignal = radioSignalMap.get(data['layer-protocol'])
+ var list = data['air-interface-current-performance']['current-performance-data-list'] || data['air-interface-current-performance']['current-performance-data'];
+ list.map(function(item) {
+
+
+ var timestamp = $mwtnPerformanceCurrent.formatTimeStamp(item.timestamp);
+
+ switch (key) {
+
+ case 'performance826':
+ $scope.performance826.push({
+ timestamp: timestamp,
+ elapsedTime: checkData(item['elapsed-time']),
+ suspectInterval: item['suspect-interval-flag'],
+ scannerId: item['scanner-id'],
+ id: label,
+ period: item['granularity-period'],
+ es: item['performance-data'].es,
+ ses: item['performance-data'].ses,
+ uas: item['performance-data'].unavailability,
+ radioSignal: radioSignal
+ });
+ break;
+
+ case 'receiveLevel':
+ $scope.receiveLevel.push({
+ timestamp: timestamp,
+ elapsedTime: checkData(item['elapsed-time']),
+ suspectInterval: item['suspect-interval-flag'],
+ scannerId: item['scanner-id'],
+ id: label,
+ period: item['granularity-period'],
+ rxmin: checkData(item['performance-data']['rx-level-min']),
+ rxmax: checkData(item['performance-data']['rx-level-max']),
+ rxavg: checkData(item['performance-data']['rx-level-avg']),
+ radioSignal: radioSignal
+ });
+ break;
+
+ case 'transmissionLevel':
+
+ $scope.transmissionLevel.push({
+ timestamp: timestamp,
+ elapsedTime: checkData(item['elapsed-time']),
+ suspectInterval: item['suspect-interval-flag'],
+ scannerId: item['scanner-id'],
+ id: label,
+ period: item['granularity-period'],
+ txmin: checkData(item['performance-data']['tx-level-min']),
+ txmax: checkData(item['performance-data']['tx-level-max']),
+ txavg: checkData(item['performance-data']['tx-level-avg']),
+ radioSignal: radioSignal
+ });
+
+ break;
+
+ case 'modulation':
+
+ $scope.modulation.push(
+ {
+ timestamp: timestamp,
+ elapsedTime: checkData(item['elapsed-time']),
+ suspectInterval: item['suspect-interval-flag'],
+ scannerId: item['scanner-id'],
+ id: label,
+ period: item['granularity-period'],
+ time2S: checkData(item['performance-data']['time2-states-s']),
+ time2: checkData(item['performance-data']['time2-states']),
+ time2L: checkData(item['performance-data']['time2-states-l']),
+ time4S: checkData(item['performance-data']['time4-states-s']),
+ time4: checkData(item['performance-data']['time4-states']),
+ time4L: checkData(item['performance-data']['time4-states-l']),
+ time16S: checkData(item['performance-data']['time16-states-s']),
+ time16: checkData(item['performance-data']['time16-states']),
+ time16L: checkData(item['performance-data']['time16-states-l']),
+ time32S: checkData(item['performance-data']['time32-states-s']),
+ time32: checkData(item['performance-data']['time32-states']),
+ time32L: checkData(item['performance-data']['time32-states-l']),
+ time64S: checkData(item['performance-data']['time64-states-s']),
+ time64: checkData(item['performance-data']['time64-states']),
+ time64L: checkData(item['performance-data']['time64-states-l']),
+ time128S: checkData(item['performance-data']['time128-states-s']),
+ time128: checkData(item['performance-data']['time128-states']),
+ time128L: checkData(item['performance-data']['time128-states-l']),
+ time256S: checkData(item['performance-data']['time256-states-s']),
+ time256: checkData(item['performance-data']['time256-states']),
+ time256L: checkData(item['performance-data']['time256-states-l']),
+ time512S: checkData(item['performance-data']['time512-states-s']),
+ time512: checkData(item['performance-data']['time512-states']),
+ time512L: checkData(item['performance-data']['time512-states-l']),
+ time1024S: checkData(item['performance-data']['time1024-states-s']),
+ time1024: checkData(item['performance-data']['time1024-states']),
+ time1024L: checkData(item['performance-data']['time1024-states-l']),
+ time2048S: checkData(item['performance-data']['time2048-states-s']),
+ time2048: checkData(item['performance-data']['time2048-states']),
+ time2048L: checkData(item['performance-data']['time2048-states-l']),
+ time4096S: checkData(item['performance-data']['time4096-states-s']),
+ time4096: checkData(item['performance-data']['time4096-states']),
+ time4096L: checkData(item['performance-data']['time4096-states-l']),
+ time8192S: checkData(item['performance-data']['time8192-states-s']),
+ time8192: checkData(item['performance-data']['time8192-states']),
+ time8192L: checkData(item['performance-data']['time8192-states-l']),
+ radioSignal: radioSignal
+ });
+
+ break;
+
+ case 'temperature':
+
+ $scope.temperature.push({
+ timestamp: timestamp,
+ elapsedTime: checkData(item['elapsed-time']),
+ suspectInterval: item['suspect-interval-flag'],
+ scannerId: item['scanner-id'],
+ id: label,
+ period: item['granularity-period'],
+ rfTempMin: item['performance-data']['rf-temp-min'],
+ rfTempAvg: item['performance-data']['rf-temp-avg'],
+ rfTempMax: item['performance-data']['rf-temp-max'],
+ radioSignal: radioSignal
+ });
+ break;
+
+ case 'snir':
+
+ $scope.snir.push({
+ timestamp: timestamp,
+ elapsedTime: checkData(item['elapsed-time']),
+ suspectInterval: item['suspect-interval-flag'],
+ scannerId: item['scanner-id'],
+ id: label,
+ period: item['granularity-period'],
+ snirMin: item['performance-data']['snir-min'],
+ snirAvg: item['performance-data']['snir-avg'],
+ snirMax: item['performance-data']['snir-max'],
+ radioSignal: radioSignal
+ }
+ );
+
+ break;
+
+ case 'crossPolarDiscrimination':
+
+ $scope.cpdData.push({
+
+ timestamp: timestamp,
+ elapsedTime: checkData(item['elapsed-time']),
+ suspectInterval: item['suspect-interval-flag'],
+ scannerId: item['scanner-id'],
+ id: label,
+ period: item['granularity-period'],
+ xpdMin: item['performance-data']['xpd-min'],
+ xpdAvg: item['performance-data']['xpd-avg'],
+ xpdMax: item['performance-data']['xpd-max'],
+ radioSignal: radioSignal
+ });
+
+ break;
+ }
+
+ });
+
+ }
+ };
+
+ var updateContainer = function (lpId, part, data) {
+ // console.log(JSON.stringify(data), lpId);
+ var label = new OnfNetworkElement($scope.onfNetworkElement).getLpById(data['layer-protocol']).getLabel() || data['layer-protocol'];
+
+ if (Object.keys(data)[0].contains('ethernet-container')) {
+ $scope.ethernetJsonValue.push(data);
+
+ var list = data['ethernet-container-current-performance']['current-performance-data-list'] || data['ethernet-container-current-performance']['current-performance-data']
+ list.map(function (item) {
+
+ $scope.performanceEthernetContainer.push({
+ timestamp: $mwtnPerformanceCurrent.formatTimeStamp(item['timestamp']),
+ elapsedTime: checkData(item['elapsed-time']),
+ suspectInterval: item['suspect-interval-flag'],
+ scannerId: item['scanner-id'],
+ period: item['granularity-period'],
+ txEthernetBytesMaxS: checkData(item['performance-data']['tx-ethernet-bytes-max-s']),
+ txEthernetBytesMaxM: checkData(item['performance-data']['tx-ethernet-bytes-max-m']),
+ txEthernetBytesSum: checkData(item['performance-data']['tx-ethernet-bytes-sum']),
+ id: label
+ });
+ });
+ }
+ };
+
+ //replace -1 with undefined in json data
+ var checkData = function (value) {
+ if (value === -1 || value === undefined) return undefined;
+ else return value;
+ };
+
+ //perf log configuration
+ $scope.gridOptionsPerformance826 = {
+ paginationPageSizes: [25, 100, 1000, 10000],
+ paginationPageSize: 25,
+ enablePaginationControls: true,
+ enableFiltering: true,
+ enableGridMenu: true,
+ columnDefs: [
+
+ { field: 'id', type: 'string', displayName: $translate.instant('MWTN_LP'), width: 300 },
+ { field: 'radioSignal', type: 'string', displayName: 'Radio Signal Id', width: 90 },
+ { field: 'scannerId', type: 'string', displayName: 'Scanner Id', width: 90 },
+ {
+ field: 'timestamp', type: 'string', displayName: 'Request time', width: 200, sort: {
+ direction: uiGridConstants.ASC,
+ priority: 1
+ }
+ },
+ { field: 'elapsedTime', type: 'string', displayName: 'Elapsed Time', width: 100 },
+ { field: 'period', type: 'string', displayName: 'Period', width: 200 },
+ { field: 'suspectInterval', type: 'string', displayName: 'Suspect Interval Flag', width: 100 },
+ { field: 'es', type: 'string', displayName: 'ES', width: 70 },
+ { field: 'ses', type: 'string', displayName: 'SES', width: 70 },
+ { field: 'uas', type: 'string', displayName: 'UAS', width: 70 }
+ ],
+ data: 'performance826'
+ };
+
+ //receive lvl configuration
+ $scope.gridOptionsReceiveLevel = {
+ paginationPageSizes: [25, 100, 1000, 10000],
+ paginationPageSize: 25,
+ enablePaginationControls: true,
+ enableFiltering: true,
+ enableGridMenu: true,
+ columnDefs: [
+
+ { field: 'id', type: 'string', displayName: $translate.instant('MWTN_LP'), width: 300 },
+ { field: 'radioSignal', type: 'string', displayName: 'Radio Signal Id', width: 90 },
+ { field: 'scannerId', type: 'string', displayName: 'Scanner Id', width: 90 },
+ {
+ field: 'timestamp', type: 'string', displayName: 'Request time', width: 200, sort: {
+ direction: uiGridConstants.ASC,
+ priority: 1
+ }
+ },
+ { field: 'elapsedTime', type: 'string', displayName: 'Elapsed Time', width: 100 },
+ { field: 'period', type: 'string', displayName: 'Period', width: 200 },
+ { field: 'suspectInterval', type: 'string', displayName: 'Suspect Interval Flag', width: 100 },
+ { field: 'rxmin', type: 'string', displayName: 'Rx min [dBm]', width: 90 },
+ { field: 'rxavg', type: 'string', displayName: 'Rx avg [dBm]', width: 90 },
+ { field: 'rxmax', type: 'string', displayName: 'Rx max [dBm]', width: 90 }
+
+ ],
+ data: 'receiveLevel'
+ };
+
+ //transmission lvl configuration
+ $scope.gridOptionsTransmissionLevel = {
+ paginationPageSizes: [25, 100, 1000, 10000],
+ paginationPageSize: 25,
+ enablePaginationControls: true,
+ enableFiltering: true,
+ enableGridMenu: true,
+ columnDefs: [
+
+ { field: 'id', type: 'string', displayName: $translate.instant('MWTN_LP'), width: 300 },
+ { field: 'radioSignal', type: 'string', displayName: 'Radio Signal Id', width: 90 },
+ { field: 'scannerId', type: 'string', displayName: 'Scanner Id', width: 90 },
+ {
+ field: 'timestamp', type: 'string', displayName: 'Request time', width: 200, sort: {
+ direction: uiGridConstants.ASC,
+ priority: 1
+ }
+ },
+ { field: 'elapsedTime', type: 'string', displayName: 'Elapsed Time', width: 100 },
+ { field: 'period', type: 'string', displayName: 'Period', width: 200 },
+ { field: 'suspectInterval', type: 'string', displayName: 'Suspect Interval Flag', width: 100 },
+ { field: 'txmin', type: 'string', displayName: 'Tx min [dBm]', width: 90 },
+ { field: 'txavg', type: 'string', displayName: 'Tx avg [dBm]', width: 90 },
+ { field: 'txmax', type: 'string', displayName: 'Tx max [dBm]', width: 90 }
+
+ ],
+ data: 'transmissionLevel'
+ };
+
+ //modulation configuration
+ $scope.gridOptionsModulation = {
+ paginationPageSizes: [25, 100, 1000, 10000],
+ paginationPageSize: 25,
+ enablePaginationControls: true,
+ enableFiltering: true,
+ enableGridMenu: true,
+ columnDefs: [
+
+ { field: 'id', type: 'string', displayName: $translate.instant('MWTN_LP'), width: 300 },
+ { field: 'radioSignal', type: 'string', displayName: 'Radio Signal Id', width: 90 },
+ { field: 'scannerId', type: 'string', displayName: 'Scanner Id', width: 90 },
+ {
+ field: 'timestamp', type: 'string', displayName: 'Request time', width: 200, sort: {
+ direction: uiGridConstants.ASC,
+ priority: 1
+ }
+ },
+ { field: 'elapsedTime', type: 'string', displayName: 'Elapsed Time', width: 100 },
+ { field: 'period', type: 'string', displayName: 'Period', width: 200 },
+ { field: 'suspectInterval', type: 'string', displayName: 'Suspect Interval Flag', width: 100 },
+ { field: 'time2S', type: 'string', displayName: 'QAM2S', width: 90 },
+ { field: 'time2', type: 'string', displayName: 'QAM2', width: 90 },
+ { field: 'time2L', type: 'string', displayName: 'QAM2L', width: 90 },
+ { field: 'time4S', type: 'string', displayName: 'QAM4S', width: 90 },
+ { field: 'time4', type: 'string', displayName: 'QAM4', width: 90 },
+ { field: 'time4L', type: 'string', displayName: 'QAM4L', width: 90 },
+ { field: 'time16S', type: 'string', displayName: 'QAM16S', width: 90 },
+ { field: 'time16', type: 'string', displayName: 'QAM16', width: 90 },
+ { field: 'time16L', type: 'string', displayName: 'QAM16L', width: 90 },
+ { field: 'time32S', type: 'string', displayName: 'QAM32S', width: 90 },
+ { field: 'time32', type: 'string', displayName: 'QAM32', width: 90 },
+ { field: 'time32L', type: 'string', displayName: 'QAM32L', width: 90 },
+ { field: 'time64S', type: 'string', displayName: 'QAM64S', width: 90 },
+ { field: 'time64', type: 'string', displayName: 'QAM64', width: 90 },
+ { field: 'time64L', type: 'string', displayName: 'QAM64L', width: 90 },
+ { field: 'time128S', type: 'string', displayName: 'QAM128S', width: 90 },
+ { field: 'time128', type: 'string', displayName: 'QAM128', width: 90 },
+ { field: 'time128L', type: 'string', displayName: 'QAM128L', width: 90 },
+ { field: 'time256S', type: 'string', displayName: 'QAM256S', width: 90 },
+ { field: 'time256', type: 'string', displayName: 'QAM256', width: 90 },
+ { field: 'time256L', type: 'string', displayName: 'QAM256L', width: 90 },
+ { field: 'time512S', type: 'string', displayName: 'QAM512S', width: 90 },
+ { field: 'time512', type: 'string', displayName: 'QAM512', width: 90 },
+ { field: 'time512L', type: 'string', displayName: 'QAM512L', width: 90 },
+ { field: 'time1024S', type: 'string', displayName: 'QAM1024S', width: 90 },
+ { field: 'time1024', type: 'string', displayName: 'QAM1024', width: 90 },
+ { field: 'time1024L', type: 'string', displayName: 'QAM1024L', width: 90 },
+ { field: 'time2048S', type: 'string', displayName: 'QAM2048S', width: 90 },
+ { field: 'time2048', type: 'string', displayName: 'QAM2048', width: 90 },
+ { field: 'time2048L', type: 'string', displayName: 'QAM2048L', width: 90 },
+ { field: 'time4096S', type: 'string', displayName: 'QAM4096S', width: 90 },
+ { field: 'time4096', type: 'string', displayName: 'QAM4096', width: 90 },
+ { field: 'time4096L', type: 'string', displayName: 'QAM4096L', width: 90 },
+ { field: 'time8192S', type: 'string', displayName: 'QAM8192S', width: 90 },
+ { field: 'time8192', type: 'string', displayName: 'QAM8192', width: 90 },
+ { field: 'time8192L', type: 'string', displayName: 'QAM8192L', width: 90 }
+
+ ],
+ data: 'modulation', onRegisterApi: function (gridApi) {
+ $scope.gridApi = gridApi;
+ }
+ };
+
+ //temperature configuration
+ $scope.gridOptionsTemperature = {
+ paginationPageSizes: [25, 100, 1000, 10000],
+ paginationPageSize: 25,
+ enablePaginationControls: true,
+ enableFiltering: true,
+ enableGridMenu: true,
+ columnDefs: [
+
+ { field: 'id', type: 'string', displayName: $translate.instant('MWTN_LP'), width: 300 },
+ { field: 'radioSignal', type: 'string', displayName: 'Radio Signal Id', width: 90 },
+ { field: 'scannerId', type: 'string', displayName: 'Scanner Id', width: 90 },
+ {
+ field: 'timestamp', type: 'string', displayName: 'Request time', width: 200, sort: {
+ direction: uiGridConstants.ASC,
+ priority: 1
+ }
+ },
+ { field: 'elapsedTime', type: 'string', displayName: 'Elapsed Time', width: 100 },
+ { field: 'period', type: 'string', displayName: 'Period', width: 200 },
+ { field: 'suspectInterval', type: 'string', displayName: 'Suspect Interval Flag', width: 100 },
+ { field: 'rfTempMin', type: 'string', displayName: 'Rf Temp Min [&deg;C]', width: 90 },
+ { field: 'rfTempAvg', type: 'string', displayName: 'Rf Temp Avg [&deg;C]', width: 90 },
+ { field: 'rfTempMax', type: 'string', displayName: 'Rf Temp Max [&deg;C]', width: 90 }
+
+ ],
+ data: 'temperature'
+ }
+
+ //SNIR configuration
+ $scope.gridOptionsSnir = {
+ paginationPageSizes: [25, 100, 1000, 10000],
+ paginationPageSize: 25,
+ enablePaginationControls: true,
+ enableFiltering: true,
+ enableGridMenu: true,
+ columnDefs: [
+ { field: 'layerProtocol', type: 'string', displayName: 'Layer Protocol Name', width: 90, visible: false},
+ { field: 'id', type: 'string', displayName: $translate.instant('MWTN_LP'), width: 300 },
+ { field: 'radioSignal', type: 'string', displayName: 'Radio Signal Id', width: 90 },
+ { field: 'scannerId', type: 'string', displayName: 'Scanner Id', width: 90 },
+ {
+ field: 'timestamp', type: 'string', displayName: 'Request time', width: 200, sort: {
+ direction: uiGridConstants.ASC,
+ priority: 1
+ }
+ },
+ { field: 'elapsedTime', type: 'string', displayName: 'Elapsed Time', width: 100 },
+ { field: 'period', type: 'string', displayName: 'Period', width: 200 },
+ { field: 'suspectInterval', type: 'string', displayName: 'Suspect Interval Flag', width: 100 },
+ { field: 'snirMin', type: 'string', displayName: [$translate.instant('MWTN_SNIR_MIN'),'[dB]'].join(' '), width: 90 },
+ { field: 'snirAvg', type: 'string', displayName: [$translate.instant('MWTN_SNIR_AVG'),'[dB]'].join(' '), width: 90 },
+ { field: 'snirMax', type: 'string', displayName: [$translate.instant('MWTN_SNIR_MAX'),'[dB]'].join(' '), width: 90 }
+ ],
+ data: 'snir'
+ }
+
+ //CPD Configuration
+ $scope.gridOptionsCrossPolarDiscrimination = {
+ paginationPageSizes: [25, 100, 1000, 10000],
+ paginationPageSize: 25,
+ enablePaginationControls: true,
+ enableFiltering: true,
+ enableGridMenu: true,
+ columnDefs: [
+
+ { field: 'id', type: 'string', displayName: $translate.instant('MWTN_LP'), width: 300 },
+ { field: 'radioSignal', type: 'string', displayName: 'Radio Signal Id', width: 90 },
+ { field: 'scannerId', type: 'string', displayName: 'Scanner Id', width: 90 },
+ {
+ field: 'timestamp', type: 'string', displayName: 'Request time', width: 200, sort: {
+ direction: uiGridConstants.ASC,
+ priority: 1
+ }
+ },
+ { field: 'elapsedTime', type: 'string', displayName: 'Elapsed Time', width: 100 },
+ { field: 'period', type: 'string', displayName: 'Period', width: 200 },
+ { field: 'suspectInterval', type: 'string', displayName: 'Suspect Interval Flag', width: 100 },
+ { field: 'xpdMin', type: 'string', displayName: 'CPD min [dB]', width: 90 },
+ { field: 'xpdAvg', type: 'string', displayName: 'CPD avg [dB]', width: 90 },
+ { field: 'xpdMax', type: 'string', displayName: 'CPD max [dB]', width: 90 }
+
+ ],
+ data: 'cpdData'
+ }
+
+ //ethernet perf configuration
+ $scope.gridOptionsPerformanceEthernetContainer = {
+ paginationPageSizes: [25, 100, 1000, 10000],
+ paginationPageSize: 25,
+ enablePaginationControls: true,
+ enableFiltering: true,
+ enableGridMenu: true,
+ columnDefs: [
+
+ { field: 'id', type: 'string', displayName: $translate.instant('MWTN_LP'), width: 300 },
+ { field: 'scannerId', type: 'string', displayName: 'Scanner Id', width: 90 },
+ {
+ field: 'timestamp', type: 'string', displayName: 'Request time', width: 200, sort: {
+ direction: uiGridConstants.ASC,
+ priority: 1
+ }
+ },
+ { field: 'elapsedTime', type: 'string', displayName: 'Elapsed Time', width: 100 },
+ { field: 'period', type: 'string', displayName: 'Period', width: 200 },
+ { field: 'suspectInterval', type: 'string', displayName: 'Suspect Interval Flag', width: 100 },
+ { field: 'txEthernetBytesMaxS', type: 'number', displayName: 'Tx BytesMaxS', width: 90 },
+ { field: 'txEthernetBytesMaxM', type: 'number', displayName: 'Tx BytesMaxM', width: 90 },
+ { field: 'txEthernetBytesSum', type: 'number', displayName: 'Tx BytesSum', width: 90 }
+
+ ],
+ data: 'performanceEthernetContainer'
+ };
+
+ var updatePart = function (spec, data, key) {
+ switch (spec.pacId) {
+ case 'ne':
+ updateNe(data);
+ break;
+
+ case 'airinterface':
+ console.log(JSON.stringify(spec, JSON.stringify(data)));
+ updateAirInterface(data, key);
+ break;
+
+ case 'container':
+ updateContainer(spec.layerProtocolId, spec.partId, data);
+ break;
+
+ }
+ };
+
+ var refreshAirInterface = function (key) {
+ //get performance data from interfaces
+ for (var interf of $scope.airinterfaces) {
+ var airIterfaceSpec = {
+ nodeId: $scope.networkElementId,
+ revision: $scope.revision,
+ pacId: 'airinterface',
+ partId: 'CurrentPerformance',
+ layerProtocolId: interf.layerProtocol
+ };
+ $mwtnPerformanceCurrent.getPacParts(airIterfaceSpec).then(function (data) {
+ var yangfiedObj = $mwtnPerformanceCurrent.yangifyObject(data);
+ updatePart(airIterfaceSpec, yangfiedObj, key);
+ });
+ }
+ };
+
+ $scope.collapseAll = function () {
+ // close all groups
+ Object.keys($scope.status).map(function (group) {
+ $scope.status[group] = false;
+ });
+ Object.keys($scope.spinner).map(function (group) {
+ $scope.spinner[group] = false;
+ });
+ };
+
+ // events
+ $scope.status = { performanceEthernetContainer: true };
+ $scope.spinner = {};
+ $scope.separator = $mwtnPerformanceCurrent.separator; //'&nbsp;'
+
+ //get data on ne selection
+ $scope.$watch('networkElement', function (neId, oldValue) {
+ if (neId && neId !== '' && neId !== oldValue) {
+ $scope.collapseAll();
+
+ // clear lists visible on screen
+ $scope.performance826 = [];
+ $scope.receiveLevel = [];
+ $scope.transmissionLevel = [];
+ $scope.modulation = [];
+ $scope.temperature = [];
+ $scope.snir = [];
+ $scope.cpdData = [];
+ $scope.jsonvalue = [];
+ $scope.performanceEthernetContainer = [];
+ $scope.ethernetJsonValue = [];
+
+ var revision;
+ $scope.networkElements.map(function (ne) {
+ if (ne.id === neId) revision = ne.revision;
+ });
+ $scope.networkElementId = neId;
+ $scope.revision = revision;
+
+ var spec = {
+ nodeId: neId,
+ revision: revision,
+ pacId: 'ne'
+ };
+
+ //get ne data
+ $mwtnPerformanceCurrent.getPacParts(spec).then(function (success) {
+ var yangfiedObj = $mwtnPerformanceCurrent.yangifyObject(success);
+
+ updatePart(spec, yangfiedObj);
+
+ //get performance data from interfaces
+ $scope.airinterfaces.map(function(airInterface) {
+
+ //get configuration for airinterfaces
+ var airIterfaceSpec = {
+ nodeId: neId,
+ revision: revision,
+ pacId: 'airinterface',
+ partId: 'Configuration',
+ layerProtocolId: airInterface.layerProtocol
+ };
+
+ //get radioSignalID and add it to map
+ $mwtnPerformanceCurrent.getPacParts(airIterfaceSpec).then(function (data) {
+ var yangfiedObj = $mwtnPerformanceCurrent.yangifyObject(data);
+ radioSignalMap.set(yangfiedObj['layer-protocol'], yangfiedObj['air-interface-configuration']['radio-signal-id']);
+ });
+ });
+
+ }, function (error) {
+ updatePart(spec, error);
+ });
+ }
+ });
+
+ $scope.$watch('layerProtocol', function (newValue, oldValue) {
+
+ if (newValue && oldValue !== "" && newValue !== oldValue) {
+ $scope.collapseAll();
+ }
+
+ }, true);
+
+ //update data within tables on accordion - open
+ $scope.$watch('status', function (status, oldValue) {
+ Object.keys(status).map(function (key) {
+ if ($scope.networkElementId && status[key] && status[key] !== oldValue[key]) {
+ switch (key) {
+
+ case 'performance826':
+ $scope.performance826 = [];
+ refreshAirInterface(key);
+ break;
+
+ case 'receiveLevel':
+ $scope.receiveLevel = [];
+ refreshAirInterface(key);
+ break;
+
+ case 'transmissionLevel':
+ $scope.transmissionLevel = [];
+ refreshAirInterface(key);
+ break;
+
+ case 'modulation':
+ $scope.modulation = [];
+ refreshAirInterface(key);
+ break;
+
+ case 'temperature':
+ $scope.temperature = [];
+ refreshAirInterface(key);
+ break;
+
+ case 'snir':
+ $scope.snir = [];
+ refreshAirInterface(key);
+ break;
+
+ case 'crossPolarDiscrimination':
+ $scope.cpdData = [];
+ refreshAirInterface(key);
+ break;
+
+ case 'performanceEthernetContainer':
+ $scope.performanceEthernetContainer = [];
+ $scope.ethernetJsonValue = [];
+
+ //get performance data for ethernet
+ $scope.ethernets.map(function (item) {
+ var ethernetSpec = {
+ nodeId: $scope.networkElementId,
+ revision: $scope.revision,
+ pacId: 'container',
+ partId: 'CurrentPerformance',
+ layerProtocolId: item.layerProtocol
+ };
+
+ $mwtnPerformanceCurrent.getPacParts(ethernetSpec).then(function (data) {
+ var yangfiedObj = $mwtnPerformanceCurrent.yangifyObject(data);
+ updatePart(ethernetSpec, yangfiedObj);
+ });
+ });
+ break;
+
+ }
+ $window.dispatchEvent(new Event("resize"));
+ }
+ });
+ }, true);
+
+ }]);
+ });
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.module.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.module.js
new file mode 100644
index 00000000..e0e4e2fb
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.module.js
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2016 highstreet technologies GmbH and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+define(['angularAMD',
+ 'app/routingConfig',
+ 'app/core/core.services',
+ 'common/config/env.module',
+ 'app/mwtnCommons/mwtnCommons.module'], function(ng) {
+ var mwtnPerformanceCurrentApp = angular.module('app.mwtnPerformanceCurrent', ['ui.grid', 'ui.bootstrap', 'app.core', 'ui.router.state', 'config', 'ui.router.state','ui.grid.exporter',
+ 'ui.grid.moveColumns', 'ui.grid.pinning', 'ui.grid.selection',
+ 'ui.grid.resizeColumns', 'ui.grid.pagination','ui.grid.autoResize']);
+
+ mwtnPerformanceCurrentApp.config(function($stateProvider, $compileProvider, $controllerProvider, $provide, NavHelperProvider, $translateProvider) {
+ mwtnPerformanceCurrentApp.register = {
+ controller : $controllerProvider.register,
+ directive : $compileProvider.directive,
+ factory : $provide.factory,
+ service : $provide.service
+
+ };
+
+ NavHelperProvider.addControllerUrl('app/mwtnPerformanceCurrent/mwtnPerformanceCurrent.controller');
+ NavHelperProvider.addToMenu('mwtnPerformanceCurrent', {
+ "link" : "#/pnfPerformanceCurrent",
+ "active" : "main.mwtnPerformanceCurrent",
+ "title" : "pnf PM Current",
+ "icon" : "fa fa-bar-chart", // Add navigation icon css class here
+ "page" : {
+ "title" : "pnf PM Current",
+ "description" : "mwtnPerformanceCurrent"
+ }
+ });
+
+ var access = routingConfig.accessLevels;
+
+ $stateProvider.state('main.mwtnPerformanceCurrent', {
+ url: 'pnfPerformanceCurrent',
+ access: access.admin,
+ views : {
+ 'content' : {
+ templateUrl: 'src/app/mwtnPerformanceCurrent/mwtnPerformanceCurrent.tpl.html',
+ controller: 'mwtnPerformanceCurrentCtrl'
+ }
+ }
+ });
+
+ });
+
+ return mwtnPerformanceCurrentApp;
+});
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.services.js b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.services.js
new file mode 100644
index 00000000..d7adb5a6
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.services.js
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2016 HCL Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+define(['app/mwtnCommons/mwtnCommons.module', 'app/mwtnPerformanceCurrent/mwtnPerformanceCurrent.module'],function(mwtnPerformanceCurrentApp) {
+
+ mwtnPerformanceCurrentApp.register.factory('$mwtnPerformanceCurrent', function($mwtnCommons, $mwtnLog) {
+
+ var COMPONENT = '$mwtnPerformanceCurrent';
+ $mwtnLog.info({component: COMPONENT, message: '$mwtnPerformanceCurrent started!'});
+
+ var service = {};
+
+ service.separator = $mwtnCommons.separator;
+ service.parts = $mwtnCommons.parts;
+ service.getMountPoints = $mwtnCommons.getMountPoints;
+ service.getPacParts = $mwtnCommons.getPacParts;
+ service.layerProtocolNameOrder = $mwtnCommons.layerProtocolNameOrder;
+ service.formatTimeStamp = $mwtnCommons.formatTimeStamp;
+
+ service.yangifyObject=$mwtnCommons.yangifyObject;
+
+ return service;
+ });
+
+});
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.tpl.html b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.tpl.html
new file mode 100644
index 00000000..a212971e
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/mwtnPerformanceCurrent-module/src/main/resources/mwtnPerformanceCurrent/mwtnPerformanceCurrent.tpl.html
@@ -0,0 +1,119 @@
+<ht-header help-link='sdnr/pnfPerformance/0.4.0/README.md'></ht-header>
+<mwtn-select-network-element></mwtn-select-network-element>
+
+<div class="owl container" ng-if="networkElements.lenght !== 0 && networkElement" style="width: 100%">
+ <div class="row">
+ <div class="col-md-3">
+ <div class="form-group">
+ <select class="form-control" ng-model="layerProtocol">
+ <option ng-repeat="protocol in layerProtocols">{{protocol}}</option>
+ </select>
+ </div>
+ </div>
+ <div class="col-md-2">
+ <span class="white">{{'Select Layer Protocol' }}</span>
+ </div>
+ </div>
+ <div class="row" ng-if="layerProtocol === 'MWPS' ">
+ <div class="col">
+ <uib-accordion close-others="oneATime">
+ <div uib-accordion-group class="panel-primary" is-open="status.performance826">
+ <uib-accordion-heading> <i class="pull-left fa" ng-class="{'fa-chevron-down': status.performance826, 'fa-chevron-right': !status.performance826}"></i>
+ <span>Performance Data G.826</span>
+ <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.performance826"></i>
+ </uib-accordion-heading>
+
+ <div id="mwtnFaultGridAlarmLog" ui-grid="gridOptionsPerformance826" ui-grid-pagination ui-grid-exporter ui-grid-selection
+ ui-grid-pinning ui-grid-resize-columns ui-grid-auto-resize ui-grid-move-columns class="mwtnCurrentGrid">
+ </div>
+ </div>
+ <div uib-accordion-group class="panel-primary" is-open="status.receiveLevel">
+ <uib-accordion-heading> <i class="pull-left fa" ng-class="{'fa-chevron-down': status.receiveLevel, 'fa-chevron-right': !status.receiveLevel}"></i>
+ <span>Receive Level</span>
+ <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.receiveLevel"></i>
+ </uib-accordion-heading>
+
+ <div ui-grid="gridOptionsReceiveLevel" ui-grid-pagination ui-grid-exporter ui-grid-selection ui-grid-pinning ui-grid-resize-columns
+ ui-grid-auto-resize ui-grid-move-columns class="mwtnCurrentGrid">
+ </div>
+
+ </div>
+ <div uib-accordion-group class="panel-primary" is-open="status.transmissionLevel">
+ <uib-accordion-heading> <i class="pull-left fa" ng-class="{'fa-chevron-down': status.transmissionLevel, 'fa-chevron-right': !status.transmissionLevel}"></i>
+ <span>Transmission Power</span>
+ <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.transmissionLevel"></i>
+ </uib-accordion-heading>
+
+ <div ui-grid="gridOptionsTransmissionLevel" ui-grid-pagination ui-grid-exporter ui-grid-selection ui-grid-pinning ui-grid-resize-columns
+ ui-grid-auto-resize ui-grid-move-columns class="mwtnCurrentGrid">
+ </div>
+
+ </div>
+ <div uib-accordion-group class="panel-primary" is-open="status.modulation">
+ <uib-accordion-heading> <i class="pull-left fa" ng-class="{'fa-chevron-down': status.modulation, 'fa-chevron-right': !status.modulation}"></i>
+ <span>Adaptive Modulation</span>
+ <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.modulation"></i>
+ </uib-accordion-heading>
+
+ <div ui-grid="gridOptionsModulation" ui-grid-pagination ui-grid-exporter ui-grid-selection ui-grid-pinning ui-grid-resize-columns
+ ui-grid-move-columns class="mwtnCurrentGrid">
+ </div>
+
+ </div>
+ <div uib-accordion-group class="panel-primary" is-open="status.temperature">
+ <uib-accordion-heading> <i class="pull-left fa" ng-class="{'fa-chevron-down': status.temperature, 'fa-chevron-right': !status.temperature}"></i>
+ <span>Temperature</span>
+ <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.temperature"></i>
+ </uib-accordion-heading>
+
+ <div ui-grid="gridOptionsTemperature" ui-grid-pagination ui-grid-exporter ui-grid-selection ui-grid-pinning ui-grid-resize-columns
+ ui-grid-move-columns class="mwtnFaultGrid">
+ </div>
+
+ </div>
+ <div uib-accordion-group class="panel-primary" is-open="status.snir">
+ <uib-accordion-heading> <i class="pull-left fa" ng-class="{'fa-chevron-down': status.snir, 'fa-chevron-right': !status.snir}"></i>
+ <span>{{'MWTN_SINR' | translate}}</span>
+ <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.snir"></i>
+ </uib-accordion-heading>
+
+ <div ui-grid="gridOptionsSnir" ui-grid-pagination ui-grid-exporter ui-grid-selection ui-grid-pinning ui-grid-resize-columns
+ ui-grid-move-columns class="mwtnCurrentGrid">
+ </div>
+
+ </div>
+ <div uib-accordion-group class="panel-primary" is-open="status.crossPolarDiscrimination">
+ <uib-accordion-heading> <i class="pull-left fa" ng-class="{'fa-chevron-down': status.crossPolarDiscrimination, 'fa-chevron-right': !status.crossPolarDiscrimination}"></i>
+ <span>Cross Polar Discrimination</span>
+ <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.crossPolarDiscrimination"></i>
+ </uib-accordion-heading>
+
+ <div ui-grid="gridOptionsCrossPolarDiscrimination" ui-grid-pagination ui-grid-exporter ui-grid-selection ui-grid-pinning ui-grid-resize-columns
+ ui-grid-move-columns class="mwtnCurrentGrid">
+ </div>
+
+ </div>
+ </uib-accordion>
+ </div>
+ </div>
+ <div class="row" ng-if="layerProtocol === 'ETC' ">
+ <div class="col">
+ <uib-accordion close-others="oneATime">
+ <div uib-accordion-group class="panel-primary" is-open="status.performanceEthernetContainer">
+ <uib-accordion-heading> <i class="pull-left fa" ng-class="{'fa-chevron-down': status.performanceEthernetContainer, 'fa-chevron-right': !status.performanceEthernetContainer}"></i>
+ <span>Performance Data</span>
+ <i class="pull-right fa fa-spinner fa-pulse" ng-show="spinner.performanceEthernetContainer"></i>
+ </uib-accordion-heading>
+
+ <div ui-grid="gridOptionsPerformanceEthernetContainer" ui-grid-pagination ui-grid-exporter ui-grid-selection ui-grid-pinning ui-grid-resize-columns
+ ui-grid-auto-resize ui-grid-move-columns class="mwtnCurrentGrid">
+ </div>
+ </div>
+ </uib-accordion>
+ </div>
+ </div>
+</div>
+<hr />
+<div class="owl">
+ <span class="white">ONAP SDN-R | ONF Wireless for @distversion@ - Build: @buildtime@</span>
+</div> \ No newline at end of file
diff --git a/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/pom.xml b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/pom.xml
new file mode 100644
index 00000000..7f2c1e52
--- /dev/null
+++ b/sdnr/wireless-transport/code-Carbon-SR1/ux/mwtnPerformanceCurrent/pom.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>mwtn</artifactId>
+ <groupId>com.highstreet.technologies.odl.dlux</groupId>
+ <version>0.5.1-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <packaging>pom</packaging>
+ <groupId>com.highstreet.technologies.odl.dlux</groupId>
+ <artifactId>mwtnPerformanceCurrent</artifactId>
+ <version>0.5.1-SNAPSHOT</version>
+ <name>${prefix} ${project.artifactId}</name>
+
+ <prerequisites>
+ <maven>3.0</maven>
+ </prerequisites>
+
+ <modules>
+ <module>mwtnPerformanceCurrent-module</module>
+ <module>mwtnPerformanceCurrent-bundle</module>
+ </modules>
+</project>