149 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			5.3 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([
 | |
|     "./GeneratorProvider",
 | |
|     "./SinewaveLimitCapability"
 | |
| ], function (
 | |
|     GeneratorProvider,
 | |
|     SinewaveLimitCapability
 | |
| ) {
 | |
| 
 | |
|     var legacyExtensions = {
 | |
|         "capabilities": [
 | |
|             {
 | |
|                 "key": "limit",
 | |
|                 "implementation": SinewaveLimitCapability
 | |
|             }
 | |
|         ]
 | |
|     };
 | |
| 
 | |
|     return function(openmct){
 | |
|         //Register legacy extensions for things not yet supported by the new API
 | |
|         Object.keys(legacyExtensions).forEach(function (type){
 | |
|             var extensionsOfType = legacyExtensions[type];
 | |
|             extensionsOfType.forEach(function (extension) {
 | |
|                 openmct.legacyExtension(type, extension)
 | |
|             })
 | |
|         });
 | |
|         openmct.types.addType("generator", {
 | |
|             name: "Sine Wave Generator",
 | |
|             description: "For development use. Generates example streaming telemetry data using a simple sine wave algorithm.",
 | |
|             cssClass: "icon-telemetry",
 | |
|             creatable: true,
 | |
|             form: [
 | |
|                 {
 | |
|                     name: "Period",
 | |
|                     control: "textfield",
 | |
|                     cssClass: "l-input-sm l-numeric",
 | |
|                     key: "period",
 | |
|                     required: true,
 | |
|                     property: [
 | |
|                         "telemetry",
 | |
|                         "period"
 | |
|                     ],
 | |
|                     pattern: "^\\d*(\\.\\d*)?$"
 | |
|                 },
 | |
|                 {
 | |
|                     name: "Amplitude",
 | |
|                     control: "textfield",
 | |
|                     cssClass: "l-input-sm l-numeric",
 | |
|                     key: "amplitude",
 | |
|                     required: true,
 | |
|                     property: [
 | |
|                         "telemetry",
 | |
|                         "amplitude"
 | |
|                     ],
 | |
|                     pattern: "^\\d*(\\.\\d*)?$"
 | |
|                 },
 | |
|                 {
 | |
|                     name: "Offset",
 | |
|                     control: "textfield",
 | |
|                     cssClass: "l-input-sm l-numeric",
 | |
|                     key: "offset",
 | |
|                     required: true,
 | |
|                     property: [
 | |
|                         "telemetry",
 | |
|                         "offset"
 | |
|                     ],
 | |
|                     pattern: "^\\d*(\\.\\d*)?$"
 | |
|                 },
 | |
|                 {
 | |
|                     name: "Data Rate (hz)",
 | |
|                     control: "textfield",
 | |
|                     cssClass: "l-input-sm l-numeric",
 | |
|                     key: "dataRateInHz",
 | |
|                     required: true,
 | |
|                     property: [
 | |
|                         "telemetry",
 | |
|                         "dataRateInHz"
 | |
|                     ],
 | |
|                     pattern: "^\\d*(\\.\\d*)?$"
 | |
|                 }
 | |
|             ],
 | |
|             initialize: function (object) {
 | |
|                 object.telemetry = {
 | |
|                     period: 10,
 | |
|                     amplitude: 1,
 | |
|                     offset: 0,
 | |
|                     dataRateInHz: 1,
 | |
|                     values: [
 | |
|                         {
 | |
|                             key: "utc",
 | |
|                             name: "Time",
 | |
|                             format: "utc",
 | |
|                             hints: {
 | |
|                                 domain: 1
 | |
|                             }
 | |
|                         },
 | |
|                         {
 | |
|                             key: "yesterday",
 | |
|                             name: "Yesterday",
 | |
|                             format: "utc",
 | |
|                             hints: {
 | |
|                                 domain: 2
 | |
|                             }
 | |
|                         },
 | |
|                         {
 | |
|                             key: "sin",
 | |
|                             name: "Sine",
 | |
|                             hints: {
 | |
|                                 range: 1
 | |
|                             }
 | |
|                         },
 | |
|                         {
 | |
|                             key: "cos",
 | |
|                             name: "Cosine",
 | |
|                             hints: {
 | |
|                                 range: 2
 | |
|                             }
 | |
|                         }
 | |
|                     ]
 | |
|                 };
 | |
|             }
 | |
|         });
 | |
|         openmct.telemetry.addProvider(new GeneratorProvider());
 | |
|     };
 | |
| 
 | |
| });
 | 
