I am writing a scada package that has a significant amount of user
defined parameters stored in text files that I wish to cleanly access
in code.  By way of an example, a few lines from the configuration file
would typically be ...

[Plant Outputs]
Y0      P1      Pump 1 Pressure
Y1      P2      Pump 2 Fluid Transfer Pump
Y2      P3      Pump 3 Vac Pump
Y3      P4      Pump 4 Vac Pump
Y4      P5      Pump 5 / Pump 1B
Y5      P6      Pump 6 / Pump 2B
Y6      M
Y7      D
Y10     E
Y11     F

I can read these values in as dictionary items and refernce them in
code like this...

Y['P4'] = 1   # Which will ultimately switch my pump on
Y['P3'] = 0   # Which will ultimately switch my pump off

but I would much rather reference the plant outputs like this ...

Y.P4 = 1
Y.P3 = 0

basically it makes it easier for third parties to code, also my IDE
(wing) is able to use intellisense to determine exactly which Y outputs
have been loaded during code configuration.

Now I can achieve this by loading the configuration parameters in a
class like this...

class c_y:
    def __init__(self):
        self.P1 = 0
        self.P2 = 0
        self.P3 = 0
        self.P4 = 0

so I can do

Y = c_y()
Y.P4 = 1
Y.P3 = 0
etc

However, what I really would like is something like...

class c_y:
    def __init__(self):
        self.P1 = [0, 'OB1', 0 ]
        self.P2 = [0, 'OB1', 1 ]
        self.P3 = [0, 'OB1', 2 ]
        self.P4 = [0, 'OB1', 3 ]

Because that way I can also hold binary loadings and data register
(this is a PLC application) references which give me full information
for handling the pump bits.

However, this means that I have to access the pump status bits like
this...

Y.P4[0] = 1
Y.P3[0] = 0

Which takes me away from the clean code

Y.P4 = 1
Y.P3 = 0

That I would like to have.

Can anyone suggets a technique for parameter storage that may be able
to give me what I want here ?

Thanks in advance.

David

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to