блин. Мне не воссоздать, у меня сразу возвращает {'satellites': None, 'position': {'latitude': NaN, 'altitude': NaN, 'vertical_accuracy': NaN, 'longitude': NaN, 'horizontal_accuracy': NaN}, 'course': None}. Проверяй поэтапно, вызывается ли fun2, print туда засунь, вместо таймера прицепи ее на екситкейхандлер временно, может че прояснится...
nur87, Я вообще в командной строке не могу ничего сделать, потому что мне всегда выдает сообщение, типа данная команда не является внутренней или внешней командой, исполняемой программой или файлом
global gps_pos appuifw.note(u'a','error',1) if gps_pos=={}: appuifw.note(u'b','error',1) gps_pos={'latitude':'iNone','longitude':'iNone'} appuifw.note(u'c','error',1) positioning.stop_position() appuifw.note(u'd','error',1)
вот так я пробовал. appuifw.note(u'4','error',1) вот это не выполняется, если спутники не найдет.
может в месте где вызывается positioning.position() заблокировать основной поток программы, sleep-ом и во втором потоке запустить positioning.position() и там уже проверять данные?
не знаю. проверить не могу. может и не останавливает описание функции:
stop_position() Stops an ongoing position request.
по описанию должен тормозить, а после торможения же, должен выполняться код после : positioning.position() да? или нет ------------- добавлено в 11.10:HeaTTheatR запускаешь командную строку переходишь в каталог-папку своей проги вводишь python setup.pu ..... если пишет что питон не является командой, тогда надо проверить переменные среды свойства моего компьютера, переменные среды, смотришь чему равен PATH если там отсутствует путь к питону то надо дописать
import positioning as p import appuifw import e32 from time import clock def f1(): global pos, flag pos = p.position()['position'] flag = 1 def stop(): global pos, flag pos = None flag = 1 def f2(): appuifw.app.exit_key_handler = stop global flag flag = 0 t0 = clock() e32.ao_sleep(0, f1) while clock() - t0 = 20: return f2() elif flag: break f2() print pos
------------- добавлено в 12.11: парсер код испоганил, надо дмитрию пожаловаться. ------------- добавлено в 12.12: парсер код испоганил, надо дмитрию пожаловаться.
dimy44 блин. это по моему все равно не то. а если отдельным потоком запустить, и через 10 секунд убить этот поток? если ничего он не вернул, и продолжить выполнение скрипта
вызванная функция отработает всегда, либо выбросит исключение. Либо зависнет, если че-то там никак не выполнится. Я надеялся, что stop_position прерывает ее выполнение. ------------- добавлено в 13.36: а так получается типа urllib.urlopen, фиг прервешь, я в демоне запускал и убивал если что, тока так получалось