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 LoginThe 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
#
GrammarEach 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.ping
Arguments 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=true
For 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.reset
#
OutputThe 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 CodeIf 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.md
#
HelpAll 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.installUsage:
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.install
#
DescriptionThe 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
release
ordebug
. - 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
ram
isfalse
). - 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 with
startup`). - 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 with
ram`). - 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
ram
isfalse
). - 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.runUsage:
sl application.run:[description=<string>] ,path=<string> [,terminal=<bool>]
Help with this command:
sl --help=application.run
#
DescriptionThe 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.publishUsage:
sl application.publish:[description=<string>] [,dryrun=<bool>] [,fork=<bool>] [,header=<bool>] [,path=<string>] [,roll=<bool>]
Help with this command:
sl --help=application.publish
#
DescriptionThe 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.h
header 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.setUsage:
sl application.set:[description=<string>] ,key=<string> ,path=<string> ,value=<string>
Help with this command:
sl --help=application.set
#
DescriptionThe 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
value
to 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.cleanUsage:
sl application.clean:[path=<string>]
Help with this command:
sl --help=application.clean
#
DescriptionThe 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.pingUsage:
sl application.ping:path=<string>
Help with this command:
sl --help=application.ping
#
DescriptionThe 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.profileUsage:
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.profile
#
DescriptionThe application.profile
command creates testing sub-projects and manages code coverage using gcov
.
#
arguments#
build- shortcut:
target
- description: is usually set to
release
ordebug
. - example:
application.profile:path=<path>,build=release
- required: false
- type: string
- default:
release
#
compile- description: build the test applications (
false
ifreport
istrue
). - example:
application.profile:path=<path>,compile=true
- required: false
- type: bool
- default:
true
#
configure- description: configure the test suite using the
sl_test_settings.json
file (false
ifreport
istrue
). - 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
gcov
output into a test report (false
ifconfigure
,compile
, orrun
istrue
). - example:
application.profile:path=<path>,report=false
- required: false
- type: bool
- default:
false
#
run- description: run the test applications (
false
ifreport
istrue
). - 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
gcov
to create intermediate coverage files. - example:
application.profile:path=<path>,synchronize=true
- required: false
- type: bool
- default:
true
benchmark|bench
#
benchmark|bench.testUsage:
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.test
#
DescriptionThe 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
ram
isfalse
). - 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 with
startup`). - 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
ram
isfalse
). - 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.loginUsage:
sl cloud.login:[email=<string>] [,local=<bool>] [,password=<string>] [,token=<string>] [,uid=<string>]
Help with this command:
sl --help=cloud.login
#
DescriptionThe 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.logoutUsage:
sl cloud.logout
Help with this command:
sl --help=cloud.logout
#
DescriptionThe cloud.logout
command removes the login credentials from their source (either global or within the workspace).
#
cloud.refreshUsage:
sl cloud.refresh
Help with this command:
sl --help=cloud.refresh
#
DescriptionThe cloud.refresh
command refreshes the workspace login. This will happen automatically if the current login has expired.
#
cloud.installUsage:
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.install
#
DescriptionThe 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
ram
isfalse
). - 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
ram
isfalse
). - 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.pingUsage:
sl cloud.ping:[description=<string>] [,identifier=<string>] [,url=<string>]
Help with this command:
sl --help=cloud.ping
#
DescriptionThe 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.syncUsage:
sl cloud.sync:[description=<string>] [,path=<string>]
Help with this command:
sl --help=cloud.sync
#
DescriptionThe 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.connectUsage:
sl cloud.connect:job=<string> [,permissions=<string>] [,report=<boolean>] [,team=<string>] [,timeout=<integer>]
Help with this command:
sl --help=cloud.connect
#
DescriptionThe 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=none
to 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.listenUsage:
sl cloud.connect:[job=<string>] [,permissions=<string>] [,team=<string>] [,timeout=<integer>]
Help with this command:
sl --help=cloud.connect
#
DescriptionThe 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.removeUsage:
sl cloud.remove:[description=<string>] [,identifier=<string>] [,path=<string>]
Help with this command:
sl --help=cloud.remove
#
DescriptionThe 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.listUsage:
sl connection.list:[driver=<string>]
Help with this command:
sl --help=connection.list
#
DescriptionThe connection.list
command lists the serial devices that are available as potential Stratify OS devices.
#
arguments#
driver- description: driver to use such as a
serial
orusb
driver. - required: false
- type: string
- default:
<all>
#
connection|conn.pingUsage:
sl connection.ping:[driver=<string>] [,path=<string>]
Help with this command:
sl --help=connection.ping
#
DescriptionThe 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
serial
orusb
driver. - 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.connectUsage:
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.connect
#
DescriptionThe 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
odd
oreven
ornone
(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.traceUsage:
sl debug.trace:[duration=<int>] [,enabled=<bool>] [,period=<int>]
Help with this command:
sl --help=debug.trace
#
DescriptionThe 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.analyzeUsage:
sl debug.analyze:[description=<string>] [,fault=<string>] [,os=<string>]
Help with this command:
sl --help=debug.analyze
#
DescriptionThe 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.listUsage:
sl filesystem.list:[details=<bool>] [,hide=<bool>] ,path=<string> [,recursive=<bool>]
Help with this command:
sl --help=filesystem.list
#
DescriptionThe 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.mkdirUsage:
sl filesystem.mkdir:[mode=<string>] ,path=<string>
Help with this command:
sl --help=filesystem.mkdir
#
DescriptionThe 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.removeUsage:
sl filesystem.remove:[description=<string>] ,path=<string> [,recursive=<bool>]
Help with this command:
sl --help=filesystem.remove
#
DescriptionThe 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.copyUsage:
sl filesystem.copy:destination=<string> [,hidden=<bool>] [,overwrite=<bool>] [,recursive=<bool>] [,remove=<bool>] ,source=<string> [,timestamp=<bool>]
Help with this command:
sl --help=filesystem.copy
#
DescriptionThe 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.formatUsage:
sl filesystem.format:path=<string>
Help with this command:
sl --help=filesystem.format
#
DescriptionThe 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.writeUsage:
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.write
#
DescriptionThe 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.readUsage:
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.read
#
DescriptionThe 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
blob
is true, the data will print as a binary blob. Ifblob
is 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.verifyUsage:
sl filesystem.verify:destination=<string> [,location=<int>] [,pagesize=<int>] [,size=<int>] ,source=<string>
Help with this command:
sl --help=filesystem.verify
#
DescriptionThe 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.validateUsage:
sl filesystem.validate:[key=<string>] ,path=<string> [,value=<string>]
Help with this command:
sl --help=filesystem.validate
#
DescriptionThe 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.existsUsage:
sl filesystem.exists:path=<string>
Help with this command:
sl --help=filesystem.exists
#
DescriptionThe 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.downloadUsage:
sl filesystem.download:destination=<string> [,overwrite=<bool>] ,url=<string>
Help with this command:
sl --help=filesystem.download
#
DescriptionThe 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.executeUsage:
sl filesystem.execute:[description=<string>] [,directory=<string>]
Help with this command:
sl --help=filesystem.execute
#
DescriptionThe 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.archiveUsage:
sl filesystem.archive:destination=<string> [,filter=<string>] ,source=<string>
Help with this command:
sl --help=filesystem.archive
#
DescriptionThe 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.installUsage:
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.install
#
DescriptionThe 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
release
ordebug
. - 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.invokebootloaderUsage:
sl os.invokebootloader:[description=<string>] [,reconnect=<bool>] [,retry=<int>]
Help with this command:
sl --help=os.invokebootloader
#
DescriptionThe 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.resetUsage:
sl os.reset:[delay=<int>] [,description=<string>] [,reconnect=<bool>] [,retry=<int>]
Help with this command:
sl --help=os.reset
#
DescriptionThe 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.publishUsage:
sl os.publish:[description=<string>] [,dryrun=<bool>] [,fork=<bool>] [,header=<bool>] [,path=<string>] [,roll=<bool>] [,team=<string>]
Help with this command:
sl --help=os.publish
#
DescriptionThe 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.h
header 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.setUsage:
sl os.set:[description=<string>] ,key=<string> ,path=<string> ,value=<string>
Help with this command:
sl --help=os.set
#
DescriptionThe 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
value
to 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.configureUsage:
sl os.configure:[time=<bool>]
Help with this command:
sl --help=os.configure
#
DescriptionThe 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.pingUsage:
sl os.ping:[description=<string>] [,key=<bool>]
Help with this command:
sl --help=os.ping
#
DescriptionThe 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.authenticateUsage:
sl os.authenticate:[key=<string>]
Help with this command:
sl --help=os.authenticate
#
DescriptionThe 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.pingUsage:
sl hardware.ping:[hardware=<string>]
Help with this command:
sl --help=hardware.ping
#
DescriptionThe 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.publishUsage:
sl hardware.publish:path=<string>
Help with this command:
sl --help=hardware.publish
#
DescriptionThe 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.listUsage:
sl settings.list:[global=<bool>] [,key=<string>]
Help with this command:
sl --help=settings.list
#
DescriptionThe 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.setUsage:
sl settings.set:[description=<string>] [,global=<bool>] ,key=<string> ,value=<string>
Help with this command:
sl --help=settings.set
#
DescriptionThe 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
value
to 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.publishUsage:
sl report.publish:[dryrun=<bool>] ,path=<string> [,permissions=<string>] [,project=<string>] [,tags=<string>] [,team=<string>] [,thing=<string>]
Help with this command:
sl --help=report.publish
#
DescriptionThe 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.listUsage:
sl report.publish:[dryrun=<bool>] [,project=<string>] [,tags=<string>] [,team=<string>] [,thing=<string>]
Help with this command:
sl --help=report.publish
#
DescriptionThe 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.removeUsage:
sl report.publish:[dryrun=<bool>] ,id=<string> [,team=<string>]
Help with this command:
sl --help=report.publish
#
DescriptionThe 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.pingUsage:
sl report.ping:[display=<bool>] [,encode=<bool>] ,identifier=<string>
Help with this command:
sl --help=report.ping
#
DescriptionThe 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.parseUsage:
sl report.parse:[destination=<string>] [,display=<bool>] [,encode=<bool>] [,permissions=<string>] [,publish=<bool>] ,source=<string> [,team=<string>]
Help with this command:
sl --help=report.parse
#
DescriptionThe 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.downloadUsage:
sl report.ping:[destination=<string>] ,identifier=<string>
Help with this command:
sl --help=report.ping
#
DescriptionThe 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.pingUsage:
sl thing.insert:[identifier=<string>]
Help with this command:
sl --help=thing.insert
#
DescriptionThe 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.listUsage:
sl task.list:[id=<int>] [,name=<string>] [,pid=<int>]
Help with this command:
sl --help=task.list
#
DescriptionThe 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.signalUsage:
sl task.signal:[id=<int>] [,name=<string>] [,pid=<int>] ,signal=<int> [,value=<int>]
Help with this command:
sl --help=task.signal
#
DescriptionThe 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.analyzeUsage:
sl task.analyze:[duration=<string>] [,name=<string>] [,period=<int>]
Help with this command:
sl --help=task.analyze
#
DescriptionThe 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.runUsage:
sl terminal.run:[description=<string>] [,display=<bool>] [,duration=<int>] [,log=<string>] [,period=<int>] [,timestamp=<bool>] [,while=<string>]
Help with this command:
sl --help=terminal.run
#
DescriptionThe 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
false
and uselog
to 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.connectuser
#
user.pingUsage:
sl user.ping:[identifier=<string>]
Help with this command:
sl --help=user.ping
#
DescriptionThe 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.pingUsage:
sl team.ping:team=<string> [,user=<string>]
Help with this command:
sl --help=team.ping
#
DescriptionThe 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.addUsage:
sl team.add:[create=<bool>] [,description=<string>] [,read=<bool>] [,remove=<bool>] ,team=<string> ,user=<string> [,write=<bool>]
Help with this command:
sl --help=team.add
#
DescriptionThe 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.updateUsage:
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.update
#
DescriptionThe 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.createUsage:
sl team.create:name=<string> [,permissions=<string>] [,user=<string>]
Help with this command:
sl --help=team.create
#
DescriptionThe 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.processUsage:
sl ux.process:[source=<string>]
Help with this command:
sl --help=ux.process
#
DescriptionThe 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.showUsage:
sl ux.show:[canvas=<integer>] [,description=<string>] [,destination=<string>] [,details=<bool>] ,source=<string>
Help with this command:
sl --help=ux.show
#
DescriptionThe 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.cleanUsage:
sl ux.clean:[identifier=<string>]
Help with this command:
sl --help=ux.clean
#
DescriptionThe ux.clean
command cleanup extra ux files.
#
arguments#
identifier- shortcut:
id
- description: id (serial number) to ping.
- required: false
- type: string
- default:
<none>
#
ux.convertUsage:
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.convert
#
DescriptionThe 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.bundleUsage:
sl ux.bundle:[description=<string>] [,destination=<string>] [,owner=<string>] ,source=<string>
Help with this command:
sl --help=ux.bundle
#
DescriptionThe 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
user
orroot
. - 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.processUsage:
sl mcu.process:[description=<string>] [,destination=<string>] [,source=<string>]
Help with this command:
sl --help=mcu.process
#
DescriptionThe 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.bundleUsage:
sl mcu.bundle:[description=<string>] [,destination=<string>] [,owner=<string>] ,source=<string>
Help with this command:
sl --help=mcu.bundle
#
DescriptionThe 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
user
orroot
. - 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