SerialTool с Python®.


Содержание


Что такое Python?

Python® — это интерпретируемый, объектно-ориентированный, высокоуровневый язык программирования с динамической семантикой. Его высокоуровневые встроенные структуры данных, сочетание динамической типизации и динамической привязки делают его очень привлекательным для быстрой разработки приложений, а также для использования в качестве скриптового или связующего языка для объединения существующих компонентов.
Простой, легкий для изучения синтаксис Python подчеркивает читаемость и, следовательно, снижает стоимость поддержки программ. Python поддерживает модули и пакеты, что способствует модульности программ и повторному использованию кода. Интерпретатор Python и обширная стандартная библиотека доступны в исходной или бинарной форме бесплатно для всех основных платформ и могут свободно распространяться.
Для более подробной информации о Python® обратитесь на их веб-сайт: www.python.org

Юридическое уведомление: "Python" является зарегистрированным товарным знаком PSF. SerialTool не аффилирован и не спонсируется PSF. SerialTool использует Python в качестве совместимого языка программирования для запуска скриптов и требует официальной версии Python, установленной на вашем ПК.

SerialTool и Python

Редактор кода Python для SerialTool.


Вы когда-нибудь хотели использовать последовательный порт и иметь фантастический графический интерфейс, который мог бы отображать данные, поступающие и уходящие из последовательного порта?
Если вам это нужно и вы хотите создать свою собственную программу для легкого управления последовательным портом без необходимости установки библиотек на простом для всех языке, SerialTool с Python — это инструмент, который вы искали.
Некоторые программы, использующие последовательный порт, предлагают некоторые решения для скриптов, что означает, что вы можете написать свой код и выполнять его, но очень часто вы не знаете языка или вам приходится тратить часы, чтобы выяснить, как интегрировать несколько строк вашего кода! С SerialTool и встроенным Python вы можете написать свой скрипт на Python и воспользоваться всеми функциями SerialTool без каких-либо ограничений.
SerialTool интегрирует базовые функции в виде библиотеки (уже импортированной и интегрированной), и всего за несколько строк вы можете искать желаемый последовательный порт, открывать его, читать и писать. SerialTool будет управлять всей графикой управления входящими и исходящими пакетами и позволяет использовать ваш код Python для выполнения желаемых функций без ограничений.
Чтобы облегчить написание и тестирование на Python, SerialTool предоставляет текстовый редактор, где вы можете загружать и изменять свои скрипты. Интегрированный редактор распознает синтаксис Python и позволяет легко составлять код.

Подробнее о последовательном порте и Python

Углубляясь в возможности, предлагаемые SerialTool и его интегрированной библиотекой Python, давайте начнем с практического примера.
Вы намерены предоставить клиенту или коллеге программное обеспечение, которое позволяет загружать прошивку на устройство, созданное нами и обновляемое через последовательный порт. Это довольно обычный сценарий, в котором нужно создать программное обеспечение с нуля, возможно, мультиплатформенное, и интегрировать ряд аспектов, начиная от графического интерфейса и взаимодействия пользователя, выбора файла и сообщений об ошибках или подтверждения.
В этом случае, в отличие от других языков, Python упрощает работу, но в то же время требует установки внешних библиотек и их последующего обновления.
SerialTool решает проблему с самого начала, предлагая некоторые простые функции, которые позволяют быстро и интуитивно выбирать последовательный порт, диалоговые окна для загрузки и сохранения файлов и сообщения для информирования пользователя о выполнении программы.
Это очень простые функции, которые быстро вызываются, родные на платформах, где может быть установлен SerialTool (Windows, MacOS и Linux). Это полностью исключает зависимость от внешних библиотек, и основные функции взаимодействия с пользователем становятся простыми, быстрыми и интуитивно понятными всего за несколько строк кода.

