Jump to content

    

Recommended Posts

Дабы не плодить темы, спрошу здесь.

 

Начал разбираться со встроенным интерпретатором Python на модулях Telit GL868. Вроде бы, путем какого-то шаманства, что-то стало получаться, но...

 

Проблемы есть следующие:

 

1. Если заливать в модуль "не скомпилированную" версию скрипта, все работает как надо, но стартует при этом с задержкой больше минуты (скриптик на 3 кб, одним файлом).

 

2. Если же заливать "скомпилированную" версию, то скрипт вообще не запускается. Точнее, один раз у меня получилось сделать так, чтобы он запускался (и при этом не было задержки исполнения), но повторить больше не удается.

 

Хотелось бы услышать мнение представителя фирмы - стоит ли вообще связываться с этой возможностью? Первое впечатление возникло не самое приятное... Вроде бы и руки не самые кривые, но стабильной работы добиться пока так и не удалось.

Share this post


Link to post
Share on other sites
Дабы не плодить темы, спрошу здесь.

 

Начал разбираться со встроенным интерпретатором Python на модулях Telit GL868. Вроде бы, путем какого-то шаманства, что-то стало получаться, но...

 

Проблемы есть следующие:

 

1. Если заливать в модуль "не скомпилированную" версию скрипта, все работает как надо, но стартует при этом с задержкой больше минуты (скриптик на 3 кб, одним файлом).

 

2. Если же заливать "скомпилированную" версию, то скрипт вообще не запускается. Точнее, один раз у меня получилось сделать так, чтобы он запускался (и при этом не было задержки исполнения), но повторить больше не удается.

 

Хотелось бы услышать мнение представителя фирмы - стоит ли вообще связываться с этой возможностью? Первое впечатление возникло не самое приятное... Вроде бы и руки не самые кривые, но стабильной работы добиться пока так и не удалось.

Вообще говоря, если скрипт работает, то работает стабильно. Наиболее частая ошибка - это название скрипта. Некомпилированный скрипт должен иметь расширение .py, а компилированный - .pyo. Кроме того, в названии не должно быть пробелов, звездочек и других спецсимволов.

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

Share this post


Link to post
Share on other sites
Вообще говоря, если скрипт работает, то работает стабильно. Наиболее частая ошибка - это название скрипта. Некомпилированный скрипт должен иметь расширение .py, а компилированный - .pyo. Кроме того, в названии не должно быть пробелов, звездочек и других спецсимволов.

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

Вроде бы поборол проблему. Оказалось, скрипт компилировался другой версией питона (помимо штатного набора софта от Telit в системе был установлен официальный релиз Python 2.7).

 

Какой командой компилируются скрипты при вызове пункта Compile из контекстного меню?

Share this post


Link to post
Share on other sites

Интересует еще вот какой вопрос - какой величиной ограничен размер одного скрипта, загруженного в модуль? В официальной документации я этой цифры не нашел - означает ли это, что размер ограничен только доступной памятью?

Share this post


Link to post
Share on other sites
Интересует еще вот какой вопрос - какой величиной ограничен размер одного скрипта, загруженного в модуль? В официальной документации я этой цифры не нашел - означает ли это, что размер ограничен только доступной памятью?

 

Вообщето когда работал с питоном в официальных документах от Telit (easy script in python - както так он назывался) встречал рекомендации не заливать файлы более 16 килобайт. А более крупные дробить на файлы помельче. Иначе падает скорость запуска скрипта.

 

Share this post


Link to post
Share on other sites
Интересует еще вот какой вопрос - какой величиной ограничен размер одного скрипта, загруженного в модуль? В официальной документации я этой цифры не нашел - означает ли это, что размер ограничен только доступной памятью?

Внимательней читайте документацию:

The recommended dimension of the compiled file .pyo should be <16KByte

Telit_Easy_Script_Python_r13.pdf

Share this post


Link to post
Share on other sites

Работаю сейчас с Телитом GL-865. Пытаюсь работать с помощью скриптов на Питоне. Однако ничего не получается кроме команды PRINT, которая передаёт строку во второй УАРТ. Записываю скомпиленный вот такой код.

import MDM
import SER
import MOD

print 'start'

a = SER.send('sdg')    
print a
print 'OK'
MOD.sleep(10)

По идеи команда SER.send должна передавать в первый УАРТ строку 'sdg'. Но этого не проиходит. Приходит только на второй УАРТ 'start', '1' (отсутствие ошибки отправки) и 'OK'. Что я делаю не так? Основываюсь на документе Телитовском документе Easy Script in Python.

В терминале приходит вот что

post-74999-1371635665_thumb.png

 

 

Телитовский пример тестирования SER также не работает

Share this post


Link to post
Share on other sites

Я так понимаю, что у меня ошибка при импортировании SER. Но в ПитонВин я перехожу в эту библиотеку из моего скрипта без проблем, да и ни где ни каких рекомендаций нет по её импорту.

