2010/12/09

scopes device server improve (II)

New commit to the repositori of tango device servers for the PyVisaInstrumentWrapper, in particular for the scopes class. This improvement will be also propagated to the other classes, but first I like to understand some behaviour.

Stressing an instrument with this code, I realize that something depends on the instrument capabilities. In one model of the scopes I test it (the expensive one) it works correctly. With something like:
import PyTango
scope = PyTango.DeviceProxy(scope_name)
attributes = scope.read_attributes(scope.get_attributes_list())


That means "ask everything to the scope" there is one request per channel (the plot data) and one request for all the other scalar values. The response is very much faster than before.

The issue is when I try it with another simpler scope (a cheaper one). I receive a timeout because of the reading. This make the device to decay to fault state, and the reconnection procedure relives it to on state.

Looking on the screen of the scope the messages, after the timeout, are: "Undefined Header" and later on "Query Interrupted". But with less attributes concurrent to read (about 10) it works. A probable solution is subdivide the queries, but how to know the number of possible attributes to be read once?

No comments: