openc3-cosmos-tool-handbooks 5.19.0 → 5.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/tools/handbooks/js/565.js +1 -1
- data/tools/handbooks/js/565.js.map +1 -1
- data/tools/handbooks/js/app.js +1 -1
- data/tools/handbooks/js/app.js.map +1 -1
- metadata +2 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"js/565.js","mappings":"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","sources":["webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Handbooks.vue","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/services/axios.js","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/services/openc3-api.js","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/components/TopBar.vue","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/components/TopBar.vue?c4b5","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/components/TopBar.vue?a437","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Target.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Packet.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Item.vue","webpack://@openc3/cosmos-tool-handbooks/src/tools/Handbooks/Item.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Item.vue?1221","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Item.vue?85c4","webpack://@openc3/cosmos-tool-handbooks/src/tools/Handbooks/Packet.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Packet.vue?663c","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Packet.vue?a8e2","webpack://@openc3/cosmos-tool-handbooks/src/tools/Handbooks/Target.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Target.vue?69b3","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Target.vue?cdc5","webpack://@openc3/cosmos-tool-handbooks/src/tools/Handbooks/Handbooks.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Handbooks.vue?1265","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Handbooks.vue?585c","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/components/TopBar.vue?e2ab","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/components/TopBar.vue?ca18"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('top-bar',{attrs:{\"menus\":_vm.menus,\"title\":_vm.title}}),_vm._v(\" \"),_c('v-card',[_c('v-container',{staticClass:\"d-print-none\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-select',{staticClass:\"ma-0 pa-0\",attrs:{\"label\":\"Select Target(s)\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"items\":_vm.targetNames,\"multiple\":\"\"},on:{\"change\":_vm.targetSelect},scopedSlots:_vm._u([{key:\"prepend-item\",fn:function(){return [_c('v-list-item',{attrs:{\"ripple\":\"\"},on:{\"mousedown\":function($event){$event.preventDefault();},\"click\":_vm.toggleTargets}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\"\\n \"+_vm._s(_vm.icon)+\"\\n \")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" Select All \")])],1)],1),_vm._v(\" \"),_c('v-divider',{staticClass:\"mt-2\"})]},proxy:true}]),model:{value:(_vm.selectedTargetNames),callback:function ($$v) {_vm.selectedTargetNames=$$v},expression:\"selectedTargetNames\"}})],1),_vm._v(\" \"),_c('v-col',[_c('v-btn',{staticClass:\"primary\",on:{\"click\":function($event){_vm.renderedTargetNames = _vm.selectedTargetNames}}},[_vm._v(\"\\n Display\\n \")])],1),_vm._v(\" \"),_c('v-col',[_c('v-select',{attrs:{\"label\":\"Item Columns\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"items\":_vm.columnItems},model:{value:(_vm.columns),callback:function ($$v) {_vm.columns=$$v},expression:\"columns\"}})],1)],1)],1)],1),_vm._v(\" \"),_c('div',{staticStyle:{\"height\":\"15px\"}}),_vm._v(\" \"),_vm._l((_vm.renderedTargetNames),function(target){return _c('div',{key:target},[_c('target',{attrs:{\"target\":target,\"columns\":_vm.columns,\"hideIgnored\":_vm.hideIgnored,\"hideDerived\":_vm.hideDerived}})],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport axios from 'axios'\nimport Vue from 'vue'\n\nconst vueInstance = new Vue()\n\nconst axiosInstance = axios.create({\n baseURL: location.origin,\n timeout: 60000,\n params: {},\n})\n\naxiosInstance.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity, true).then(\n function (refreshed) {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n },\n )\n }\n // Individual tools can set 'Ignore-Errors' to an error code\n // they potentially expect, e.g. '500', in which case we ignore it\n // For example in CommandSender.vue:\n // obs = this.api.cmd(targetName, commandName, paramList, {\n // headers: {\n // 'Ignore-Errors': '404',\n // },\n // })\n if (\n error.response.config.headers['Ignore-Errors'] &&\n error.response.config.headers['Ignore-Errors'].includes(\n error.response.status.toString(),\n )\n ) {\n return Promise.reject(error)\n }\n let body = `HTTP ${error.response.status} - `\n if (error.response?.statusText) {\n body += `${error.response.statusText} `\n }\n if (error.response?.config?.data) {\n body += `${error.response.config.data} `\n }\n if (error.response?.data?.message) {\n body += `${error.response.data.message}`\n } else if (error.response?.data?.exception) {\n body += `${error.response.data.exception}`\n } else if (error.response?.data?.error?.message) {\n if (error.response.data.error.class) {\n body += `${error.response.data.error.class} `\n }\n body += `${error.response.data.error.message}`\n } else {\n body += `${error.response?.data}`\n }\n if (vueInstance.$notify) {\n vueInstance.$notify.serious({\n title: 'Network error',\n body,\n })\n }\n throw error\n } else {\n throw error\n }\n },\n)\n\nexport default axiosInstance\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport axios from './axios.js'\n\nexport class OpenC3Api {\n id = 1\n\n constructor() {}\n\n async exec(\n method,\n params,\n kwparams = {},\n headerOptions = {},\n timeout = 60000\n ) {\n try {\n let refreshed = await OpenC3Auth.updateToken(\n OpenC3Auth.defaultMinValidity\n )\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n } catch (error) {\n OpenC3Auth.login()\n }\n this.id = this.id + 1\n try {\n kwparams['scope'] = window.openc3Scope\n // Everything from the front-end is manual by default\n // The various api methods decide whether to pass the manual\n // flag to the authorize routine\n headerOptions['manual'] = true\n const response = await axios.post(\n '/openc3-api/api',\n {\n jsonrpc: '2.0',\n method: method,\n params: params,\n id: this.id,\n keyword_params: kwparams,\n },\n {\n headers: {\n Authorization: localStorage.openc3Token,\n 'Content-Type': 'application/json-rpc',\n ...headerOptions,\n },\n timeout: timeout,\n }\n )\n // let data = response.data\n // if (data.error) {\n // let err = new Error()\n // err.name = data.error.data.class\n // err.message = data.error.data.message\n // console.log(data.error.data.backtrace.join('\\n'))\n // throw err\n // }\n return response.data.result\n } catch (error) {\n let err = new Error()\n if (error.response) {\n // The request was made and the server responded with a\n // status code that falls out of the range of 2xx\n err.name = error.response.data.error.data.class\n err.message = error.response.data.error.data.message\n } else if (error.request) {\n // The request was made but no response was received, `error.request`\n // is an instance of XMLHttpRequest in the browser and an instance\n // of http.ClientRequest in Node.js\n err.name = 'Request error'\n // NOTE: Openc3Screen.vue uses this specific message to determine\n // if the CmdTlmApi server is down. Don't change unless also changing there.\n err.message = 'Request error, no response received'\n } else {\n // Something happened in setting up the request and triggered an Error\n err.name = 'Unknown error'\n }\n throw err\n }\n }\n\n decode_openc3_type(val) {\n if (val !== null && typeof val === 'object') {\n if (val.json_class == 'Float' && val.raw) {\n if (val.raw == 'NaN') {\n return NaN\n } else if (val.raw == 'Infinity') {\n return Infinity\n } else if (val.raw == '-Infinity') {\n return -Infinity\n }\n }\n }\n return null\n }\n\n encode_openc3_type(val) {\n if (Number.isNaN(val)) {\n return { json_class: 'Float', raw: 'NaN' }\n } else if (val == Number.POSITIVE_INFINITY) {\n return { json_class: 'Float', raw: 'Infinity' }\n } else if (val == Number.NEGATIVE_INFINITY) {\n return { json_class: 'Float', raw: '-Infinity' }\n }\n return null\n }\n\n ensure_offline_access() {\n this.offline_access_needed().then((needed) => {\n if (needed) {\n if (localStorage.openc3OfflineToken) {\n this.set_offline_access(localStorage.openc3OfflineToken).then(() => {\n delete localStorage.openc3OfflineToken\n })\n } else {\n OpenC3Auth.getOfflineAccess()\n }\n }\n })\n }\n\n // ***********************************************\n // The following APIs are used by the CmdTlmServer\n // ***********************************************\n\n offline_access_needed() {\n return this.exec('offline_access_needed', [])\n }\n\n set_offline_access(offline_access_token) {\n return this.exec('set_offline_access', [offline_access_token])\n }\n\n get_all_interface_info() {\n return this.exec('get_all_interface_info', [])\n }\n\n map_target_to_interface(target_name, interface_name) {\n return this.exec('map_target_to_interface', [target_name, interface_name])\n }\n\n connect_interface(interface_name, ...interface_params) {\n if (interface_params.length > 0) {\n return this.exec('connect_interface', [\n interface_name,\n ...interface_params,\n ])\n } else {\n return this.exec('connect_interface', [interface_name])\n }\n }\n\n disconnect_interface(interface_name) {\n return this.exec('disconnect_interface', [interface_name])\n }\n\n interface_cmd(interface_name, command_name, ...command_params) {\n return this.exec('interface_cmd', [\n interface_name,\n command_name,\n ...command_params,\n ])\n }\n\n get_all_router_info() {\n return this.exec('get_all_router_info', [])\n }\n\n connect_router(router_name) {\n return this.exec('connect_router', [router_name])\n }\n\n disconnect_router(router_name) {\n return this.exec('disconnect_router', [router_name])\n }\n\n get_target_interfaces() {\n return this.exec('get_target_interfaces', [])\n }\n\n // DEPRECATED\n get_all_target_info() {\n return this.exec('get_all_target_info', [])\n }\n\n get_tlm_cnts(target_commands) {\n return this.exec('get_tlm_cnts', [target_commands])\n }\n\n get_item(target, packet, item) {\n return this.exec('get_item', [target, packet, item])\n }\n\n get_param(target, packet, item) {\n return this.exec('get_param', [target, packet, item])\n }\n // DEPRECATED for get_param\n get_parameter(target, packet, item) {\n return this.exec('get_parameter', [target, packet, item])\n }\n\n get_limits_sets() {\n return this.exec('get_limits_sets', [])\n }\n\n get_limits_set() {\n return this.exec('get_limits_set', [])\n }\n\n set_limits_set(limits_set) {\n return this.exec('set_limits_set', [limits_set])\n }\n\n // ***********************************************\n // End CmdTlmServer APIs\n // ***********************************************\n\n get_target(target_name) {\n return this.exec('get_target', [target_name])\n }\n\n get_target_names() {\n return this.exec('get_target_names', [])\n }\n // DEPRECATED\n get_target_list() {\n return this.exec('get_target_list', [])\n }\n\n get_tlm(target_name, packet_name) {\n return this.exec('get_tlm', [target_name, packet_name])\n }\n // DEPRECATED\n get_telemetry(target_name, packet_name) {\n return this.exec('get_telemetry', [target_name, packet_name])\n }\n\n get_all_tlm(target_name) {\n return this.exec('get_all_tlm', [target_name])\n }\n // DEPRECATED\n get_all_telemetry(target_name) {\n return this.exec('get_all_telemetry', [target_name])\n }\n\n get_all_tlm_names(target_name, hidden = false) {\n return this.exec('get_all_tlm_names', [target_name], { hidden: hidden })\n }\n // DEPRECATED\n get_all_telemetry_names(target_name) {\n return this.exec('get_all_telemetry_names', [target_name])\n }\n\n async get_tlm_packet(target_name, packet_name, value_type, stale_time = 30) {\n const data = await this.exec('get_tlm_packet', [target_name, packet_name], {\n type: value_type,\n stale_time: stale_time,\n })\n // Make sure data isn't null or undefined. Note this is the only valid use of == or !=\n if (data != null) {\n let len = data.length\n let converted = null\n for (let i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[i][1])\n if (converted !== null) {\n data[i][1] = converted\n }\n }\n }\n return data\n }\n\n get_packet_derived_items(target_name, packet_name) {\n return this.exec('get_packet_derived_items', [target_name, packet_name])\n }\n\n get_tlm_buffer(target_name, packet_name) {\n return this.exec('get_tlm_buffer', [target_name, packet_name])\n }\n\n async get_tlm_values(items, stale_time = 30, cache_timeout = null) {\n let kw_args = {\n stale_time: stale_time,\n }\n if (cache_timeout !== null) {\n kw_args['cache_timeout'] = cache_timeout\n }\n const data = await this.exec(\n 'get_tlm_values',\n [items],\n kw_args,\n {},\n 10000 // 10s timeout ... should never be this long\n )\n let len = data[0].length\n let converted = null\n for (let i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[0][i])\n if (converted !== null) {\n data[0][i] = converted\n }\n }\n return data\n }\n\n get_limits(target_name, packet_name, item_name) {\n return this.exec('get_limits', [target_name, packet_name, item_name])\n }\n\n async tlm(target_name, packet_name, item_name, value_type = 'CONVERTED') {\n let data = null\n // Check for the single string syntax: tlm(\"TGT PKT ITEM\")\n if (packet_name === undefined) {\n data = await this.exec('tlm', [target_name])\n // Check for the single string syntax with type: tlm(\"TGT PKT ITEM\", \"RAW\")\n } else if (item_name === undefined) {\n if (\n ['RAW', 'CONVERTED', 'FORMATTED', 'WITH_UNITS'].includes(packet_name)\n ) {\n data = await this.exec('tlm', [target_name], { type: packet_name })\n } else {\n let err = new Error()\n err.name = 'TypeError'\n err.message = `Invalid data type ${packet_name}. Valid options are RAW, CONVERTED, FORMATTED, and WITH_UNITS.`\n throw err\n }\n } else {\n data = await this.exec('tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n let converted = this.decode_openc3_type(data)\n if (converted !== null) {\n data = converted\n }\n return data\n }\n\n async inject_tlm(\n target_name,\n packet_name,\n item_hash = null,\n value_type = 'CONVERTED'\n ) {\n data = await this.exec(\n 'inject_tlm',\n [target_name, packet_name, item_hash],\n {\n type: value_type,\n }\n )\n }\n\n set_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('set_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n override_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('override_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n get_overrides() {\n return this.exec('get_overrides')\n }\n\n normalize_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('normalize_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n get_all_cmds(target_name) {\n return this.exec('get_all_cmds', [target_name])\n }\n // DEPRECATED for get_all_cmds\n get_all_commands(target_name) {\n return this.exec('get_all_commands', [target_name])\n }\n\n get_all_cmd_names(target_name, hidden = false) {\n return this.exec('get_all_cmd_names', [target_name], { hidden: hidden })\n }\n // DEPRECATED for get_all_cmd_names\n get_all_command_names(target_name) {\n return this.exec('get_all_command_names', [target_name])\n }\n\n get_cmd(target_name, command_name) {\n return this.exec('get_cmd', [target_name, command_name])\n }\n // DEPRECATED for get_cmd\n get_command(target_name, command_name) {\n return this.exec('get_command', [target_name, command_name])\n }\n\n get_cmd_cnts(target_commands) {\n return this.exec('get_cmd_cnts', [target_commands])\n }\n\n get_cmd_value(\n target_name,\n packet_name,\n parameter_name,\n value_type = 'CONVERTED'\n ) {\n return this.exec('get_cmd_value', [\n target_name,\n packet_name,\n parameter_name,\n value_type,\n ])\n }\n\n get_cmd_buffer(target_name, packet_name) {\n return this.exec('get_cmd_buffer', [target_name, packet_name])\n }\n\n // Implementation of functionality shared by cmd methods with param_lists.\n _cmd(method, target_name, command_name, param_list, headerOptions) {\n let converted = null\n for (let key in param_list) {\n if (Object.prototype.hasOwnProperty.call(param_list, key)) {\n converted = this.encode_openc3_type(param_list[key])\n if (converted !== null) {\n param_list[key] = converted\n }\n }\n }\n return this.exec(\n method,\n [target_name, command_name, param_list],\n {},\n headerOptions\n )\n }\n\n get_cmd_hazardous(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('get_cmd_hazardous', target_name)\n } else {\n return this._cmd(\n 'get_cmd_hazardous',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n cmd(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('cmd', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd',\n target_name,\n command_name,\n param_list,\n headerOptions\n )\n }\n }\n\n cmd_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_range_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n cmd_raw(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw', target_name)\n } else {\n return this._cmd('cmd_raw', target_name, command_name, param_list)\n }\n }\n\n cmd_raw_no_range_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_range_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_range_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n cmd_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_no_hazardous_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n cmd_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_no_checks', target_name)\n } else {\n return this._cmd('cmd_no_checks', target_name, command_name, param_list)\n }\n }\n\n cmd_raw_no_hazardous_check(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_hazardous_check', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_hazardous_check',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n cmd_raw_no_checks(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_checks', target_name)\n } else {\n return this._cmd(\n 'cmd_raw_no_checks',\n target_name,\n command_name,\n param_list\n )\n }\n }\n\n build_cmd(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('build_cmd', target_name)\n } else {\n return this._cmd('build_cmd', target_name, command_name, param_list)\n }\n }\n // DEPRECATED for build_cmd\n build_command(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('build_command', target_name)\n } else {\n return this._cmd('build_command', target_name, command_name, param_list)\n }\n }\n\n get_interface_names() {\n return this.exec('get_interface_names', [])\n }\n\n send_raw(interface_name, data) {\n return this.exec('send_raw', [interface_name, data])\n }\n\n list_configs(tool) {\n return this.exec('list_configs', [tool])\n }\n\n load_config(tool, name) {\n return this.exec('load_config', [tool, name])\n }\n\n save_config(tool, name, data) {\n return this.exec('save_config', [tool, name, data])\n }\n\n delete_config(tool, name) {\n return this.exec('delete_config', [tool, name])\n }\n\n enable_limits(target, packet, item) {\n return this.exec('enable_limits', [target, packet, item])\n }\n\n disable_limits(target, packet, item) {\n return this.exec('disable_limits', [target, packet, item])\n }\n\n get_out_of_limits() {\n return this.exec('get_out_of_limits', [])\n }\n\n get_overall_limits_state(ignored) {\n return this.exec('get_overall_limits_state', [ignored])\n }\n\n list_settings() {\n return this.exec('list_settings', [])\n }\n\n get_all_settings() {\n return this.exec('get_all_settings', [])\n }\n\n get_setting(name) {\n return this.exec('get_setting', [name])\n }\n\n get_settings(array) {\n return this.exec('get_settings', array)\n }\n\n set_setting(name, data) {\n return this.exec('set_setting', [name, data])\n }\n\n // DEPRECATED\n save_setting(name, data) {\n return this.exec('save_setting', [name, data])\n }\n\n get_metrics() {\n return this.exec('get_metrics', [])\n }\n\n // TODO: Currently unused but seemed like a useful function\n async hashString(string) {\n if (window.isSecureContext) {\n // Encode the string as an arrayBuffer which the subtle crypto API uses\n const arrayBuffer = new TextEncoder().encode(string)\n // Use the subtle crypto API to perform a SHA256 Sum of the array buffer\n // The resulting hash is stored in an array buffer\n const hashAsArrayBuffer = await crypto.subtle.digest(\n 'SHA-256',\n arrayBuffer\n )\n // To create a string we will get the hexadecimal value of each byte of the array buffer\n // This gets us an array where each byte of the array buffer becomes one item in the array\n const uint8ViewOfHash = new Uint8Array(hashAsArrayBuffer)\n // We then convert it to a regular array so we can convert each item to hexadecimal strings\n // Where to characters of 0-9 or a-f represent a number between 0 and 16, containing 4 bits of information, so 2 of them is 8 bits (1 byte).\n return Array.from(uint8ViewOfHash)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('')\n }\n // else ?\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('mounting-portal',{attrs:{\"mount-to\":\"#openc3-menu\",\"append\":\"\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"align-self\":\"end\"}},[_c('span',{staticClass:\"app-title mr-2\"},[_vm._v(_vm._s(_vm.title))])])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"flex-nowrap\",attrs:{\"dense\":\"\"}},_vm._l((_vm.menus),function(menu,i){return _c('v-menu',{key:i,ref:\"topmenu\",refInFor:true,attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mx-1 menu-button\",attrs:{\"outlined\":\"\",\"data-test\":_vm.formatDT(`${_vm.title} ${menu.label}`)}},'v-btn',attrs,false),on),[_c('span',{domProps:{\"textContent\":_vm._s(menu.label)}}),_vm._v(\" \"),_c('v-icon',{staticClass:\"myicon\",attrs:{\"right\":\"\"}},[_vm._v(\" mdi-menu-down \")])],1)]}}],null,true)},[_vm._v(\" \"),_c('v-list',[_c('v-radio-group',{staticClass:\"ma-0 pa-0\",attrs:{\"value\":menu.radioGroup,\"hide-details\":\"\",\"dense\":\"\"}},[_vm._l((menu.items),function(option,j){return [(option.divider)?_c('v-divider',{key:j}):(option.subMenu && option.subMenu.length > 0)?_c('div',{key:j},[_c('v-menu',{key:_vm.k,attrs:{\"open-on-hover\":\"\",\"offset-x\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-list-item',_vm._g(_vm._b({key:j,attrs:{\"disabled\":option.disabled}},'v-list-item',attrs,false),on),[(option.icon)?_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":option.disabled}},[_vm._v(_vm._s(option.icon))])],1):_vm._e(),_vm._v(\" \"),(!option.radio && !option.checkbox)?_c('v-list-item-title',{style:('cursor: pointer;' +\n (option.disabled ? 'opacity: 0.2' : ''))},[_vm._v(_vm._s(option.label)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('v-icon',[_vm._v(\" mdi-chevron-right \")])],1)]}}],null,true)},[_vm._v(\" \"),_c('v-list',_vm._l((option.subMenu),function(submenu,k){return _c('v-list-item',{key:k,on:{\"click\":function($event){return _vm.subMenuClick(submenu)}}},[(submenu.icon)?_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(submenu.icon))])],1):_vm._e(),_vm._v(\" \"),_c('v-list-item-title',[_vm._v(_vm._s(submenu.label))])],1)}),1)],1)],1):_c('v-list-item',{key:j,attrs:{\"disabled\":option.disabled,\"data-test\":_vm.formatDT(`${_vm.title} ${menu.label} ${option.label}`)},on:{\"click\":function($event){return option.command(option)}}},[(option.radio)?_c('v-list-item-action',{staticClass:\"list-action\"},[_c('v-radio',{attrs:{\"color\":\"secondary\",\"label\":option.label,\"value\":option.label}})],1):_vm._e(),_vm._v(\" \"),(option.checkbox)?_c('v-list-item-action',{staticClass:\"list-action\"},[_c('v-checkbox',{attrs:{\"color\":\"secondary\",\"label\":option.label},model:{value:(option.checked),callback:function ($$v) {_vm.$set(option, \"checked\", $$v)},expression:\"option.checked\"}})],1):_vm._e(),_vm._v(\" \"),(option.icon)?_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":option.disabled}},[_vm._v(_vm._s(option.icon))])],1):_vm._e(),_vm._v(\" \"),(!option.radio && !option.checkbox)?_c('v-list-item-title',{style:('cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : ''))},[_vm._v(_vm._s(option.label))]):_vm._e()],1)]})],2)],1)],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TopBar.vue?vue&type=template&id=0af23388&scoped=true\"\nimport script from \"./TopBar.vue?vue&type=script&lang=js\"\nexport * from \"./TopBar.vue?vue&type=script&lang=js\"\nimport style0 from \"./TopBar.vue?vue&type=style&index=0&id=0af23388&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0af23388\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-container',{attrs:{\"id\":_vm.target}},[_c('div',{staticClass:\"text-h3 text-center\"},[_vm._v(_vm._s(_vm.target))]),_vm._v(\" \"),_c('v-row',[_c('v-col',{staticClass:\"ml-3 text-h4\"},[_vm._v(\"Commands\")])],1),_vm._v(\" \"),_vm._l((_vm.commands),function(packet){return _c('v-row',{key:packet.packetName,staticClass:\"mb-4\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":12}},[_c('packet',{attrs:{\"packet\":packet,\"columns\":_vm.columns,\"hideIgnored\":_vm.hideIgnored,\"hideDerived\":_vm.hideDerived,\"ignored\":_vm.ignoredParams}})],1)],1)}),_vm._v(\" \"),_c('v-row',[_c('v-col',{staticClass:\"ml-3 text-h4\"},[_vm._v(\"Telemetry\")])],1),_vm._v(\" \"),_vm._l((_vm.telemetry),function(packet){return _c('v-row',{key:packet.packetName,staticClass:\"mb-4\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":12}},[_c('packet',{attrs:{\"packet\":packet,\"columns\":_vm.columns,\"hideIgnored\":_vm.hideIgnored,\"hideDerived\":_vm.hideDerived,\"ignored\":_vm.ignoredItems}})],1)],1)})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-card-title',{staticClass:\"text-h4 justify-center\"},[_vm._v(_vm._s(_vm.packet.target_name)+\" \"+_vm._s(_vm.packet.packet_name))]),_vm._v(\" \"),_c('v-card-subtitle',[_vm._v(_vm._s(_vm.packet.description)+\"\\n \"),_c('div',{staticClass:\"float-right\"},[_vm._v(_vm._s(_vm.packet.endianness))])]),_vm._v(\" \"),_c('v-card-text',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},_vm._l((_vm.items),function(item){return _c('v-col',{key:item.name,attrs:{\"cols\":_vm.columns}},[_c('item',{attrs:{\"item\":item}})],1)}),1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"outlined\":\"\"}},[_c('v-card-title',{staticClass:\"justify-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.item.name)+\"\\n \")]),_vm._v(\" \"),_c('v-card-subtitle',[_vm._v(_vm._s(_vm.item.description))]),_vm._v(\" \"),_c('v-card-text',{staticClass:\"text--primary\"},[_c('div',[_vm._v(\"Bit Offset: \"+_vm._s(_vm.item.bit_offset))]),_vm._v(\" \"),_c('div',[_vm._v(\"Bit Size: \"+_vm._s(_vm.item.bit_size))]),_vm._v(\" \"),_c('div',[_vm._v(\"Data Type: \"+_vm._s(_vm.item.data_type))]),_vm._v(\" \"),_c('div',[_vm._v(\"Endianness: \"+_vm._s(_vm.item.endianness))]),_vm._v(\" \"),_c('div',[_vm._v(\"Overflow: \"+_vm._s(_vm.item.overflow))]),_vm._v(\" \"),(Object.hasOwn(_vm.item, 'minimum'))?_c('div',[_vm._v(\"\\n Minimum: \"+_vm._s(_vm.item.minimum)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(Object.hasOwn(_vm.item, 'maximum'))?_c('div',[_vm._v(\"\\n Maximum: \"+_vm._s(_vm.item.maximum)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(Object.hasOwn(_vm.item, 'default'))?_c('div',[_vm._v(\"\\n Default: \"+_vm._s(_vm.item.default)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.item.id_value)?_c('div',[_c('strong',[_vm._v(\"ID Value: 0x\"+_vm._s(_vm.item.id_value.toString(16).toUpperCase()))])]):_vm._e(),_vm._v(\" \"),(_vm.readConversion)?_c('div',[_vm._v(\"Read Conversion: \"+_vm._s(_vm.readConversion))]):_vm._e(),_vm._v(\" \"),(_vm.writeConversion)?_c('div',[_vm._v(\"Write Conversion: \"+_vm._s(_vm.writeConversion))]):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card class=\"mx-auto\" outlined>\n <v-card-title class=\"justify-center\">\n {{ item.name }}\n </v-card-title>\n <v-card-subtitle>{{ item.description }}</v-card-subtitle>\n <v-card-text class=\"text--primary\">\n <div>Bit Offset: {{ item.bit_offset }}</div>\n <div>Bit Size: {{ item.bit_size }}</div>\n <div>Data Type: {{ item.data_type }}</div>\n <div>Endianness: {{ item.endianness }}</div>\n <div>Overflow: {{ item.overflow }}</div>\n <div v-if=\"Object.hasOwn(item, 'minimum')\">\n Minimum: {{ item.minimum }}\n </div>\n <div v-if=\"Object.hasOwn(item, 'maximum')\">\n Maximum: {{ item.maximum }}\n </div>\n <div v-if=\"Object.hasOwn(item, 'default')\">\n Default: {{ item.default }}\n </div>\n <div v-if=\"item.id_value\">\n <strong\n >ID Value: 0x{{ item.id_value.toString(16).toUpperCase() }}</strong\n >\n </div>\n <div v-if=\"readConversion\">Read Conversion: {{ readConversion }}</div>\n <div v-if=\"writeConversion\">Write Conversion: {{ writeConversion }}</div>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nexport default {\n props: {\n item: {\n type: Object,\n required: true,\n },\n hideIgnored: {\n type: Boolean,\n required: true,\n },\n hideDerived: {\n type: Boolean,\n required: true,\n },\n },\n computed: {\n readConversion() {\n if (Object.hasOwn(this.item, 'read_conversion')) {\n let result = `${this.item.read_conversion.class}`\n if (this.item.read_conversion.params) {\n result += ` with ${this.item.read_conversion.params.join(', ')}`\n }\n return result\n } else {\n return false\n }\n },\n writeConversion() {\n if (Object.hasOwn(this.item, 'write_conversion')) {\n let result = `${this.item.write_conversion.class}`\n if (this.item.write_conversion.params) {\n result += ` with ${this.item.write_conversion.params.join(', ')}`\n }\n return result\n } else {\n return false\n }\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Item.vue?vue&type=template&id=22d2b16a\"\nimport script from \"./Item.vue?vue&type=script&lang=js\"\nexport * from \"./Item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title class=\"text-h4 justify-center\"\n >{{ packet.target_name }} {{ packet.packet_name }}</v-card-title\n >\n <v-card-subtitle\n >{{ packet.description }}\n <div class=\"float-right\">{{ packet.endianness }}</div>\n </v-card-subtitle>\n <v-card-text>\n <v-container fluid>\n <v-row dense>\n <v-col v-for=\"item in items\" :key=\"item.name\" :cols=\"columns\">\n <item :item=\"item\"></item>\n </v-col>\n </v-row>\n </v-container>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport Item from './Item'\n\nexport default {\n components: {\n Item,\n },\n props: {\n packet: {\n type: Object,\n required: true,\n },\n columns: {\n type: Number,\n required: true,\n },\n hideIgnored: {\n type: Boolean,\n required: true,\n },\n hideDerived: {\n type: Boolean,\n required: true,\n },\n ignored: {\n type: Object,\n },\n },\n computed: {\n items() {\n let items = this.packet.items\n if (this.hideIgnored) {\n items = items.filter((item) => !this.ignored.includes(item.name))\n }\n if (this.hideDerived) {\n items = items.filter((item) => item.data_type !== 'DERIVED')\n }\n return items\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Packet.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Packet.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Packet.vue?vue&type=template&id=69a31f4f\"\nimport script from \"./Packet.vue?vue&type=script&lang=js\"\nexport * from \"./Packet.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-container :id=\"target\">\n <div class=\"text-h3 text-center\">{{ target }}</div>\n <v-row>\n <v-col class=\"ml-3 text-h4\">Commands</v-col>\n </v-row>\n <v-row\n v-for=\"packet in commands\"\n :key=\"packet.packetName\"\n dense\n class=\"mb-4\"\n >\n <v-col :cols=\"12\">\n <packet\n :packet=\"packet\"\n :columns=\"columns\"\n :hideIgnored=\"hideIgnored\"\n :hideDerived=\"hideDerived\"\n :ignored=\"ignoredParams\"\n ></packet>\n </v-col>\n </v-row>\n <v-row>\n <v-col class=\"ml-3 text-h4\">Telemetry</v-col>\n </v-row>\n <v-row\n v-for=\"packet in telemetry\"\n :key=\"packet.packetName\"\n dense\n class=\"mb-4\"\n >\n <v-col :cols=\"12\">\n <packet\n :packet=\"packet\"\n :columns=\"columns\"\n :hideIgnored=\"hideIgnored\"\n :hideDerived=\"hideDerived\"\n :ignored=\"ignoredItems\"\n ></packet>\n </v-col>\n </v-row>\n </v-container>\n </v-card>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\nimport Packet from './Packet'\n\nexport default {\n components: {\n Packet,\n },\n props: {\n target: {\n type: String,\n required: true,\n },\n columns: {\n type: Number,\n required: true,\n },\n hideIgnored: {\n type: Boolean,\n required: true,\n },\n hideDerived: {\n type: Boolean,\n required: true,\n },\n },\n data() {\n return {\n api: null,\n commands: [],\n telemetry: [],\n ignoredParams: [],\n ignoredItems: [],\n }\n },\n\n created() {\n this.api = new OpenC3Api()\n this.api.get_target(this.target).then((target) => {\n this.ignoredParams = target.ignored_parameters\n this.ignoredItems = target.ignored_items\n })\n // TODO: Test with large DB as this returns ALL commands\n this.api.get_all_cmds(this.target).then((packets) => {\n this.commands = packets\n })\n this.api.get_all_tlm(this.target).then((packets) => {\n this.telemetry = packets\n })\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Target.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Target.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Target.vue?vue&type=template&id=045280e6\"\nimport script from \"./Target.vue?vue&type=script&lang=js\"\nexport * from \"./Target.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <top-bar :menus=\"menus\" :title=\"title\" />\n <v-card>\n <v-container class=\"d-print-none\">\n <v-row dense>\n <v-col>\n <v-select\n class=\"ma-0 pa-0\"\n label=\"Select Target(s)\"\n dense\n hide-details\n outlined\n :items=\"targetNames\"\n v-model=\"selectedTargetNames\"\n @change=\"targetSelect\"\n multiple\n >\n <template v-slot:prepend-item>\n <v-list-item ripple @mousedown.prevent @click=\"toggleTargets\">\n <v-list-item-action>\n <v-icon>\n {{ icon }}\n </v-icon>\n </v-list-item-action>\n <v-list-item-content>\n <v-list-item-title> Select All </v-list-item-title>\n </v-list-item-content>\n </v-list-item>\n <v-divider class=\"mt-2\"></v-divider>\n </template>\n </v-select>\n </v-col>\n <v-col>\n <v-btn\n class=\"primary\"\n @click=\"renderedTargetNames = selectedTargetNames\"\n >\n Display\n </v-btn>\n </v-col>\n <v-col>\n <v-select\n label=\"Item Columns\"\n dense\n hide-details\n outlined\n v-model=\"columns\"\n :items=\"columnItems\"\n ></v-select>\n </v-col>\n </v-row>\n </v-container>\n </v-card>\n <div style=\"height: 15px\" />\n <div v-for=\"target in renderedTargetNames\" :key=\"target\">\n <target\n :target=\"target\"\n :columns=\"columns\"\n :hideIgnored=\"hideIgnored\"\n :hideDerived=\"hideDerived\"\n ></target>\n </div>\n </div>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\nimport TopBar from '@openc3/tool-common/src/components/TopBar'\nimport Target from './Target'\n\nexport default {\n components: {\n TopBar,\n Target,\n },\n data() {\n return {\n title: 'Handbooks',\n targetNames: [],\n selectedTargetNames: [],\n renderedTargetNames: [],\n api: null,\n columns: 3,\n columnItems: [\n { text: '1', value: 12 },\n { text: '2', value: 6 },\n { text: '3', value: 4 },\n { text: '4', value: 3 },\n { text: '6', value: 2 },\n { text: '12', value: 1 },\n ],\n hideIgnored: false,\n hideDerived: false,\n menus: [\n {\n label: 'View',\n items: [\n {\n label: 'Hide Ignored Items',\n checkbox: true,\n command: () => {\n this.hideIgnored = !this.hideIgnored\n },\n },\n {\n label: 'Hide Derived Items',\n checkbox: true,\n command: () => {\n this.hideDerived = !this.hideDerived\n },\n },\n ],\n },\n ],\n }\n },\n computed: {\n allTargetsSelected() {\n return this.targetNames.length === this.selectedTargetNames.length\n },\n someTargetsSelected() {\n return this.selectedTargetNames.length > 0 && !this.allTargetsSelected\n },\n icon() {\n if (this.allTargetsSelected) return 'mdi-close-box'\n if (this.someTargetsSelected) return 'mdi-minus-box'\n return 'mdi-checkbox-blank-outline'\n },\n },\n created() {\n this.api = new OpenC3Api()\n this.api\n .get_target_names({ params: { scope: window.openc3Scope } })\n .then((targets) => {\n this.targetNames = targets\n })\n },\n methods: {\n toggleTargets() {\n this.$nextTick(() => {\n if (this.allTargetsSelected) {\n this.selectedTargetNames = []\n } else {\n this.selectedTargetNames = this.targetNames.slice()\n }\n })\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Handbooks.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Handbooks.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Handbooks.vue?vue&type=template&id=e58fd9cc\"\nimport script from \"./Handbooks.vue?vue&type=script&lang=js\"\nexport * from \"./Handbooks.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-title[data-v-0af23388]{font-size:2rem}.menu-button[data-v-0af23388]{border-color:var(--color-border-interactive-muted)!important;background-color:var(--color-background-base-default)!important;padding-right:3px!important}span.v-btn__content span[data-v-0af23388]{padding-right:5px}.list-action[data-v-0af23388] label{color:#fff;padding-left:10px}.myicon[data-v-0af23388]{background-color:var(--color-background-surface-selected);border:1px solid currentColor;border-radius:3px;height:36px!important;width:36px!important}.v-list[data-v-0af23388] .v-label{margin-left:5px}.v-list-item__icon[data-v-0af23388]{margin-right:15px!important}.v-list-item__title[data-v-0af23388]{color:#fff}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=style&index=0&id=0af23388&prod&scoped=true&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7f447726\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["cov_j54npvll7","actualCoverage","s","render","f","_vm","this","_c","_self","attrs","menus","title","_v","staticClass","targetNames","on","targetSelect","scopedSlots","_u","key","fn","$event","preventDefault","toggleTargets","_s","icon","proxy","model","value","selectedTargetNames","callback","$$v","expression","renderedTargetNames","columnItems","columns","staticStyle","_l","target","hideIgnored","hideDerived","staticRenderFns","vueInstance","Vue","axiosInstance","axios","create","baseURL","location","origin","timeout","params","interceptors","response","use","error","status","OpenC3Auth","updateToken","defaultMinValidity","then","refreshed","setTokens","config","headers","includes","toString","Promise","reject","body","statusText","data","message","exception","class","$notify","serious","OpenC3Api","constructor","_defineProperty","exec","method","kwparams","headerOptions","login","id","window","openc3Scope","post","jsonrpc","keyword_params","Authorization","localStorage","openc3Token","result","err","Error","name","request","decode_openc3_type","val","json_class","raw","NaN","Infinity","encode_openc3_type","Number","isNaN","POSITIVE_INFINITY","NEGATIVE_INFINITY","ensure_offline_access","offline_access_needed","needed","openc3OfflineToken","set_offline_access","getOfflineAccess","offline_access_token","get_all_interface_info","map_target_to_interface","target_name","interface_name","connect_interface","interface_params","length","disconnect_interface","interface_cmd","command_name","command_params","get_all_router_info","connect_router","router_name","disconnect_router","get_target_interfaces","get_all_target_info","get_tlm_cnts","target_commands","get_item","packet","item","get_param","get_parameter","get_limits_sets","get_limits_set","set_limits_set","limits_set","get_target","get_target_names","get_target_list","get_tlm","packet_name","get_telemetry","get_all_tlm","get_all_telemetry","get_all_tlm_names","hidden","get_all_telemetry_names","get_tlm_packet","value_type","stale_time","type","len","converted","i","get_packet_derived_items","get_tlm_buffer","get_tlm_values","items","cache_timeout","kw_args","get_limits","item_name","tlm","undefined","inject_tlm","item_hash","set_tlm","override_tlm","get_overrides","normalize_tlm","get_all_cmds","get_all_commands","get_all_cmd_names","get_all_command_names","get_cmd","get_command","get_cmd_cnts","get_cmd_value","parameter_name","get_cmd_buffer","_cmd","param_list","Object","prototype","hasOwnProperty","call","get_cmd_hazardous","cmd","cmd_no_range_check","cmd_raw","cmd_raw_no_range_check","cmd_no_hazardous_check","cmd_no_checks","cmd_raw_no_hazardous_check","cmd_raw_no_checks","build_cmd","build_command","get_interface_names","send_raw","list_configs","tool","load_config","save_config","delete_config","enable_limits","disable_limits","get_out_of_limits","get_overall_limits_state","ignored","list_settings","get_all_settings","get_setting","get_settings","array","set_setting","save_setting","get_metrics","hashString","string","isSecureContext","arrayBuffer","TextEncoder","encode","hashAsArrayBuffer","crypto","subtle","digest","uint8ViewOfHash","Uint8Array","Array","from","map","b","padStart","join","menu","ref","refInFor","_g","_b","formatDT","label","domProps","radioGroup","option","j","divider","subMenu","k","disabled","_e","radio","checkbox","style","submenu","subMenuClick","command","checked","$set","props","default","String","methods","replaceAll","toLowerCase","$refs","topmenu","isActive","mounted","document","component","cov_iqqsvvixa","commands","packetName","ignoredParams","telemetry","ignoredItems","cov_1scjnunnk3","description","endianness","cov_ff9deo6d4","bit_offset","bit_size","data_type","overflow","hasOwn","minimum","maximum","id_value","toUpperCase","readConversion","writeConversion","required","Boolean","computed","read_conversion","write_conversion","components","Item","filter","Packet","api","created","ignored_parameters","ignored_items","packets","TopBar","Target","text","allTargetsSelected","someTargetsSelected","scope","targets","$nextTick","slice","___CSS_LOADER_EXPORT___","push","module","content","__esModule","locals","exports","add"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"js/565.js","mappings":"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","sources":["webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Handbooks.vue","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/services/axios.js","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/services/openc3-api.js","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/components/TopBar.vue","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/components/TopBar.vue?c4b5","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/components/TopBar.vue?a437","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Target.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Packet.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Item.vue","webpack://@openc3/cosmos-tool-handbooks/src/tools/Handbooks/Item.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Item.vue?1221","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Item.vue?85c4","webpack://@openc3/cosmos-tool-handbooks/src/tools/Handbooks/Packet.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Packet.vue?663c","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Packet.vue?a8e2","webpack://@openc3/cosmos-tool-handbooks/src/tools/Handbooks/Target.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Target.vue?69b3","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Target.vue?cdc5","webpack://@openc3/cosmos-tool-handbooks/src/tools/Handbooks/Handbooks.vue","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Handbooks.vue?1265","webpack://@openc3/cosmos-tool-handbooks/./src/tools/Handbooks/Handbooks.vue?585c","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/components/TopBar.vue?e2ab","webpack://@openc3/cosmos-tool-handbooks/../openc3-tool-common/src/components/TopBar.vue?ca18"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('top-bar',{attrs:{\"menus\":_vm.menus,\"title\":_vm.title}}),_vm._v(\" \"),_c('v-card',[_c('v-container',{staticClass:\"d-print-none\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-select',{staticClass:\"ma-0 pa-0\",attrs:{\"label\":\"Select Target(s)\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"items\":_vm.targetNames,\"multiple\":\"\"},on:{\"change\":_vm.targetSelect},scopedSlots:_vm._u([{key:\"prepend-item\",fn:function(){return [_c('v-list-item',{attrs:{\"ripple\":\"\"},on:{\"mousedown\":function($event){$event.preventDefault();},\"click\":_vm.toggleTargets}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\"\\n \"+_vm._s(_vm.icon)+\"\\n \")])],1),_vm._v(\" \"),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" Select All \")])],1)],1),_vm._v(\" \"),_c('v-divider',{staticClass:\"mt-2\"})]},proxy:true}]),model:{value:(_vm.selectedTargetNames),callback:function ($$v) {_vm.selectedTargetNames=$$v},expression:\"selectedTargetNames\"}})],1),_vm._v(\" \"),_c('v-col',[_c('v-btn',{staticClass:\"primary\",on:{\"click\":function($event){_vm.renderedTargetNames = _vm.selectedTargetNames}}},[_vm._v(\"\\n Display\\n \")])],1),_vm._v(\" \"),_c('v-col',[_c('v-select',{attrs:{\"label\":\"Item Columns\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"items\":_vm.columnItems},model:{value:(_vm.columns),callback:function ($$v) {_vm.columns=$$v},expression:\"columns\"}})],1)],1)],1)],1),_vm._v(\" \"),_c('div',{staticStyle:{\"height\":\"15px\"}}),_vm._v(\" \"),_vm._l((_vm.renderedTargetNames),function(target){return _c('div',{key:target},[_c('target',{attrs:{\"target\":target,\"columns\":_vm.columns,\"hideIgnored\":_vm.hideIgnored,\"hideDerived\":_vm.hideDerived}})],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport axios from 'axios'\nimport Vue from 'vue'\n\nconst vueInstance = new Vue()\n\nconst axiosInstance = axios.create({\n baseURL: location.origin,\n timeout: 60000,\n params: {},\n})\n\naxiosInstance.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity, true).then(\n function (refreshed) {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n },\n )\n }\n // Individual tools can set 'Ignore-Errors' to an error code\n // they potentially expect, e.g. '500', in which case we ignore it\n // For example in CommandSender.vue:\n // obs = this.api.cmd(targetName, commandName, paramList, {\n // headers: {\n // 'Ignore-Errors': '404',\n // },\n // })\n if (\n error.response.config.headers['Ignore-Errors'] &&\n error.response.config.headers['Ignore-Errors'].includes(\n error.response.status.toString(),\n )\n ) {\n return Promise.reject(error)\n }\n let body = `HTTP ${error.response.status} - `\n if (error.response?.statusText) {\n body += `${error.response.statusText} `\n }\n if (error.response?.config?.data) {\n body += `${error.response.config.data} `\n }\n if (error.response?.data?.message) {\n body += `${error.response.data.message}`\n } else if (error.response?.data?.exception) {\n body += `${error.response.data.exception}`\n } else if (error.response?.data?.error?.message) {\n if (error.response.data.error.class) {\n body += `${error.response.data.error.class} `\n }\n body += `${error.response.data.error.message}`\n } else {\n body += `${error.response?.data}`\n }\n if (vueInstance.$notify) {\n vueInstance.$notify.serious({\n title: 'Network error',\n body,\n })\n }\n throw error\n } else {\n throw error\n }\n },\n)\n\nexport default axiosInstance\n","/*\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport axios from './axios.js'\n\nexport class OpenC3Api {\n id = 1\n\n constructor() {}\n\n async exec(\n method,\n params,\n kwparams = {},\n headerOptions = {},\n timeout = 60000,\n ) {\n try {\n let refreshed = await OpenC3Auth.updateToken(\n OpenC3Auth.defaultMinValidity,\n )\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n } catch (error) {\n OpenC3Auth.login()\n }\n this.id = this.id + 1\n try {\n kwparams['scope'] = window.openc3Scope\n // Everything from the front-end is manual by default\n // The various api methods decide whether to pass the manual\n // flag to the authorize routine\n headerOptions['manual'] = true\n const response = await axios.post(\n '/openc3-api/api',\n {\n jsonrpc: '2.0',\n method: method,\n params: params,\n id: this.id,\n keyword_params: kwparams,\n },\n {\n headers: {\n Authorization: localStorage.openc3Token,\n 'Content-Type': 'application/json-rpc',\n ...headerOptions,\n },\n timeout: timeout,\n },\n )\n // let data = response.data\n // if (data.error) {\n // let err = new Error()\n // err.name = data.error.data.class\n // err.message = data.error.data.message\n // console.log(data.error.data.backtrace.join('\\n'))\n // throw err\n // }\n return response.data.result\n } catch (error) {\n let err = new Error()\n if (error.response) {\n // The request was made and the server responded with a\n // status code that falls out of the range of 2xx\n err.name = error.response.data.error.data.class\n err.message = error.response.data.error.data.message\n err.object = error.response.data.error\n } else if (error.request) {\n // The request was made but no response was received, `error.request`\n // is an instance of XMLHttpRequest in the browser and an instance\n // of http.ClientRequest in Node.js\n err.name = 'Request error'\n // NOTE: Openc3Screen.vue uses this specific message to determine\n // if the CmdTlmApi server is down. Don't change unless also changing there.\n err.message = 'Request error, no response received'\n } else {\n // Something happened in setting up the request and triggered an Error\n err.name = 'Unknown error'\n }\n throw err\n }\n }\n\n decode_openc3_type(val) {\n if (val !== null && typeof val === 'object') {\n if (val.json_class == 'Float' && val.raw) {\n if (val.raw == 'NaN') {\n return NaN\n } else if (val.raw == 'Infinity') {\n return Infinity\n } else if (val.raw == '-Infinity') {\n return -Infinity\n }\n }\n }\n return null\n }\n\n encode_openc3_type(val) {\n if (Number.isNaN(val)) {\n return { json_class: 'Float', raw: 'NaN' }\n } else if (val == Number.POSITIVE_INFINITY) {\n return { json_class: 'Float', raw: 'Infinity' }\n } else if (val == Number.NEGATIVE_INFINITY) {\n return { json_class: 'Float', raw: '-Infinity' }\n }\n return null\n }\n\n ensure_offline_access() {\n this.offline_access_needed().then((needed) => {\n if (needed) {\n if (localStorage.openc3OfflineToken) {\n this.set_offline_access(localStorage.openc3OfflineToken).then(() => {\n delete localStorage.openc3OfflineToken\n })\n } else {\n OpenC3Auth.getOfflineAccess()\n }\n }\n })\n }\n\n // ***********************************************\n // The following APIs are used by the CmdTlmServer\n // ***********************************************\n\n offline_access_needed() {\n return this.exec('offline_access_needed', [])\n }\n\n set_offline_access(offline_access_token) {\n return this.exec('set_offline_access', [offline_access_token])\n }\n\n get_all_interface_info() {\n return this.exec('get_all_interface_info', [])\n }\n\n map_target_to_interface(target_name, interface_name) {\n return this.exec('map_target_to_interface', [target_name, interface_name])\n }\n\n connect_interface(interface_name, ...interface_params) {\n if (interface_params.length > 0) {\n return this.exec('connect_interface', [\n interface_name,\n ...interface_params,\n ])\n } else {\n return this.exec('connect_interface', [interface_name])\n }\n }\n\n disconnect_interface(interface_name) {\n return this.exec('disconnect_interface', [interface_name])\n }\n\n interface_cmd(interface_name, command_name, ...command_params) {\n return this.exec('interface_cmd', [\n interface_name,\n command_name,\n ...command_params,\n ])\n }\n\n get_all_router_info() {\n return this.exec('get_all_router_info', [])\n }\n\n connect_router(router_name) {\n return this.exec('connect_router', [router_name])\n }\n\n disconnect_router(router_name) {\n return this.exec('disconnect_router', [router_name])\n }\n\n get_target_interfaces() {\n return this.exec('get_target_interfaces', [])\n }\n\n // DEPRECATED\n get_all_target_info() {\n return this.exec('get_all_target_info', [])\n }\n\n get_tlm_cnts(target_commands) {\n return this.exec('get_tlm_cnts', [target_commands])\n }\n\n get_item(target, packet, item) {\n return this.exec('get_item', [target, packet, item])\n }\n\n get_param(target, packet, item) {\n return this.exec('get_param', [target, packet, item])\n }\n // DEPRECATED for get_param\n get_parameter(target, packet, item) {\n return this.exec('get_parameter', [target, packet, item])\n }\n\n get_limits_sets() {\n return this.exec('get_limits_sets', [])\n }\n\n get_limits_set() {\n return this.exec('get_limits_set', [])\n }\n\n set_limits_set(limits_set) {\n return this.exec('set_limits_set', [limits_set])\n }\n\n // ***********************************************\n // End CmdTlmServer APIs\n // ***********************************************\n\n get_target(target_name) {\n return this.exec('get_target', [target_name])\n }\n\n get_target_names() {\n return this.exec('get_target_names', [])\n }\n // DEPRECATED\n get_target_list() {\n return this.exec('get_target_list', [])\n }\n\n get_tlm(target_name, packet_name) {\n return this.exec('get_tlm', [target_name, packet_name])\n }\n // DEPRECATED\n get_telemetry(target_name, packet_name) {\n return this.exec('get_telemetry', [target_name, packet_name])\n }\n\n get_all_tlm(target_name) {\n return this.exec('get_all_tlm', [target_name])\n }\n // DEPRECATED\n get_all_telemetry(target_name) {\n return this.exec('get_all_telemetry', [target_name])\n }\n\n get_all_tlm_names(target_name, hidden = false) {\n return this.exec('get_all_tlm_names', [target_name], { hidden: hidden })\n }\n // DEPRECATED\n get_all_telemetry_names(target_name) {\n return this.exec('get_all_telemetry_names', [target_name])\n }\n\n async get_tlm_packet(target_name, packet_name, value_type, stale_time = 30) {\n const data = await this.exec('get_tlm_packet', [target_name, packet_name], {\n type: value_type,\n stale_time: stale_time,\n })\n // Make sure data isn't null or undefined. Note this is the only valid use of == or !=\n if (data != null) {\n let len = data.length\n let converted = null\n for (let i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[i][1])\n if (converted !== null) {\n data[i][1] = converted\n }\n }\n }\n return data\n }\n\n get_packet_derived_items(target_name, packet_name) {\n return this.exec('get_packet_derived_items', [target_name, packet_name])\n }\n\n get_tlm_buffer(target_name, packet_name) {\n return this.exec('get_tlm_buffer', [target_name, packet_name])\n }\n\n async get_tlm_values(items, stale_time = 30, cache_timeout = null) {\n let kw_args = {\n stale_time: stale_time,\n }\n if (cache_timeout !== null) {\n kw_args['cache_timeout'] = cache_timeout\n }\n const data = await this.exec(\n 'get_tlm_values',\n [items],\n kw_args,\n {},\n 10000, // 10s timeout ... should never be this long\n )\n let len = data[0].length\n let converted = null\n for (let i = 0; i < len; i++) {\n converted = this.decode_openc3_type(data[0][i])\n if (converted !== null) {\n data[0][i] = converted\n }\n }\n return data\n }\n\n get_limits(target_name, packet_name, item_name) {\n return this.exec('get_limits', [target_name, packet_name, item_name])\n }\n\n async tlm(target_name, packet_name, item_name, value_type = 'CONVERTED') {\n let data = null\n // Check for the single string syntax: tlm(\"TGT PKT ITEM\")\n if (packet_name === undefined) {\n data = await this.exec('tlm', [target_name])\n // Check for the single string syntax with type: tlm(\"TGT PKT ITEM\", \"RAW\")\n } else if (item_name === undefined) {\n if (\n ['RAW', 'CONVERTED', 'FORMATTED', 'WITH_UNITS'].includes(packet_name)\n ) {\n data = await this.exec('tlm', [target_name], { type: packet_name })\n } else {\n let err = new Error()\n err.name = 'TypeError'\n err.message = `Invalid data type ${packet_name}. Valid options are RAW, CONVERTED, FORMATTED, and WITH_UNITS.`\n throw err\n }\n } else {\n data = await this.exec('tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n let converted = this.decode_openc3_type(data)\n if (converted !== null) {\n data = converted\n }\n return data\n }\n\n async inject_tlm(\n target_name,\n packet_name,\n item_hash = null,\n value_type = 'CONVERTED',\n ) {\n data = await this.exec(\n 'inject_tlm',\n [target_name, packet_name, item_hash],\n {\n type: value_type,\n },\n )\n }\n\n set_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('set_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n override_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('override_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n get_overrides() {\n return this.exec('get_overrides')\n }\n\n normalize_tlm(target_name, packet_name, item_name, value_type) {\n return this.exec('normalize_tlm', [target_name, packet_name, item_name], {\n type: value_type,\n })\n }\n\n get_all_cmds(target_name) {\n return this.exec('get_all_cmds', [target_name])\n }\n // DEPRECATED for get_all_cmds\n get_all_commands(target_name) {\n return this.exec('get_all_commands', [target_name])\n }\n\n get_all_cmd_names(target_name, hidden = false) {\n return this.exec('get_all_cmd_names', [target_name], { hidden: hidden })\n }\n // DEPRECATED for get_all_cmd_names\n get_all_command_names(target_name) {\n return this.exec('get_all_command_names', [target_name])\n }\n\n get_cmd(target_name, command_name) {\n return this.exec('get_cmd', [target_name, command_name])\n }\n // DEPRECATED for get_cmd\n get_command(target_name, command_name) {\n return this.exec('get_command', [target_name, command_name])\n }\n\n get_cmd_cnts(target_commands) {\n return this.exec('get_cmd_cnts', [target_commands])\n }\n\n get_cmd_value(\n target_name,\n packet_name,\n parameter_name,\n value_type = 'CONVERTED',\n ) {\n return this.exec('get_cmd_value', [\n target_name,\n packet_name,\n parameter_name,\n value_type,\n ])\n }\n\n get_cmd_buffer(target_name, packet_name) {\n return this.exec('get_cmd_buffer', [target_name, packet_name])\n }\n\n // Implementation of functionality shared by cmd methods with param_lists.\n _cmd(method, target_name, command_name, param_list, headerOptions) {\n let converted = null\n for (let key in param_list) {\n if (Object.prototype.hasOwnProperty.call(param_list, key)) {\n converted = this.encode_openc3_type(param_list[key])\n if (converted !== null) {\n param_list[key] = converted\n }\n }\n }\n return this.exec(\n method,\n [target_name, command_name, param_list],\n {},\n headerOptions,\n )\n }\n\n get_cmd_hazardous(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('get_cmd_hazardous', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'get_cmd_hazardous',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('cmd', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_no_range_check(\n target_name,\n command_name,\n param_list,\n headerOptions = {},\n ) {\n if (command_name === undefined) {\n return this.exec('cmd_no_range_check', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_no_range_check',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_raw(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('cmd_raw', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_raw',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_raw_no_range_check(\n target_name,\n command_name,\n param_list,\n headerOptions = {},\n ) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_range_check', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_raw_no_range_check',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_no_hazardous_check(\n target_name,\n command_name,\n param_list,\n headerOptions = {},\n ) {\n if (command_name === undefined) {\n return this.exec('cmd_no_hazardous_check', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_no_hazardous_check',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_no_checks(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('cmd_no_checks', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_no_checks',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_raw_no_hazardous_check(\n target_name,\n command_name,\n param_list,\n headerOptions = {},\n ) {\n if (command_name === undefined) {\n return this.exec(\n 'cmd_raw_no_hazardous_check',\n target_name,\n {},\n headerOptions,\n )\n } else {\n return this._cmd(\n 'cmd_raw_no_hazardous_check',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n cmd_raw_no_checks(target_name, command_name, param_list, headerOptions = {}) {\n if (command_name === undefined) {\n return this.exec('cmd_raw_no_checks', target_name, {}, headerOptions)\n } else {\n return this._cmd(\n 'cmd_raw_no_checks',\n target_name,\n command_name,\n param_list,\n headerOptions,\n )\n }\n }\n\n build_cmd(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('build_cmd', target_name)\n } else {\n return this._cmd('build_cmd', target_name, command_name, param_list)\n }\n }\n // DEPRECATED for build_cmd\n build_command(target_name, command_name, param_list) {\n if (command_name === undefined) {\n return this.exec('build_command', target_name)\n } else {\n return this._cmd('build_command', target_name, command_name, param_list)\n }\n }\n\n get_interface_names() {\n return this.exec('get_interface_names', [])\n }\n\n send_raw(interface_name, data) {\n return this.exec('send_raw', [interface_name, data])\n }\n\n list_configs(tool) {\n return this.exec('list_configs', [tool])\n }\n\n load_config(tool, name) {\n return this.exec('load_config', [tool, name])\n }\n\n save_config(tool, name, data) {\n return this.exec('save_config', [tool, name, data])\n }\n\n delete_config(tool, name) {\n return this.exec('delete_config', [tool, name])\n }\n\n enable_limits(target, packet, item) {\n return this.exec('enable_limits', [target, packet, item])\n }\n\n disable_limits(target, packet, item) {\n return this.exec('disable_limits', [target, packet, item])\n }\n\n get_out_of_limits() {\n return this.exec('get_out_of_limits', [])\n }\n\n get_overall_limits_state(ignored) {\n return this.exec('get_overall_limits_state', [ignored])\n }\n\n list_settings() {\n return this.exec('list_settings', [])\n }\n\n get_all_settings() {\n return this.exec('get_all_settings', [])\n }\n\n get_setting(name) {\n return this.exec('get_setting', [name])\n }\n\n get_settings(array) {\n return this.exec('get_settings', array)\n }\n\n set_setting(name, data) {\n return this.exec('set_setting', [name, data])\n }\n\n // DEPRECATED\n save_setting(name, data) {\n return this.exec('save_setting', [name, data])\n }\n\n get_metrics() {\n return this.exec('get_metrics', [])\n }\n\n // TODO: Currently unused but seemed like a useful function\n async hashString(string) {\n if (window.isSecureContext) {\n // Encode the string as an arrayBuffer which the subtle crypto API uses\n const arrayBuffer = new TextEncoder().encode(string)\n // Use the subtle crypto API to perform a SHA256 Sum of the array buffer\n // The resulting hash is stored in an array buffer\n const hashAsArrayBuffer = await crypto.subtle.digest(\n 'SHA-256',\n arrayBuffer,\n )\n // To create a string we will get the hexadecimal value of each byte of the array buffer\n // This gets us an array where each byte of the array buffer becomes one item in the array\n const uint8ViewOfHash = new Uint8Array(hashAsArrayBuffer)\n // We then convert it to a regular array so we can convert each item to hexadecimal strings\n // Where to characters of 0-9 or a-f represent a number between 0 and 16, containing 4 bits of information, so 2 of them is 8 bits (1 byte).\n return Array.from(uint8ViewOfHash)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('')\n }\n // else ?\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('mounting-portal',{attrs:{\"mount-to\":\"#openc3-menu\",\"append\":\"\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"align-self\":\"end\"}},[_c('span',{staticClass:\"app-title mr-2\"},[_vm._v(_vm._s(_vm.title))])])],1),_vm._v(\" \"),_c('v-row',{staticClass:\"flex-nowrap\",attrs:{\"dense\":\"\"}},_vm._l((_vm.menus),function(menu,i){return _c('v-menu',{key:i,ref:\"topmenu\",refInFor:true,attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mx-1 menu-button\",attrs:{\"outlined\":\"\",\"data-test\":_vm.formatDT(`${_vm.title} ${menu.label}`)}},'v-btn',attrs,false),on),[_c('span',{domProps:{\"textContent\":_vm._s(menu.label)}}),_vm._v(\" \"),_c('v-icon',{staticClass:\"myicon\",attrs:{\"right\":\"\"}},[_vm._v(\" mdi-menu-down \")])],1)]}}],null,true)},[_vm._v(\" \"),_c('v-list',[_c('v-radio-group',{staticClass:\"ma-0 pa-0\",attrs:{\"value\":menu.radioGroup,\"hide-details\":\"\",\"dense\":\"\"}},[_vm._l((menu.items),function(option,j){return [(option.divider)?_c('v-divider',{key:j}):(option.subMenu && option.subMenu.length > 0)?_c('div',{key:j},[_c('v-menu',{key:_vm.k,attrs:{\"open-on-hover\":\"\",\"offset-x\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-list-item',_vm._g(_vm._b({key:j,attrs:{\"disabled\":option.disabled}},'v-list-item',attrs,false),on),[(option.icon)?_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":option.disabled}},[_vm._v(_vm._s(option.icon))])],1):_vm._e(),_vm._v(\" \"),(!option.radio && !option.checkbox)?_c('v-list-item-title',{style:('cursor: pointer;' +\n (option.disabled ? 'opacity: 0.2' : ''))},[_vm._v(_vm._s(option.label)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('v-icon',[_vm._v(\" mdi-chevron-right \")])],1)]}}],null,true)},[_vm._v(\" \"),_c('v-list',_vm._l((option.subMenu),function(submenu,k){return _c('v-list-item',{key:k,on:{\"click\":function($event){return _vm.subMenuClick(submenu)}}},[(submenu.icon)?_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(submenu.icon))])],1):_vm._e(),_vm._v(\" \"),_c('v-list-item-title',[_vm._v(_vm._s(submenu.label))])],1)}),1)],1)],1):_c('v-list-item',{key:j,attrs:{\"disabled\":option.disabled,\"data-test\":_vm.formatDT(`${_vm.title} ${menu.label} ${option.label}`)},on:{\"click\":function($event){return option.command(option)}}},[(option.radio)?_c('v-list-item-action',{staticClass:\"list-action\"},[_c('v-radio',{attrs:{\"color\":\"secondary\",\"label\":option.label,\"value\":option.label}})],1):_vm._e(),_vm._v(\" \"),(option.checkbox)?_c('v-list-item-action',{staticClass:\"list-action\"},[_c('v-checkbox',{attrs:{\"color\":\"secondary\",\"label\":option.label},model:{value:(option.checked),callback:function ($$v) {_vm.$set(option, \"checked\", $$v)},expression:\"option.checked\"}})],1):_vm._e(),_vm._v(\" \"),(option.icon)?_c('v-list-item-icon',[_c('v-icon',{attrs:{\"disabled\":option.disabled}},[_vm._v(_vm._s(option.icon))])],1):_vm._e(),_vm._v(\" \"),(!option.radio && !option.checkbox)?_c('v-list-item-title',{style:('cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : ''))},[_vm._v(_vm._s(option.label))]):_vm._e()],1)]})],2)],1)],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TopBar.vue?vue&type=template&id=0af23388&scoped=true\"\nimport script from \"./TopBar.vue?vue&type=script&lang=js\"\nexport * from \"./TopBar.vue?vue&type=script&lang=js\"\nimport style0 from \"./TopBar.vue?vue&type=style&index=0&id=0af23388&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0af23388\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-container',{attrs:{\"id\":_vm.target}},[_c('div',{staticClass:\"text-h3 text-center\"},[_vm._v(_vm._s(_vm.target))]),_vm._v(\" \"),_c('v-row',[_c('v-col',{staticClass:\"ml-3 text-h4\"},[_vm._v(\"Commands\")])],1),_vm._v(\" \"),_vm._l((_vm.commands),function(packet){return _c('v-row',{key:packet.packetName,staticClass:\"mb-4\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":12}},[_c('packet',{attrs:{\"packet\":packet,\"columns\":_vm.columns,\"hideIgnored\":_vm.hideIgnored,\"hideDerived\":_vm.hideDerived,\"ignored\":_vm.ignoredParams}})],1)],1)}),_vm._v(\" \"),_c('v-row',[_c('v-col',{staticClass:\"ml-3 text-h4\"},[_vm._v(\"Telemetry\")])],1),_vm._v(\" \"),_vm._l((_vm.telemetry),function(packet){return _c('v-row',{key:packet.packetName,staticClass:\"mb-4\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":12}},[_c('packet',{attrs:{\"packet\":packet,\"columns\":_vm.columns,\"hideIgnored\":_vm.hideIgnored,\"hideDerived\":_vm.hideDerived,\"ignored\":_vm.ignoredItems}})],1)],1)})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',[_c('v-card-title',{staticClass:\"text-h4 justify-center\"},[_vm._v(_vm._s(_vm.packet.target_name)+\" \"+_vm._s(_vm.packet.packet_name))]),_vm._v(\" \"),_c('v-card-subtitle',[_vm._v(_vm._s(_vm.packet.description)+\"\\n \"),_c('div',{staticClass:\"float-right\"},[_vm._v(_vm._s(_vm.packet.endianness))])]),_vm._v(\" \"),_c('v-card-text',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},_vm._l((_vm.items),function(item){return _c('v-col',{key:item.name,attrs:{\"cols\":_vm.columns}},[_c('item',{attrs:{\"item\":item}})],1)}),1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"outlined\":\"\"}},[_c('v-card-title',{staticClass:\"justify-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.item.name)+\"\\n \")]),_vm._v(\" \"),_c('v-card-subtitle',[_vm._v(_vm._s(_vm.item.description))]),_vm._v(\" \"),_c('v-card-text',{staticClass:\"text--primary\"},[_c('div',[_vm._v(\"Bit Offset: \"+_vm._s(_vm.item.bit_offset))]),_vm._v(\" \"),_c('div',[_vm._v(\"Bit Size: \"+_vm._s(_vm.item.bit_size))]),_vm._v(\" \"),_c('div',[_vm._v(\"Data Type: \"+_vm._s(_vm.item.data_type))]),_vm._v(\" \"),_c('div',[_vm._v(\"Endianness: \"+_vm._s(_vm.item.endianness))]),_vm._v(\" \"),_c('div',[_vm._v(\"Overflow: \"+_vm._s(_vm.item.overflow))]),_vm._v(\" \"),(Object.hasOwn(_vm.item, 'minimum'))?_c('div',[_vm._v(\"\\n Minimum: \"+_vm._s(_vm.item.minimum)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(Object.hasOwn(_vm.item, 'maximum'))?_c('div',[_vm._v(\"\\n Maximum: \"+_vm._s(_vm.item.maximum)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(Object.hasOwn(_vm.item, 'default'))?_c('div',[_vm._v(\"\\n Default: \"+_vm._s(_vm.item.default)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.item.id_value)?_c('div',[_c('strong',[_vm._v(\"ID Value: 0x\"+_vm._s(_vm.item.id_value.toString(16).toUpperCase()))])]):_vm._e(),_vm._v(\" \"),(_vm.readConversion)?_c('div',[_vm._v(\"Read Conversion: \"+_vm._s(_vm.readConversion))]):_vm._e(),_vm._v(\" \"),(_vm.writeConversion)?_c('div',[_vm._v(\"Write Conversion: \"+_vm._s(_vm.writeConversion))]):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card class=\"mx-auto\" outlined>\n <v-card-title class=\"justify-center\">\n {{ item.name }}\n </v-card-title>\n <v-card-subtitle>{{ item.description }}</v-card-subtitle>\n <v-card-text class=\"text--primary\">\n <div>Bit Offset: {{ item.bit_offset }}</div>\n <div>Bit Size: {{ item.bit_size }}</div>\n <div>Data Type: {{ item.data_type }}</div>\n <div>Endianness: {{ item.endianness }}</div>\n <div>Overflow: {{ item.overflow }}</div>\n <div v-if=\"Object.hasOwn(item, 'minimum')\">\n Minimum: {{ item.minimum }}\n </div>\n <div v-if=\"Object.hasOwn(item, 'maximum')\">\n Maximum: {{ item.maximum }}\n </div>\n <div v-if=\"Object.hasOwn(item, 'default')\">\n Default: {{ item.default }}\n </div>\n <div v-if=\"item.id_value\">\n <strong\n >ID Value: 0x{{ item.id_value.toString(16).toUpperCase() }}</strong\n >\n </div>\n <div v-if=\"readConversion\">Read Conversion: {{ readConversion }}</div>\n <div v-if=\"writeConversion\">Write Conversion: {{ writeConversion }}</div>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nexport default {\n props: {\n item: {\n type: Object,\n required: true,\n },\n hideIgnored: {\n type: Boolean,\n required: true,\n },\n hideDerived: {\n type: Boolean,\n required: true,\n },\n },\n computed: {\n readConversion() {\n if (Object.hasOwn(this.item, 'read_conversion')) {\n let result = `${this.item.read_conversion.class}`\n if (this.item.read_conversion.params) {\n result += ` with ${this.item.read_conversion.params.join(', ')}`\n }\n return result\n } else {\n return false\n }\n },\n writeConversion() {\n if (Object.hasOwn(this.item, 'write_conversion')) {\n let result = `${this.item.write_conversion.class}`\n if (this.item.write_conversion.params) {\n result += ` with ${this.item.write_conversion.params.join(', ')}`\n }\n return result\n } else {\n return false\n }\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Item.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Item.vue?vue&type=template&id=22d2b16a\"\nimport script from \"./Item.vue?vue&type=script&lang=js\"\nexport * from \"./Item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title class=\"text-h4 justify-center\"\n >{{ packet.target_name }} {{ packet.packet_name }}</v-card-title\n >\n <v-card-subtitle\n >{{ packet.description }}\n <div class=\"float-right\">{{ packet.endianness }}</div>\n </v-card-subtitle>\n <v-card-text>\n <v-container fluid>\n <v-row dense>\n <v-col v-for=\"item in items\" :key=\"item.name\" :cols=\"columns\">\n <item :item=\"item\"></item>\n </v-col>\n </v-row>\n </v-container>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport Item from './Item'\n\nexport default {\n components: {\n Item,\n },\n props: {\n packet: {\n type: Object,\n required: true,\n },\n columns: {\n type: Number,\n required: true,\n },\n hideIgnored: {\n type: Boolean,\n required: true,\n },\n hideDerived: {\n type: Boolean,\n required: true,\n },\n ignored: {\n type: Object,\n },\n },\n computed: {\n items() {\n let items = this.packet.items\n if (this.hideIgnored) {\n items = items.filter((item) => !this.ignored.includes(item.name))\n }\n if (this.hideDerived) {\n items = items.filter((item) => item.data_type !== 'DERIVED')\n }\n return items\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Packet.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Packet.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Packet.vue?vue&type=template&id=69a31f4f\"\nimport script from \"./Packet.vue?vue&type=script&lang=js\"\nexport * from \"./Packet.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-container :id=\"target\">\n <div class=\"text-h3 text-center\">{{ target }}</div>\n <v-row>\n <v-col class=\"ml-3 text-h4\">Commands</v-col>\n </v-row>\n <v-row\n v-for=\"packet in commands\"\n :key=\"packet.packetName\"\n dense\n class=\"mb-4\"\n >\n <v-col :cols=\"12\">\n <packet\n :packet=\"packet\"\n :columns=\"columns\"\n :hideIgnored=\"hideIgnored\"\n :hideDerived=\"hideDerived\"\n :ignored=\"ignoredParams\"\n ></packet>\n </v-col>\n </v-row>\n <v-row>\n <v-col class=\"ml-3 text-h4\">Telemetry</v-col>\n </v-row>\n <v-row\n v-for=\"packet in telemetry\"\n :key=\"packet.packetName\"\n dense\n class=\"mb-4\"\n >\n <v-col :cols=\"12\">\n <packet\n :packet=\"packet\"\n :columns=\"columns\"\n :hideIgnored=\"hideIgnored\"\n :hideDerived=\"hideDerived\"\n :ignored=\"ignoredItems\"\n ></packet>\n </v-col>\n </v-row>\n </v-container>\n </v-card>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\nimport Packet from './Packet'\n\nexport default {\n components: {\n Packet,\n },\n props: {\n target: {\n type: String,\n required: true,\n },\n columns: {\n type: Number,\n required: true,\n },\n hideIgnored: {\n type: Boolean,\n required: true,\n },\n hideDerived: {\n type: Boolean,\n required: true,\n },\n },\n data() {\n return {\n api: null,\n commands: [],\n telemetry: [],\n ignoredParams: [],\n ignoredItems: [],\n }\n },\n\n created() {\n this.api = new OpenC3Api()\n this.api.get_target(this.target).then((target) => {\n this.ignoredParams = target.ignored_parameters\n this.ignoredItems = target.ignored_items\n })\n // TODO: Test with large DB as this returns ALL commands\n this.api.get_all_cmds(this.target).then((packets) => {\n this.commands = packets\n })\n this.api.get_all_tlm(this.target).then((packets) => {\n this.telemetry = packets\n })\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Target.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Target.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Target.vue?vue&type=template&id=045280e6\"\nimport script from \"./Target.vue?vue&type=script&lang=js\"\nexport * from \"./Target.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <top-bar :menus=\"menus\" :title=\"title\" />\n <v-card>\n <v-container class=\"d-print-none\">\n <v-row dense>\n <v-col>\n <v-select\n class=\"ma-0 pa-0\"\n label=\"Select Target(s)\"\n dense\n hide-details\n outlined\n :items=\"targetNames\"\n v-model=\"selectedTargetNames\"\n @change=\"targetSelect\"\n multiple\n >\n <template v-slot:prepend-item>\n <v-list-item ripple @mousedown.prevent @click=\"toggleTargets\">\n <v-list-item-action>\n <v-icon>\n {{ icon }}\n </v-icon>\n </v-list-item-action>\n <v-list-item-content>\n <v-list-item-title> Select All </v-list-item-title>\n </v-list-item-content>\n </v-list-item>\n <v-divider class=\"mt-2\"></v-divider>\n </template>\n </v-select>\n </v-col>\n <v-col>\n <v-btn\n class=\"primary\"\n @click=\"renderedTargetNames = selectedTargetNames\"\n >\n Display\n </v-btn>\n </v-col>\n <v-col>\n <v-select\n label=\"Item Columns\"\n dense\n hide-details\n outlined\n v-model=\"columns\"\n :items=\"columnItems\"\n ></v-select>\n </v-col>\n </v-row>\n </v-container>\n </v-card>\n <div style=\"height: 15px\" />\n <div v-for=\"target in renderedTargetNames\" :key=\"target\">\n <target\n :target=\"target\"\n :columns=\"columns\"\n :hideIgnored=\"hideIgnored\"\n :hideDerived=\"hideDerived\"\n ></target>\n </div>\n </div>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/tool-common/src/services/openc3-api'\nimport TopBar from '@openc3/tool-common/src/components/TopBar'\nimport Target from './Target'\n\nexport default {\n components: {\n TopBar,\n Target,\n },\n data() {\n return {\n title: 'Handbooks',\n targetNames: [],\n selectedTargetNames: [],\n renderedTargetNames: [],\n api: null,\n columns: 3,\n columnItems: [\n { text: '1', value: 12 },\n { text: '2', value: 6 },\n { text: '3', value: 4 },\n { text: '4', value: 3 },\n { text: '6', value: 2 },\n { text: '12', value: 1 },\n ],\n hideIgnored: false,\n hideDerived: false,\n menus: [\n {\n label: 'View',\n items: [\n {\n label: 'Hide Ignored Items',\n checkbox: true,\n command: () => {\n this.hideIgnored = !this.hideIgnored\n },\n },\n {\n label: 'Hide Derived Items',\n checkbox: true,\n command: () => {\n this.hideDerived = !this.hideDerived\n },\n },\n ],\n },\n ],\n }\n },\n computed: {\n allTargetsSelected() {\n return this.targetNames.length === this.selectedTargetNames.length\n },\n someTargetsSelected() {\n return this.selectedTargetNames.length > 0 && !this.allTargetsSelected\n },\n icon() {\n if (this.allTargetsSelected) return 'mdi-close-box'\n if (this.someTargetsSelected) return 'mdi-minus-box'\n return 'mdi-checkbox-blank-outline'\n },\n },\n created() {\n this.api = new OpenC3Api()\n this.api\n .get_target_names({ params: { scope: window.openc3Scope } })\n .then((targets) => {\n this.targetNames = targets\n })\n },\n methods: {\n toggleTargets() {\n this.$nextTick(() => {\n if (this.allTargetsSelected) {\n this.selectedTargetNames = []\n } else {\n this.selectedTargetNames = this.targetNames.slice()\n }\n })\n },\n },\n}\n</script>\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Handbooks.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Handbooks.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Handbooks.vue?vue&type=template&id=e58fd9cc\"\nimport script from \"./Handbooks.vue?vue&type=script&lang=js\"\nexport * from \"./Handbooks.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-title[data-v-0af23388]{font-size:2rem}.menu-button[data-v-0af23388]{border-color:var(--color-border-interactive-muted)!important;background-color:var(--color-background-base-default)!important;padding-right:3px!important}span.v-btn__content span[data-v-0af23388]{padding-right:5px}.list-action[data-v-0af23388] label{color:#fff;padding-left:10px}.myicon[data-v-0af23388]{background-color:var(--color-background-surface-selected);border:1px solid currentColor;border-radius:3px;height:36px!important;width:36px!important}.v-list[data-v-0af23388] .v-label{margin-left:5px}.v-list-item__icon[data-v-0af23388]{margin-right:15px!important}.v-list-item__title[data-v-0af23388]{color:#fff}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[3]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TopBar.vue?vue&type=style&index=0&id=0af23388&prod&scoped=true&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7f447726\", content, true, {\"sourceMap\":false,\"shadowMode\":false});"],"names":["cov_j54npvll7","actualCoverage","s","render","f","_vm","this","_c","_self","attrs","menus","title","_v","staticClass","targetNames","on","targetSelect","scopedSlots","_u","key","fn","$event","preventDefault","toggleTargets","_s","icon","proxy","model","value","selectedTargetNames","callback","$$v","expression","renderedTargetNames","columnItems","columns","staticStyle","_l","target","hideIgnored","hideDerived","staticRenderFns","vueInstance","Vue","axiosInstance","axios","create","baseURL","location","origin","timeout","params","interceptors","response","use","error","status","OpenC3Auth","updateToken","defaultMinValidity","then","refreshed","setTokens","config","headers","includes","toString","Promise","reject","body","statusText","data","message","exception","class","$notify","serious","OpenC3Api","constructor","_defineProperty","exec","method","kwparams","headerOptions","login","id","window","openc3Scope","post","jsonrpc","keyword_params","Authorization","localStorage","openc3Token","result","err","Error","name","object","request","decode_openc3_type","val","json_class","raw","NaN","Infinity","encode_openc3_type","Number","isNaN","POSITIVE_INFINITY","NEGATIVE_INFINITY","ensure_offline_access","offline_access_needed","needed","openc3OfflineToken","set_offline_access","getOfflineAccess","offline_access_token","get_all_interface_info","map_target_to_interface","target_name","interface_name","connect_interface","interface_params","length","disconnect_interface","interface_cmd","command_name","command_params","get_all_router_info","connect_router","router_name","disconnect_router","get_target_interfaces","get_all_target_info","get_tlm_cnts","target_commands","get_item","packet","item","get_param","get_parameter","get_limits_sets","get_limits_set","set_limits_set","limits_set","get_target","get_target_names","get_target_list","get_tlm","packet_name","get_telemetry","get_all_tlm","get_all_telemetry","get_all_tlm_names","hidden","get_all_telemetry_names","get_tlm_packet","value_type","stale_time","type","len","converted","i","get_packet_derived_items","get_tlm_buffer","get_tlm_values","items","cache_timeout","kw_args","get_limits","item_name","tlm","undefined","inject_tlm","item_hash","set_tlm","override_tlm","get_overrides","normalize_tlm","get_all_cmds","get_all_commands","get_all_cmd_names","get_all_command_names","get_cmd","get_command","get_cmd_cnts","get_cmd_value","parameter_name","get_cmd_buffer","_cmd","param_list","Object","prototype","hasOwnProperty","call","get_cmd_hazardous","cmd","cmd_no_range_check","cmd_raw","cmd_raw_no_range_check","cmd_no_hazardous_check","cmd_no_checks","cmd_raw_no_hazardous_check","cmd_raw_no_checks","build_cmd","build_command","get_interface_names","send_raw","list_configs","tool","load_config","save_config","delete_config","enable_limits","disable_limits","get_out_of_limits","get_overall_limits_state","ignored","list_settings","get_all_settings","get_setting","get_settings","array","set_setting","save_setting","get_metrics","hashString","string","isSecureContext","arrayBuffer","TextEncoder","encode","hashAsArrayBuffer","crypto","subtle","digest","uint8ViewOfHash","Uint8Array","Array","from","map","b","padStart","join","menu","ref","refInFor","_g","_b","formatDT","label","domProps","radioGroup","option","j","divider","subMenu","k","disabled","_e","radio","checkbox","style","submenu","subMenuClick","command","checked","$set","props","default","String","methods","replaceAll","toLowerCase","$refs","topmenu","isActive","mounted","document","component","cov_iqqsvvixa","commands","packetName","ignoredParams","telemetry","ignoredItems","cov_1scjnunnk3","description","endianness","cov_ff9deo6d4","bit_offset","bit_size","data_type","overflow","hasOwn","minimum","maximum","id_value","toUpperCase","readConversion","writeConversion","required","Boolean","computed","read_conversion","write_conversion","components","Item","filter","Packet","api","created","ignored_parameters","ignored_items","packets","TopBar","Target","text","allTargetsSelected","someTargetsSelected","scope","targets","$nextTick","slice","___CSS_LOADER_EXPORT___","push","module","content","__esModule","locals","exports","add"],"sourceRoot":""}
|