Manual
sl version: 1.11
Use sl --readme > manual.md to generate this manual if your sl version is different.
Welcome to the sl command line/cloud tool. sl is used to develop, debug, deploy, and share applications, OS packages and data for Stratify OS.
Workspaces and Login#
The sl command line tool operates in a workspace, or simply the current working directory. It automatically creates workspace files when they don't exist.
Because sl is a cloud tool, it requires you to login. The first time you run sl in a new workspace, it will launch the browser and ask you to login. Once you create an account using the Stratify web application, you can copy an sl login command and execute it in the terminal. This will create an sl_credentials.json file in the workspace. The command sl cloud.logout will remove the credentials from the workspace.
Switches
Switches can be passed with any command. All switches are processed before any commands regardless of the order.
help
shows help information. Usage: sl --help[=<group>][.<command>]
offline operate in offline mode (not all features are available)
listen run as an HTTP server using JSON requests
webpath path to an HTTP site to serve
update
checks for updates to sl and downloads the latest version without making it effective. To make the latest version effective, you need to execute slu to replace the downloaded version with the new version. Usage: sl --update
debug
shows low level debugging. Example: sl os.ping --debug=10
shortcuts
shows the shortcuts available in the workspace. Example: sl --shortcuts
version
shows version information for sl. Example: sl --version
initialize
Initializes the current directory as an sl workspace. Example: sl --initialize
shortcut
saves the commands as a shortcut. Example: sl term.run --save=runTerminal
readme
prints the entire readme document. Example: sl --readme
verbose
sets the verbose level. Usage: sl --verbose=<fatal|error|warning|info|message|debug>
vanilla
disables color and other formatting options in the output. Example: sl debug.trace --vanilla
json
prints output in JSON format. Example: sl --version --json
archivehistory
archives the workspace history. The history is automatically archived from time to time. Example: sl --archivehistory
codefences add code fences to structured output
report
save a report of the program output to your cloud account (implies --vanilla
graph create a call graph of the execution of the sl program
copy make a copy of sl called slc (useful for rebuilding and installing from source)
Commands
Grammar#
Each sl command consists of a group and command written <group>.<command>[:<arguments>]. Each group has a long name and a short name. The long and short names are expressed in this manual as long name|short name (e.g, connection|conn). The following commands are equivalent.
sl connection.pingsl conn.pingArguments are command specific and listed as <argument>=<value>. Multiple arguments are separated by commas. Use single quotes around a <value> that includes commas or spaces.
sl application.install:path=HelloWorld,run=true,terminal=truesl filesystem.list:path=device@/home,recursive=trueFor arguments with type bool, the value can be omitted and will be set to true if the argument is present. If a bool argument is omitted, it is assigned a default value which is specific to the argument and command (details for each argument are below). To specify a bool argument as false, it must be explicit: recursive=false.
Multiple commands sent on a single invocation of sl are separated by spaces and executed from left to right.
sl terminal.run:while=HelloWorld application.run:path=HelloWorld,args='--version' os.resetOutput#
The output is in YAML format. The top level is an array with each command passed being an element in the array. Most commands output properly formatted YAML, but some options may interfere. For example, if the terminal is enabled to print to the standard output, the YAML formatting will break down. Also, --verbose levels of message and debug may also break the formatting.
# connection.ping
## output- usb@/20A0/41D5/01/0000000068004892E01ED1207F80F5B0: - name: StratifyToolbox - serialNumber: 0000000068004892E01ED1207F80F5B0 - hardwareId: 00000007 - projectId: - bspVersion: 0.3 - sosVersion: 3.12.0d - cpuArchitecture: v7em_f5dh - cpuFrequency: 480000000 - applicationSignature: 0 - bspGitHash: ebb7b90 - sosGitHash: 870f968 - mcuGitHash: b691e52- result: success
Exit Code#
If all commands complete successfully, the exit code is 0. If a command fails, the exit code is 1. This allows the use of the bash operators && and || to conditionally execute another command.
# reset if HelloWorld fails to installsl cloud.install:name=HelloWorld || sl os.reset# If the OS installs successfully, copy the README filesl os.install:path=Toolbox && slfilesystem.copy:source=host@README.md,dest=device@/app/flash/README.mdHelp#
All of the information in this manual is also available from the command line using the --help switch. For example:, sl --help=application.install will provide the relevant information for the application.install command.
sl --help # general help informationsl --help=application # list of commands available to the application groupsl --help=app # list of commands available to the application groupsl --help=application.install # details for the application install commandsl --help=app.install # same as above using short name
Reference#
- application
- benchmark
- cloud
- connection
- debug
- filesystem
- os
- hardware
- settings
- report
- thing
- task
- terminal
- user
- team
- ux
- mcu
application|app
application|app.install#
Usage:
sl application.install:[authenticated=<bool>] [,build=<string>] [,clean=<bool>] [,description=<string>] [,destination=<string>] [,external=<bool>] [,externalcode=<bool>] [,externaldata=<bool>] [,force=<bool>] [,kill=<bool>] ,path=<string> [,ram=<bool>] [,ramsize=<int>] [,run=<bool>] [,startup=<bool>] [,suffix=<string>] [,terminal=<bool>] [,tightlycoupled=<bool>] [,tightlycoupledcode=<bool>] [,tightlycoupleddata=<bool>] Help with this command:
sl --help=application.installDescription#
The application.install command installs an application that was built on the host computer to a connected device.
arguments#
arguments#
- shortcut:
args - description: specifies arguments to pass to the application (use with
run). - example:
application.install:path=<path>,arguments=<none> - required: false
- type: string
- default:
<none>
authenticated#
- shortcut:
auth - description: install the application with the authenticated flag set.
- example:
application.install:path=<path>,authenticated=false - required: false
- type: bool
- default:
false
build#
- shortcut:
target - description: is usually set to
releaseordebug. - example:
application.install:path=<path>,build=release - required: false
- type: string
- default:
release
clean#
- description: other copies of the app are deleted before installation.
- example:
application.install:path=<path>,clean=true - required: false
- type: bool
- default:
true
destination#
- shortcut:
dest - description: installation destination.
- example:
application.install:path=<path>,destination=<auto> - required: false
- type: string
- default:
<auto>
external#
- shortcut:
ext - description: install the code and data in external RAM (ignored if
ramisfalse). - example:
application.install:path=<path>,external=<false> - required: false
- type: bool
- default:
<false>
externalcode#
- description: install the code in external memory.
- example:
application.install:path=<path>,externalcode=false - required: false
- type: bool
- default:
false
externaldata#
- description: install the data in external RAM.
- example:
application.install:path=<path>,externaldata=false - required: false
- type: bool
- default:
false
force#
- description: install over a currently running application without killing first.
- example:
application.install:path=<path>,force=false - required: false
- type: bool
- default:
false
kill#
- description: kill the application before installing, otherwise installation is aborted if the application is running.
- example:
application.install:path=<path>,kill=true - required: false
- type: bool
- default:
true
path#
- shortcut:
p - description: the relative path to the application project folder on the host computer.
- example:
application.install:path=<path> - required: true
- type: string
ram#
- description: install the code in RAM rather than flash (can
t be used withstartup`). - example:
application.install:path=<path>,ram=<auto> - required: false
- type: bool
- default:
<auto>
ramsize#
- shortcut:
datasize - description: amount of RAM in bytes to use for data memory (default is to use value specified by the developer).
- example:
application.install:path=<path>,ramsize=<default> - required: false
- type: int
- default:
<default>
run#
- description: application is run after it has been installed.
- example:
application.install:path=<path>,run=false - required: false
- type: bool
- default:
false
startup#
- description: install the program so that it runs when the OS starts up (can
t be used withram`). - example:
application.install:path=<path>,startup=false - required: false
- type: bool
- default:
false
suffix#
- description: suffix to be appended to the application name (for creating multiple copies of the same application).
- example:
application.install:path=<path>,suffix=<none> - required: false
- type: string
- default:
<none>
terminal#
- shortcut:
term - description: run the terminal while the application is running (used with
run). - example:
application.install:path=<path>,terminal=false - required: false
- type: bool
- default:
false
tightlycoupled#
- shortcut:
tc - description: install the code and data in tightly coupled RAM (ignored if
ramisfalse). - example:
application.install:path=<path>,tightlycoupled=<false> - required: false
- type: bool
- default:
<false>
tightlycoupledcode#
- shortcut:
tcc - description: install the code in tightly coupled memory.
- example:
application.install:path=<path>,tightlycoupledcode=false - required: false
- type: bool
- default:
false
tightlycoupleddata#
- shortcut:
tcd - description: install the data in tightly coupled RAM.
- example:
application.install:path=<path>,tightlycoupleddata=false - required: false
- type: bool
- default:
false
application|app.run#
Usage:
sl application.run:[description=<string>] ,path=<string> [,terminal=<bool>] Help with this command:
sl --help=application.runDescription#
The application.run command runs an application on a connected device.
arguments#
arguments#
- shortcut:
args - description: arguments to pass to the application.
- example:
application.run:path=<path>,arguments=<none> - required: false
- type: string
- default:
<none>
path#
- shortcut:
p - description: the path to the application to execute (if just a name is provided, /app is searched for a match).
- example:
application.run:path=<path> - required: true
- type: string
terminal#
- shortcut:
term - description: the terminal will run while the application runs.
- example:
application.run:path=<path>,terminal=false - required: false
- type: bool
- default:
false
application|app.publish#
Usage:
sl application.publish:[description=<string>] [,dryrun=<bool>] [,fork=<bool>] [,header=<bool>] [,path=<string>] [,roll=<bool>] Help with this command:
sl --help=application.publishDescription#
The application.publish command publishes a version of the application to the Stratify Cloud. The first time app.publish is used on a project the cloud provisions an ID which needs to be built into the application before app.publish is called again with the changes specified.
arguments#
changes#
- description: deprecated.
- required: false
- type: string
- default:
<none>
dryrun#
- description: list what will be uploaded without uploading.
- required: false
- type: bool
- default:
false
fork#
- description: forks off of an existing application. This should be true if another user already published this application.
- required: false
- type: bool
- default:
false
header#
- description: publish the project settings to the
sl_config.hheader file. - required: false
- type: bool
- default:
false
path#
- shortcut:
p - description: path to the application that will be published. If not provided, all application projects in the workspace are published.
- required: false
- type: string
- default:
<all>
roll#
- description: rolls the version number.
- required: false
- type: bool
- default:
false
application|app.set#
Usage:
sl application.set:[description=<string>] ,key=<string> ,path=<string> ,value=<string> Help with this command:
sl --help=application.setDescription#
The application.set command The application.set command sets the key to the specified value.
arguments#
add#
- description: the key will be added if it doesn`t exist.
- example:
application.set:key=,path=,value=,add=false - required: false
- type: bool
- default:
false
key#
- shortcut:
k - description: key for the
valueto be set. - example:
application.set:key=,path=,value= - required: true
- type: string
path#
- shortcut:
p - description: path to the application or OS package.
- example:
application.set:key=,path=,value= - required: true
- type: string
value#
- shortcut:
v - description: value to assign to
key. - example:
application.set:key=,path=,value= - required: true
- type: string
application|app.clean#
Usage:
sl application.clean:[path=<string>] Help with this command:
sl --help=application.cleanDescription#
The application.clean command deletes all applications from the specified location.
arguments#
path#
- shortcut:
p - description: path to clean (default is /app/flash and /app/ram).
- required: false
- type: string
- default:
</ app / ram and / app / flash>
application|app.ping#
Usage:
sl application.ping:path=<string> Help with this command:
sl --help=application.pingDescription#
The application.ping command gets information about an application from the device.
arguments#
path#
- shortcut:
p - description: path to the application to ping or a folder containing applications.
- example:
application.ping:path=<path> - required: true
- type: string
application|app.profile#
Usage:
sl application.profile:[compile=<bool>] [,configure=<bool>] [,datapath=<string>] [,description=<string>] [,dryrun=<bool>] [,name=<string>] ,path=<string> [,report=<bool>] [,run=<bool>] [,synchronize=<bool>] Help with this command:
sl --help=application.profileDescription#
The application.profile command creates testing sub-projects and manages code coverage using gcov.
arguments#
build#
- shortcut:
target - description: is usually set to
releaseordebug. - example:
application.profile:path=<path>,build=release - required: false
- type: string
- default:
release
compile#
- description: build the test applications (
falseifreportistrue). - example:
application.profile:path=<path>,compile=true - required: false
- type: bool
- default:
true
configure#
- description: configure the test suite using the
sl_test_settings.jsonfile (falseifreportistrue). - example:
application.profile:path=<path>,configure=true - required: false
- type: bool
- default:
true
datapath#
- description: clean out test coverage files.
- example:
application.profile:path=<path>,datapath=<default> - required: false
- type: string
- default:
<default>
dryrun#
- description: just show what actions would be performed.
- example:
application.profile:path=<path>,dryrun=false - required: false
- type: bool
- default:
false
name#
- description: operate only on the specified test.
- example:
application.profile:path=<path>,name=<all> - required: false
- type: string
- default:
<all>
path#
- shortcut:
p - description: path to the application to profile.
- example:
application.profile:path=<path> - required: true
- type: string
report#
- description: parse the
gcovoutput into a test report (falseifconfigure,compile, orrunistrue). - example:
application.profile:path=<path>,report=false - required: false
- type: bool
- default:
false
run#
- description: run the test applications (
falseifreportistrue). - example:
application.profile:path=<path>,run=true - required: false
- type: bool
- default:
true
synchronize#
- shortcut:
sync - description: synchronize the test data on the device to the source tree and run
gcovto create intermediate coverage files. - example:
application.profile:path=<path>,synchronize=true - required: false
- type: bool
- default:
true
benchmark|bench
benchmark|bench.test#
Usage:
sl benchmark.test:[external=<bool>] [,externalcode=<bool>] [,externaldata=<bool>] ,identifier=<string> [,ram=<bool>] [,team=<string>] [,tightlycoupled=<bool>] [,tightlycoupledcode=<bool>] [,tightlycoupleddata=<bool>] Help with this command:
sl --help=benchmark.testDescription#
The benchmark.test command executes a benchmark test and reports the results to the cloud for the connected device.
arguments#
external#
- shortcut:
ext - description: install the code and data in external RAM (ignored if
ramisfalse). - example:
benchmark.test:identifier=<id>,external=<false> - required: false
- type: bool
- default:
<false>
externalcode#
- description: install the code in external memory.
- example:
benchmark.test:identifier=<id>,externalcode=false - required: false
- type: bool
- default:
false
externaldata#
- description: install the data in external RAM.
- example:
benchmark.test:identifier=<id>,externaldata=false - required: false
- type: bool
- default:
false
identifier#
- shortcut:
id - description: cloud ID of the bench test to install and run.
- example:
benchmark.test:identifier=<id> - required: true
- type: string
ram#
- description: install the code in RAM rather than flash (can
t be used withstartup`). - example:
benchmark.test:identifier=<id>,ram=<auto> - required: false
- type: bool
- default:
<auto>
team#
- description: the team ID of the project to install (default is to install a public project).
- example:
benchmark.test:identifier=<id>,team=<public> - required: false
- type: string
- default:
<public>
tightlycoupled#
- shortcut:
tc - description: install the code and data in tightly coupled RAM (ignored if
ramisfalse). - example:
benchmark.test:identifier=<id>,tightlycoupled=<false> - required: false
- type: bool
- default:
<false>
tightlycoupledcode#
- shortcut:
tcc - description: install the code in tightly coupled memory.
- example:
benchmark.test:identifier=<id>,tightlycoupledcode=false - required: false
- type: bool
- default:
false
tightlycoupleddata#
- shortcut:
tcd - description: install the data in tightly coupled RAM.
- example:
benchmark.test:identifier=<id>,tightlycoupleddata=false - required: false
- type: bool
- default:
false
cloud
cloud.login#
Usage:
sl cloud.login:[email=<string>] [,local=<bool>] [,password=<string>] [,token=<string>] [,uid=<string>] Help with this command:
sl --help=cloud.loginDescription#
The cloud.login command logs in to the Stratify cloud using an email/password or uid/token combination.
arguments#
email#
- description: the email address to use when logging in.
- required: false
- type: string
- default:
<none>
local#
- description: saves the credentials in the local workspace rather than globally.
- required: false
- type: bool
- default:
false
password#
- description: the password for the associated email address.
- required: false
- type: string
- default:
<none>
token#
- description: the cloud token for authentication.
- required: false
- type: string
- default:
<none>
uid#
- description: the user ID when using a cloud token to login.
- required: false
- type: string
- default:
<none>
cloud.logout#
Usage:
sl cloud.logoutHelp with this command:
sl --help=cloud.logoutDescription#
The cloud.logout command removes the login credentials from their source (either global or within the workspace).
cloud.refresh#
Usage:
sl cloud.refreshHelp with this command:
sl --help=cloud.refreshDescription#
The cloud.refresh command refreshes the workspace login. This will happen automatically if the current login has expired.
cloud.install#
Usage:
sl cloud.install:[architecture=<string>] [,build=<string>] [,clean=<bool>] [,compiler=<bool>] [,delay=<int>] [,description=<string>] [,destination=<string>] [,directories=<string>] [,dryrun=<bool>] [,external=<bool>] [,identifier=<string>] [,key=<bool>] [,os=<bool>] [,ram=<bool>] [,rekey=<bool>] [,retry=<int>] [,startup=<bool>] [,suffix=<string>] [,synchronize=<bool>] [,team=<string>] [,tightlycoupled=<bool>] [,update=<bool>] [,url=<string>] [,version=<string>] [,version=<string>] Help with this command:
sl --help=cloud.installDescription#
The cloud.install command installs an application or OS package from the cloud on to a connected device.
arguments#
application#
- shortcut:
app - description: check for os updates of the attached device (installed apps may be lost).
- required: false
- type: bool
- default:
false
architecture#
- shortcut:
arch - description: architecture to install (required for applications being saved to local host).
- required: false
- type: string
- default:
<auto>
build#
- shortcut:
target - description: build name to install.
- required: false
- type: string
- default:
release
clean#
- description: other copies of the application are deleted before installation.
- required: false
- type: bool
- default:
true
compiler#
- description: install the compiler.
- required: false
- type: bool
- default:
false
delay#
- description: number of milliseconds to delay between reconnect tries.
- required: false
- type: int
- default:
500
destination#
- shortcut:
dest - description: install location for applications or specify a host path to save as a local file.
- required: false
- type: string
- default:
</ app>
directories#
- description: /home.
- required: false
- type: string
- default:
<'app/flash
dryrun#
- description: download but don`t extract the compiler.
- required: false
- type: bool
- default:
false
external#
- shortcut:
ext - description: install the code and data in external RAM (ignored if
ramisfalse). - required: false
- type: bool
- default:
false
identifier#
- shortcut:
id - description: cloud ID to download and install.
- required: false
- type: string
- default:
<id>
key#
- description: insert a random key in the binary if there is room in the image for a secret key (only works for OS projects). If the thing already has a key it will be preserved.
- required: false
- type: bool
- default:
false
os#
- description: check for os updates of the attached device (installed apps may be lost).
- required: false
- type: bool
- default:
false
ram#
- description: install the application in ram (no effect if the id is an OS package).
- required: false
- type: bool
- default:
false
rekey#
- description: insert a new random key in the binary. If a key already exists it will be replaced.
- required: false
- type: bool
- default:
false
retry#
- description: number of times to try to connect or reconnect when installing an OS package.
- required: false
- type: int
- default:
50
startup#
- description: an installed application will run at startup if supported on the target filesystem.
- required: false
- type: bool
- default:
false
suffix#
- description: suffix appended to the name of the target destination (for creating multiple copies of the same application).
- required: false
- type: string
- default:
<none>
synchronize#
- shortcut:
sync - description: synchronize the installation with the cloud.
- required: false
- type: bool
- default:
true
team#
- description: the team ID of the project to install (default is to install a public project).
- required: false
- type: string
- default:
<public>
tightlycoupled#
- shortcut:
tc - description: install the code and data in tightly coupled RAM (ignored if
ramisfalse). - required: false
- type: bool
- default:
false
update#
- description: check for os and app updates of the attached device.
- required: false
- type: bool
- default:
false
url#
- description: uRL to an exported application or OS package.
- required: false
- type: string
- default:
<none>
version#
- description: specify the compiler version to install.
- required: false
- type: string
- default:
<latest>
version#
- shortcut:
v - description: version to install (default is latest).
- required: false
- type: string
- default:
<latest>
cloud.ping#
Usage:
sl cloud.ping:[description=<string>] [,identifier=<string>] [,url=<string>] Help with this command:
sl --help=cloud.pingDescription#
The cloud.ping command gets the most recent information for the project ID from the cloud.
arguments#
build#
- shortcut:
target - description: build id (default is to ping the project).
- required: false
- type: string
- default:
<none>
identifier#
- shortcut:
id - description: the ID of the project to ping.
- required: false
- type: string
- default:
<none>
url#
- description: the url of the project to ping.
- required: false
- type: string
- default:
<none>
cloud.sync#
Usage:
sl cloud.sync:[description=<string>] [,path=<string>] Help with this command:
sl --help=cloud.syncDescription#
The cloud.sync command synchronizes datum items stored on the device to the cloud.
arguments#
clean#
- description: whether or not to delete the log file.
- required: false
- type: bool
- default:
false
path#
- shortcut:
p - description: the path to a JSON file that includes datum objects to sync with the cloud.
- required: false
- type: string
- default:
<auto>
cloud.connect#
Usage:
sl cloud.connect:job=<string> [,permissions=<string>] [,report=<boolean>] [,team=<string>] [,timeout=<integer>] Help with this command:
sl --help=cloud.connectDescription#
The cloud.connect command connects the workspace to an active job server. Commans will be posted to the job id while the job server is active.
arguments#
job#
- shortcut:
id - description: the job id to connect to. A job server can be created using
sl cloud.listen:job. Usesl cloud.connect:job=noneto disconnect. - example:
cloud.connect:job=<job id> - required: true
- type: string
permissions#
- description: specify the permissions for any reports that are created.
- example:
cloud.connect:job=<job id>,permissions=<auto> - required: false
- type: string
- default:
<auto>
report#
- description: create a report for each set of commands that is executed.
- example:
cloud.connect:job=<job id>,report=false - required: false
- type: boolean
- default:
false
team#
- description: specify the team that owns the report (default is none).
- example:
cloud.connect:job=<job id>,team=<none> - required: false
- type: string
- default:
<none>
timeout#
- description: timeout in seconds to allow for the job execution.
- example:
cloud.connect:job=<job id>,timeout=<indefinite> - required: false
- type: integer
- default:
<indefinite>
cloud.listen#
Usage:
sl cloud.connect:[job=<string>] [,permissions=<string>] [,team=<string>] [,timeout=<integer>] Help with this command:
sl --help=cloud.connectDescription#
The cloud.connect command connects the workspace to an active job server. Commans will be posted to the job id while the job server is active.
arguments#
job#
- shortcut:
id - description: the job id to connect to. Post jobs to the server using
sl cloud.connect:job=<job_id>. - required: false
- type: string
- default:
<auto>
permissions#
- description: specify the permissions for the job server.
- required: false
- type: string
- default:
private
team#
- description: team that has access to the job server.
- required: false
- type: string
- default:
<none>
timeout#
- description: set the timeout in seconds to stop listening.
- required: false
- type: integer
- default:
<none>
cloud.remove#
Usage:
sl cloud.remove:[description=<string>] [,identifier=<string>] [,path=<string>] Help with this command:
sl --help=cloud.removeDescription#
The cloud.remove command removes the project and/or build specified.
arguments#
build#
- description: build id to remove (if not specified all builds and the project are removed).
- required: false
- type: string
- default:
<none>
identifier#
- shortcut:
id - description: the ID of the project to remove.
- required: false
- type: string
- default:
<from project>
path#
- description: path to the local project being modified (providing this keeps the local settings sync`d).
- required: false
- type: string
- default:
<none>
connection|conn
connection|conn.list#
Usage:
sl connection.list:[driver=<string>] Help with this command:
sl --help=connection.listDescription#
The connection.list command lists the serial devices that are available as potential Stratify OS devices.
arguments#
driver#
- description: driver to use such as a
serialorusbdriver. - required: false
- type: string
- default:
<all>
connection|conn.ping#
Usage:
sl connection.ping:[driver=<string>] [,path=<string>] Help with this command:
sl --help=connection.pingDescription#
The connection.ping command queries each serial port to see if a Stratify OS device is available. It can be used with 'blacklist' to prevent the workspace from trying to connect to unresponsive ports.
arguments#
driver#
- description: specifies either a
serialorusbdriver. - required: false
- type: string
- default:
<all>
path#
- shortcut:
p - description: pings the device on the specified path (such as COM4 or /dev/cu.usbmodem14333301).
- required: false
- type: string
- default:
<all>
connection|conn.connect#
Usage:
sl connection.connect:[delay=<int>] [,description=<string>] [,legacy=<bool>] [,parity=<string>] [,path=<string>] [,retry=<int>] [,save=<bool>] [,stopbits=<int>] Help with this command:
sl --help=connection.connectDescription#
The connection.connect command The connection.connect command will connect to a specific device. The connection will be made automatically if this command is not used but if there is more than one device attached, the automatic connection will make an arbitrary choice on which device to connect to.
arguments#
baudrate#
- shortcut:
br - description: baudrate to use for serial connections.
- required: false
- type: int
- default:
<460800>
delay#
- shortcut:
d - description: number of milliseconds to wait between reconnect attempts.
- required: false
- type: int
- default:
500
legacy#
- description: use the legacy protocol.
- required: false
- type: bool
- default:
false
parity#
- description: use for serial connections as
oddorevenornone(only applicable if UART is used). - required: false
- type: string
- default:
<none>
path#
- shortcut:
p - description: connects to the specified device using the host device file path.
- required: false
- type: string
- default:
<auto>
retry#
- shortcut:
r - description: number of times to retry connecting.
- required: false
- type: int
- default:
5
save#
- description: saves the serial settings as the defaults for the workspace (save with no serial options to restore defaults).
- required: false
- type: bool
- default:
false
stopbits#
- shortcut:
sb - description: stop bits to use for serial connections as 1 or 2 (only applicable if UART is used).
- required: false
- type: int
- default:
<1>
debug|dbug
debug|dbug.trace#
Usage:
sl debug.trace:[duration=<int>] [,enabled=<bool>] [,period=<int>] Help with this command:
sl --help=debug.traceDescription#
The debug.trace command causes sl to monitor the trace output of the system and display any messages in the terminal.
arguments#
duration#
- description: duration of time in seconds to run the debug trace.
- required: false
- type: int
- default:
<indefinite>
enabled#
- description: monitor the system debug trace output.
- required: false
- type: bool
- default:
true
period#
- description: sample period in milliseconds of the debug tracing buffer.
- required: false
- type: int
- default:
100
debug|dbug.analyze#
Usage:
sl debug.analyze:[description=<string>] [,fault=<string>] [,os=<string>] Help with this command:
sl --help=debug.analyzeDescription#
The debug.analyze command parses fault messages emitted by the system.
arguments#
application#
- shortcut:
app - description: path to the application elf file.
- required: false
- type: string
- default:
<none>
fault#
- description: specific fault to analyze received over the serial debug port.
- required: false
- type: string
- default:
<none>
os#
- description: path to the OS elf file.
- required: false
- type: string
- default:
<none>
filesystem|fs
filesystem|fs.list#
Usage:
sl filesystem.list:[details=<bool>] [,hide=<bool>] ,path=<string> [,recursive=<bool>] Help with this command:
sl --help=filesystem.listDescription#
The filesystem.list command lists the contents of a directory on the connected device or the local host.
arguments#
details#
- description: show details of each directory entry.
- example:
filesystem.list:path=<path>,details=true - required: false
- type: bool
- default:
true
hide#
- description: show hidden files.
- example:
filesystem.list:path=<path>,hide=true - required: false
- type: bool
- default:
true
path#
- shortcut:
p - description: path to the target folder.
- example:
filesystem.list:path=<path> - required: true
- type: string
recursive#
- shortcut:
r - description: recursively list files in directories.
- example:
filesystem.list:path=<path>,recursive=false - required: false
- type: bool
- default:
false
filesystem|fs.mkdir#
Usage:
sl filesystem.mkdir:[mode=<string>] ,path=<string> Help with this command:
sl --help=filesystem.mkdirDescription#
The filesystem.mkdir command creates a directory on the connected device. This command will only work if the filesystem supports directory creation.
arguments#
mode#
- description: permissions in octal representation of the mode (default is 0777).
- example:
filesystem.mkdir:path=<path>,mode=0777 - required: false
- type: string
- default:
0777
path#
- shortcut:
p - description: path to create.
- example:
filesystem.mkdir:path=<path> - required: true
- type: string
filesystem|fs.remove#
Usage:
sl filesystem.remove:[description=<string>] ,path=<string> [,recursive=<bool>] Help with this command:
sl --help=filesystem.removeDescription#
The filesystem.remove command The filesystem.remove command removes a file or directory from the connected device.
arguments#
all#
- description: removes all the files in the specified directory (but not the directory).
- example:
filesystem.remove:path=<path>,all=false - required: false
- type: bool
- default:
false
path#
- shortcut:
p - description: path to the file to remove.
- example:
filesystem.remove:path=<path> - required: true
- type: string
recursive#
- shortcut:
r - description: removes the directory recursively.
- example:
filesystem.remove:path=<path>,recursive=false - required: false
- type: bool
- default:
false
filesystem|fs.copy#
Usage:
sl filesystem.copy:destination=<string> [,hidden=<bool>] [,overwrite=<bool>] [,recursive=<bool>] [,remove=<bool>] ,source=<string> [,timestamp=<bool>] Help with this command:
sl --help=filesystem.copyDescription#
The filesystem.copy command copies files to/from the connected device to/from the host computer. Paths prefixed with host@ are on the host computer while paths prefixed with device@ are on the connected device.
arguments#
destination#
- shortcut:
dest - description: destination path. If the source is a directory, the destination should be a directory as well.
- example:
filesystem.copy:destination=<destination>,source=<source> - required: true
- type: string
hidden#
- description: copy hidden files (files that start with
.). - example:
filesystem.copy:destination=<destination>,source=<source>,hidden=false - required: false
- type: bool
- default:
false
overwrite#
- shortcut:
o - description: destination will be overwritten withouth warning.
- example:
filesystem.copy:destination=<destination>,source=<source>,overwrite=true - required: false
- type: bool
- default:
true
recursive#
- shortcut:
r - description: copy recursively.
- example:
filesystem.copy:destination=<destination>,source=<source>,recursive=false - required: false
- type: bool
- default:
false
remove#
- description: remove the source (only if it is on a device) after it is copied.
- example:
filesystem.copy:destination=<destination>,source=<source>,remove=false - required: false
- type: bool
- default:
false
source#
- shortcut:
path - description: path to the source file to copy. If the source is a directory, all files in the directory are copied.
- example:
filesystem.copy:destination=<destination>,source=<source> - required: true
- type: string
timestamp#
- shortcut:
ts - description: add a unique timestamp string to the destination path.
- example:
filesystem.copy:destination=<destination>,source=<source>,timestamp=false - required: false
- type: bool
- default:
false
filesystem|fs.format#
Usage:
sl filesystem.format:path=<string> Help with this command:
sl --help=filesystem.formatDescription#
The filesystem.format command formats the filesystem on the device.
arguments#
path#
- shortcut:
p - description: path to the filesystem to format.
- example:
filesystem.format:path=<path> - required: true
- type: string
filesystem|fs.write#
Usage:
sl filesystem.write:[blank=<int>] [,delay=<int>] [,description=<string>] ,destination=<string> [,location=<int>] [,pagesize=<int>] [,readwrite=<bool>] [,size=<int>] [,source=<string>] [,text=<string>] Help with this command:
sl --help=filesystem.writeDescription#
The filesystem.write command writes to a file (or device) on the device. The file will be opened, written, then closed.
arguments#
append#
- shortcut:
a - description: destination file is opened for appending.
- example:
filesystem.write:destination=<destination>,append=false - required: false
- type: bool
- default:
false
blank#
- description: value of a blank byte. If the entire page is blank on the source, it will be skipped. This is useful when programming flash memory.
- example:
filesystem.write:destination=<destination>,blank=<none> - required: false
- type: int
- default:
<none>
delay#
- description: number of milliseconds to delay between chunk writes.
- example:
filesystem.write:destination=<destination>,delay=0 - required: false
- type: int
- default:
0
destination#
- shortcut:
dest - description: destination path of the device file (or device) which will be written.
- example:
filesystem.write:destination=<destination> - required: true
- type: string
location#
- shortcut:
loc - description: location in the destination file to start writing.
- example:
filesystem.write:destination=<destination>,location=0 - required: false
- type: int
- default:
0
pagesize#
- description: chunk size for reading the source and writing the destination.
- example:
filesystem.write:destination=<destination>,pagesize=512 - required: false
- type: int
- default:
512
readwrite#
- shortcut:
rw - description: destination file is opened for in read/write mode (default is write only).
- example:
filesystem.write:destination=<destination>,readwrite=false - required: false
- type: bool
- default:
false
size#
- shortcut:
s - description: maximum number of bytes to write to the destination file (default is write all available bytes).
- example:
filesystem.write:destination=<destination>,size=<all> - required: false
- type: int
- default:
<all>
source#
- shortcut:
path - description: path to the host file which will be written o the device`s file (or device).
- example:
filesystem.write:destination=<destination>,source=<source> - required: false
- type: string
- default:
<source>
text#
- shortcut:
string - description: if source is not provided, use this to write a string directly to the destination.
- example:
filesystem.write:destination=<destination>,text=<none> - required: false
- type: string
- default:
<none>
filesystem|fs.read#
Usage:
sl filesystem.read:[blob=<bool>] [,description=<string>] [,destination=<string>] [,location=<int>] [,pagesize=<int>] [,readwrite=<bool>] [,size=<int>] ,source=<string> Help with this command:
sl --help=filesystem.readDescription#
The filesystem.read command reads from a file (or device). The file will be opened, read, then closed. The most common way this command is used is for reading for the target device's device filesystem (such as /dev/drive0). A block device (on the target device) can be read and written to a file on the host.
arguments#
append#
- shortcut:
a - description: destination file is opened for appending.
- example:
filesystem.read:source=<source>,append=false - required: false
- type: bool
- default:
false
blob#
- shortcut:
binary - description: if a destination is not provided, and
blobis true, the data will print as a binary blob. Ifblobis not specified, the output will either be a blob or text depending on the content. - example:
filesystem.read:source=<source>,blob=<auto> - required: false
- type: bool
- default:
<auto>
destination#
- shortcut:
dest - description: destination path to the device or file where the data will be written.
- example:
filesystem.read:source=<source>,destination=<binary blob> - required: false
- type: string
- default:
<binary blob>
location#
- shortcut:
loc - description: location in the source file to start reading.
- example:
filesystem.read:source=<source>,location=0 - required: false
- type: int
- default:
0
pagesize#
- shortcut:
chunk - description: chunk size for reading the source and writing the destination.
- example:
filesystem.read:source=<source>,pagesize=512 - required: false
- type: int
- default:
512
readwrite#
- shortcut:
rw - description: destination file is opened for in read/write mode (default is read only).
- example:
filesystem.read:source=<source>,readwrite=false - required: false
- type: bool
- default:
false
size#
- shortcut:
s - description: maximum number of bytes to read from the source file (default is read all).
- example:
filesystem.read:source=<source>,size=<all> - required: false
- type: int
- default:
<all>
source#
- shortcut:
path - description: path to the device or file which will be read.
- example:
filesystem.read:source=<source> - required: true
- type: string
filesystem|fs.verify#
Usage:
sl filesystem.verify:destination=<string> [,location=<int>] [,pagesize=<int>] [,size=<int>] ,source=<string> Help with this command:
sl --help=filesystem.verifyDescription#
The filesystem.verify command verifies the source and destination files are equivalent.
arguments#
destination#
- shortcut:
dest - description: destination path to the device or file where the data will be written.
- example:
filesystem.verify:destination=<destination>,source=<source> - required: true
- type: string
location#
- shortcut:
loc - description: location in the source file to start reading.
- example:
filesystem.verify:destination=<destination>,source=<source>,location=0 - required: false
- type: int
- default:
0
pagesize#
- shortcut:
chunk - description: chunk size for reading the source and writing the destination.
- example:
filesystem.verify:destination=<destination>,source=<source>,pagesize=512 - required: false
- type: int
- default:
512
size#
- shortcut:
s - description: maximum number of bytes to read from the source file (default is read all).
- example:
filesystem.verify:destination=<destination>,source=<source>,size=<all> - required: false
- type: int
- default:
<all>
source#
- shortcut:
path - description: path to the device or file which will be read.
- example:
filesystem.verify:destination=<destination>,source=<source> - required: true
- type: string
filesystem|fs.validate#
Usage:
sl filesystem.validate:[key=<string>] ,path=<string> [,value=<string>] Help with this command:
sl --help=filesystem.validateDescription#
The filesystem.validate command validates the contents of the file based on the suffix.
arguments#
key#
- shortcut:
k - description: key to validate (must begin with
/. - example:
filesystem.validate:path=<path>,key=<none> - required: false
- type: string
- default:
<none>
path#
- shortcut:
p - description: path to check for an existing file.
- example:
filesystem.validate:path=<path> - required: true
- type: string
value#
- shortcut:
v - description: expected value of
key. - example:
filesystem.validate:path=<path>,value=<none> - required: false
- type: string
- default:
<none>
filesystem|fs.exists#
Usage:
sl filesystem.exists:path=<string> Help with this command:
sl --help=filesystem.existsDescription#
The filesystem.exists command checks if the specified file or directory exists.
arguments#
path#
- shortcut:
p - description: path to check for an existing file or directory.
- example:
filesystem.exists:path=<path> - required: true
- type: string
filesystem|fs.download#
Usage:
sl filesystem.download:destination=<string> [,overwrite=<bool>] ,url=<string> Help with this command:
sl --help=filesystem.downloadDescription#
The filesystem.download command downloads a file from the internet.
arguments#
destination#
- shortcut:
dest - description: file path destination (can be on the host or a connected device).
- example:
filesystem.download:destination=<destination>,url=<url> - required: true
- type: string
overwrite#
- description: overwrite the file if it exists.
- example:
filesystem.download:destination=<destination>,url=<url>,overwrite=true - required: false
- type: bool
- default:
true
url#
- description: uRL to download.
- example:
filesystem.download:destination=<destination>,url=<url> - required: true
- type: string
filesystem|fs.execute#
Usage:
sl filesystem.execute:[description=<string>] [,directory=<string>] Help with this command:
sl --help=filesystem.executeDescription#
The filesystem.execute command executes a system command.
arguments#
command#
- shortcut:
cmd - description: command to execute.
- example:
filesystem.execute:command=<command> - required: true
- type: string
directory#
- shortcut:
dir - description: the working directory (requires cmake).
- example:
filesystem.execute:command=<command>,directory=<current> - required: false
- type: string
- default:
<current>
filesystem|fs.archive#
Usage:
sl filesystem.archive:destination=<string> [,filter=<string>] ,source=<string> Help with this command:
sl --help=filesystem.archiveDescription#
The filesystem.archive command creates a self extracting archive (must have 7z available on the path).
arguments#
destination#
- shortcut:
dest - description: path to a directory to archive.
- example:
filesystem.archive:destination=<path>,source=<path> - required: true
- type: string
filter#
- shortcut:
filt - description:
?separated elements that if matched will be excluded. - example:
filesystem.archive:destination=<path>,source=<path>,filter=<none> - required: false
- type: string
- default:
<none>
source#
- shortcut:
path - description: path to a directory to archive.
- example:
filesystem.archive:destination=<path>,source=<path> - required: true
- type: string
os|system
os|system.install#
Usage:
sl os.install:[delay=<int>] [,description=<string>] [,destination=<string>] [,hash=<bool>] [,key=<bool>] [,path=<string>] [,reconnect=<bool>] [,rekey=<bool>] [,retry=<int>] [,secretkey=<string>] [,synchronize=<bool>] [,verify=<bool>] Help with this command:
sl --help=os.installDescription#
The os.install command installs an OS package on a connected device that has been built on the host computer. If no path is specified, the workspace is searched for an OS package that matches the connected device.
arguments#
build#
- shortcut:
target - description: the build name which is usually
releaseordebug. - required: false
- type: string
- default:
release
delay#
- description: the number of milliseconds to wait between reconnect retries (used with reconnect and retry).
- required: false
- type: int
- default:
500
destination#
- shortcut:
dest - description: write the image to this path rather than to the device.
- required: false
- type: string
- default:
<device>
hash#
- description: install the image with a SHA256 hash appended to the end of the binary.
- required: false
- type: bool
- default:
false
key#
- description: install the image with a secret key inserted in the binary.
- required: false
- type: bool
- default:
false
path#
- shortcut:
p - description: the path to the OS project folder.
- required: false
- type: string
- default:
<auto>
reconnect#
- description: reconnect to the device after the OS package is installed.
- required: false
- type: bool
- default:
true
rekey#
- description: overwrite any existing key that exists in the cloud.
- required: false
- type: bool
- default:
false
retry#
- description: the number of times to retry reconnecting after install (used with reconnect, and delay).
- required: false
- type: int
- default:
50
secretkey#
- description: the secret key to insert (use with
key). - required: false
- type: string
- default:
<auto>
synchronize#
- shortcut:
sync - description: synchronize the installation with the cloud.
- required: false
- type: bool
- default:
false
verify#
- description: verify the OS image after it is installed.
- required: false
- type: bool
- default:
false
os|system.invokebootloader#
Usage:
sl os.invokebootloader:[description=<string>] [,reconnect=<bool>] [,retry=<int>] Help with this command:
sl --help=os.invokebootloaderDescription#
The os.invokebootloader command sends a software bootloader invocation request to the connected device.
arguments#
delay#
- description: the number of milliseconds to wait between reconnect attempts.
- required: false
- type: int
- default:
500
reconnect#
- description: reconnect to the device after invoking the bootloader.
- required: false
- type: bool
- default:
false
retry#
- description: the number of times to retry connecting after the request.
- required: false
- type: int
- default:
5
os|system.reset#
Usage:
sl os.reset:[delay=<int>] [,description=<string>] [,reconnect=<bool>] [,retry=<int>] Help with this command:
sl --help=os.resetDescription#
The os.reset command resets the connected device.
arguments#
bootloader#
- shortcut:
boot - description: reset to bootloader (if available on the device).
- required: false
- type: bool
- default:
false
delay#
- description: the number of milliseconds to wait between reconnect attempts.os.reset:reconnect=true,delay=2000.
- required: false
- type: int
- default:
500
reconnect#
- description: reconnects to the device after the reset.
- required: false
- type: bool
- default:
false
retry#
- description: the number of times to retry connecting.
- required: false
- type: int
- default:
5
os|system.publish#
Usage:
sl os.publish:[description=<string>] [,dryrun=<bool>] [,fork=<bool>] [,header=<bool>] [,path=<string>] [,roll=<bool>] [,team=<string>] Help with this command:
sl --help=os.publishDescription#
The os.publish command publishes an OS package to the Stratify cloud. The initial call to os.publish will acquire an ID that needs to be built into the binary. Subsequent calls to os.publish will publish the build.
arguments#
changes#
- description: deprecated.
- required: false
- type: string
- default:
<none>
dryrun#
- description: list what will be uploaded without uploading.
- required: false
- type: bool
- default:
false
fork#
- description: creates a new ID owned by the current user.
- required: false
- type: bool
- default:
false
header#
- description: publish the project settings to the
sl_config.hheader file. - required: false
- type: bool
- default:
false
path#
- shortcut:
p - description: the path to the OS package to publish. All OS packages in the workspace are published if path isn`t provided.
- required: false
- type: string
- default:
<all>
roll#
- description: rolls the version number.
- required: false
- type: bool
- default:
false
team#
- description: team for publishing the project. This is only needed on the initial publishing. If not present, the project settings will be checked for a team. If no team is specified or in the project settings, project will be published as a public project.
- required: false
- type: string
- default:
<public>
os|system.set#
Usage:
sl os.set:[description=<string>] ,key=<string> ,path=<string> ,value=<string> Help with this command:
sl --help=os.setDescription#
The os.set command The os.set command sets the key to the specified value.
arguments#
add#
- description: the key will be added if it doesn`t exist.
- example:
os.set:key=,path=,value=,add=false - required: false
- type: bool
- default:
false
key#
- shortcut:
k - description: key for the
valueto be set. - example:
os.set:key=,path=,value= - required: true
- type: string
path#
- shortcut:
p - description: path to the application or OS package.
- example:
os.set:key=,path=,value= - required: true
- type: string
value#
- shortcut:
v - description: value to assign to
key. - example:
os.set:key=,path=,value= - required: true
- type: string
os|system.configure#
Usage:
sl os.configure:[time=<bool>] Help with this command:
sl --help=os.configureDescription#
The os.configure command configures the clock on a connected device
arguments#
time#
- description: synchronize the time of the device to the time of the host.
- required: false
- type: bool
- default:
false
os|system.ping#
Usage:
sl os.ping:[description=<string>] [,key=<bool>] Help with this command:
sl --help=os.pingDescription#
The os.ping command collects and displays information from the connected device.
arguments#
bootloader#
- shortcut:
boot - description: if target is not a bootloader, the command will fail.
- required: false
- type: bool
- default:
false
key#
- description: fetch and display the secret key (must be authenticated).
- required: false
- type: bool
- default:
false
os|system.authenticate#
Usage:
sl os.authenticate:[key=<string>] Help with this command:
sl --help=os.authenticateDescription#
The os.authenticate command authenticates the connection to the device so secure apps can be installed or the secret key can be retrieved.
arguments#
key#
- description: the secret key to use for authentication. If no key is provided, the key will be fetched for the connected thing. You must have team permissions to access the thing.
- required: false
- type: string
- default:
<auto>
hardware|hw
hardware|hw.ping#
Usage:
sl hardware.ping:[hardware=<string>] Help with this command:
sl --help=hardware.pingDescription#
The hardware.ping command pings the information about the user.
arguments#
hardware#
- shortcut:
id - description: id to ping.
- required: false
- type: string
- default:
<current>
hardware|hw.publish#
Usage:
sl hardware.publish:path=<string> Help with this command:
sl --help=hardware.publishDescription#
The hardware.publish command publish a hardware description document.
arguments#
path#
- shortcut:
p - description: path to the JSON file that describes the hardware.
- example:
hardware.publish:path=<path to json file> - required: true
- type: string
settings|sett
settings|sett.list#
Usage:
sl settings.list:[global=<bool>] [,key=<string>] Help with this command:
sl --help=settings.listDescription#
The settings.list command lists workspace settings.
arguments#
global#
- shortcut:
g - description: list values from global settings.
- required: false
- type: bool
- default:
false
key#
- shortcut:
k - description: list only the values under the
key. - required: false
- type: string
- default:
<all>
settings|sett.set#
Usage:
sl settings.set:[description=<string>] [,global=<bool>] ,key=<string> ,value=<string> Help with this command:
sl --help=settings.setDescription#
The settings.set command The settings.set command sets the key to the specified value.
arguments#
add#
- description: the key will be added if it doesn`t exist.
- example:
settings.set:key=,value=,add=false - required: false
- type: bool
- default:
false
global#
- shortcut:
g - description: set the key in global settings.
- example:
settings.set:key=,value=,global=false - required: false
- type: bool
- default:
false
key#
- shortcut:
k - description: key for the
valueto be set. - example:
settings.set:key=,value= - required: true
- type: string
value#
- shortcut:
v - description: value to assign to
key. - example:
settings.set:key=,value= - required: true
- type: string
report
report.publish#
Usage:
sl report.publish:[dryrun=<bool>] ,path=<string> [,permissions=<string>] [,project=<string>] [,tags=<string>] [,team=<string>] [,thing=<string>] Help with this command:
sl --help=report.publishDescription#
The report.publish command publishes the report (markdown file) specified by the path to either the user (default) or the team if specified.
arguments#
dryrun#
- description: list what will be uploaded without uploading.
- example:
report.publish:path=<markdown file path>,dryrun=false - required: false
- type: bool
- default:
false
path#
- shortcut:
p - description: path to the report (markdown file) to publish.
- example:
report.publish:path=<markdown file path> - required: true
- type: string
permissions#
- description: project associated with the report.
- example:
report.publish:path=<markdown file path>,permissions=public - required: false
- type: string
- default:
public
project#
- description: project associated with the report.
- example:
report.publish:path=<markdown file path>,project=<none> - required: false
- type: string
- default:
<none>
tags#
- description: tags for the report (use ? to separate values).
- example:
report.publish:path=<markdown file path>,tags=<none> - required: false
- type: string
- default:
<none>
team#
- description: team ID for the report (if not specified, report is published publicly to the user account.
- example:
report.publish:path=<markdown file path>,team=<none> - required: false
- type: string
- default:
<none>
thing#
- description: thing associated with the report.
- example:
report.publish:path=<markdown file path>,thing=<none> - required: false
- type: string
- default:
<none>
report.list#
Usage:
sl report.publish:[dryrun=<bool>] [,project=<string>] [,tags=<string>] [,team=<string>] [,thing=<string>] Help with this command:
sl --help=report.publishDescription#
The report.publish command lists the reports.
arguments#
dryrun#
- description: list what will be uploaded without uploading.
- required: false
- type: bool
- default:
false
project#
- description: list reports associated with project specified.
- required: false
- type: string
- default:
<none>
tags#
- description: list the reports that match the specified tags.
- required: false
- type: string
- default:
<none>
team#
- description: list reports for the specified team.
- required: false
- type: string
- default:
<none>
thing#
- description: list reports associated with thing specified.
- required: false
- type: string
- default:
<none>
report.remove#
Usage:
sl report.publish:[dryrun=<bool>] ,id=<string> [,team=<string>] Help with this command:
sl --help=report.publishDescription#
The report.publish command deletes a report.
arguments#
dryrun#
- description: list the report to be deleted without deleting.
- example:
report.publish:id=<reportId>,dryrun=false - required: false
- type: bool
- default:
false
id#
- description: report id to be deleted.
- example:
report.publish:id=<reportId> - required: true
- type: string
team#
- description: team associated with the report.
- example:
report.publish:id=<reportId>,team=<none> - required: false
- type: string
- default:
<none>
report.ping#
Usage:
sl report.ping:[display=<bool>] [,encode=<bool>] ,identifier=<string> Help with this command:
sl --help=report.pingDescription#
The report.ping command pings a report.
arguments#
display#
- description: display the contents of the report.
- example:
report.ping:identifier=<reportId>,display=false - required: false
- type: bool
- default:
false
encode#
- description: display as base64 encoded (allows content to be parsed in output).
- example:
report.ping:identifier=<reportId>,encode=false - required: false
- type: bool
- default:
false
identifier#
- shortcut:
id - description: report id to be deleted.
- example:
report.ping:identifier=<reportId> - required: true
- type: string
report.parse#
Usage:
sl report.parse:[destination=<string>] [,display=<bool>] [,encode=<bool>] [,permissions=<string>] [,publish=<bool>] ,source=<string> [,team=<string>] Help with this command:
sl --help=report.parseDescription#
The report.parse command parses a txt stream and generates a markdown report.
arguments#
destination#
- shortcut:
dest - description: save the parsed output to a file.
- example:
report.parse:source=<path to txt file>,destination=<none> - required: false
- type: string
- default:
<none>
display#
- description: display the contents of the report.
- example:
report.parse:source=<path to txt file>,display=false - required: false
- type: bool
- default:
false
encode#
- description: display as base64 encoded (allows content to be parsed in output).
- example:
report.parse:source=<path to txt file>,encode=false - required: false
- type: bool
- default:
false
permissions#
- description: permisssions if publishing a new report.
- example:
report.parse:source=<path to txt file>,permissions=public - required: false
- type: string
- default:
public
publish#
- description: publish the output as a new report.
- example:
report.parse:source=<path to txt file>,publish=false - required: false
- type: bool
- default:
false
source#
- shortcut:
path - description: path to plain text file that will be parsed.
- example:
report.parse:source=<path to txt file> - required: true
- type: string
team#
- description: team if publishing with private permissions.
- example:
report.parse:source=<path to txt file>,team=<none> - required: false
- type: string
- default:
<none>
report.download#
Usage:
sl report.ping:[destination=<string>] ,identifier=<string> Help with this command:
sl --help=report.pingDescription#
The report.ping command pings a report.
arguments#
destination#
- shortcut:
dest - description: path to the destination file.
- example:
report.ping:identifier=<reportId>,destination=<name of report.md> - required: false
- type: string
- default:
<name of report.md>
identifier#
- shortcut:
id - description: report id to be deleted.
- example:
report.ping:identifier=<reportId> - required: true
- type: string
thing
thing.ping#
Usage:
sl thing.insert:[identifier=<string>] Help with this command:
sl --help=thing.insertDescription#
The thing.insert command pings the information for the specified thing.
arguments#
identifier#
- shortcut:
id - description: id (serial number) to ping.
- required: false
- type: string
- default:
<none>
task
task.list#
Usage:
sl task.list:[id=<int>] [,name=<string>] [,pid=<int>] Help with this command:
sl --help=task.listDescription#
The task.list command lists the currently active tasks (threads and processes).
arguments#
id#
- shortcut:
tid - description: task ID to filter (will show a max of one entry).
- required: false
- type: int
- default:
<all>
name#
- description: application name to filter tasks (or use
pid). Use?to separate list items. - required: false
- type: string
- default:
<all>
pid#
- description: process id used to filter tasks (or use
name). - required: false
- type: int
- default:
<all>
task.signal#
Usage:
sl task.signal:[id=<int>] [,name=<string>] [,pid=<int>] ,signal=<int> [,value=<int>] Help with this command:
sl --help=task.signalDescription#
The task.signal command sends a POSIX style signal to the process running on the connected device.
arguments#
id#
- shortcut:
tid - description: thread ID to receive the signal. If specified, pthread_kill() is used instead of kill().
- example:
task.signal:signal=<signal>,id=<any> - required: false
- type: int
- default:
<any>
name#
- shortcut:
n - description: application name to receive the signal (or use
pid). - example:
task.signal:signal=<signal>,name=<any> - required: false
- type: string
- default:
<any>
pid#
- description: process ID target for the signal (or use
name). If specified kill() is used rather than pthread_kill(). - example:
task.signal:signal=<signal>,pid=<any> - required: false
- type: int
- default:
<any>
signal#
- shortcut:
s - description: signal to send which can be
KILL,INT,STOP,ALARM,TERM,BUS,QUIT, andCONTINUE. - example:
task.signal:signal=<signal> - required: true
- type: int
value#
- shortcut:
v - description: optional signal value that can be sent with the associated signal number.
- example:
task.signal:signal=<signal>,value=<none> - required: false
- type: int
- default:
<none>
task.analyze#
Usage:
sl task.analyze:[duration=<string>] [,name=<string>] [,period=<int>] Help with this command:
sl --help=task.analyzeDescription#
The task.analyze command samples the state of the threads/processes running in the system and print a report when the applciation exits.
arguments#
duration#
- shortcut:
d - description: number of seconds to monitor (default is while the terminal is running).
- required: false
- type: string
- default:
<indefinite>
name#
- shortcut:
n - description: application name (or path to the project) to monitor (default is to monitor all threads/processes). Use
?to do multiple names. - required: false
- type: string
- default:
<all>
period#
- shortcut:
p - description: period in milliseconds to sample task activity.
- required: false
- type: int
- default:
100
terminal|term
terminal|term.run#
Usage:
sl terminal.run:[description=<string>] [,display=<bool>] [,duration=<int>] [,log=<string>] [,period=<int>] [,timestamp=<bool>] [,while=<string>] Help with this command:
sl --help=terminal.runDescription#
The terminal.run command reads/writes the stdio of the connected device and display it on the host computer terminal. The terminal will run until ^C is pushed.
arguments#
append#
- shortcut:
a - description: append data to the log file.
- required: false
- type: bool
- default:
false
display#
- shortcut:
d - description: display the terminal data on the host terminal output (set to
falseand uselogto just log to a file). - required: false
- type: bool
- default:
true
duration#
- description: duration in seconds to run the terminal.
- required: false
- type: int
- default:
<indefinite>
log#
- shortcut:
l - description: path to a file where the terminal data will be written.
- required: false
- type: string
- default:
<filename>
period#
- description: polling duration in milliseconds. Polling the terminal requires CPU processing on the connected device. Use a larger value here to limit, the device processing time spent on servicing this command.
- required: false
- type: int
- default:
10
timestamp#
- shortcut:
ts - description: prefix the log file with a unique timestamp.
- required: false
- type: bool
- default:
<false>
while#
- shortcut:
w - description: application name to watch. The terminal will stop when the application terminates.
- required: false
- type: string
- default: ``
terminal|term.listen#
terminal|term.connect#
user
user.ping#
Usage:
sl user.ping:[identifier=<string>] Help with this command:
sl --help=user.pingDescription#
The user.ping command pings the information about the user.
arguments#
identifier#
- shortcut:
id - description: id to ping.
- required: false
- type: string
- default:
<current>
team
team.ping#
Usage:
sl team.ping:team=<string> [,user=<string>] Help with this command:
sl --help=team.pingDescription#
The team.ping command pings information for the specified team.
arguments#
team#
- shortcut:
id - description: id to ping.
- example:
team.ping:team=<team id> - required: true
- type: string
user#
- description: list details about a user on the team.
- example:
team.ping:team=<team id>,user=<none> - required: false
- type: string
- default:
<none>
team.add#
Usage:
sl team.add:[create=<bool>] [,description=<string>] [,read=<bool>] [,remove=<bool>] ,team=<string> ,user=<string> [,write=<bool>] Help with this command:
sl --help=team.addDescription#
The team.add command add a user to a team.
arguments#
admin#
- description: set user admin permissions.
- example:
team.add:team=<team id>,user=<user id>,admin=false - required: false
- type: bool
- default:
false
create#
- description: set user create permissions.
- example:
team.add:team=<team id>,user=<user id>,create=false - required: false
- type: bool
- default:
false
read#
- description: set user read permissions.
- example:
team.add:team=<team id>,user=<user id>,read=true - required: false
- type: bool
- default:
true
remove#
- description: set user remove permissions.
- example:
team.add:team=<team id>,user=<user id>,remove=false - required: false
- type: bool
- default:
false
team#
- shortcut:
id - description: team id for user to update.
- example:
team.add:team=<team id>,user=<user id> - required: true
- type: string
user#
- description: user to add.
- example:
team.add:team=<team id>,user=<user id> - required: true
- type: string
write#
- description: set user write permissions.
- example:
team.add:team=<team id>,user=<user id>,write=false - required: false
- type: bool
- default:
false
team.update#
Usage:
sl team.update:[create=<bool>] [,description=<string>] [,dryrun=<bool>] [,read=<bool>] [,remove=<bool>] ,team=<string> ,user=<string> [,write=<bool>] Help with this command:
sl --help=team.updateDescription#
The team.update command update a user on the team
arguments#
admin#
- description: set user admin permissions.
- example:
team.update:team=<team id>,user=<user id>,admin=<no change> - required: false
- type: bool
- default:
<no change>
create#
- description: set user create permissions.
- example:
team.update:team=<team id>,user=<user id>,create=<no change> - required: false
- type: bool
- default:
<no change>
dryrun#
- description: show changes to be made without making them.
- example:
team.update:team=<team id>,user=<user id>,dryrun=false - required: false
- type: bool
- default:
false
read#
- description: set user read permissions.
- example:
team.update:team=<team id>,user=<user id>,read=<no change> - required: false
- type: bool
- default:
<no change>
remove#
- description: set user remove permissions.
- example:
team.update:team=<team id>,user=<user id>,remove=<no change> - required: false
- type: bool
- default:
<no change>
team#
- shortcut:
id - description: team id for user to update.
- example:
team.update:team=<team id>,user=<user id> - required: true
- type: string
user#
- description: user to update.
- example:
team.update:team=<team id>,user=<user id> - required: true
- type: string
write#
- description: set user write permissions.
- example:
team.update:team=<team id>,user=<user id>,write=<no change> - required: false
- type: bool
- default:
<no change>
team.create#
Usage:
sl team.create:name=<string> [,permissions=<string>] [,user=<string>] Help with this command:
sl --help=team.createDescription#
The team.create command creates a new team (you must be a pro user to create team).
arguments#
name#
- description: the name of the team.
- example:
team.create:name=<none> - required: true
- type: string
permissions#
- description: permissions for viewing the team.
- example:
team.create:name=<none>,permissions=private - required: false
- type: string
- default:
private
user#
- description: iD of the owning user.
- example:
team.create:name=<none>,user=<current> - required: false
- type: string
- default:
<current>
ux
ux.process#
Usage:
sl ux.process:[source=<string>] Help with this command:
sl --help=ux.processDescription#
The ux.process command process a ux json package.
arguments#
source#
- shortcut:
path - description: path to the ux_settings.json file.
- required: false
- type: string
- default:
<none>
ux.show#
Usage:
sl ux.show:[canvas=<integer>] [,description=<string>] [,destination=<string>] [,details=<bool>] ,source=<string> Help with this command:
sl --help=ux.showDescription#
The ux.show command shows icons and fonts.
arguments#
bpp#
- description: bits per pixel.
- example:
ux.show:source=<source path>,bpp=1 - required: false
- type: integer
- default:
1
canvas#
- description: canvas size.
- example:
ux.show:source=<source path>,canvas=64 - required: false
- type: integer
- default:
64
destination#
- shortcut:
dest - description: destination file/directory.
- example:
ux.show:source=<source path>,destination=<none> - required: false
- type: string
- default:
<none>
details#
- description: display asset details.
- example:
ux.show:source=<source path>,details=false - required: false
- type: bool
- default:
false
source#
- shortcut:
path - description: source file/directory to convert.
- example:
ux.show:source=<source path> - required: true
- type: string
ux.clean#
Usage:
sl ux.clean:[identifier=<string>] Help with this command:
sl --help=ux.cleanDescription#
The ux.clean command cleanup extra ux files.
arguments#
identifier#
- shortcut:
id - description: id (serial number) to ping.
- required: false
- type: string
- default:
<none>
ux.convert#
Usage:
sl ux.convert:[characters=<string>] [,description=<string>] [,destination=<string>] [,icon=<bool>] [,map=<bool>] [,size=<integer>] [,source=<string>] [,theme=<bool>] Help with this command:
sl --help=ux.convertDescription#
The ux.convert command convert between ux file formats.
arguments#
bpp#
- description: bits per pixel.
- required: false
- type: integer
- default:
1
characters#
- description: characters to include in the font.
- required: false
- type: string
- default:
<ascii>
destination#
- shortcut:
dest - description: destination file/directory.
- required: false
- type: string
- default:
<none>
icon#
- description: input svg file is an icon.
- required: false
- type: bool
- default:
false
map#
- description: generate a map file for the output.
- required: false
- type: bool
- default:
false
size#
- description: point size.
- required: false
- type: integer
- default:
16
source#
- shortcut:
path - description: source file/directory to convert.
- required: false
- type: string
- default:
<none>
theme#
- description: json file is a theme file.
- required: false
- type: bool
- default:
false
ux.bundle#
Usage:
sl ux.bundle:[description=<string>] [,destination=<string>] [,owner=<string>] ,source=<string> Help with this command:
sl --help=ux.bundleDescription#
The ux.bundle command create a binary blob of assets.
arguments#
access#
- description: use a read-only combo (default is 0444).
- example:
ux.bundle:source=<none>,access=0444 - required: false
- type: string
- default:
0444
destination#
- shortcut:
dest - description: destination file/directory.
- example:
ux.bundle:source=<none>,destination=<none> - required: false
- type: string
- default:
<none>
owner#
- description: specify
userorroot. - example:
ux.bundle:source=<none>,owner=root - required: false
- type: string
- default:
root
source#
- shortcut:
path - description: source file/directory to convert.
- example:
ux.bundle:source=<none> - required: true
- type: string
mcu
mcu.process#
Usage:
sl mcu.process:[description=<string>] [,destination=<string>] [,source=<string>] Help with this command:
sl --help=mcu.processDescription#
The mcu.process command process mcu configuration data.
arguments#
architecture#
- shortcut:
arch - description: architecture to process.
- example:
mcu.process:architecture=<stm32> - required: true
- type: string
destination#
- shortcut:
dest - description: path to destination output folder.
- example:
mcu.process:architecture=<stm32>,destination=<none> - required: false
- type: string
- default:
<none>
source#
- shortcut:
path - description: path to input file.
- example:
mcu.process:architecture=<stm32>,source=<none> - required: false
- type: string
- default:
<none>
mcu.bundle#
Usage:
sl mcu.bundle:[description=<string>] [,destination=<string>] [,owner=<string>] ,source=<string> Help with this command:
sl --help=mcu.bundleDescription#
The mcu.bundle command create a binary blob of assets.
arguments#
access#
- description: use a read-only combo (default is 0444).
- example:
mcu.bundle:source=<none>,access=0444 - required: false
- type: string
- default:
0444
destination#
- shortcut:
dest - description: destination file/directory.
- example:
mcu.bundle:source=<none>,destination=<none> - required: false
- type: string
- default:
<none>
owner#
- description: specify
userorroot. - example:
mcu.bundle:source=<none>,owner=root - required: false
- type: string
- default:
root
source#
- shortcut:
path - description: source file/directory to convert.
- example:
mcu.bundle:source=<none> - required: true
- type: string