Command Protocol
All commands have the following syntax:
$<name> <##>CR
where
P$ indicates a command follows.
P<name> is the command name. No spaces are allowed between the $ and the <name>. The name is case sensitive.
P<##> is an unsigned integer associated with the command. A space must be inserted between <name> and <##>.
PCR is a carriage return character (ASCII value 13).
With echo enabled, all characters sent will be echoed back to the sender before the expected response is sent.
Unidentified commands and most out of range conditions result in the pulse generator ignoring the command. If the command is properly identified, the pulse generator returns an ok followed by a carriage return and a line feed (ASCII 13, ASCII 10), otherwise it returns a ?1 (a question mark, followed by the number "one", a carriage return and a line feed). A ?2 is sent if a valid command is received but the parameter is out of range.
Example - send the following command to set the number of cycles:
$MODE 1
The pulse generator will return the following:
Echo Enabled: MODE 1<cr><lf>
ok<cr><lf>
Echo Disabled: ok<cr><lf>
Only one command will be processed per message. Commands are not processed until the carriage return is sent. If an error is made and identified prior to sending the carriage return, sending a new $ will reset the input buffer and allow a corrected command to be sent.
To determine the current value of a parameter the syntax is:
$<name> ?CR
16