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

 
 
> 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
 
Start new topic
Ответов
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



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

 


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


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