The Ekdahl FAR - Command reference V1.1

From KNAS Wiki
Revision as of 07:55, 12 June 2026 by Knaadmin (talk | contribs)
Jump to navigation Jump to search

Introduction

The Ekdahl FAR V1.1 introduces the concept of modules. A module can contain any number of commands as well as other modules. Furthermore any number of modules of the same type can exist within a context, these are addressed using classic C-style array indexing with the help of brackets ("[ ]"). Extending on the classic usage, multiple indexes can be addressed simultaneously by either comma-separating the objects ("[0,3,4]") and using ranges ("[3-6]"). Modules can be either internal or external, meaning that they may all physically exist within a single hardware object, or they can be be remote-controlled devices. From a user perspective this however makes no difference as they will appear the same.

While all modules have their own set of commands, there are certain commands that all modules must implement and can thus be accessed anywhere within the module hierarchy. There are also base commands that always exist within any given FAR ecosystem as well as product-specific base commands.

The module commands that are required to be implemented in all modules and that can thus be accessed from anywhere are

Long name Short name Parameters Description
list ls hidden/h:modules/m:commands/c:instances/i:instancecounts/ic:recursive/r Lists all commands and modules under the current module depending on the parameters given; 'hidden' includes normally hidden commands, 'modules' includes any submodules, 'commands' shows commands, 'instances' shows data for each individual instance of a module, 'instancecounts' includes number of instances of each module, 'recursive' lists all child modules / commands. No parameters defaults to showing all commands and modules recursively with instance counts. It doesn't show per-instance data or hidden commands.
help help recursive/r Shows a brief explanation of all commands and modules, shows the help for all submodules as well if 'recursive'
dumpdata dump recursive/r Dumps all data saved for the current module, will list the data of all submodules as well if 'recursive'

The base commands are as follows

Long name Short name Parameters Description
version ver - Gets the current firmware version
debugprint dp command|usb|hardware|undefined|priority|error|inforequest|expressionparser|debug:1|0 Turns on or off serial feedback for the given item
requestinfo rqi command Retrives any data saved for a command, if applicable
saveallparameters sap - Saves all avaliable parameters
loadallparameters lap - Loads all avaliable parameters
resetallparameters rap - Resets all saved parameters
reset rst 1|0 Resets the Ekdahl FAR, conditional
nick nick name Sets the nickname of this unit
nooperation nop - Do absolutely, positively, nothing. Useful for testing and interfacing with computers, it's a good way to know that the unit is alive and responding since a "nop" is being returned as a response upon reception.
uservariable uv variable(0-9):value Set user variable 0-9 to 'value'
expressionparserevaluate epev expression Evaluates an arithmetric expression and sends back the output, all variables and functions that can be used in any command string can also be used here.
ifequal ife variable:comparator:truecommandstring:elsecommandstring Performs [IF [variable] EQUALS [comparator]] then add [truecommandstring] to the que if TRUE, otherwise add [elsecommandstring].
ifgreater ifg variable:comparator:truecommandstring:elsecommandstring Performs [IF [variable] > [comparator]] then add [truecommandstring] to the que if TRUE, otherwise add [elsecommandstring]
ifless ifl variable:comparator:truecommandstring:elsecommandstring Performs [IF [variable] < [comparator]] then add [truecommandstring] to the que if TRUE, otherwise add [elsecommandstring]
freeram ram - Shows free RAM memory

The Ekdahl FAR stand-alone single string unit offers these commands