Hi Marcus,
Tried your code, needed a colon at the end of
def __init__ (connection)
but now I get
Traceback (most recent call last):
File "./pyowfs_test3.py", line 22, in <module>
room = LivingRoom (connection)
TypeError: __init__() takes exactly 1 argument (2 given)
and I have no idea what to do about that, my Python skills do not extend
that far.
Regards
Mick
On Tue, 2010-04-06 at 23:12 +0200, Marcus Priesch wrote:
> Hi mick,
>
> congratulations at the first place !!!
>
> Am Dienstag, den 06.04.2010, 21:15 +0100 schrieb Mick Sulley:
> > Hi,
> >
> > Thanks to the help from Marcus and Pascal I am now able to read sensors
> > on my network. Now the next question -
> >
> > I can run
> >
> > >>> root = Connection ("/dev/ttyD1")
> > >>> s = root.find (type="DS18S20")[0]
> > >>> print s
> > <Sensor /10.0D54A9010800/ - DS18S20>
> > >>> s.get("temperature")
> > ' 19.125'
> >
> > and I read the temperature, but how can I read the temperature of a
> > specific sensor? I get an error if I use
> >
> > >>> s = root.find (id="OD54A9010800")
>
> returns an array with sensors ...
>
> > >>> s.get("temperature")
> > Traceback (most recent call last):
> > File "<stdin>", line 1, in <module>
> > AttributeError: 'list' object has no attribute 'get'
>
> you forgot to access the first element of the array [0] - as you did
> above also ...
>
> but instead of using the index and doing the find everytime you access
> the sensor's temperature you could use some classes instead:
>
> class Sensor (object) :
> id = None
> def __init__ (connection)
> self.conn = connection
> self.sensor = connection.find (id = self.id)[0]
>
> class TempSensor (Sensor) :
> def temp (self) :
> return float (self.sensor.get ("temperature"))
>
> class LivingRoom (TempSensor) :
> id = "OD54A9010800"
>
> connection = Connection ("/dev/ttyD1")
>
> room = LivingRoom (connection)
> print room.temp ()
>
> you could furthermore use the @property decorator on "temp" so that
> "TempSensor" becomes:
>
> class TempSensor (Sensor) :
> @property
> def temp (self) :
> return float (self.sensor.get ("temperature"))
>
> then you can access the temp as any other attribute and it gets fetched
> in the background automatically ... like:
>
> print room.temp
>
> well, hopefully i have no typo in here ... ;)
>
> have fun,
> marcus.
>
>
>
> ------------------------------------------------------------------------------
> Download Intel® Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Owfs-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/owfs-developers
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Owfs-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/owfs-developers