[Plot] Add sine wave generator example

Add sine wave generator as an example of a domain object which
exposes telemetry, to support transition of the Plot view.
WTD-533.
This commit is contained in:
Victor Woeltjen
2014-12-01 10:24:38 -08:00
parent 7836fe5fbb
commit 3909ddcd14
3 changed files with 135 additions and 0 deletions

View File

@ -0,0 +1,53 @@
/*global define,Promise*/
/**
* Module defining SinewaveTelemetryProvider. Created by vwoeltje on 11/12/14.
*/
define(
["./SinewaveTelemetry"],
function (SinewaveTelemetry) {
"use strict";
/**
*
* @constructor
*/
function SinewaveTelemetryProvider($q, $timeout) {
//
function matchesSource(request) {
return request.source === "generator";
}
// Used internally; this will be repacked by doPackage
function generateData(request) {
return {
key: request.key,
telemetry: new SinewaveTelemetry(request)
};
}
//
function doPackage(results) {
var packaged = {};
results.forEach(function (result) {
packaged[result.key] = result.telemetry;
});
// Format as expected (sources -> keys -> telemetry)
return { generator: packaged };
}
function requestTelemetry(requests) {
return $timeout(function () {
return doPackage(requests.filter(matchesSource).map(generateData));
}, 0);
}
return {
requestTelemetry: requestTelemetry
};
}
return SinewaveTelemetryProvider;
}
);