Nokia N95 و PYS60 مع وحدات الاستشعار و XProfile
سؤال
لقد قمت بإجراء برنامج نصي بيثون الذي يجب أن يعدل ملف التعريف الخاص بالهاتف بناء على موضع الهاتف. المحرز تحت Scriptshell يعمل بشكل رائع.
المشكلة هي أنها معلقة، سواء مع البرنامج النصي "SIS" المحرز عند "التمهيد"، وكذلك بدونها.
لذلك سؤالي هو الخطأ في الرمز، وكذلك ما إذا كنت بحاجة إلى تمرير المعلمات الخاصة إلى عمليات الاسترداد؟
import appuifw, e32, sensor, xprofile
from appuifw import *
old_profil = xprofile.get_ap()
def get_sensor_data(status):
#decide profile
def exit_key_handler():
# Disconnect from the sensor and exit
acc_sensor.disconnect()
app_lock.signal()
app_lock = e32.Ao_lock()
appuifw.app.exit_key_handler = exit_key_handler
appuifw.app.title = u"Acc Silent"
appuifw.app.menu = [(u'Close', app_lock.signal)]
appuifw.app.body = Canvas()
# Retrieve the acceleration sensor
sensor_type= sensor.sensors()['AccSensor']
# Create an acceleration sensor object
acc_sensor= sensor.Sensor(sensor_type['id'],sensor_type['category'])
# Connect to the sensor
acc_sensor.connect(get_sensor_data)
# Wait for sensor data and the exit event
app_lock.wait()
يبدأ البرنامج النصي في التمهيد، باستخدام EnlyMble وشهادة المطور الخاصة بي.
شكرا مقدما
المحلول
غالبا ما أستخدم شيئا من هذا القبيل في الجزء العلوي من البرامج النصية الخاصة بي:
import os.path, sys
PY_PATH = None
for p in ['c:\\Data\\Python', 'e:\\Data\\Python','c:\\Python','e:\\Python']:
if os.path.exists(p):
PY_PATH = p
break
if PY_PATH and PY_PATH not in sys.path: sys.path.append(PY_PATH)
نصائح أخرى
XProfile ليست مكتبة قياسية، تأكد من إضافة مسار إليه. تخميني هو أنه عند تشغيل SIS، فإنه لا يجد XProfile ويعلق. عند إطلاق SIS الخاص بك، إما تعليمات أن المستخدمين يقومون بتثبيت ذلك بشكل منفصل أو تضمين داخل جهاز SIS الخاص بك.
أين يمكنك تثبيته، استخدم هذا المسار. إليك دليل Python الافتراضي كعينة:
# PyS60 1.9.x and above
sys.path.append('c:\\Data\\Python')
sys.path.append('e:\\Data\\Python')
# Pys60 1.4.x or below
sys.path.append('c:\\Python')
sys.path.append('e:\\Python')
راجع للشغل اتخاذ مخرج نظيف، افعل هذا:
appuifw.app.menu = [(u'Close', exit_key_handler)]