In order to safely use automatic asynchronous commands every command must result in a reply with a start marker.
Every reply will start with ">" and ends with a "\n" newline. This allows for example the GUI to send a bunch of commands and receive a bunch of replies and split them at the start marker and pass the replies easily to callback functions. This also means the start character is never allowed to be used in reply strings normally!
Commands that won't normally result in a reply like "power=1000\n" to set a value will still give back a ">OK\n" reply.
If an invalid command is received the board will reply with an error message.
For this an enum is used as a return value of the parser functions instead of the previously used bool just showing if the command was found or not in this function.
These are major changes in the communication and require a new GUI version as well.
In order to safely use automatic asynchronous commands every command must result in a reply with a start marker.
Every reply will start with ">" and ends with a "\n" newline. This allows for example the GUI to send a bunch of commands and receive a bunch of replies and split them at the start marker and pass the replies easily to callback functions. This also means the start character is never allowed to be used in reply strings normally!
Commands that won't normally result in a reply like "power=1000\n" to set a value will still give back a ">OK\n" reply. If an invalid command is received the board will reply with an error message. For this an enum is used as a return value of the parser functions instead of the previously used bool just showing if the command was found or not in this function.
These are major changes in the communication and require a new GUI version as well.