Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

The Ekdahl FAR - Command language: Difference between revisions

From KNAS Wiki
No edit summary
No edit summary
Line 100: Line 100:
The Ekdahl FAR when connected via ''USB-Serial'' doesn't only accept ''commands'' but will also send various ''return messages''. These are prefixed by their ''category'' denoted in brackets ("[]"), the existing categories as of this writing (2025-01-22) are:
The Ekdahl FAR when connected via ''USB-Serial'' doesn't only accept ''commands'' but will also send various ''return messages''. These are prefixed by their ''category'' denoted in brackets ("[]"), the existing categories as of this writing (2025-01-22) are:


* command / cmd - Acknowledges the reception of a command in ''plain text''
* '''command''' / '''cmd''' - Acknowledges the reception of a command in ''plain text''
* usb - Acknowledges the reception of a ''MIDI message'' over ''USB'' in ''plain text''
* '''usb''' - Acknowledges the reception of a ''MIDI message'' over ''USB'' in ''plain text''
* hardware / hw - Signals that a change has been sent to the Ekdahl FAR hardware, sent in ''plain text''
* '''hardware''' / '''hw''' - Signals that a change has been sent to the Ekdahl FAR hardware, sent in ''plain text''
* undefined / un - The message sent is in the ''undefined'' category, sent in ''plain text''
* '''undefined''' / '''un''' - The message sent is in the ''undefined'' category, sent in ''plain text''
* priority / pri - The message sent is in the ''priority'' category, sent in ''plain text''
* '''priority''' / '''pri''' - The message sent is in the ''priority'' category, sent in ''plain text''
* error / err - Signals that an ''error'' has occurred, sent in ''plain text''
* '''error''' / '''err''' - Signals that an ''error'' has occurred, sent in ''plain text''
* expressionparser / ep - These messages contains debugging information regarding the internal ''expression parser'' and is used for development
* '''expressionparser''' / '''ep''' - These messages contains debugging information regarding the internal ''expression parser'' and is used for development
*debug / dbg - These messages contains various debugging information and is used for development
*'''debug''' / '''dbg''' - These messages contains various debugging information and is used for development
*help / hlp - Signals that the message is a response to a ''help''-command being sent to the Ekdahl FAR. These messages are structured so that a receiver, like the ''Configuration utility'', can parse information about available ''commands'' in the current ''firmware'' and relay it to a user in a structured way.
*'''help''' / '''hlp''' - Signals that the message is a response to a ''help''-command being sent to the Ekdahl FAR. These messages are structured so that a receiver, like the ''Configuration utility'', can parse information about available ''commands'' in the current ''firmware'' and relay it to a user in a structured way.
* inforequest / irq - Signals that an ''info request'' has been returned. This is a specialized message that is either sent as a response to an ''rqi''-command or as a ''interrupt''-message telling the user or receiving software about different parameters in the Ekdahl FAR. These messages follows the same structure as regular ''command message''s of ''[irq]commandname:parameter1 [etc]'' so that it can be used by a receiving software to keep track of parameter changes
* '''inforequest''' / '''irq''' - Signals that an ''info request'' has been returned. This is a specialized message that is either sent as a response to an ''rqi''-command or as a ''interrupt''-message telling the user or receiving software about different parameters in the Ekdahl FAR. These messages follows the same structure as regular ''command message''s of ''[irq]commandname:parameter1 [etc]'' so that it can be used by a receiving software to keep track of parameter changes


===== Explicitly requesting information =====
===== Explicitly requesting information =====
Line 115: Line 115:


To go back to our example of setting the bowing frequency using the ''bowcontrolfrequency''-command we can ask the Ekdahl FAR what the bowing frequency is set to by writing<pre>
To go back to our example of setting the bowing frequency using the ''bowcontrolfrequency''-command we can ask the Ekdahl FAR what the bowing frequency is set to by writing<pre>
FAR < 1.1:
rqi:bowcontrolfrequency
rqi:bowcontrolfrequency
FAR 1.1:
rqi:bowingwheel.pid.targetfrequency
</pre>The return value would be something like<pre>
</pre>The return value would be something like<pre>
FAR < 1.1:
[irq]bcf:82.5
[irq]bcf:82.5
FAR 1.1:
[irq]bw[0].pid[0].tf:82.5
</pre>Where '[irq]' denotes that the message returned is in the ''info request-''category, that it pertains to the command ''bcf'' and has the value ''82.5''. Note that the returned ''command'' sent by an ''rqi''-command always uses the ''short name'' in order to preserve bandwidth.
</pre>Where '[irq]' denotes that the message returned is in the ''info request-''category, that it pertains to the command ''bcf'' and has the value ''82.5''. Note that the returned ''command'' sent by an ''rqi''-command always uses the ''short name'' in order to preserve bandwidth.