
Hi all,
I'm working on a resource which reads weather data, and I'm using this code to read data from a BMP180 barometric pressure sensor.
https://github.com/lawsie/barometric-sensor
The code in the file bmpBackend_py3.py (and the Adafruit I2c/bmp085 files) was originally in Python 2 and I converted it using 2to3. However this has resulted in the bit shifts not working any more in the readPressure() method.
This code works in Python 2 but I need the resource to be in Python 3. I've included the Python 2 bmpBackend file too for comparison in case the tool has changed something odd.
I predict the problem is to do with the redefinition of the / operator from 2 to 3, but I don't know enough about bit shifting to figure out what to do to resolve it.
Would anyone be able to help me to get this working? :)
Many thanks, Laura

Just to add to what Laura has said. This resource is part of a global weather experiment. We have 1000 schools around the world taking part and we want them to be able to program them with Python as well as with Java. Helping with the conversion from 2 to 3 would impact a lot of young people!
Thanks,
Carrie Anne
On Tue, Dec 20, 2016 at 9:38 AM, Laura Sach lawsie@gmail.com wrote:
Hi all,
I'm working on a resource which reads weather data, and I'm using this code to read data from a BMP180 barometric pressure sensor.
https://github.com/lawsie/barometric-sensor https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_lawsie_barometric-2Dsensor&d=DgMFaQ&c=DpyQ_ftY536pf7wCBQXXU58xADDRY77THQzJu1OmzOo&r=p4qOjPRR1KW_JcSTVo66U4oJ21Q6ryCXteaBg51D6Eo&m=M0KSOnlWfnqjx7yhGnbKu1goe2opZTJ9NYqpMPl-6z4&s=VRX_3_GiA9L13nO2xI9Kn423A0Jer9aa000aNlC60ec&e=
The code in the file bmpBackend_py3.py (and the Adafruit I2c/bmp085 files) was originally in Python 2 and I converted it using 2to3. However this has resulted in the bit shifts not working any more in the readPressure() method.
This code works in Python 2 but I need the resource to be in Python 3. I've included the Python 2 bmpBackend file too for comparison in case the tool has changed something odd.
I predict the problem is to do with the redefinition of the / operator from 2 to 3, but I don't know enough about bit shifting to figure out what to do to resolve it.
Would anyone be able to help me to get this working? :)
Many thanks, Laura
Pythonedu-wg mailing list Pythonedu-wg@python.org https://mail.python.org/mailman/listinfo/pythonedu-wg

On 20/12/2016 09:38, Laura Sach wrote:
Hi all,
I'm working on a resource which reads weather data, and I'm using this code to read data from a BMP180 barometric pressure sensor.
Laura,
I may be missing something, but it looks to me as though Adafruit have already done this for the modules you're using. The repo you point to at the head of the backend file:
https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/
describes how they've broken the code out into smaller repos and made them work with Py2/3.
Certainly
https://github.com/adafruit/Adafruit_Python_BMP
and
https://github.com/adafruit/Adafruit_Python_GPIO/blob/master/Adafruit_GPIO/I...
seem, by inspection, to be 2/3 compatible.
I'm happy to help, but is it possible that you're re-inventing the wheel here? Or have I missed something?
TJG

THANK YOU Tim! Sometimes you can't see the wood for the trees - I inherited that old code and it didn't occur to me to see if someone had since made a Python 3 Adafruit library. That works perfectly and is super easy to install and use.
The Barometric Pressure sensor *shall* go to the ball! :)
Laura
On Tue, Dec 20, 2016 at 10:17 AM, Tim Golden mail@timgolden.me.uk wrote:
On 20/12/2016 09:38, Laura Sach wrote:
Hi all,
I'm working on a resource which reads weather data, and I'm using this code to read data from a BMP180 barometric pressure sensor.
Laura,
I may be missing something, but it looks to me as though Adafruit have already done this for the modules you're using. The repo you point to at the head of the backend file:
https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/
describes how they've broken the code out into smaller repos and made them work with Py2/3.
Certainly
https://github.com/adafruit/Adafruit_Python_BMP
and
https://github.com/adafruit/Adafruit_Python_GPIO/blob/master /Adafruit_GPIO/I2C.py
seem, by inspection, to be 2/3 compatible.
I'm happy to help, but is it possible that you're re-inventing the wheel here? Or have I missed something?
TJG

bash-3.2$ python Python 3.5.2 |Anaconda custom (x86_64)| (default, Jul 2 2016, 17:52:12) [GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin Type "help", "copyright", "credits" or "license" for more information.
10>>1
5
10.>>1
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for >>: 'float' and 'int'
Hi, don't know how I came to receive this email, and didn't see that you had it solved until after playing with it ... but the problem is shifting bits on a float ... needs to be an int. -C
On Tue, Dec 20, 2016 at 3:27 AM, Laura Sach lawsie@gmail.com wrote:
THANK YOU Tim! Sometimes you can't see the wood for the trees - I inherited that old code and it didn't occur to me to see if someone had since made a Python 3 Adafruit library. That works perfectly and is super easy to install and use.
The Barometric Pressure sensor *shall* go to the ball! :)
Laura
On Tue, Dec 20, 2016 at 10:17 AM, Tim Golden mail@timgolden.me.uk wrote:
On 20/12/2016 09:38, Laura Sach wrote:
Hi all,
I'm working on a resource which reads weather data, and I'm using this code to read data from a BMP180 barometric pressure sensor.
Laura,
I may be missing something, but it looks to me as though Adafruit have already done this for the modules you're using. The repo you point to at the head of the backend file:
https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/
describes how they've broken the code out into smaller repos and made them work with Py2/3.
Certainly
https://github.com/adafruit/Adafruit_Python_BMP
and
https://github.com/adafruit/Adafruit_Python_GPIO/blob/master /Adafruit_GPIO/I2C.py
seem, by inspection, to be 2/3 compatible.
I'm happy to help, but is it possible that you're re-inventing the wheel here? Or have I missed something?
TJG
Pythonedu-wg mailing list Pythonedu-wg@python.org https://mail.python.org/mailman/listinfo/pythonedu-wg
participants (4)
-
Carrie Anne Philbin
-
Charles Cossé
-
Laura Sach
-
Tim Golden