Возвращаясь к нашему основному примеру, мы начинаем с закрытия всех активных портов и поиска доступных последовательных портов с использованием функции SerialTool.scan и выбора пользователем последовательного порта с помощью функции SerialTool.gui_selectport.
На этом этапе мы знаем порт, который хочет использовать наш пользователь, все, что нам нужно сделать, это открыть его с использованием функции SerialTool.open с параметрами настроек или с параметрами, уже существующими в GUI. Как только последовательный порт открыт, мы можем запросить загрузку файла с помощью функции SerialTool.gui_loadfile, открыть файл с использованием нативных функций в Python и запросить подтверждение выполнения загрузки прошивки с помощью функции SerialTool.gui_showmessage.
Мы достигли момента, когда мы пишем буфер, присутствующий в нашем файле, с SerialTool.write, указывая количество байтов для записи, и ждем ответа (если он ожидается) от устройства, которое должно быть обновлено с помощью команды SerialTool.read до конца нашего обновления.
Несколько простых команд, которые позволяют за несколько минут написать свою собственную программу для обновления вашего устройства или устройства стороннего производства.
Звучит сложно? SerialTool предоставляет интегрированные хорошо прокомментированные примеры.

Интегрированные примеры для последовательного порта в Python

Чтобы облегчить понимание и достижение результатов, SerialTool интегрирует непосредственно функциональные и прокомментированные примеры, которые способствуют немедленному использованию интегрированных функций. Огромное преимущество дается тем фактом, что интегрированные функции не требуют внешних библиотек Python для работы с последовательным портом.
С базовой установкой Python наш пример уже функционален. В предоставленных примерах доступны все функции библиотеки SerialTool для Python, интегрированные в наше программное обеспечение. Достаточно адаптировать некоторые части предложенного кода для настройки ваших скриптов, и за несколько минут ваша программа для последовательного порта будет разработана.
Предложенные примеры в SerialTool будут интегрироваться версия за версией, чтобы всегда иметь прямой обзор доступных функций и их реализации без необходимости искать в Интернете.
Посвященная документация по функциям SerialTool доступна на нашей странице API SerialTool для Python.

Установка Python

Многие учебники начинаются с установки Python на ваш компьютер, если он еще не установлен, и конфигурации, чтобы добиться минимальной работоспособности. Мы оставили эту часть напоследок, потому что SerialTool через меню «Среда Python» будет искать и тестировать существующую конфигурацию для вас, как только Python будет установлен на вашем ПК.
Как упоминалось, Python — это свободный и интерпретируемый язык, требующий установленного интерпретатора на вашем ПК. Для тех, кто знаком с этим языком, не много объяснений, однако для тех, кто впервые попробует этот удивительный язык и его среду разработки, шаги довольно просты.
Для Windows достаточно загрузить последнюю версию Python (3.12 на момент написания этого документа) и запустить исполняемый файл до его полной установки.
Для MacOS Python, вероятно, уже установлен, возможно, ссылаясь на версию 2 Python, и необходимо обновить его до последней версии (3.12 на момент написания этого документа), загрузив исполняемый файл непосредственно с официального сайта Python и продолжив установку (как в Windows).

Примечание для пользователей MacOS: В текущей версии SerialTool для MacOS, фреймворк Python 3.12 уже интегрирован для соблюдения требований Apple относительно подписи кода. Если вы хотите использовать другую версию, установленную на вашей системе, вы можете изменить настройки из меню "Python Environment".

Для Linux его нужно будет установить через командную строку Ubuntu sudo apt-get install python3 или Fedora sudo dnf install python3
Если у вас возникнут сомнения или трудности с установкой Python, вы всегда можете обратиться на официальный сайт или десятки доступных в Интернете учебников.

Настройка и конфигурация среды Python.


После установки и проверки установки из меню "Среда Python" достаточно нажать кнопку "Проверить установку", чтобы импортировать текущую конфигурацию Python и сохранить ее для последующих запусков SerialTool.

Вы готовы! Загрузите первые примеры и нажмите кнопку [RUN], чтобы начать свое приключение с SerialTool и Python, написав свою первую программу для последовательного порта.

Дополнительная информация

