SerialTool com Python®.


Índice


O que é Python?

Python® é uma linguagem de programação de alto nível, orientada a objetos e interpretada, com semântica dinâmica. Suas estruturas de dados de alto nível integradas, combinadas com tipagem dinâmica e vinculação dinâmica, tornam-na muito atraente para o Desenvolvimento Rápido de Aplicações, bem como para uso como linguagem de script ou cola para conectar componentes existentes.
A sintaxe simples e fácil de aprender do Python enfatiza a legibilidade e, portanto, reduz o custo de manutenção do programa. Python suporta módulos e pacotes, o que incentiva a modularidade do programa e a reutilização de código. O interpretador Python e a extensa biblioteca padrão estão disponíveis em forma de fonte ou binário sem custo para todas as principais plataformas e podem ser distribuídos livremente.
Para mais informações detalhadas sobre Python®, consulte o site: www.python.org

Aviso legal: "Python" é uma marca registrada da PSF. SerialTool não é afiliado ou patrocinado pela PSF. SerialTool usa Python como uma linguagem de programação compatível para executar scripts e requer uma versão oficial do Python instalada em seu PC.

SerialTool e Python

Editor de Código Python para SerialTool.


Você já quis usar a porta serial e ter uma interface gráfica fantástica disponível que pudesse exibir dados de e para a porta serial?
Se você precisa disso e quer criar seu próprio programa para controlar facilmente a porta serial sem ter que instalar bibliotecas em uma linguagem simples acessível a todos, SerialTool com Python é a ferramenta que você estava procurando.
Alguns programas que usam a porta serial oferecem algumas soluções de script, o que significa que você pode escrever seu código e executá-lo, mas muitas vezes você não conhece a linguagem ou precisa gastar horas para descobrir como integrar algumas linhas do seu código! Com o SerialTool e o Python embutido, você pode escrever seu script em Python e aproveitar todos os recursos do SerialTool sem limitações.
O SerialTool integra funções básicas na forma de uma biblioteca (já importada e integrada), e com algumas linhas, você pode procurar a porta serial desejada, abri-la, ler e escrever. O SerialTool cuidará de toda a gestão gráfica dos pacotes de entrada e saída e permite que você use seu código Python para realizar as funções que deseja sem limitações.
Para facilitar a escrita e os testes em Python, o SerialTool fornece um editor de texto onde você pode fazer upload e modificar seus scripts. O editor integrado reconhece a sintaxe Python e permite a elaboração fácil do código.

Mais detalhes sobre a porta serial e Python

Aprofundando-se nas funcionalidades oferecidas pelo SerialTool e sua biblioteca Python integrada, vamos começar com um exemplo prático.
Você pretende entregar a um cliente ou colega um software que permite o carregamento de firmware em um dispositivo criado por nós e atualizável via porta serial. Um cenário bastante comum em que se deve criar um software do zero, possivelmente multiplataforma, e integrar uma série de aspectos começando pela interface gráfica e interação do usuário, seleção de arquivos e mensagens de erro ou confirmação.
Neste caso, ao contrário de outras linguagens, o Python facilita o trabalho, mas ao mesmo tempo exige a instalação e acompanhamento de bibliotecas externas.
O SerialTool resolve o problema em sua base ao oferecer algumas funções simples que permitem uma seleção rápida e intuitiva da porta serial, Caixas de Diálogo para carregamento e salvamento de arquivos, e Caixas de Mensagem para informar o usuário sobre a execução do programa.
Essas são funções muito simples que são chamadas rapidamente, nativas nas plataformas onde o SerialTool pode ser instalado (Windows, MacOS e Linux). Isso elimina completamente as dependências de bibliotecas externas, e as funções básicas de interação com o usuário são feitas de forma simples, rápida e intuitiva em poucas linhas de código.

