General commands
reboot
Reboot the system. This command has no arguments.
echo [arg1] [arg2] [arg3] ...
Prints its arguments to the standard output, separated by space. Could be used in combination with variable evaluation and/or escape sequences(but as decimal numbers).
Examples
command | output |
---|---|
echo $permanents/time | prints number of secondns since start to standard output |
echo run: $permanents/time | same as first command, with run: prepended. Example output: run: 11290 |
echo \12 | clears terminal window |
echo \27 | escape - closes terminal window |
delay <n>
Pauses shell from parsing for [n]
milliseconds. Argument [n]
has to be a positive integer.
Return value
If called correctly returns 0
. Otherwise (for example no argument provided) returns -1
.
Example
AM-felix#>delay 5000
<paused for 5 seconds>
AM-felix#>
logout
Ends current session and ends shell. After that, auth key for a new administrator login is displayed followed by a usual login prompt. This command has no arguments.
Return value
Returns 0
if executed correctly.
whoami
Prints 8-bit number in hexadecimal format. Write and read access rights of the currently logged user are reflected in this number. Bits 7 and 6 (counting from right to left) represent write rights, bits 5 and 4 represent read rights, and bits 3 to 0 are reserved for future use.
Return value
Returns the same number as it prints.
Example
AM-felix#>whoami
f1
Output f1
in binary is 1111 0001
, so the first two bits (here first two 1s) represent write rights, the third and fourth bit (here also 1s) represents read rights, and the rest is unimportant as of now.
dump [-h] <data item>
Prints the given <data item>
to standard output. Option -h
writes the output in
hexadecimal format, bytes are delimited by space. Without this argument, the output is written as a string of ASCII characters, each character for one byte.
It goes from the first byte to the last byte, in a matter of a number it means it goes from LSB to MSB - LSB will be the first written byte.
Return value
Returns the count of successfully dumped items.
Example
AM-felix#>dump permanents/totaltime
#~
AM-felix#>dump -h permanents/totaltime
2f 7e 00 00
AM-felix#>
version [-n] [-h] [-s] [-a] [-d]
Prints version of the device - string consisting of basename, HWID, SWID, and address of the device. Basename and HWID are delimited by colon and space, other identifiers are delimited by comma and space. Only some parts can be printed, this is chosen by options. If multiple options are used, each part is printed on a new line.
Options:
-n
prints only the basename-h
prints only the HWID-s
prints only the SWID-a
prints only the address of the device-d
prints only the type of the device, in format<class-signature>:<class-string>
.
Return value
If option -a
is specified, returns the printed address. If option -d
is specified, returns the class signature (in the printed string it's the part before the colon). Otherwise returns 0
.
Example
AM-felix#>version
AM-felix: esc3-am1f_06dxh0810-A10, VECTOR_2_generic Jun 21 2021, addr: 0
class 10: AM, build target: esc3-am1_default
AM-felix#>version -nha
AM-felix
esc3-am1f_06dxh0810-A10
0
AM-felix#>
uid
Prints unique identifiers of the device - UUID, SN.
Return value
Returns the least significant part of UUID, see example
Example
AM-felix#>uid
UUID: 203932385642571100210034, S/N: 928VBW112134
AM-felix#>echo $vars/retval
2162740 // returned number in hexadecimal is 210034, which corresponds to the leftmost part of UUID
clock [-t<time>] [-d<date>]
If called without the options, it prints the current time in the device. If called with either option (or both), you can set the current time and date. This command will only work if RTC is available on the device.
Options:
-t<input-time>
- set the time (hours, minutes, seconds).-d<date>
- set the date similarly.
var <name1> [name2] [name3] ... [nameN] [type]
Create dynamic variable (or more variables) with name <name1>
([name2]
, [name3]
... ) in directory /vars
. Variable (variables) exists until YOS device is restarted. Created variable type is defined by the last parameter of command - [type]
parameter. Supported variable types are:
Types
type id | description |
---|---|
int8 | signed, 8-bit integer, range -128 - 127 |
uint8 | unsigned, 8-bit integer, range 0 - 255 |
int16 | signed, 16-bit integer, range ?32,768 - 32,767 |
uint16 | unsigned, 16-bit integer, range 0 - 65,536 |
int32 | signed, 32-bit integer, range ?2,147,483,648 - 2,147,483,647 |
uint32 | unsigned, 8-bit integer, range 0 - 4,294,967,296 |
float | 32-bit number with floating decimal point |
Note: Allowed types are also int64
, uint64
, double
, and string
, but beware that these types are not fully supported yet and are mostly useless.
Return value
Returns 0
if and only if the command was successfully executed.
Arrays
With var
you can also create arrays. To create an array of length N
substitute any [name]
with [name-of-array].N
. So the final command can look something like this:
var myarray.10 int32
This creates an array of 10
int32
s. To access elements in the array write name-of-array.i
where i
is the wanted index. Some examples of working with arrays:
AM-felix#>var myarray.10 int32
AM-felix#>set myarray.0 130
AM-felix#>set myarray.3 260
AM-felix#>echo $vars/myarray
130,0,0,260,0,0,0,0,0,0
AM-felix#>echo $vars/myarray.3
260
AM-felix#>
set <var1> [var2] [var3] ... [varN] <expression>
Sets the variable to value specified by an expression. Overflows can happen! Also, remember that no whitespace in <expression>
is allowed!
The expression is C-style string format which can contain braces, operators, variables, and constants. The expression is evaluated in a floating-point scalar and considered valid when the result is nonzero. If the bitwise operators are used in the expression, it is evaluated in a 32-bit fixed-point scalar. The operators can be: *
, :
(for division) , +
, -
, >
, <
, >=
, <=
, ==
, !=
, &&
, ||
, &
, |
, ^
. If the output should be a boolean value, we convert 1
for true
and 0
for false
. The expression is evaluated from the left to the right and operators are not prioritized. If a priority is required, the user must specify that with braces. 3+5*4
needs to be entered as 3+(5*4)
.
When setting an array of variables, values are delimited by ,
(comma) without any whitespaces. Following command starts to set values of variables in the array from the first position - position 0
(indexing starts from 0
):
set [name of array] value0,value1,value2...
Not all values have to be assigned, setting the first 3
values of an array with length 10
is ok, the remaining values will be untouched.
Return value
Negative values are for errors, if a positive value is returned then it represents the count of successfully set variables.
Some error code mappings, other codes can be expression parsing errors or others:
retval | meaning |
---|---|
-100 | no enough arguments |
-101 | settable variable not found |
-102 | write restricted |
-105 | desired value too low |
-106 | desired value too high |
-107 | desired value is not allowed |
Examples
command | description |
---|---|
set f (q/180)*3.141592654 | Converts value q from degrees to radians and saves it to f . |
set i i*i | Squares i and saves it to i . |
set ret i>17 | If i is greater than 17 , ret will be 1 . Otherwise ret will be 0 . |
set myarray 1,2,3 | Sets first 3 values of myarray to 1 , 2 and 3 , assuming myarray is an array. |
format [-b<base>] [-p<precision>]
Set default input/output format for the numbers in the Term tool. Different output formats can be selected by following options:
-b<base>
- set the base for input/output format of integer numbers.-b8
for octal format,-b16
for hexadecimal, and so on.-p<precision>
- set the precision for float numbers. Positive values select the number of rounding digits. Negative values select the scientific notation, where the value selects the count of valid digits.0
select default settings.
Return value
A negative value meaning an error occurred. 0
means successful execution.
restore [-y] [-r] [-f<string>] [-m] [-M] [-s] [-p<n>] [path1] [path2] ... [pathN]
Restores the given parameters or directories to preset values. If run without arguments, it restores all parametric variables in the active directory recursively. The wildcard character '*' can be used for name pattern matching.
Options:
-y
- no confirmation prompt is displayed.-r
- won't list parameters recursively.
Preset options:
-m
- will set parameters to themin
preset.-M
- will set parameters to themax
preset.-s
- will set parameters to thestep
preset.-p<n>
- usable only if the given parameter has more presets thandefault
,min
,max
andstep
.-p1
will use the first extra preset,-p2
the second and so on.
Arguments [path1] [path2]... [pathN]
correspond to the directories and parameters we want to restore. If no argument is given the command goes through the active directory recursively.
Return value
retval | meaning |
---|---|
-1 | given parameter not found |
0 | no parameters restored |
any positive value | number of parameters restored |
Example
AM-felix#>restore # restore all params to default values, recursively
restore params to 0 (y/n)? : y
93 entries done.
AM-felix#>restore -ry # restore params only in the active directory, and auto-confirm
3 entries done.
AM-felix#>restore -My # restore all params to max value, where possible
40 entries done.
AM-felix#>restore *ref # restore params whose name ends wit 'ref' to their default values
40 entries done.
save [-d] [-b] [-e] [-y] [parameter]
Save parameters to backup or user storage. If [parameter]
is not given will save all the parameters. When you specify [parameter]
, the only option that will be significant is -y
and you will always save into your userstorage.
Options:
-b
- if specified will save tobackup
instead ofmain
storage.-d
- will print hash size and hash as if it was saving the data to storage, but won't save anything. stands for dummy.-e
- erase userstorage.-y
- no confirmation prompt is displayed.
Return value
Negative values stand for errors while saving. When saving given parameters as arguments to userstorage, return value should be 0
. When saving everything (no arguments) returns the hash of the saved files.
Examples
AM-felix#>set mode_forward 3
AM-felix#>save
save params to main (y/n)? : y
309 bytes, #05f3 hash
AM-felix#>
Set mode_forward
to 3
and save it to the main flash memory. If no save
was run after the assignment, after reboot the change would be lost.
AM-felix#>pr mode_forward # check the current parameter value
-> mode_forward uint8 : 3 (2), Driver mode when cmd is positive
Total 1 entries
AM-felix#>set mode_forward 5 # set mode_forward to a different value
AM-felix#>save -y mode_forward # save the parameter to userstorage
saving 1 bytes
AM-felix#>reboot # reboot the device
...
AM-felix#>pr mode_forward # check the parameter value after reboot
-> mode_forward uint8 : 3 (2), Driver mode when cmd is positive
# i didn't save the value so the previous value got loaded after reboot
Total 1 entries
AM-felix#>load -y mode_forward # load parameter from userstorage
AM-felix#>pr mode_forward
-> mode_forward uint8 : 5 (2), Driver mode when cmd is positive
Total 1 entries
Example using userstorage and the optional argument with save
and load
.
load [-b] [-d] [-y]
Loads parameters saved in the flash memory. It restores recursively all parametric variables all directories and all subdirectories.
Options:
-b
- load values frombackup
instead frommain
storage.-d
- will print hash size and hash as if it was loading the data from storage, but won't load anything. stands for dummy.-y
- no confirmation prompt is displayed.
Return value
Negative values for errors, 0
when aborted at prompt and positive values for a number of bytes restored.
Examples
AM-felix#>set mode_reverse 40 # mistakenly set mode_reverse to 40
...
AM-felix#>load -y # restore mode_reverse to its saved value
309 bytes, #5725 hash
AM-felix#>pr mode_reverse
-> mode_reverse uint8 : 8 (8), Driver mode when cmd is negative
# mode_reverse is now back 8
Total 1 entries
AM-felix#>