CCCUSBControl -- A slow-controls driver for receiving and executing remote commands


           class CCCUSBControl : public CControlHardware {

  CCCUSBControl(std::string  name);

    void Initialize(CCCUSB& crate);
               std::string  Update(CCCUSB&  crate);
               std::string  Set(CCCUSB&  crate, const  char*  what, const  char* value);
               std::string  Get(CCCUSB&  crate, const  char* what);


CCCUSBControl allows arbitrary CAMAC access by a client and is the receiver of commands executed by the CCCUSBRemote class. The only method implemented with functionality is Set. All of the other methods do nothing. The idea is that a set command will provide a remote procedure call for the CCCUSB::executeList method. The syntax is

           Set name [list hexadecimalized-vmusbreadoutlist read-buffer-requirements]


Success will return: OK hexadecimalized-output-buffer Where hexadecimalized-output-buffer is the reply buffer converted to a hexadecimal representation of each byte as a Tcl list. Note that if no output data are available, an empty list will be returned.

Note that this function can therefore also provide all single shot operations as those are just lists with one element... however if the run is active each list execution will pause/resume the run so be aware and use with caution.