2007/08/08

Pogo device server design


Really very often, the Tango-ds developers are using Pogo. This Tango tool is really useful when you are developing a Corba based application to control something inside the tango-cs. Reading this blog, meybe you are able about what I am talking about, in fact this is the blog intention.

As I explain en the last note, I am writing a remote control for oscilloscopes instrumentation. Specifically I have a DPO7254 to be controlled.

First of all, I decide what is important to be controlled from an oscilloscope. What do you think? Mainly, every thing that you can change if you are in front one of this instruments. But, what I need to prioritize!? Ok, in my notebook I wrote:

  • Vertical knobs & buttons
    • Offset, Volts/div, Channels,...
  • Horizontal knobs & buttons
    • Delay, Time/div,...
  • Trigger knobs & buttons
    • Autiomatic, edge, timeout, glitch,...
  • Wavepilot control knobs & buttons
  • load
    • 50Ω, 1MΩ


Refactoring the Tango device server

Long time working on this development, I am close to say this have a certain maturity. Yes, now I have more perspective of the problem, and I am faster to solve something.

In one hand, I have much more practice in the instrumentation commands. Yes, this is incredible world close to the absurdity. The manufacturers become of agreement to create an standard to the instrumentation control, but every one introduce some differences to the main branch to create a virtual dependence in the software development.


Whatever the manufacturers do, I want to control some instruments with transparency of them. I thought the bridge pattern will solve my problem between the different protocols that the manufacturers allow to use to control their instruments, but furthermore the named '
Abstraction classInstrumentation', maybe it is not enough. I think I will need a 'refined abstraction' to implement in the superclass what is general between manufacturers and in differentiate in this refination what is specific for one manufacturer.

By now we review the class diagram from right to left, and now we are able to see the left column, the main one for
tango-ds. In the sourceforge cvs there are not a device server about the oscilloscope instrument control, neither there are not a tango abstract class for this proposal. This is my task! I need to think very well what I write, it will be official!