cosmos 4.4.1 → 4.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/build_v4.yml +33 -0
- data/Dockerfile +10 -4
- data/Gemfile +1 -1
- data/Manifest.txt +26 -2
- data/README.md +4 -1
- data/Rakefile +33 -27
- data/autohotkey/tools/cmd_extractor.ahk +11 -9
- data/autohotkey/tools/cmd_sender.ahk +1 -1
- data/autohotkey/tools/cmd_sequence.ahk +1 -1
- data/autohotkey/tools/data_viewer.ahk +1 -1
- data/autohotkey/tools/limits_monitor.ahk +1 -1
- data/autohotkey/tools/packet_viewer.ahk +1 -1
- data/autohotkey/tools/script_runner.ahk +1 -1
- data/autohotkey/tools/test_runner2.ahk +1 -1
- data/autohotkey/tools/tlm_grapher.ahk +1 -1
- data/autohotkey/tools/tlm_grapher3.ahk +1 -1
- data/autohotkey/tools/tlm_viewer.ahk +1 -1
- data/autohotkey/tools/tlm_viewer2.ahk +1 -1
- data/autohotkey/tools/tlm_viewer5.ahk +1 -1
- data/bin/rubysloc +73 -28
- data/bin/xtce_converter +1 -1
- data/cosmos.gemspec +6 -12
- data/data/config/interface_modifiers.yaml +3 -2
- data/data/config/system.yaml +81 -24
- data/data/crc.txt +435 -435
- data/demo/Rakefile +4 -4
- data/demo/config/data/crc.txt +250 -250
- data/demo/config/system/system.txt +15 -7
- data/demo/config/system/system2.txt +15 -7
- data/demo/config/system/system_alt_ports.txt +15 -7
- data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
- data/demo/config/tools/handbook_creator/default_toc.xsl +59 -59
- data/ext/cosmos/ext/buffered_file/buffered_file.c +2 -2
- data/ext/cosmos/ext/config_parser/config_parser.c +1 -2
- data/ext/cosmos/ext/line_graph/line_graph.c +53 -94
- data/ext/cosmos/ext/packet/packet.c +0 -6
- data/ext/cosmos/ext/platform/platform.c +56 -21
- data/ext/cosmos/ext/polynomial_conversion/polynomial_conversion.c +4 -8
- data/ext/cosmos/ext/structure/structure.c +12 -0
- data/extensions/vscode/.gitignore +4 -0
- data/extensions/vscode/.vscode/launch.json +32 -0
- data/extensions/vscode/.vscode/settings.json +13 -0
- data/extensions/vscode/.vscode/tasks.json +79 -0
- data/extensions/vscode/License.txt +879 -0
- data/extensions/vscode/README.md +9 -0
- data/extensions/vscode/client/License.txt +879 -0
- data/extensions/vscode/client/README.md +39 -0
- data/extensions/vscode/client/cosmos.configuration.json +23 -0
- data/extensions/vscode/client/images/icon.png +0 -0
- data/extensions/vscode/client/package-lock.json +414 -0
- data/extensions/vscode/client/package.json +105 -0
- data/extensions/vscode/client/src/extension.ts +132 -0
- data/extensions/vscode/client/src/screen_preview.rb +25 -0
- data/extensions/vscode/client/syntaxes/cosmos.tmLanguage.json +219 -0
- data/extensions/vscode/client/tsconfig.json +17 -0
- data/extensions/vscode/package-lock.json +26 -0
- data/extensions/vscode/package.json +35 -0
- data/extensions/vscode/server/License.txt +879 -0
- data/extensions/vscode/server/package-lock.json +236 -0
- data/extensions/vscode/server/package.json +29 -0
- data/extensions/vscode/server/src/server.ts +59 -0
- data/extensions/vscode/server/tsconfig.json +16 -0
- data/install/Rakefile +4 -4
- data/install/config/data/crc.txt +145 -145
- data/install/config/system/system.txt +15 -7
- data/install/config/tools/handbook_creator/default_toc.xsl +59 -59
- data/lib/cosmos/config/config_parser.rb +2 -10
- data/lib/cosmos/core_ext/class.rb +10 -0
- data/lib/cosmos/core_ext/time.rb +5 -3
- data/lib/cosmos/dart/examples/dart_decom_client.rb +1 -1
- data/lib/cosmos/dart/lib/dart_common.rb +3 -3
- data/lib/cosmos/dart/lib/dart_decommutator.rb +4 -4
- data/lib/cosmos/dart/processes/dart_decom_server.rb +1 -1
- data/lib/cosmos/dart/processes/dart_master.rb +1 -1
- data/lib/cosmos/dart/spec/dart/dart_database_cleaner_spec.rb +2 -2
- data/lib/cosmos/gui/qt.rb +10 -10
- data/lib/cosmos/gui/qt_tool.rb +17 -12
- data/lib/cosmos/gui/text/completion_text_edit.rb +2 -0
- data/lib/cosmos/gui/widgets/dart_meta_frame.rb +1 -1
- data/lib/cosmos/interfaces/dart_status_interface.rb +1 -1
- data/lib/cosmos/interfaces/linc_interface.rb +3 -3
- data/lib/cosmos/interfaces/protocols/burst_protocol.rb +1 -1
- data/lib/cosmos/interfaces/protocols/crc_protocol.rb +1 -1
- data/lib/cosmos/interfaces/protocols/template_protocol.rb +3 -3
- data/lib/cosmos/interfaces/serial_interface.rb +7 -1
- data/lib/cosmos/interfaces/stream_interface.rb +1 -1
- data/lib/cosmos/interfaces/tcpip_server_interface.rb +16 -16
- data/lib/cosmos/io/io_multiplexer.rb +6 -2
- data/lib/cosmos/io/json_drb.rb +3 -11
- data/lib/cosmos/io/json_drb_object.rb +7 -2
- data/lib/cosmos/io/json_drb_rack.rb +25 -5
- data/lib/cosmos/io/json_rpc.rb +1 -1
- data/lib/cosmos/io/posix_serial_driver.rb +60 -22
- data/lib/cosmos/io/serial_driver.rb +11 -8
- data/lib/cosmos/io/win32_serial_driver.rb +8 -1
- data/lib/cosmos/packets/packet.rb +8 -8
- data/lib/cosmos/packets/packet_config.rb +1 -1
- data/lib/cosmos/packets/packet_item_limits.rb +2 -14
- data/lib/cosmos/packets/parsers/xtce_converter.rb +10 -10
- data/lib/cosmos/packets/parsers/xtce_parser.rb +3 -0
- data/lib/cosmos/packets/structure.rb +18 -5
- data/lib/cosmos/packets/structure_item.rb +4 -21
- data/lib/cosmos/script/api_shared.rb +18 -1
- data/lib/cosmos/script/extract.rb +1 -1
- data/lib/cosmos/script/script.rb +4 -11
- data/lib/cosmos/streams/serial_stream.rb +11 -6
- data/lib/cosmos/system/system.rb +47 -13
- data/lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb +15 -0
- data/lib/cosmos/tools/cmd_sender/cmd_params.rb +25 -3
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +7 -0
- data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +0 -5
- data/lib/cosmos/tools/cmd_tlm_server/api.rb +10 -8
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +2 -2
- data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +1 -1
- data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +29 -26
- data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +1 -1
- data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +5 -0
- data/lib/cosmos/tools/config_editor/config_editor.rb +1 -1
- data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +1 -1
- data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +1 -1
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +5 -2
- data/lib/cosmos/tools/test_runner/test.rb +1 -1
- data/lib/cosmos/tools/test_runner/test_runner.rb +4 -4
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +3 -3
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +1 -4
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +3 -3
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +1 -1
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +2 -2
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +2 -0
- data/lib/cosmos/top_level.rb +1 -1
- data/lib/cosmos/utilities/simulated_target.rb +1 -1
- data/lib/cosmos/version.rb +5 -5
- data/make_gems.sh +1 -1
- data/spec/core_ext/class_spec.rb +54 -0
- data/spec/core_ext/time_spec.rb +4 -0
- data/spec/gui/qt_spec.rb +1 -1
- data/spec/gui/utilities/script_module_gui_spec.rb +1 -1
- data/spec/interfaces/linc_interface_spec.rb +1 -1
- data/spec/interfaces/serial_interface_spec.rb +1 -5
- data/spec/io/json_drb_rack_spec.rb +166 -0
- data/spec/io/json_rpc_spec.rb +4 -5
- data/spec/io/posix_serial_driver_spec.rb +87 -0
- data/spec/io/win32_serial_driver_spec.rb +17 -1
- data/spec/packet_logs/packet_log_reader_spec.rb +34 -35
- data/spec/packets/packet_item_limits_spec.rb +6 -33
- data/spec/packets/structure_item_spec.rb +3 -21
- data/spec/script/extract_spec.rb +4 -1
- data/spec/system/system_spec.rb +109 -1
- data/spec/tools/cmd_tlm_server/api_spec.rb +12 -12
- data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +2 -2
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +4 -3
- data/spec/tools/cmd_tlm_server/router_thread_spec.rb +2 -3
- data/spec/top_level/top_level_spec.rb +2 -2
- data/spec/utilities/logger_spec.rb +3 -3
- data/test/performance/Rakefile +4 -4
- data/test/performance/config/data/crc.txt +67 -48
- metadata +59 -9
- data/.coveralls.yml +0 -1
- data/.travis.yml +0 -16
@@ -0,0 +1,132 @@
|
|
1
|
+
import * as path from 'path';
|
2
|
+
import { commands, ExtensionContext, window, workspace } from 'vscode';
|
3
|
+
|
4
|
+
import {
|
5
|
+
LanguageClient,
|
6
|
+
LanguageClientOptions,
|
7
|
+
ServerOptions,
|
8
|
+
TransportKind
|
9
|
+
} from 'vscode-languageclient';
|
10
|
+
|
11
|
+
let client: LanguageClient;
|
12
|
+
|
13
|
+
export function activate(context: ExtensionContext) {
|
14
|
+
|
15
|
+
// The server is implemented in node
|
16
|
+
let serverModule = context.asAbsolutePath(
|
17
|
+
path.join('server', 'server.js')
|
18
|
+
);
|
19
|
+
|
20
|
+
// The debug options for the server
|
21
|
+
// --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging
|
22
|
+
let debugOptions = { execArgv: ['--nolazy', '--inspect=6009'] };
|
23
|
+
|
24
|
+
// If the extension is launched in debug mode then the debug server options are used
|
25
|
+
// Otherwise the run options are used
|
26
|
+
let serverOptions: ServerOptions = {
|
27
|
+
run: { module: serverModule, transport: TransportKind.ipc },
|
28
|
+
debug: {
|
29
|
+
module: serverModule,
|
30
|
+
transport: TransportKind.ipc,
|
31
|
+
options: debugOptions
|
32
|
+
}
|
33
|
+
};
|
34
|
+
|
35
|
+
// Options to control the language client
|
36
|
+
let clientOptions: LanguageClientOptions = {
|
37
|
+
// Register the server for cosmos documents
|
38
|
+
documentSelector: ['cosmos' ],
|
39
|
+
synchronize: {
|
40
|
+
// Notify the server about file changes to '.clientrc files contained in the workspace
|
41
|
+
fileEvents: [
|
42
|
+
workspace.createFileSystemWatcher('**/config/targets/*/cmdtlm/*.txt', false, false, false),
|
43
|
+
workspace.createFileSystemWatcher('**/config/targets/*/cmd_tlm/*.txt', false, false, false),
|
44
|
+
workspace.createFileSystemWatcher('**/config/targets/*/screens/*.txt', false, false, false),
|
45
|
+
workspace.createFileSystemWatcher('**/config/targets/*/cmd_tlm_server.txt', false, false, false),
|
46
|
+
workspace.createFileSystemWatcher('**/config/targets/*/target.txt', false, false, false),
|
47
|
+
workspace.createFileSystemWatcher('**/config/targets/tools/*/*.txt', false, false, false),
|
48
|
+
workspace.createFileSystemWatcher('**/lib/*.rb', false, false, false),
|
49
|
+
workspace.createFileSystemWatcher('**/procedures/*.rb', false, false, false),
|
50
|
+
]
|
51
|
+
}
|
52
|
+
};
|
53
|
+
|
54
|
+
// Create the language client and start the client.
|
55
|
+
let disposableLangCl = new LanguageClient('cosmos', 'Language Server Cosmos', serverOptions, clientOptions).start();
|
56
|
+
context.subscriptions.push(disposableLangCl);
|
57
|
+
|
58
|
+
// create a telemetry screen viewer
|
59
|
+
let screenViewer = new CosmosScreenViewer(context.extensionPath);
|
60
|
+
|
61
|
+
// Use Console to log diagnostic info
|
62
|
+
console.log('COSMOS Extension!');
|
63
|
+
|
64
|
+
let disposable = commands.registerCommand('cosmos.showGuiPreview', () => {
|
65
|
+
screenViewer.previewScreen();
|
66
|
+
});
|
67
|
+
|
68
|
+
// Add to a list of disposables which are disposed when this extension is deactivated.
|
69
|
+
context.subscriptions.push(screenViewer);
|
70
|
+
context.subscriptions.push(disposable);
|
71
|
+
}
|
72
|
+
|
73
|
+
class CosmosScreenViewer {
|
74
|
+
|
75
|
+
extPath: string;
|
76
|
+
|
77
|
+
constructor(extensionPath: string) {
|
78
|
+
this.extPath = extensionPath;
|
79
|
+
}
|
80
|
+
|
81
|
+
public previewScreen () {
|
82
|
+
|
83
|
+
// Get the current text editor
|
84
|
+
let editor = window.activeTextEditor;
|
85
|
+
if (!editor) {
|
86
|
+
return;
|
87
|
+
}
|
88
|
+
|
89
|
+
// Get required modules
|
90
|
+
const exec = require("child_process").exec;
|
91
|
+
|
92
|
+
// Store current working directory
|
93
|
+
let currDir = process.cwd();
|
94
|
+
// Change to directory where current file is because cosmos depends on directories
|
95
|
+
try {
|
96
|
+
process.chdir(path.dirname(editor.document.fileName));
|
97
|
+
}
|
98
|
+
catch (err) {
|
99
|
+
console.log(err)
|
100
|
+
}
|
101
|
+
|
102
|
+
// Build up Ruby Command
|
103
|
+
let rubyCmd = 'ruby ' + this.extPath + '/src/screen_preview.rb ' + editor.document.fileName;
|
104
|
+
|
105
|
+
// Execute Ruby Command
|
106
|
+
exec(rubyCmd, {env: {'PATH': process.env.path}}, function(err, stdout, stderr) {
|
107
|
+
if (err != null && err != "")
|
108
|
+
{
|
109
|
+
console.log(err)
|
110
|
+
}
|
111
|
+
if (stderr != null && stderr != "")
|
112
|
+
{
|
113
|
+
console.log(stderr)
|
114
|
+
}
|
115
|
+
if (stdout != null && stdout != "")
|
116
|
+
{
|
117
|
+
console.log(stdout)
|
118
|
+
}
|
119
|
+
});
|
120
|
+
|
121
|
+
// Change back to directory current working directory
|
122
|
+
try {
|
123
|
+
process.chdir(currDir);
|
124
|
+
}
|
125
|
+
catch (err) {
|
126
|
+
console.log(err)
|
127
|
+
}
|
128
|
+
}
|
129
|
+
|
130
|
+
dispose() {
|
131
|
+
}
|
132
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require 'cosmos'
|
4
|
+
require 'cosmos/gui/qt'
|
5
|
+
require 'cosmos/gui/qt_tool'
|
6
|
+
require 'cosmos/gui/utilities/classification_banner'
|
7
|
+
require 'cosmos/script'
|
8
|
+
require 'cosmos/tools/tlm_viewer/widgets'
|
9
|
+
require 'cosmos/tools/tlm_viewer/screen'
|
10
|
+
|
11
|
+
begin
|
12
|
+
v1 = ARGV[0]
|
13
|
+
|
14
|
+
app = Qt::Application.new(ARGV)
|
15
|
+
window = Cosmos::Screen.new("preview", v1, nil, :REALTIME, nil, nil, nil, nil, false, true, nil)
|
16
|
+
app.exec
|
17
|
+
rescue Exception
|
18
|
+
# Don't care what we do here because the error is always:
|
19
|
+
#
|
20
|
+
# uninitialized class variable @@redirect_io_thread_sleeper in Cosmos::QtTool
|
21
|
+
# Did you mean? @@redirect_io_thread
|
22
|
+
#
|
23
|
+
# This is because its looking for another Cosmos thread that doesn't exist
|
24
|
+
# since we are running this screen standalone to just view the screen
|
25
|
+
end
|
@@ -0,0 +1,219 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
|
3
|
+
"name": "cosmos",
|
4
|
+
"scopeName": "source.cosmos",
|
5
|
+
"patterns": [
|
6
|
+
{ "include": "#rubyStatements" },
|
7
|
+
{ "include": "#comments" },
|
8
|
+
{ "include": "#strings" },
|
9
|
+
{ "include": "#numbers" },
|
10
|
+
{ "include": "#systemConfig" },
|
11
|
+
{ "include": "#packetDef"},
|
12
|
+
{ "include": "#packetItem"},
|
13
|
+
{ "include": "#itemProperties" }
|
14
|
+
],
|
15
|
+
"repository":{
|
16
|
+
"comments": {
|
17
|
+
"begin": "(^\\s+)?(?=#)",
|
18
|
+
"beginCaptures": {
|
19
|
+
"1": {
|
20
|
+
"name": "punctuation.whitespace.comment.leading"
|
21
|
+
}
|
22
|
+
},
|
23
|
+
"end": "(?!\\G)",
|
24
|
+
"patterns": [
|
25
|
+
{
|
26
|
+
"begin": "#",
|
27
|
+
"beginCaptures": {
|
28
|
+
"0": {
|
29
|
+
"name": "punctuation.definition.comment"
|
30
|
+
}
|
31
|
+
},
|
32
|
+
"end": "\\n",
|
33
|
+
"name": "comment.line.number-sign",
|
34
|
+
"patterns": [
|
35
|
+
{
|
36
|
+
"match": "\\\\\\n",
|
37
|
+
"name": "constant.character.escape.continuation"
|
38
|
+
}
|
39
|
+
]
|
40
|
+
}
|
41
|
+
]
|
42
|
+
},
|
43
|
+
"strings": {
|
44
|
+
"patterns": [
|
45
|
+
{
|
46
|
+
"description": "Single Quoted String",
|
47
|
+
"begin": "'",
|
48
|
+
"end": "'",
|
49
|
+
"name": "string.quoted.single"
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"description": "Double Quoted String",
|
53
|
+
"begin": "\"",
|
54
|
+
"end": "\"",
|
55
|
+
"name": "string.quoted.double"
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"match": "(?<=UNITS\\s)\\b\\S+\\s\\S+\\s*$",
|
59
|
+
"name": "string.unquoted"
|
60
|
+
}
|
61
|
+
]
|
62
|
+
},
|
63
|
+
"numbers": {
|
64
|
+
"patterns": [
|
65
|
+
{
|
66
|
+
"match": "[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}",
|
67
|
+
"name": "constant.numeric"
|
68
|
+
},
|
69
|
+
{
|
70
|
+
"match": "0x[a-zA-Z0-9]+",
|
71
|
+
"name": "constant.numeric"
|
72
|
+
},
|
73
|
+
{
|
74
|
+
"match": "-?[0-9]+\\.[0-9]+",
|
75
|
+
"name": "constant.numeric"
|
76
|
+
},
|
77
|
+
{
|
78
|
+
"match": "[0-9]",
|
79
|
+
"name": "constant.numeric"
|
80
|
+
}
|
81
|
+
]
|
82
|
+
},
|
83
|
+
"rubyStatements": {
|
84
|
+
"patterns": [
|
85
|
+
{
|
86
|
+
"begin": "<%",
|
87
|
+
"end": "%>",
|
88
|
+
"patterns":[
|
89
|
+
{
|
90
|
+
"match": ".*",
|
91
|
+
"include": "source.ruby"
|
92
|
+
}
|
93
|
+
]
|
94
|
+
},
|
95
|
+
{
|
96
|
+
"begin": "(?<=GENERIC_READ_CONVERSION_START)",
|
97
|
+
"include": "source.ruby",
|
98
|
+
"end": "(?=GENERIC_READ_CONVERSION_END)"
|
99
|
+
},
|
100
|
+
{
|
101
|
+
"begin": "(?<=GENERIC_WRITE_CONVERSION_START)",
|
102
|
+
"include": "source.ruby",
|
103
|
+
"end": "(?=GENERIC_WRITE_CONVERSION_END)"
|
104
|
+
}
|
105
|
+
]
|
106
|
+
},
|
107
|
+
"systemConfig": {
|
108
|
+
"patterns": [
|
109
|
+
{ "include": "#declareTarget" }
|
110
|
+
],
|
111
|
+
"repository":{
|
112
|
+
"declareTarget": {
|
113
|
+
"patterns": [
|
114
|
+
{
|
115
|
+
"match": "^\\s*(DECLARE_TARGET)\\b",
|
116
|
+
"name": "storage.type"
|
117
|
+
},
|
118
|
+
{
|
119
|
+
"match": "(?<=DECLARE_TARGET\\s)\\b\\S+(?=\\s)",
|
120
|
+
"name": "support.class"
|
121
|
+
}
|
122
|
+
]
|
123
|
+
}
|
124
|
+
}
|
125
|
+
},
|
126
|
+
"packetDef": {
|
127
|
+
"patterns": [
|
128
|
+
{
|
129
|
+
"match": "^(TELEMETRY|COMMAND)\\b",
|
130
|
+
"name": "storage.type"
|
131
|
+
},
|
132
|
+
{
|
133
|
+
"match": "(?<=TELEMETRY\\s)\\b\\S+(?=\\s)",
|
134
|
+
"name": "support.class"
|
135
|
+
},
|
136
|
+
{
|
137
|
+
"match": "(?<=COMMAND\\s)\\b\\S+(?=\\s)",
|
138
|
+
"name": "support.class"
|
139
|
+
},
|
140
|
+
{
|
141
|
+
"match": "(?<=\\s)\\b\\S+(?=\\sBIG_ENDIAN)",
|
142
|
+
"name": "variable.other"
|
143
|
+
},
|
144
|
+
{
|
145
|
+
"match": "(?<=\\s)\\b\\S+(?=\\sLITTLE_ENDIAN)",
|
146
|
+
"name": "variable.other"
|
147
|
+
},
|
148
|
+
{
|
149
|
+
"match": "\\b(BIG_ENDIAN|LITTLE_ENDIAN)\\b",
|
150
|
+
"name": "keyword.control"
|
151
|
+
}
|
152
|
+
]
|
153
|
+
},
|
154
|
+
"packetItem": {
|
155
|
+
"patterns": [
|
156
|
+
{
|
157
|
+
"match": "^\\s*(APPEND_ID_|ID_)(ITEM|PARAMETER)\\b",
|
158
|
+
"name": "support.function"
|
159
|
+
},
|
160
|
+
{
|
161
|
+
"match": "^\\s*APPEND_(ITEM|PARAMETER)\\b",
|
162
|
+
"name": "storage.modifer"
|
163
|
+
},
|
164
|
+
{
|
165
|
+
"match": "^\\s*(ITEM|PARAMETER)\\b",
|
166
|
+
"name": "storage.modifer"
|
167
|
+
},
|
168
|
+
{
|
169
|
+
"match": "(?<=ITEM\\s)\\b\\S+(?=\\s)",
|
170
|
+
"name": "variable.parameter"
|
171
|
+
},
|
172
|
+
{
|
173
|
+
"match": "(?<=APPEND_ITEM\\s)\\b\\S+(?=\\s)",
|
174
|
+
"name": "variable.parameter"
|
175
|
+
},
|
176
|
+
{
|
177
|
+
"match": "(?<=PARAMETER\\s)\\b\\S+(?=\\s)",
|
178
|
+
"name": "variable.parameter"
|
179
|
+
},
|
180
|
+
{
|
181
|
+
"match": "(?<=APPEND_PARAMETER\\s)\\b\\S+(?=\\s)",
|
182
|
+
"name": "variable.parameter"
|
183
|
+
},
|
184
|
+
{
|
185
|
+
"match": "\\b(INT|UINT|FLOAT|DERIVED|STRING|BLOCK)\\b",
|
186
|
+
"name": "storage.type"
|
187
|
+
}
|
188
|
+
]
|
189
|
+
},
|
190
|
+
"itemProperties": {
|
191
|
+
"patterns": [
|
192
|
+
{
|
193
|
+
"match": "\\b(HAZARDOUS)\\b",
|
194
|
+
"name": "invalid.deprecated"
|
195
|
+
},
|
196
|
+
{
|
197
|
+
"match": "^\\s*(FORMAT_STRING|UNITS|DESCRIPTION|META|REQUIRED|MINIMUM_VALUE|MAXIMUM_VALUE|DEFAULT_VALUE|STATE|WRITE_CONVERSION|POLY_WRITE_CONVERSION|SEG_POLY_WRITE_CONVERSION|GENERIC_WRITE_CONVERSION_START|GENERIC_WRITE_CONVERSION_END|OVERFLOW)\\b",
|
198
|
+
"name": "keyword.control"
|
199
|
+
},
|
200
|
+
{
|
201
|
+
"match": "^\\s*(FORMAT_STRING|UNITS|DESCRIPTION|META|STATE|READ_CONVERSION|POLY_READ_CONVERSION|SEG_POLY_READ_CONVERSION|GENERIC_READ_CONVERSION_START|GENERIC_READ_CONVERSION_END|LIMITS|LIMITS_RESPONSE)\\b",
|
202
|
+
"name": "keyword.control"
|
203
|
+
},
|
204
|
+
{
|
205
|
+
"match": "(?:(?<=STATE\\s)|(?<=META\\s)|(?<=LIMITS\\s))\\b\\S+(?=\\s)",
|
206
|
+
"name": "variable.parameter"
|
207
|
+
},
|
208
|
+
{
|
209
|
+
"match": "META\\K\\s\\S+\\s+\\K.*",
|
210
|
+
"name": "support.variable"
|
211
|
+
},
|
212
|
+
{
|
213
|
+
"match": "(?<=\\s)(ENABLED|DISABLED)",
|
214
|
+
"name": "support.type"
|
215
|
+
}
|
216
|
+
]
|
217
|
+
}
|
218
|
+
}
|
219
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"compilerOptions": {
|
3
|
+
"noImplicitAny": false,
|
4
|
+
"noImplicitReturns": true,
|
5
|
+
"noUnusedLocals": false,
|
6
|
+
"noUnusedParameters": false,
|
7
|
+
"outDir": "out",
|
8
|
+
"moduleResolution": "node",
|
9
|
+
"lib": ["dom", "es2015"]
|
10
|
+
},
|
11
|
+
"include": [
|
12
|
+
"src/*"
|
13
|
+
],
|
14
|
+
"exclude": [
|
15
|
+
"node_modules"
|
16
|
+
]
|
17
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
{
|
2
|
+
"name": "cosmos",
|
3
|
+
"version": "0.0.3",
|
4
|
+
"lockfileVersion": 1,
|
5
|
+
"requires": true,
|
6
|
+
"dependencies": {
|
7
|
+
"@types/mocha": {
|
8
|
+
"version": "2.2.48",
|
9
|
+
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz",
|
10
|
+
"integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==",
|
11
|
+
"dev": true
|
12
|
+
},
|
13
|
+
"@types/node": {
|
14
|
+
"version": "6.0.117",
|
15
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.117.tgz",
|
16
|
+
"integrity": "sha512-sihk0SnN8PpiS5ihu5xJQ5ddnURNq4P+XPmW+nORlKkHy21CoZO/IVHK/Wq/l3G8fFW06Fkltgnqx229uPlnRg==",
|
17
|
+
"dev": true
|
18
|
+
},
|
19
|
+
"typescript": {
|
20
|
+
"version": "2.9.2",
|
21
|
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
|
22
|
+
"integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
|
23
|
+
"dev": true
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
"name": "cosmos",
|
3
|
+
"description": "Language support for COSMOS configuration files",
|
4
|
+
"author": "Ball Aerospace",
|
5
|
+
"license": "BALL GPL",
|
6
|
+
"version": "0.0.8",
|
7
|
+
"icon": "images/icon.png",
|
8
|
+
"repository": {
|
9
|
+
"type": "git",
|
10
|
+
"url": "https://github.com/BallAerospace/COSMOS"
|
11
|
+
},
|
12
|
+
"publisher": "BallAero",
|
13
|
+
"scripts": {
|
14
|
+
"postinstall": "cd server && npm install && cd ../client && npm install && cd .. && npm run-script compile",
|
15
|
+
"compile": "npm run-script compile:client && npm run-script compile:server",
|
16
|
+
"compile:client": "cd client && tsc -p ./ && cd ..",
|
17
|
+
"compile:server": "cd server && npm run installServer && cd .. && tsc -p server/tsconfig.json",
|
18
|
+
"watch:client": "tsc -watch -p ./client/tsconfig.json",
|
19
|
+
"watch:server": "cd server && npm run installServer && cd .. && tsc -w -p server/tsconfig.json",
|
20
|
+
"distclean:client": "cd client && rm -fr node_modules && cd ..",
|
21
|
+
"distclean:server": "cd server && rm -fr node_modules && cd ..",
|
22
|
+
"distclean": "npm run-script distclean:client && npm run-script distclean:server && rm -fr node_modules",
|
23
|
+
"upgrade:client": "cd client && npm upgrade",
|
24
|
+
"upgrade:server": "cd server && npm upgrade",
|
25
|
+
"upgrade": "npm run-script upgrade:client && npm run-script upgrade:server && npm upgrade"
|
26
|
+
},
|
27
|
+
"devDependencies": {
|
28
|
+
"mocha": "^2.2.48",
|
29
|
+
"node": "^6.0.116",
|
30
|
+
"typescript": "^2.9.2"
|
31
|
+
},
|
32
|
+
"dependencies": {
|
33
|
+
"tsc": "^1.20150623.0"
|
34
|
+
}
|
35
|
+
}
|