реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Telit GL868-DUAL и Python (проблемы запуска скрипта)
xoz
сообщение Aug 17 2012, 11:10
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 22-12-08
Пользователь №: 42 655



Всем привет!
Достался мне модуль на GL868-DUAL, задача написать на питоне определенный скрипт.
Вроде все понятно и не сложно, написано и отлажено на PythonWin и даже работает.
Но когда заливается в сам модуль начинает происходить странное. Скрипт не хочет запускатся в большинстве случаях, и что странно модуль пытается по видимому запустить скрипт но что то происходит и отваливается. А файл скрипта остаётся занятым, то есть его невозможно удалить, получается только после перезапуска модуля и до попытки запуска скрипта. При перезапуске модуля несколько раз, скрипт иногда запускается.
Мне кажется есть какие то ограничения в движке питона на Телите, но вполне возможно что проблема в коде.
У кого есть опыт с этими модулями посоветуйте что нибудь.
Минимальный код при котором это происходит в приложении.
Прикрепленные файлы
Прикрепленный файл  atmt.7z ( 818 байт ) Кол-во скачиваний: 19
 
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Aug 17 2012, 16:08
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(xoz @ Aug 17 2012, 14:10) *
Мне кажется есть какие то ограничения в движке питона на Телите, но вполне возможно что проблема в коде.
У кого есть опыт с этими модулями посоветуйте что нибудь.
Минимальный код при котором это происходит в приложении.



На питоне тяжело писать т.к. можно не заметить ошибку до тех пор, пока она не возникнет.
Поэтому каждую процедуру необходимо внимательно отлаживать.
Типичные ошибки это вызов методом, которые не существуют,
использование переменных, которые не были объявлены и инициализированы (напр res.find('.') а res ранее нигде не обявлялся)
неверные индексы числовых массивов,
использование неподдерживаемых свойств (питон-вин прекрасно работает с float, а интерпретатор в модеме не поддерживает его)

Попытайтесь локализовать место возникновения ошибки.
Можно отправлять с помощью SER тестовые сообщения если это не будет мешать работе того протокола, который вы пытаетесь реализовать.
Можно использовать
Код
try:
  какое-либо действие
except:
вываливание из-за ошибки (напр. послать сообщение)


Просто замечание
Код
Код
def CRC(data):
    sum = 0
    for i in range(1, len(data)):
        sum = sum + ord(data[i])
    sum = sum % 256
    return sum


будет работать медленне чем
Код
def CRC(data):
    sum = 0
    dlen = len(data)
    for i in range(1, dlen):
        sum = sum + ord(data[i])
    sum = sum % 256
    return sum
Go to the top of the page
 
+Quote Post
xoz
сообщение Aug 21 2012, 03:37
Сообщение #3





Группа: Участник
Сообщений: 14
Регистрация: 22-12-08
Пользователь №: 42 655



Спасибо за ответ
буду пробовать дальше
Go to the top of the page
 
+Quote Post
smalcom
сообщение Aug 26 2012, 07:17
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



ещё распространена ошибка - запуск на модуле искохников(*.py) - это очень долго, в первый раз. добавлю от себя процедурку, которая помогает искать ошибки вылета, т.к. не всегда есть возможность включить отладочную консоль

Код
import sys

LTime = 0
try:
    import MOD
    import mymodule
    LTime = MOD.secCounter()
    mymodule.main()
except:
    mFd = open('dus-' + str(LTime), 'wb')
    mFd.write(str(sys.exc_info()[0]) + '\r\n')
    mFd.write(str(sys.exc_info()[1]) + '\r\n')
    tb = sys.exc_info()[2]
    while tb != None:
        mFd.write('\r\n--->>>\r\nLineNum: ' + str(tb.tb_lineno))
        mFd.write('\r\n' + str(tb.tb_frame.f_code))
        mFd.write('\r\n' + str(tb.tb_frame.f_locals))
        tb = tb.tb_next
    mFd.flush()
    mFd.close()
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 02:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016