Go to the source code of this file.
Data Structures | |
struct | Commands |
Application command action-function data structure. More... | |
Defines | |
#define | CMD_OK 0 |
Command executed OK, return completion status. | |
#define | CMD_ERR -1 |
Command execution resulted in an error. | |
#define | CMD_NOOP 1 |
Command execution requires no further action (no-op). | |
Functions | |
int | cmd_quit (char *, MsgType, char *) |
QUIT command. | |
int | cmd_ping (char *, MsgType, char *) |
PING command - communication handshaking request. | |
int | cmd_pong (char *, MsgType, char *) |
PONG command - communication handshaking acknowledgment. | |
int | cmd_info (char *, MsgType, char *) |
INFO command - report client application runtime information. | |
int | cmd_version (char *, MsgType, char *) |
VERSION command - report application version and compilation info. | |
int | cmd_verbose (char *, MsgType, char *) |
VERBOSE command - toggle verbose console output on/off. | |
int | cmd_debug (char *, MsgType, char *) |
DEBUG command - toggle debugging (super-verbose) console output on/off. | |
int | cmd_help (char *, MsgType, char *) |
HELP command - print a list of commands on the client console. | |
int | cmd_history (char *, MsgType, char *) |
HISTORY command - show the application's interactive command history. | |
int | cmd_status (char *, MsgType, char *) |
STATUS command - report application status. | |
int | cmd_filter (char *, MsgType, char *) |
FILTER command - set/query the filter position. | |
int | cmd_home (char *, MsgType, char *) |
HOME command - return the filter wheel to position 1. | |
int | cmd_send (char *, MsgType, char *) |
SEND command - send a raw command to the IFW. | |
int | cmd_ports (char *, MsgType, char *) |
PORTS command - report info about open IFW comm ports. | |
int | cmd_setto (char *, MsgType, char *) |
TIMEOUT command - set/query the IFW communications timeout interval in seconds. | |
int | cmd_init (char *, MsgType, char *) |
RESET command - reload the runtime config paramters and re-initialize the IFW. | |
Variables | |
Commands | cmdtab [] |
Application command action-function data structure. | |
int | NumCommands = sizeof(cmdtab)/sizeof(struct Commands) |
number of commands defined |
To add a command, you need to
See commands.c for the full implementation details.
|
Command executed OK, return completion status.
|
|
Command execution resulted in an error.
|
|
Command execution requires no further action (no-op).
|
|
QUIT command.
|
|
PING command - communication handshaking request.
PINGs are actually handled separately in the SocketCommand() handler (nothing is done by the KeyboardCommand() handler) because the PONG sent back acknowledging the comm handshaking request is, in effect, a pseudo-command (implicit REQ:), not a "DONE:" response to a command request. This exception to the general messaging syntax has to be handled carefully to prevent problems, especially to ensure backwards compatibility with older IMPv applications.
|
|
PONG command - communication handshaking acknowledgment.
cmd_pong doesn't do anything except return a CMD_NOOP (since this "command" must NOT result in a reply back to the sender). In more sophisticated apps, we might actually use receipt of a pong to do something useful (e.g., help build up a node table), so at the very least this module works as a placeholder for future expansion.
|
|
INFO command - report client application runtime information.
The format of cmd_info should be tailored specifically for the particular client application. If a client controls specific instrument or interface functions, the state of those functions should be reported in the info string, making it an omnibus "what is your status" command. |
|
VERSION command - report application version and compilation info.
|
|
VERBOSE command - toggle verbose console output on/off.
In general "Verbose" output refers only to client application level output (i.e., echoing socket message traffic, printing status update info, etc.). An more chatty DEBUG mode is provided that prints more engineering-level info for detailed low-level system debugging.
|
|
DEBUG command - toggle debugging (super-verbose) console output on/off.
DEBUG mode is a super-verbose mode that spews lots of I/O chatter onto the application console, useful during client debugging or for troubleshooting. For example, in client applications that control stepper motors, the full motor control chatter is echoed to the console during DEBUG mode to enable the user to follow the steps the system is (or is not) taking, watch encoder and limit switches assert (or not), etc. DEBUG is normally disabled during normal user operations.
|
|
HELP command - print a list of commands on the client console.
If an argument is given, it tries to find that string in the command list, and if successful, prints a brief description and usage message. Help is meant to be simple. It can give help on particular commands (really a reminder of the command's function and syntax), or a list of all commands. |
|
HISTORY command - show the application's interactive command history.
|
|
STATUS command - report application status.
|
|
FILTER command - set/query the filter position.
|
|
HOME command - return the filter wheel to position 1.
|
|
SEND command - send a raw command to the IFW.
|
|
PORTS command - report info about open IFW comm ports.
|
|
TIMEOUT command - set/query the IFW communications timeout interval in seconds.
If TIMEOUT was given without arguments, it returns the current communications timeout interval as an IMPv2-compliant keyword=value pair. If a number is given on the command line (e.g., TIMEOUT 5) it validates the number (converts to an integer) and sets the communications timeout (ifw.timeout member), returning the new timeout value as an IMPv2-compliant keyword=value pair. If an invalid timeout interval is given, it returns an error message. The communications timeout interval should be long enough to allow the IFW to complete the longest move. For the IFW, the manual says that this is the WHOME command, which can take up to 20 seconds to complete. Setting a shorter comm timeout could result in false timeout errors. Setting it to 0, while formally allowed, is just a bad idea. |
|
RESET command - reload the runtime config paramters and re-initialize the IFW.
This provides the ifwtool application with a warm restart facility. |
|
Application command action-function data structure.
|
|
number of commands defined
|