diff --git a/example/msl/bundle.json b/example/msl/bundle.json index eab4efab52..e627aef0b1 100644 --- a/example/msl/bundle.json +++ b/example/msl/bundle.json @@ -43,7 +43,8 @@ "services": [ { "key":"rems.adapter", - "implementation": "RemsTelemetryServerAdapter.js" + "implementation": "RemsTelemetryServerAdapter.js", + "depends": ["$q", "$http"] } ], "runs": [ @@ -58,6 +59,12 @@ "type": "provider", "implementation": "RemsTelemetryModelProvider.js", "depends": ["rems.adapter"] + }, + { + "provides": "telemetryService", + "type": "provider", + "implementation": "RemsTelemetryProvider.js", + "depends": ["rems.adapter", "$q"] } ] } diff --git a/example/msl/src/RemsTelemetryInitializer.js b/example/msl/src/RemsTelemetryInitializer.js index 5bb8990e11..bbe41dfcf6 100644 --- a/example/msl/src/RemsTelemetryInitializer.js +++ b/example/msl/src/RemsTelemetryInitializer.js @@ -25,7 +25,7 @@ define( function (){ "use strict"; - var TAXONOMY_ID = "msl.curiosity", + var TAXONOMY_ID = "msl:curiosity", PREFIX = "msl_tlm:"; function RemsTelemetryInitializer(adapter, objectService) { diff --git a/example/msl/src/RemsTelemetryProvider.js b/example/msl/src/RemsTelemetryProvider.js index e69de29bb2..3ae368ca33 100644 --- a/example/msl/src/RemsTelemetryProvider.js +++ b/example/msl/src/RemsTelemetryProvider.js @@ -0,0 +1,71 @@ +/***************************************************************************** + * 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 */ +define ( + ['./RemsTelemetrySeries'], + function (RemsTelemetrySeries) { + "use strict"; + + var SOURCE = "rems.source"; + + function RemsTelemetryProvider(adapter, $q){ + /* + Filters requests for telemetry so that it only handles requests for + this source + */ + function matchesSource(request) { + return (request.source === SOURCE); + } + + return { + requestTelemetry: function(requests) { + var packaged = {}, + relevantReqs = requests.filter(matchesSource); + + function addToPackage(history) { + packaged[SOURCE][history.id] = + new RemsTelemetrySeries(history.value); + } + + function handleRequest(request) { + var key = request.key; + return adapter.history(key).then(addToPackage); + } + packaged[SOURCE] = {}; + return $q.all(relevantReqs.map(handleRequest)) + .then(function () { + return packaged; + }); + }, + subscribe: function (callback, requests) { + return function() {}; + }, + unsubscribe: function (callback, requests) { + return function() {}; + } + } + + } + + return RemsTelemetryProvider; + } +); \ No newline at end of file diff --git a/example/msl/src/RemsTelemetrySeries.js b/example/msl/src/RemsTelemetrySeries.js new file mode 100644 index 0000000000..58292b2bd8 --- /dev/null +++ b/example/msl/src/RemsTelemetrySeries.js @@ -0,0 +1,35 @@ +/***************************************************************************** + * 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. + *****************************************************************************/ + +define( + function () { + "use strict"; + + function ExampleTelemetySeries(data) { + return { + + } + } + + return ExampleTelemetrySeries; + } +) \ No newline at end of file diff --git a/example/msl/src/RemsTelemetryServerAdapter.js b/example/msl/src/RemsTelemetryServerAdapter.js index 6b563791e0..efd3db4790 100644 --- a/example/msl/src/RemsTelemetryServerAdapter.js +++ b/example/msl/src/RemsTelemetryServerAdapter.js @@ -31,9 +31,15 @@ define( * could be adapted to provide data from remote source. * @constructor */ - function RemsTelemetryServerAdapter(){ + function RemsTelemetryServerAdapter($q, $http){ + var histories = {}; + return { - "dictionary": RemsDataDictionary + dictionary: RemsDataDictionary, + history: function(id) { + histories[id] = histories[id] || $q.defer(); + return histories[id].promise; + } }; } return RemsTelemetryServerAdapter;