 8db75bf41e
			
		
	
	8db75bf41e
	
	
	
		
			
			* [API] Support dynamic telemetry metadata Add support for dynamic telemetry metadata via custom telemetry metadata providers. The metadata provider API should be considered unstable in it's current invocation. * Perform deprecation checking at runtime * SWG uses telemetry metadata provider * Don't throw with no matched metadata provider * Update API docs * Add license header * Combine metadata providers with general telemetry providers * Replace `TelemetryAPI.canProvideTelemetry` with `TelemetryAPI.isTelemetryObject`. * CanProvideTelemetry is deprecated * Change SWG inputs to numberfield
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*****************************************************************************
 | |
|  * Open MCT, Copyright (c) 2014-2017, United States Government
 | |
|  * as represented by the Administrator of the National Aeronautics and Space
 | |
|  * Administration. All rights reserved.
 | |
|  *
 | |
|  * Open MCT 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 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([
 | |
| 
 | |
| ], function (
 | |
| 
 | |
| ) {
 | |
| 
 | |
|     var RED = 0.9,
 | |
|         YELLOW = 0.5,
 | |
|         LIMITS = {
 | |
|             rh: {
 | |
|                 cssClass: "s-limit-upr s-limit-red",
 | |
|                 low: RED,
 | |
|                 high: Number.POSITIVE_INFINITY,
 | |
|                 name: "Red High"
 | |
|             },
 | |
|             rl: {
 | |
|                 cssClass: "s-limit-lwr s-limit-red",
 | |
|                 high: -RED,
 | |
|                 low: Number.NEGATIVE_INFINITY,
 | |
|                 name: "Red Low"
 | |
|             },
 | |
|             yh: {
 | |
|                 cssClass: "s-limit-upr s-limit-yellow",
 | |
|                 low: YELLOW,
 | |
|                 high: RED,
 | |
|                 name: "Yellow High"
 | |
|             },
 | |
|             yl: {
 | |
|                 cssClass: "s-limit-lwr s-limit-yellow",
 | |
|                 low: -RED,
 | |
|                 high: -YELLOW,
 | |
|                 name: "Yellow Low"
 | |
|             }
 | |
|         };
 | |
| 
 | |
|     function SinewaveLimitProvider() {
 | |
| 
 | |
|     }
 | |
| 
 | |
|     SinewaveLimitProvider.prototype.supportsLimits = function (domainObject) {
 | |
|         return domainObject.type === 'generator';
 | |
|     };
 | |
| 
 | |
|     SinewaveLimitProvider.prototype.getLimitEvaluator = function (domainObject) {
 | |
|         return {
 | |
|             evaluate: function (datum, valueMetadata) {
 | |
|                 var range = valueMetadata ? valueMetadata.key : 'sin'
 | |
|                 if (datum[range] > RED) {
 | |
|                     return LIMITS.rh;
 | |
|                 }
 | |
|                 if (datum[range] < -RED) {
 | |
|                     return LIMITS.rl;
 | |
|                 }
 | |
|                 if (datum[range] > YELLOW) {
 | |
|                     return LIMITS.yh;
 | |
|                 }
 | |
|                 if (datum[range] < -YELLOW) {
 | |
|                     return LIMITS.yl;
 | |
|                 }
 | |
|             }
 | |
|         };
 | |
|     };
 | |
| 
 | |
|     return SinewaveLimitProvider;
 | |
| });
 |