(add python tricks section) |
(update python example) |
||
| Line 178: | Line 178: | ||
from QtMobility import Sensors | from QtMobility import Sensors | ||
| - | class | + | |
| - | def __init__(self): | + | |
| + | class XYZReadingListener(QtCore.QObject): | ||
| + | def __init__(self, reading_prefix=None): | ||
QtCore.QObject.__init__(self) | QtCore.QObject.__init__(self) | ||
self.rotation = (0.0, 0.0, 0.0) | self.rotation = (0.0, 0.0, 0.0) | ||
| + | if reading_prefix is not None: | ||
| + | self.reading_prefix = reading_prefix + " " | ||
| + | else: | ||
| + | self.reading_prefix = "" | ||
@QtCore.Slot() | @QtCore.Slot() | ||
def on_reading_changed(self): | def on_reading_changed(self): | ||
| - | + | reader = self.sender() | |
| - | reading = | + | reading = reader.reading() |
self.rotation = (reading.x(), | self.rotation = (reading.x(), | ||
reading.y(), | reading.y(), | ||
reading.z()) | reading.z()) | ||
| - | print " | + | print "%sreading = %s" % (self.reading_prefix, self.rotation) |
app = QtGui.QApplication(sys.argv) | app = QtGui.QApplication(sys.argv) | ||
| - | |||
| - | accel_listener = | + | accel = Sensors.QAccelerometer() |
| + | accel_listener = XYZReadingListener("Accelerometer") | ||
accel.readingChanged.connect(accel_listener.on_reading_changed) | accel.readingChanged.connect(accel_listener.on_reading_changed) | ||
accel.start() | accel.start() | ||
| + | |||
| + | magnetometer = Sensors.QMagnetometer() | ||
| + | magnetometer_listener = XYZReadingListener("Magnetometer") | ||
| + | magnetometer.readingChanged.connect(magnetometer_listener.on_reading_changed) | ||
| + | magnetometer.start() | ||
sys.exit(app.exec_()) | sys.exit(app.exec_()) | ||
| + | </pre> | ||
| + | |||
| + | |||
| + | Output example: | ||
| + | |||
| + | <pre> | ||
| + | user@RM680:~$ python -i src/play.py | ||
| + | Using the meego graphics system | ||
| + | loaded the Generic plugin | ||
| + | loaded the grue plugin | ||
| + | Loaded the MeeGo sensor plugin | ||
| + | Setting data rate 0 Hz (interval 0 ms) for "meego.accelerometer" | ||
| + | Setting data rate 0 Hz (interval 0 ms) for "meego.magnetometer" | ||
| + | Accelerometer reading = (2.4728419780731201, 6.7119998931884766, -6.3587369918823242) | ||
| + | Accelerometer reading = (2.6494736671447754, 7.0652632713317871, -6.3587369918823242) | ||
| + | Accelerometer reading = (2.6494736671447754, 7.0652632713317871, -6.3587369918823242) | ||
| + | Accelerometer reading = (2.6494736671447754, 7.0652632713317871, -6.3587369918823242) | ||
| + | Accelerometer reading = (3.1793684959411621, 5.6522102355957031, -6.5353684425354004) | ||
| + | Accelerometer reading = (3.1793684959411621, 5.8288421630859375, -7.0652632713317871) | ||
| + | Accelerometer reading = (5.475578784942627, 2.1195788383483887, -7.2418947219848633) | ||
| + | Accelerometer reading = (7.0652632713317871, -1.5896842479705811, -6.5353684425354004) | ||
| + | Accelerometer reading = (7.5951576232910156, -4.2391576766967773, -6.1821050643920898) | ||
| + | Accelerometer reading = (6.1821050643920898, -4.7690525054931641, -6.5353684425354004) | ||
| + | Magnetometer reading = (-5.0219998229295015e-05, 0.00010898999607888982, -2.5349998395540752e-05) | ||
| + | Accelerometer reading = (5.8288421630859375, -3.885894775390625, -6.7119998931884766) | ||
| + | Accelerometer reading = (5.475578784942627, -3.885894775390625, -7.0652632713317871) | ||
| + | Accelerometer reading = (6.1821050643920898, -3.5326316356658936, -6.3587369918823242) | ||
| + | Accelerometer reading = (6.0054736137390137, -4.2391576766967773, -6.5353684425354004) | ||
| + | Accelerometer reading = (6.1821050643920898, -4.0625262260437012, -6.5353684425354004) | ||
| + | Accelerometer reading = (6.1821050643920898, -2.8261051177978516, -7.0652632713317871) | ||
| + | Magnetometer reading = (-6.2699997215531766e-05, 0.00012944999616593122, -2.939999831141904e-05) | ||
</pre> | </pre> | ||
I'm a python developer in real life and enjoyed hacking on my N900 so much that I wanted to continue with the N9/N950. My application for the N950 was accepted and I'm starting the two projects:
Contents |
sudo /scratchbox/sbin/sbox_ctl start && sudo /scratchbox/sbin/sbox_sync && /scratchbox/login
apt-get source python-minimal cd python-defaults-2.6.6-3+squeeze4/ dpkg-buildpackage -sa -rfakeroot -kmartin@martindengler.com fakeroot apt-get install debiandoc-sgml lsb-release dpkg-buildpackage -sa -rfakeroot -kmartin@martindengler.com aegis-manifest -d
http://repo.pub.meego.com/home:/mdengler/MeeGo_1.2_Harmattan_Maemo.org_MeeGo_1.2_Harmattan_standard/
http://wiki.meego.com/Migrating_from_N900_to_N950#GTalk_and_Skype_account_setup
qdbus --system org.freedesktop.DBus / org.freedesktop.DBus.ListNames dbus-send --system --type=method_call --print-reply --dest=com.nokia.time /com/nokia/time org.freedesktop.DBus.Introspectable.Introspect
dbus-send --system --type=method_call --print-reply --dest=com.nokia.time /com/nokia/time com.nokia.time.enable_alarms boolean:"false"
dbus-send --system --type=method_call --print-reply --dest=com.nokia.time /com/nokia/time com.nokia.time.alarms_enabled
dbus-send --system --type=method_call --print-reply --dest=com.nokia.time /com/nokia/time com.nokia.time.get_cookies_by_attributes dict:string:string:"",""
~ # ls -i /bin/sh
144908 /bin/sh
~ # sha1sum /bin/sh 7fd44caa86b259e8724f5da10adfcc7fee4e0a16 /bin/sh ~ # grep 144908 /sys/kernel/security/validator/hashlist 9990003 144908 (0,0,33261)S no 7fd44caa86b259e8724f5da10adfcc7fee4e0a16
~ # ls -i /etc/mce/mce.ini
143850 /etc/mce/mce.ini
~ # grep 143850 /sys/kernel/security/validator/hashlist
| Item | Filesystem | Backup | |
|---|---|---|---|
| Contacts | |||
| Recent Calls | |||
| Web history | |||
| Messages | |||
| Pictures (Gallery/Camera) | |||
| Music | |||
| Videos | |||
| Calendar | |||
| Documents | |||
| Feeds | |||
| Accounts | |||
| Clock (Alarms) | |||
| Settings | |||
| Notes | |||
| Autostart applications | /usr/share/autostart/tracker-miner-fs.desktop | ||
| Extensions & Status menu applications | /usr/share/meegotouch/applicationextensions | ||
| Application Launcher icons | /usr/share/applications and /usr/share/applications/installer-extra | ||
| QuickLaunch Bar Application Launcher icons | /etc/xdg/meegotouchhome-nokia/applications/ |
import sys, os
from PySide import QtCore, QtGui, QtDeclarative, QtOpenGL
from QtMobility import Sensors
class XYZReadingListener(QtCore.QObject):
def __init__(self, reading_prefix=None):
QtCore.QObject.__init__(self)
self.rotation = (0.0, 0.0, 0.0)
if reading_prefix is not None:
self.reading_prefix = reading_prefix + " "
else:
self.reading_prefix = ""
@QtCore.Slot()
def on_reading_changed(self):
reader = self.sender()
reading = reader.reading()
self.rotation = (reading.x(),
reading.y(),
reading.z())
print "%sreading = %s" % (self.reading_prefix, self.rotation)
app = QtGui.QApplication(sys.argv)
accel = Sensors.QAccelerometer()
accel_listener = XYZReadingListener("Accelerometer")
accel.readingChanged.connect(accel_listener.on_reading_changed)
accel.start()
magnetometer = Sensors.QMagnetometer()
magnetometer_listener = XYZReadingListener("Magnetometer")
magnetometer.readingChanged.connect(magnetometer_listener.on_reading_changed)
magnetometer.start()
sys.exit(app.exec_())
Output example:
user@RM680:~$ python -i src/play.py Using the meego graphics system loaded the Generic plugin loaded the grue plugin Loaded the MeeGo sensor plugin Setting data rate 0 Hz (interval 0 ms) for "meego.accelerometer" Setting data rate 0 Hz (interval 0 ms) for "meego.magnetometer" Accelerometer reading = (2.4728419780731201, 6.7119998931884766, -6.3587369918823242) Accelerometer reading = (2.6494736671447754, 7.0652632713317871, -6.3587369918823242) Accelerometer reading = (2.6494736671447754, 7.0652632713317871, -6.3587369918823242) Accelerometer reading = (2.6494736671447754, 7.0652632713317871, -6.3587369918823242) Accelerometer reading = (3.1793684959411621, 5.6522102355957031, -6.5353684425354004) Accelerometer reading = (3.1793684959411621, 5.8288421630859375, -7.0652632713317871) Accelerometer reading = (5.475578784942627, 2.1195788383483887, -7.2418947219848633) Accelerometer reading = (7.0652632713317871, -1.5896842479705811, -6.5353684425354004) Accelerometer reading = (7.5951576232910156, -4.2391576766967773, -6.1821050643920898) Accelerometer reading = (6.1821050643920898, -4.7690525054931641, -6.5353684425354004) Magnetometer reading = (-5.0219998229295015e-05, 0.00010898999607888982, -2.5349998395540752e-05) Accelerometer reading = (5.8288421630859375, -3.885894775390625, -6.7119998931884766) Accelerometer reading = (5.475578784942627, -3.885894775390625, -7.0652632713317871) Accelerometer reading = (6.1821050643920898, -3.5326316356658936, -6.3587369918823242) Accelerometer reading = (6.0054736137390137, -4.2391576766967773, -6.5353684425354004) Accelerometer reading = (6.1821050643920898, -4.0625262260437012, -6.5353684425354004) Accelerometer reading = (6.1821050643920898, -2.8261051177978516, -7.0652632713317871) Magnetometer reading = (-6.2699997215531766e-05, 0.00012944999616593122, -2.939999831141904e-05)