Для облегчения написания скриптов встроенный редактор имеет типичные функции IDE, но в данный момент не позволяет отладку.
Среди доступных опций рекомендуется всегда выбирать опцию "Автоматически закрывать последовательные порты после завершения выполнения скрипта." Если ваш скрипт столкнется с ошибками записи, SerialTool обеспечивает закрытие любых открытых последовательных портов, чтобы избежать необходимости закрывать их при последующих запусках скрипта.
Для остановки скрипта и выхода не рекомендуется использовать функцию sys.exit(), так как это приведет к полному закрытию SerialTool, поскольку Python интегрирован. Если необходимо остановить выполнение скрипта через исходный код, предусмотрена функция SerialTool.stopscript.
Если вы оказались внутри цикла, можно остановить выполнение с помощью кнопки [STOP] непосредственно из GUI.
Поскольку Python напрямую интегрирован в SerialTool, важно помнить, что ваш скрипт становится частью процессов SerialTool. В этой связи, когда вы включаете в свой цикл циклы While True, крайне важно сопровождать их небольшой паузой (обычно 0.1 секунды) с использованием функции time.sleep(0.1) (из библиотеки time), чтобы разрешить выполнение различных основных процессов графического интерфейса; в противном случае вы рискуете полностью зависнуть приложение.
Не беспокойтесь чрезмерно, так как наши примеры подчеркивают критические точки, где необходимо вставлять эти небольшие задержки.

Часто задаваемые вопросы

Ограничена ли интеграция Python какими-то функциями?
НЕТ. Все функциональные возможности скриптов Python напрямую доступны, включая загрузку внешних библиотек (если они присутствуют в системе).

Работает ли SerialTool и Python на всех операционных системах?
ДА. На всех платформах, где доступен SerialTool и Python, его использование возможно, то есть Windows, MacOS и Linux.

Обязательно ли мне загружать и устанавливать Python?
ДА. Интерпретатор Python должен быть присутствовать на ПК, где он предполагается к использованию. SerialTool основан на Python3, и обратная совместимость с Python2 напрямую зависит от совместимости двух версий. Рекомендуется пользователям Python2 в любом случае использовать Python3.

Как Python взаимодействует с SerialTool?
Сценарий Python взаимодействует через библиотеку SerialTool, непосредственно интегрированную в наше программное обеспечение, вызывая желаемые функции. Параметры, установленные через Python, включая открытие и закрытие последовательного порта, напрямую связаны с основным пользовательским интерфейсом. По сути, вы управляете SerialTool непосредственно из Python через библиотеку SerialTool и ее функции.

Могу ли я продолжать использовать функции SerialTool?
ДА. Все функции SerialTool остаются доступными, AutoAnswer, Alarm, SerialScope, отображение пакетов, запись данных, отправка пакетов в сеть и т.д. остаются доступными и выбираемыми из пользовательского интерфейса.

Возможно ли использовать несколько портов одновременно?
ДА. Основная функция SerialTool — управление несколькими последовательными портами одновременно. Из Python можно назначить серийный номер, который будет использоваться для последовательного порта, который вы намерены использовать через функцию SerialTool.assignPort.

Всегда ли мне нужно использовать графический интерфейс для открытия и настройки портов перед использованием?
НЕТ. Как уже говорилось, управление последовательными портами напрямую доступно из Python.

Могу ли я также установить параметры RTS и DTR?
ДА. Библиотека позволяет напрямую управлять настройкой контактов RTS и DTR при открытии последовательного порта и во время выполнения скрипта.

Могу ли я запросить реализацию других функций в библиотеке SerialTool?
ДА. Любая дальнейшая реализация дополнительных функций для библиотеки SerialTool на Python будет рассмотрена и реализована, где это возможно и в зависимости от динамики разработки SerialTool.

Какую поддержку я могу получить?
Наша команда доступна, чтобы помочь вам интегрировать ваши скрипты, облегчить составление ваших скриптов или определить любые ошибки. Поддержка не включает составление фактических скриптов Python или на заказ. Поддержка связана с интеграцией Python с SerialTool.