Skip to content

Commit

Permalink
Address Bryan PR reviews
Browse files Browse the repository at this point in the history
  • Loading branch information
goetzrrGit committed Dec 20, 2024
1 parent ba862aa commit 4e383b3
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 13 deletions.
10 changes: 5 additions & 5 deletions src/utilities/sequence-editor/from-seq-json.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -461,19 +461,19 @@ C FSW_CMD_2 10 "ENUM" # fsw cmd 2 description
description: 'immediate command',
metadata: {},
stem: 'IC',
type: 'command',
type: 'immediate_command',
},
{
args: [],
stem: 'IC2',
type: 'command',
type: 'immediate_command',
},
{
args: [],
description: 'noop command, no arguments',
metadata: { processor: 'VC1A' },
stem: 'NOOP',
type: 'command',
type: 'immediate_command',
},
{
args: [
Expand All @@ -487,12 +487,12 @@ C FSW_CMD_2 10 "ENUM" # fsw cmd 2 description
Key: 'Value',
},
sequence: 'seqA',
type: 'load',
type: 'immediate_load',
},
{
description: 'description',
sequence: 'seqB',
type: 'activate',
type: 'immediate_activate',
},
],
metadata: {},
Expand Down
26 changes: 18 additions & 8 deletions src/utilities/sequence-editor/from-seq-json.ts
Original file line number Diff line number Diff line change
Expand Up @@ -208,20 +208,20 @@ export async function seqJsonToSequence(input: string | null): Promise<string> {
if (seqJson.immediate_commands) {
sequence.push(`\n`);
sequence.push(`@IMMEDIATE\n`);
for (const rtc of seqJson.immediate_commands) {
switch (rtc.type) {
for (const realTimeCommand of seqJson.immediate_commands) {
switch (realTimeCommand.type) {
case 'command': {
// FSW Commands
sequence.push(commandToString(rtc));
sequence.push(commandToString(realTimeCommand));
break;
}
case 'activate':
case 'load': {
sequence.push(loadOrActivateToString(rtc));
sequence.push(loadOrActivateToString(realTimeCommand));
break;
}
default: {
throw new Error(`Invalid immediate command type ${rtc.type}`);
throw new Error(`Invalid immediate command type ${realTimeCommand.type}`);
}
}
}
Expand Down Expand Up @@ -257,13 +257,23 @@ export async function seqJsonToSequence(input: string | null): Promise<string> {
return sequence.join('');
}

function isCommand(step: Command | ImmediateFswCommand): step is Command {
return (step as Command).time !== undefined;
}

function commandToString(step: Command | ImmediateFswCommand): string {
const time = 'time' in step ? `${seqJsonTimeToSequence(step.time)} ` : '';
const args = seqJsonArgsToSequence(step.args);
const metadata = step.metadata ? seqJsonMetadataToSequence(step.metadata) : '';
const models = 'models' in step ? (step.models ? seqJsonModelsToSequence(step.models) : '') : '';
const description = step.description ? seqJsonDescriptionToSequence(step.description) : '';

// used for commands, ImmediateFswCommand doesn't support 'time' and 'models'
let time = '';
let models = '';
if (isCommand(step)) {
time = step.time ? `${seqJsonTimeToSequence(step.time)} ` : '';
models = step.models ? (step.models ? seqJsonModelsToSequence(step.models) : '') : '';
}

let commandString = `${time}${step.stem}${args}${description}`;
// add a new line if on doesn't exit at the end of the commandString
if (!commandString.endsWith('\n')) {
Expand All @@ -275,7 +285,7 @@ function commandToString(step: Command | ImmediateFswCommand): string {
}

function loadOrActivateToString(step: Activate | Load | ImmediateActivate | ImmediateLoad) {
const time = 'time' in step ? `${seqJsonTimeToSequence(step.time)} ` : '';
const time = (step as Activate | Load).time ? `${seqJsonTimeToSequence((step as Activate | Load).time)} ` : '';
const args = step.args ? seqJsonArgsToSequence(step.args) : '';
const metadata = step.metadata ? seqJsonMetadataToSequence(step.metadata) : '';
const models = step.models ? seqJsonModelsToSequence(step.models) : '';
Expand Down

0 comments on commit 4e383b3

Please sign in to comment.