Voltando ao nosso exemplo básico, começamos fechando todas as portas ativas e procurando por portas seriais disponíveis usando a função SerialTool.scan e a seleção da porta serial pelo usuário com a função SerialTool.gui_selectport.
Neste ponto, sabemos a porta que nosso usuário deseja usar, tudo o que temos que fazer é abri-la usando a função SerialTool.open com as configurações de parâmetros ou com parâmetros já existentes no GUI. Uma vez que a porta serial está aberta, podemos solicitar o carregamento do arquivo usando a função SerialTool.gui_loadfile, abrir o arquivo usando as funções nativas em Python, e solicitar confirmação para a execução do download do firmware com a função SerialTool.gui_showmessage.
Chegamos ao momento em que escrevemos o buffer presente no nosso arquivo com SerialTool.write indicando o número de bytes a escrever e aguardamos a resposta (se esperada) do dispositivo a ser atualizado com o comando SerialTool.read até o final da nossa atualização.
Poucos e simples comandos que permitem escrever seu próprio programa para atualizar seu dispositivo ou um dispositivo de terceiros em poucos minutos.
Parece complicado? O SerialTool fornece exemplos bem comentados e integrados.

Exemplos Integrados para Porta Serial em Python

Para facilitar o entendimento e a obtenção de resultados, o SerialTool integra diretamente exemplos funcionais e comentados que promovem o uso imediato das funções integradas. Uma grande vantagem é dada pelo fato de que as funções integradas não requerem quaisquer bibliotecas externas de Python para operar uma porta serial.
Com a instalação básica do Python, nosso exemplo já está funcional. Nos exemplos fornecidos, todas as funções disponíveis na biblioteca SerialTool para Python integradas ao nosso software estão disponíveis. Será suficiente adaptar algumas partes do código proposto para a personalização de seus scripts e em poucos minutos, seu programa para a porta serial está desenvolvido.
Os exemplos já propostos no SerialTool serão integrados versão por versão para sempre ter uma visão direta das funções disponíveis e sua implementação sem ter que pesquisar na Internet.
Documentação dedicada sobre as funções do SerialTool está disponível em nossa página API do SerialTool para Python.

Instalação do Python

Muitos tutoriais começam com a instalação do Python em seu PC, se ele ainda não estiver disponível, e a configuração para conseguir pelo menos um mínimo de usabilidade. Deixamos essa parte por último porque o SerialTool, através do menu Ambiente Python, pesquisará e testará a configuração existente para você assim que o Python estiver instalado em seu PC.
Como mencionado, o Python é uma linguagem livre e interpretada e requer o interpretador instalado em seu PC. Para aqueles familiarizados com essa linguagem, não há muitas explicações a dar, no entanto, para aqueles que devem tentar pela primeira vez essa incrível linguagem e seu ambiente de desenvolvimento, os passos a seguir são bastante simples.
Para Windows, basta baixar a versão mais recente do Python (3.12 no momento da escrita deste documento) e executar o executável até sua instalação completa.
Para MacOS, o Python já deve estar instalado provavelmente referindo-se à versão 2 do Python e é necessário atualizá-lo para a versão mais recente (3.12 no momento da escrita deste documento) baixando o executável diretamente do site oficial do Python e prosseguindo com a instalação (como no Windows).

Nota para usuários do MacOS: Na versão atual do SerialTool para MacOS, o framework Python 3.12 já está integrado para cumprir os requisitos da Apple em relação à assinatura de código. Se você deseja usar uma versão diferente instalada em seu sistema, pode alterar as configurações no menu "Python Environment".

Para Linux, será necessário instalá-lo via linha de comando Ubuntu sudo apt-get install python3 ou Fedora sudo dnf install python3
Se você tiver alguma dúvida ou dificuldade na instalação do Python, sempre pode consultar o site oficial ou as dezenas de tutoriais disponíveis online.

Configuração e configuração do ambiente Python.


Uma vez instalado e verificada a instalação a partir do menu "Ambiente Python", bastará pressionar o botão "Verificar Instalação" para importar a configuração atual do Python e salvá-la para as próximas inicializações do SerialTool.

Você está pronto! Carregue os primeiros exemplos e pressione o botão [RUN] para começar sua aventura com o SerialTool e Python escrevendo seu primeiro programa para a porta serial.

Algumas informações adicionais

