Автоматический сбор данных

Приручаем Питон


Продолжая тему об автоматическом сборе данных, — хотя и действительно Excel знает народу больше чем что либо другое, без свободного софта сейчас никак (особенно при наблюдающемся сейчас патологическом обострении борьбы за авторские права). Конечно самый развесистый вариант это OpenOffice, но на его OpenBasice нет в чистом виде работы с портами (поправьте если ошибся) и поэтому все равно надо подключать сторонние скрипты. Поэтому и просто Питона для начала хватит-).
Начнем с конца-) выглядит все вот так:

Сначала все кнопки неактивны — выбираем UDP или UART потом в UDP пишем в окошках адрес и порт, — левое текстовое окно передача(чего передаем) — жмем 'send', в шелле отладочная информация(print), сокет отваливается по таймауту или при получении сообщения нулевой длины (удобно использовать с зеркальным сервером — послал 'пустышку' и соединение отвалилось). Правое текстовое окно неактивно, только прием. При установке галок 'Запомнить' содержимое окошек настроек портов UDP или UART запоминается в файле 'default.txt', откуда считывается при нажатии на 'Настройки по умолчанию...'. В UARTе все то же самое плюс при установке галки 'Слушать', Com порт переводится на чистый прием. По приему и там и там все режется слайсами на четверки и засовывается в таблицу. Последний столбец в таблице — время приема. Ну все конечно довольно тормозное, но работает стабильно(по крайней мере на w7) и вполне может быть альтернативой Excel-ю. (кстати в настройках модулей все можно сделать и пошустрее). Ну и так как numpy установить не удалось(опенсорс есть опенсорс-( ), то есть экспорт в формат экселя. По умолчанию сохраняет файл с названием Г-МЧ-Ч_Мин_Сек.xls. Ну и что бы не тормозило основное окно — передача/прием и прием по Com порту сделаны в отдельных потоках. Если что вот исходник-)
Ну и немного о граблях-). Для начала при установки Питона не забываем включить путь папки установки, в переменные среды. Потом доустанавливаем модули — в консоли — pip install <имя_модуля>, соответственно — socket, serial, xlwt, time — socket — ethernet, serial — RS232, экспорт в Excel, time — работа с временем, это для Питона. Интерфейсы лично я предпочитаю генерить, для этого есть PyQt — у меня пятая, генерит xml файлы с расширением .ui- нарисовали-сохранили, —в папке в консоли — pyuic5 -x -o <имя_нужного_файла.py> <имя_интерфейсного_файла.ui>, потом туда можно дописать чего хочешь.
В 3.41 Питоне сигналы и слоты сделаны немного по другому, слово Signal не испльзуется вообще, изменен синтаксис print, так что втупую запустить на третьем, то что написано на втором не удастся. Но хуже всего то, что не ставится numpy – вся толстая математика и соответственно связанная с ней визуализация(графика и т. п.). Так что наверное лучше все было делать на 2.хх, но как бы то ни было основные вкусности попробовать удалось.
  • +1
  • 23 января 2016, 22:34
  • basil
  • 3
Файлы в топике: dual_client_.JPG, dual_client_.zip, dual_client_XP.zip

Комментарии (12)

RSS свернуть / развернуть
Если уж делаете интерфейс, то делайте на одном языке. А то у Вас русский, английский да еще и транслит в одном окне — глаза режет.
0
Справедливо, в исходнике названия заменил на английские. Тестовая утилита, — делалась чтобы попробовать, смотрел корректно ли отображаются надписи на русском, ну и забыл поправить)
0
Не знаю с чем это связано, но почему-то под XPSP3 уарт чего-то не пошел-(, чего-то не то с потоками, под w7 причем шло, нда… Допилил под XP потоки — dual_client_XP.zip, этот пойдет наверное и под w7, но к сожалению семерки сейчам под руками нет.
0
Оказывается это под Home Edition не идет, под Pro идет и то что под w7.
0
Да, там в обоих поправил ошибку записи в конфиг, так что если что,- dual_client_XP.zip -)
0
Termite, да и не только он пишет лог в файл. Достаточно базового форматирования вывода чтобы данные без проблем импортировались в любой табличный редактор.
Matlab и бесплатный аналог Octave нативно работают как с последовательным портом, так и с сетью — на чтение, запись и много чего ещё.
Labview вообще позволяет на коленке клепать продвинутые АСУ со всевозможными показометрами и логгерами.

Это отлично, что вы написали собственный инструмент под свои нужды, опыт полученный при этом никаким матлабом не заменить. Но обьективно есть готовые и гораздо более мощные инструменты чем самопальный терминал.
0
Да конечно, в первой статье про автоматическую сборку данных я и писал про Excel. Смысл в том, что речь идет о бесплатном софте, честно говоря про то что Octave может что-то получать по сетке и по RS232 не знал надо посмотреть.
0
Эксель чуть ли не худший выбор. Октава или R на порядки удобнее, профессиональнее и мощнее. К тому же их изучение может дать куда лучшую работу чем «уверенное владение экселем».
Если вы умеете программировать в питоне- отлично! Можно использовать функции октавы из питона через oct2py.
А если вы ещё статью об этом здесь напишете так вообще уважение у местных зашкалит.
0
Все побежал читать,- может и вправду напишется))
0
Поставил авансом плюсик, так что теперь жду на статью :)
0
Welcome ))) — we.easyelectronics.ru/electro-and-pc/avtomaticheskiy-sbor-dannyh_2.html почти то, о чем вы и говорили-))
0
Да, и конечно по идее планировалось прикрутить питон скрипт к опенофису. Исходно, все более-менее ms-офис знают(эксель тут конечно лучший вариант), а опенофис конечно в этом смысле похуже, но побесплатней)
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.