mirror of
https://github.com/nasa/openmct.git
synced 2025-06-18 15:18:12 +00:00
[Time Conductor] Add alternate domain
Begin adding a more timelike alternately-formatted domain to sine waves; the 'delta' can be expressed as UTC timestamps but will be formatted for display as a time relative to when sine wave generation began.
This commit is contained in:
@ -16,6 +16,12 @@
|
|||||||
"implementation": "SinewaveLimitCapability.js"
|
"implementation": "SinewaveLimitCapability.js"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"format": [
|
||||||
|
{
|
||||||
|
"key": "example.delta",
|
||||||
|
"implementation": "SinewaveDeltaFormat.js"
|
||||||
|
}
|
||||||
|
],
|
||||||
"types": [
|
"types": [
|
||||||
{
|
{
|
||||||
"key": "generator",
|
"key": "generator",
|
||||||
@ -38,6 +44,11 @@
|
|||||||
{
|
{
|
||||||
"key": "yesterday",
|
"key": "yesterday",
|
||||||
"name": "Yesterday"
|
"name": "Yesterday"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "delta",
|
||||||
|
"name": "Delta",
|
||||||
|
"format": "example.delta"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"ranges": [
|
"ranges": [
|
||||||
|
26
example/generator/src/SinewaveConstants.js
Normal file
26
example/generator/src/SinewaveConstants.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* 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({
|
||||||
|
START_TIME: Date.now() - 24 * 60 * 60 * 1000 // Now minus a day.
|
||||||
|
});
|
68
example/generator/src/SinewaveDeltaFormat.js
Normal file
68
example/generator/src/SinewaveDeltaFormat.js
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
* 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(
|
||||||
|
['./SinewaveConstants', 'moment'],
|
||||||
|
function (SinewaveConstants, moment) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var START_TIME = SinewaveConstants.START_TIME,
|
||||||
|
NUMBER_REGEX = /^\d+$/,
|
||||||
|
SECOND = 1000,
|
||||||
|
MINUTE = SECOND * 60,
|
||||||
|
HOUR = MINUTE * 60;
|
||||||
|
|
||||||
|
function SinewaveDeltaFormat() {
|
||||||
|
}
|
||||||
|
|
||||||
|
function twoDigit(v) {
|
||||||
|
return v >= 10 ? String(v) : ('0' + v);
|
||||||
|
}
|
||||||
|
|
||||||
|
SinewaveDeltaFormat.prototype.format = function (value) {
|
||||||
|
var delta = value - START_TIME,
|
||||||
|
seconds = Math.floor(delta / SECOND) % 60,
|
||||||
|
minutes = Math.floor(delta / MINUTE) % 60,
|
||||||
|
hours = Math.floor(delta / HOUR);
|
||||||
|
return [ hours, minutes, seconds ].map(twoDigit).join(":");
|
||||||
|
};
|
||||||
|
|
||||||
|
SinewaveDeltaFormat.prototype.validate = function (text) {
|
||||||
|
var parts = text.split(":");
|
||||||
|
return parts.length === 3 && parts.every(function (part) {
|
||||||
|
return NUMBER_REGEX.test(part);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
SinewaveDeltaFormat.prototype.parse = function (text) {
|
||||||
|
var parts = text.split(":");
|
||||||
|
return [ HOUR, MINUTE, SECOND ].map(function (sz, i) {
|
||||||
|
return parseInt(parts[i], 10) * sz;
|
||||||
|
}).reduce(function (a, b) {
|
||||||
|
return a + b;
|
||||||
|
}, 0);
|
||||||
|
};
|
||||||
|
|
||||||
|
return SinewaveDeltaFormat;
|
||||||
|
}
|
||||||
|
);
|
@ -25,12 +25,12 @@
|
|||||||
* Module defining SinewaveTelemetry. Created by vwoeltje on 11/12/14.
|
* Module defining SinewaveTelemetry. Created by vwoeltje on 11/12/14.
|
||||||
*/
|
*/
|
||||||
define(
|
define(
|
||||||
[],
|
['./SinewaveConstants'],
|
||||||
function () {
|
function (SinewaveConstants) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var ONE_DAY = 60 * 60 * 24,
|
var ONE_DAY = 60 * 60 * 24,
|
||||||
firstObservedTime = Math.floor(Date.now() / 1000) - ONE_DAY;
|
firstObservedTime = SinewaveConstants.START_TIME;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -58,6 +58,9 @@ define(
|
|||||||
};
|
};
|
||||||
|
|
||||||
generatorData.getDomainValue = function (i, domain) {
|
generatorData.getDomainValue = function (i, domain) {
|
||||||
|
// delta uses the same numeric values as the default domain,
|
||||||
|
// so it's not checked for here, just formatted for display
|
||||||
|
// differently.
|
||||||
return (i + offset) * 1000 + firstTime * 1000 -
|
return (i + offset) * 1000 + firstTime * 1000 -
|
||||||
(domain === 'yesterday' ? ONE_DAY : 0);
|
(domain === 'yesterday' ? ONE_DAY : 0);
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user