mirror of
https://github.com/nasa/openmct.git
synced 2025-03-18 10:05:22 +00:00
Working on telemetry provider
This commit is contained in:
parent
88f46d0e42
commit
b83773c531
@ -22,14 +22,18 @@
|
||||
/*global define*/
|
||||
|
||||
define([
|
||||
"./src/DemoConductorRepresenter",
|
||||
"./src/conductor/DemoConductorRepresenter",
|
||||
"./src/DemoInitializer",
|
||||
"./src/ConductorServiceDecorator",
|
||||
"./src/conductor/ConductorServiceDecorator",
|
||||
"./src/conductor/DemoTelemetryDecorator",
|
||||
"./src/telemetry/DemoTelemetryProvider",
|
||||
'legacyRegistry'
|
||||
], function (
|
||||
DemoConductorRepresenter,
|
||||
DemoInitializer,
|
||||
ConductorServiceDecorator,
|
||||
DemoTelemetryDecorator,
|
||||
DemoTelemetryProvider,
|
||||
legacyRegistry
|
||||
) {
|
||||
"use strict";
|
||||
@ -41,8 +45,7 @@ define([
|
||||
"representers": [
|
||||
{
|
||||
"implementation": DemoConductorRepresenter,
|
||||
"depends": ["$q", "views[]"],
|
||||
"priority": "fallback"
|
||||
"depends": ["$q", "$compile", "conductorService", "views[]", "throttle"]
|
||||
}
|
||||
],
|
||||
"components": [
|
||||
@ -50,6 +53,54 @@ define([
|
||||
"implementation": ConductorServiceDecorator,
|
||||
"provides": "conductorService",
|
||||
"type": "decorator"
|
||||
},
|
||||
{
|
||||
"implementation": DemoTelemetryDecorator,
|
||||
"provides": "telemetryService",
|
||||
"type": "decorator",
|
||||
"priority": "mandatory"
|
||||
},
|
||||
{
|
||||
"implementation": DemoTelemetryProvider,
|
||||
"type": "decorator",
|
||||
"provides": "telemetryService"
|
||||
}
|
||||
],
|
||||
"runs": [
|
||||
{
|
||||
"implementation": DemoInitializer,
|
||||
"depends": [
|
||||
"representers[]"
|
||||
]
|
||||
}
|
||||
],
|
||||
"types": [
|
||||
{
|
||||
"key": "demo-telemetry",
|
||||
"name": "Spacecraft Telemetry Generator",
|
||||
"glyph": "T",
|
||||
"description": "Mock realtime spacecraft telemetry",
|
||||
"features": "creation",
|
||||
"model": {
|
||||
"telemetry": {
|
||||
"period": 1000
|
||||
}
|
||||
},
|
||||
"telemetry": {
|
||||
"source": "demo-telemetry",
|
||||
"domains": [
|
||||
{
|
||||
"key": "time",
|
||||
"name": "Time"
|
||||
}
|
||||
],
|
||||
"ranges": [
|
||||
{
|
||||
"key": "value",
|
||||
"name": "value"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -22,12 +22,34 @@
|
||||
/*global define*/
|
||||
|
||||
define(
|
||||
function (){
|
||||
["../../platform/features/conductor/src/ConductorRepresenter"],
|
||||
function (ConductorRepresenter){
|
||||
"use strict";
|
||||
|
||||
function DemoInitializer(conductorService) {
|
||||
conductorService.getConductor().displayStart(Date.UTC(2012,8,7));
|
||||
function DemoInitializer(representers) {
|
||||
|
||||
function indexOf(array, callback) {
|
||||
return array.reduce(function(previous, element, index) {
|
||||
if (previous=== -1 && callback(element)) {
|
||||
return index;
|
||||
} else {
|
||||
return previous;
|
||||
}
|
||||
}, -1);
|
||||
}
|
||||
|
||||
function removeRepresenter(type){
|
||||
var index = indexOf(representers, function(representer) {
|
||||
return representer.implementation === type;
|
||||
});
|
||||
if (index !== -1) {
|
||||
representers.splice(index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
removeRepresenter(ConductorRepresenter);
|
||||
}
|
||||
|
||||
return DemoInitializer;
|
||||
}
|
||||
);
|
||||
|
@ -25,7 +25,7 @@ define(
|
||||
[
|
||||
"zepto",
|
||||
"./ConductorPolicy",
|
||||
"../../platform/features/conductor/src/ConductorRepresenter"
|
||||
"../../../platform/features/conductor/src/ConductorRepresenter"
|
||||
],
|
||||
function ($, ConductorPolicy, ConductorRepresenter) {
|
||||
"use strict";
|
||||
|
72
demo/src/telemetry/DemoTelemetryProvider.js
Normal file
72
demo/src/telemetry/DemoTelemetryProvider.js
Normal file
@ -0,0 +1,72 @@
|
||||
/*****************************************************************************
|
||||
* Open MCT Web, Copyright (c) 2014-2015, United States Government
|
||||
* as represented by the Administrator of the National Aeronautics and Space
|
||||
* Administration. All rights reserved.
|
||||
*
|
||||
* Open MCT Web is licensed under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
* Open MCT Web includes source code licensed under additional open source
|
||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||
* this source code distribution or the Licensing information page available
|
||||
* at runtime from the About dialog for additional information.
|
||||
*****************************************************************************/
|
||||
/*global define,Promise*/
|
||||
|
||||
define(
|
||||
[""],
|
||||
function () {
|
||||
"use strict";
|
||||
|
||||
var SOURCE = 'generator';
|
||||
|
||||
//TODO: Redo as class extension.
|
||||
function DemoTelemetryProvider(telemetryProvider) {
|
||||
|
||||
function requestTelemetry(requests) {
|
||||
return telemetryProvider.requestTelemetry(requests);
|
||||
}
|
||||
|
||||
function wrapSeries(telemetrySeries) {
|
||||
return {
|
||||
getDomainValue: function (index, domain) {
|
||||
return telemetrySeries.getDomainValue(index, domain);
|
||||
},
|
||||
getRangeValue: function (index, range) {
|
||||
return Math.random(1)/5 + telemetrySeries.getRangeValue(index, range);
|
||||
},
|
||||
getPointCount: function () {
|
||||
return telemetrySeries.getPointCount();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function subscribe(callback, requests) {
|
||||
function randomize(telemetry){
|
||||
if (telemetry.generator) {
|
||||
Object.keys(telemetry.generator).forEach(function(key) {
|
||||
telemetry.generator[key] = wrapSeries(telemetry.generator[key]);
|
||||
});
|
||||
}
|
||||
callback(telemetry);
|
||||
}
|
||||
return telemetryProvider.subscribe(randomize, requests);
|
||||
}
|
||||
|
||||
return {
|
||||
requestTelemetry: requestTelemetry,
|
||||
subscribe: subscribe
|
||||
}
|
||||
}
|
||||
|
||||
return DemoTelemetryProvider;
|
||||
}
|
||||
);
|
@ -50,9 +50,9 @@ define(
|
||||
models[makeId(measurement)] = {
|
||||
type: "msl.measurement",
|
||||
name: measurement.name,
|
||||
showConductor: true,
|
||||
telemetry: {
|
||||
key: measurement.identifier,
|
||||
historical: true,
|
||||
ranges: [{
|
||||
key: "value",
|
||||
name: measurement.units,
|
||||
|
Loading…
x
Reference in New Issue
Block a user