Edited by Ruslan-maniak

Share this post


Link to post
Share on other sites

Здравствуйте Руслан,

для корректной работы с физическими портами UART, сначала нужно настроить параметры работы с ними, попробуйте такой пример, он работает корректно:

import MOD

import SER

 

print 'Test UART\r'

 

SER.set_speed('115200','8N1') /// Настройка порта ASC0

 

while 1:

MOD.sleep(5)

a = SER.send('TEST\r\n')

print '%d\r' % a

 

Желаю удачи!

Edited by Telit_Sprt

Share this post


Link to post
Share on other sites
Я так понимаю, что у меня ошибка при импортировании SER. Но в ПитонВин я перехожу в эту библиотеку из моего скрипта без проблем, да и ни где ни каких рекомендаций нет по её импорту.

При отладке скриптов результат команды print выводится во второй порт (не очень удобно, т.к. загрузка скриптов

происходит по первому порту. В сети рекомендуют множество вариантов для перенаправления вывода print

на первый порт, например

 

import SER

import sys

 

speed = SER.set_speed('115200')

 

class SerWriter:

 

def write(self,s):

 

SER.send(s+'\r')

 

sys.stdout = sys.stderr = SerWriter()

 

 

но иногда этот метод не срабатывает. Причина может быть в том, что нужно выключить режим виртуализации портов:

 

import SER

import sys

import MDM

 

res = MDM.send('AT#CMUXSCR=0,115200\r',2)

speed = SER.set_speed('115200')

class SerWriter:

def write(self,s):

SER.send(s+'\r')

sys.stdout = sys.stderr = SerWriter()

Share this post


Link to post
Share on other sites

Возникла необходимость реализации алгоритма AES128 на модуле GL868 (865). Написал скрипт на мнемонике питона - поразила очень медленная скорость его выполнения - 1 блок (16 байт) обрабатывался в течении 4х секунд! Что на два порядка превышало необходимую мне скорость! Обратился за помощью к Telit - отправил свой скрипт. Однако представители техподдержки даже не удосужились его посмотреть - сплошные отписки... и отсылки старой документации по питона 1.5.2. Далее узнал, что в последних версиях прошивки GL868 - реализован шифрованный канал передачи данных SSL/TLS с использование AES256.  Снова обратился к Телит с просьбой переложить часть нативного шитого си-кода этого алгоритма в прошивку GL-868 - поскольку все быстрые модули в Питоне реализованы через си. Однако и в этом случае Телит отказал в помощи. Вся их переписка со мной сводилась к предложению приобрести новый 3G-модуль... 

На мои просьбы предоставить исходники и компиляторы под данный процессор для возможности самостоятельного портирования нужного мне модуля Телит так же ответил отказом (не смотря на то, что данные модули уже сняты с производства)...

На данный проект я потратил очень много времени и сил, и было очень обидно когда все уперлось в AES128. А "специалисты" которые призваны помогать в решении подобных проблем остались безучастны к моей просьбе...

Прошу Вас донести данный пост до директора компании Telit!

 

 

Share this post


Link to post
Share on other sites

Возникла необходимость реализации алгоритма AES128 на модуле GL868 (865). Написал скрипт на мнемонике питона - поразила очень медленная скорость его выполнения - 1 блок (16 байт) обрабатывался в течении 4х секунд! Что на два порядка превышало необходимую мне скорость! Обратился за помощью к Telit - отправил свой скрипт. Однако представители техподдержки даже не удосужились его посмотреть - сплошные отписки... и отсылки старой документации по питона 1.5.2. Далее узнал, что в последних версиях прошивки GL868 - реализован шифрованный канал передачи данных SSL/TLS с использование AES256.  Снова обратился к Телит с просьбой переложить часть нативного шитого си-кода этого алгоритма в прошивку GL-868 - поскольку все быстрые модули в Питоне реализованы через си. Однако и в этом случае Телит отказал в помощи. Вся их переписка со мной сводилась к предложению приобрести новый 3G-модуль... 

На мои просьбы предоставить исходники и компиляторы под данный процессор для возможности самостоятельного портирования нужного мне модуля Телит так же ответил отказом (не смотря на то, что данные модули уже сняты с производства)...

На данный проект я потратил очень много времени и сил, и было очень обидно когда все уперлось в AES128. А "специалисты" которые призваны помогать в решении подобных проблем остались безучастны к моей просьбе...

Прошу Вас донести данный пост до директора компании Telit!

 

 

Share this post


Link to post
Share on other sites
56 minutes ago, Dima83 said:

Прошу Вас донести данный пост до директора компании Telit!

Объявите ему выговор с занесением в трудовую книжку и лишите его премии за 2020 год.

Если не поможет, то растрел на рабочем месте.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.