Para facilitar a escrita de scripts, o editor incorporado possui os recursos típicos de um IDE, mas não permite depuração no momento.
Entre as opções disponíveis, é aconselhável sempre selecionar a opção "Fechar automaticamente as portas seriais quando o script terminar de executar." Se seu script encontrar erros de escrita, o SerialTool providenciará o fechamento de qualquer porta serial aberta para evitar ter que fechá-las em inicializações subsequentes do script.
Para interromper o script e sair, não é aconselhável usar a função sys.exit(), pois isso causaria o fechamento total do SerialTool, pois o Python está integrado. Se necessário interromper a execução do script via código-fonte, a função SerialTool.stopscript está disponível.
Se você se encontrar dentro de um loop, é possível interromper a execução via o botão [STOP] diretamente da GUI.
Como o Python está diretamente integrado ao SerialTool, é importante lembrar que seu script se torna parte dos processos do SerialTool. Nesse sentido, quando você inclui loops While True em seu ciclo, é crucial emparelhá-los com um pequeno sono (tipicamente 0,1 segundos) usando a função time.sleep(0.1) (da biblioteca de tempo) para permitir a execução dos vários processos principais da GUI; caso contrário, você corre o risco de congelar completamente o aplicativo.
Não se preocupe excessivamente, pois nossos exemplos destacam os pontos críticos onde inserir esses pequenos atrasos.

Perguntas Frequentes

A integração do Python é limitada a alguma funcionalidade?
NÃO. Todas as funcionalidades dos scripts Python estão diretamente disponíveis, incluindo o carregamento de bibliotecas externas (se presentes no sistema).

O SerialTool e o Python funcionam em todos os sistemas operacionais?
SIM. Em todas as plataformas onde o SerialTool está disponível e o Python está disponível, seu uso é possível, ou seja, Windows, MacOS e Linux.

É necessário baixar e instalar o Python?
SIM. O interpretador Python deve estar presente no PC onde se pretende usá-lo. O SerialTool é baseado no Python3 e a compatibilidade retroativa com o Python2 depende diretamente da compatibilidade entre as duas versões. Recomenda-se aos usuários do Python2 que usem o Python3 de qualquer forma.

Como o Python interage com o SerialTool?
O script Python interage através da biblioteca SerialTool diretamente integrada ao nosso software chamando as funções desejadas. Os parâmetros definidos via Python, incluindo a abertura e o fechamento da porta serial, estão diretamente vinculados à interface do usuário principal. Essencialmente, você pilota o SerialTool diretamente do Python através da biblioteca SerialTool e suas funções.

Posso continuar a usar as funções do SerialTool?
SIM. Todas as funções do SerialTool permanecem disponíveis, AutoAnswer, Alarm, SerialScope, exibição de pacotes, Gravação de Dados, Envio de pacotes para a rede, etc. estão e permanecem disponíveis e selecionáveis ​​da interface do usuário.

É possível usar várias portas simultaneamente?
SIM. A característica básica do SerialTool é a gestão de várias portas seriais simultaneamente. A partir do Python, é possível atribuir o número de série a ser usado à porta serial que você pretende usar através da função SerialTool.assignPort.

Sempre tenho que usar a GUI para abrir e configurar as portas antes de usar?
NÃO. Como reiterado, a gestão das portas seriais está disponível diretamente do Python.

Posso também definir os parâmetros RTS e DTR?
SIM. A biblioteca permite que você pilote diretamente a configuração dos pinos RTS e DTR ao abrir a porta serial e durante a execução do script.

Posso solicitar a implementação de outras funções na biblioteca SerialTool?
SIM. Qualquer implementação adicional de funções para a biblioteca SerialTool em Python será considerada e implementada, quando possível e com base na dinâmica de desenvolvimento do SerialTool.

Que tipo de suporte posso ter?
Nossa equipe está disponível para ajudá-lo a integrar seus scripts para facilitar a elaboração de seus scripts ou identificar quaisquer erros. O suporte não está incluído na elaboração de scripts Python reais ou por encomenda. O suporte está relacionado à integração do Python com o SerialTool.