<?xml version="1.0" encoding="UTF-8"?>
<Commands
    xmlns="CommandLine"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="CommandLine CommandLine.xsd">
    <Command Keyword="?" Description="Show help">
        <Syntax Help="Get general help"></Syntax>
        <Syntax Help="Get help on a command">
            <ARG_COMMAND/>
        </Syntax>
    </Command>
    <Command Keyword="@" Description="Bash command full stdin/stdout capabities" Advanced="true">
        <Syntax Help="bash command">
            <ARG_STRING/>
        </Syntax>
    </Command>
    <Command Keyword="!" Description="Bash command with no stdin, stdout routed to syslog IMPORTANT" Advanced="true">
        <Syntax Help="bash command">
            <ARG_STRING/>
        </Syntax>
    </Command>
    <Command Keyword="burn" Description="Burn (or stop burning) the burnwire" Advanced="true">
        <Syntax Help="Terminate burnwire burn">
            <ARG_KEYWORD Keyword="off"/>
        </Syntax>
        <Syntax Help="Start burnwire burn">
            <ARG_KEYWORD Keyword="on"/>
        </Syntax>
        <Syntax Help="Burn for #seconds, Q interrupts">
            <ARG_SECONDS/>
        </Syntax>
    </Command>
    <Command Keyword="conversation" Description="Show, start and stop satellite conversations">
        <Syntax Help="Show satellite conversation state"></Syntax>
        <Syntax Help="Start satellite conversation state">
            <ARG_KEYWORD Keyword="start"/>
        </Syntax>
        <Syntax Help="Stop satellite conversation state">
            <ARG_KEYWORD Keyword="stop"/>
        </Syntax>
    </Command>
    <Command Keyword="failComponent" Description="Show, set, or clear failed state of components" Advanced="true">
        <Syntax Help="List all failed components"></Syntax>
        <Syntax Help="Show failure state of one component">
            <ARG_KEYWORD Keyword="show"/>
            <ARG_COMPONENT/>
        </Syntax>
        <Syntax Help="Clear failure state of one component">
            <ARG_KEYWORD Keyword="none"/>
            <ARG_COMPONENT/>
        </Syntax>
        <Syntax Help="Set failure state of one component to 'Hardware Failure'">
            <ARG_KEYWORD Keyword="hardware"/>
            <ARG_COMPONENT/>
        </Syntax>
        <Syntax Help="Set failure state of one component to 'Software Failure'">
            <ARG_KEYWORD Keyword="software"/>
            <ARG_COMPONENT/>
        </Syntax>
    </Command>
    <Command Keyword="failVariable" Description="Show, set, or clear failed state of values" Advanced="true">
        <Syntax Help="List all failed variables"></Syntax>
        <Syntax Help="Show failure state of one variable">
            <ARG_KEYWORD Keyword="show"/>
            <ARG_VARIABLE/>
        </Syntax>
        <Syntax Help="Clear failure state of one variable">
            <ARG_KEYWORD Keyword="false"/>
            <ARG_VARIABLE/>
        </Syntax>
        <Syntax Help="Set failure state of one variable">
            <ARG_KEYWORD Keyword="true"/>
            <ARG_VARIABLE/>
        </Syntax>
    </Command>
    <Command Keyword="get" Description="Get variable value">
        <Syntax Help="Get value, optionally with specified unit">
            <ARG_VARIABLE/>
            <ARG_UNIT Required="NOT_REQUIRED"/>
        </Syntax>
    </Command>
    <Command Keyword="help" Description="Show help, optionally for a specific command">
        <Syntax Help="Get general help"></Syntax>
        <Syntax Help="Get help on a command">
            <ARG_COMMAND/>
        </Syntax>
    </Command>
    <Command Keyword="ibit" Description="Run Initiated Built In Test">
        <Syntax Help="Run standard IBIT"></Syntax>
        <Syntax Help="Run IBIT test of mcp5553 device">
            <ARG_KEYWORD Keyword="mcp5553"/>
            <ARG_INT Required="NOT_REQUIRED"/>
        </Syntax>
    </Command>
    <Command Keyword="load" Description="Load, but do not run mission">
        <Syntax Help="Load mission file so that subsequent \">
            <ARG_MISSION/>
        </Syntax>
    </Command>
    <Command Keyword="maintain" Description="Maintain variable value">
        <Syntax Help="List maintained values">
            <ARG_KEYWORD Keyword="list" Required="NOT_REQUIRED"/>
        </Syntax>
        <Syntax Help="Clear all maintained values">
            <ARG_KEYWORD Keyword="clear"/>
        </Syntax>
        <Syntax Help="Add maintained value">
            <ARG_KEYWORD Keyword="add"/>
            <ARG_VARIABLE/>
            <ARG_FLOAT/>
            <ARG_UNIT/>
        </Syntax>
        <Syntax Help="Remove maintained value">
            <ARG_KEYWORD Keyword="remove"/>
            <ARG_VARIABLE/>
        </Syntax>
    </Command>
    <Command Keyword="quick" Description="Toggle state of quicker than realtime execution" Advanced="true">
        <Syntax Help="Show state of quicker than realtime execution"></Syntax>
        <Syntax Help="Turn on quicker than realtime execution">
            <ARG_KEYWORD Keyword="on "/>
        </Syntax>
        <Syntax Help="Turn off quicker than realtime execution">
            <ARG_KEYWORD Keyword="off "/>
        </Syntax>
    </Command>
    <Command Keyword="quit" Description="Stop any running mission and exit LRAUV program" Advanced="true">
        <Syntax Help="Quit immediately"></Syntax>
    </Command>
    <Command Keyword="report" Description="Report variable value">
        <Syntax Help="List reported values">
            <ARG_KEYWORD Keyword="list" Required="NOT_REQUIRED"/>
        </Syntax>
        <Syntax Help="Clear all reported values">
            <ARG_KEYWORD Keyword="clear"/>
        </Syntax>
        <Syntax Help="Add report on variable modification">
            <ARG_KEYWORD Keyword="mod"/>
            <ARG_VARIABLE/>
            <ARG_UNIT Required="NOT_REQUIRED"/>
        </Syntax>
        <Syntax Help="Add report on variable touch">
            <ARG_KEYWORD Keyword="touch"/>
            <ARG_VARIABLE/>
            <ARG_UNIT Required="NOT_REQUIRED"/>
        </Syntax>
        <Syntax Help="Add periodic report every #seconds">
            <ARG_KEYWORD Keyword="periodic"/>
            <ARG_SECONDS/>
            <ARG_VARIABLE/>
            <ARG_UNIT Required="NOT_REQUIRED"/>
        </Syntax>
        <Syntax Help="Remove reported value">
            <ARG_KEYWORD Keyword="remove"/>
            <ARG_VARIABLE/>
        </Syntax>
    </Command>
    <Command Keyword="restart" Description="Restart system">
        <Syntax Help="Restart system with optional Config dir, log symlink, pause and/or command(s)">
            <ARG_KEYWORD Keyword="-c" Required="NOT_REQUIRED"/>
            <ARG_CONFIG_DIR Required="REQUIRED_AFTER_PREVIOUS"/>
            <ARG_KEYWORD Keyword="-l" Required="NOT_REQUIRED"/>
            <ARG_TOKEN Required="REQUIRED_AFTER_PREVIOUS"/>
            <ARG_KEYWORD Keyword="-p" Required="NOT_REQUIRED"/>
            <ARG_INT Required="REQUIRED_AFTER_PREVIOUS"/>
            <ARG_KEYWORD Keyword="-x" Required="NOT_REQUIRED"/>
            <ARG_QUOTED_STRING Required="REQUIRED_AFTER_PREVIOUS"/>
        </Syntax>
    </Command>
    <Command Keyword="run" Description="Run mission">
        <Syntax Help="Rum mission file, optionally in real-time and/or quitting at the end">
            <ARG_MISSION Required="NOT_REQUIRED"/>
            <ARG_KEYWORD Keyword="quitatend" Required="NOT_REQUIRED"/>
        </Syntax>
    </Command>
    <Command Keyword="set" Description="Set variable value">
        <Syntax Help="Set value with specified unit">
            <ARG_VARIABLE/>
            <ARG_FLOAT/>
            <ARG_UNIT/>
        </Syntax>
    </Command>
    <Command Keyword="shiplog" Description="Increment or indicate current ship log">
        <Syntax Help="Show ship log name">
            <ARG_KEYWORD Keyword="name" Required="NOT_REQUIRED"/>
        </Syntax>
        <Syntax Help="Increment ship log">
            <ARG_KEYWORD Keyword="increment"/>
        </Syntax>
    </Command>
    <Command Keyword="shorelog" Description="Increment or indicate current shore log">
        <Syntax Help="Show shore log name">
            <ARG_KEYWORD Keyword="name" Required="NOT_REQUIRED"/>
        </Syntax>
        <Syntax Help="Increment shore log">
            <ARG_KEYWORD Keyword="increment"/>
        </Syntax>
    </Command>
    <Command Keyword="show" Description="Show information">
        <Syntax Help="Show \">
            <ARG_KEYWORD Keyword="best"/>
            <ARG_UNIVERSAL/>
        </Syntax>
        <Syntax Help="List components with names like the regular expression">
            <ARG_KEYWORD Keyword="component"/>
            <ARG_REGEX/>
        </Syntax>
        <Syntax Help="List dependencies between variables and components">
            <ARG_KEYWORD Keyword="dependencies"/>
        </Syntax>
        <Syntax Help="Show the current mission behavior stack">
            <ARG_KEYWORD Keyword="stack"/>
        </Syntax>
        <Syntax Help="List variables with names like the regular expression">
            <ARG_KEYWORD Keyword="variable"/>
            <ARG_REGEX/>
        </Syntax>
    </Command>
    <Command Keyword="stop" Description="Stop currently running mission">
        <Syntax Help="Stop now"></Syntax>
    </Command>
</Commands>
