Files
cdev-1.7.2n/extensions/tcl/README.txt
2022-12-13 12:44:04 +01:00

56 lines
1.5 KiB
Plaintext
Executable File

// *****************************************************************************
// * Tcl/Tk Interface to cdev
// *****************************************************************************
1) All communication is through strings, the cdevdata object takes care of
all conversion.
2) Use a 'get' in your client code, 'find' will not do type conversions.
3) syntax:
cdev $service $message "$tag1 $val1" "$tag2 $val2" ...
or
cdev $service $message "$tag1 $val1" "$tag2 $val2" $cb
where:
$service is any cdev service, i.e. "model", "IPM1A01"
$message a message to that device, i.e "get elements"
the rest of the arguments are list of length 2 with the
first entry the tag name, and the second the tag value.
If the length of the last list is 1 the cdev routine
sendCallback is used instead of the synchronous send.
The result of the call will appear in the tcl array "$Control($cb)"
in due time.
On return only the 'value' tag will be converted into a tcl result,
arbitrary dimensional results are handled.
Error handling:
See code for 'status' and 'severity' tag handling, this will be
superseded by real cdev errorhandler interface
Bugs:
Cannot send space delimited string since the interface will parse
these up as char**'s
examples:
cdev IPM1S01 "get XPOS"
cdev IPM1S01 "monitorOn XPOS" IPM1S01.XPOS
results appear in $Control(IPM1S01.XPOS)
cdev model "get elements" "value quads" "section {arc1 arc2 arc3}"
value is char*
section is char** length 3