Repository navigation
Releases
Virtual Scaler - v0.3.0
Added
- Item de menu "Reiniciar comunicação" na bandeja, para reiniciar a leitura da porta serial sem fechar o programa.
- Arquivo
VERSIONcomo fonte única da versão exibida em "Sobre". - Log em arquivo (
virtual_scaler.log, ao lado do executável) substituindo osprint()que se perdiam numa build--noconsole. - Lint automático (
ruff) e checagem de build no CI a cada Pull Request.
Fixed
TrayIconrecebia o móduloscaleem vez da instância criada, deixando o ícone sem acesso real à balança.- Botões da tela "Sobre" executavam a ação na hora de montar a janela em vez de no clique.
messagebox.showerror(...).run_detached()quebrava comAttributeErrorao tentar reportar um erro real.- Validação de configuração aceitava valores inválidos (ex.:
"123abc"como peso) por falta de âncora nas regexes. config.iniera resolvido em relação ao diretório de execução (cwd) em vez de junto ao executável.
Virtual Scaler - v0.2.0
virtual_scaler
Balança virtual que envia informações constantemente para uma porta fixa
Pré-requisitos
É necessário ter o Python 3.6 ou superior instalado na máquina.
É importante também ter alguma ferramenta para visualizar a comunicação serial, como o PuTTY, ou o com0com.
Em programas como o com0com, criamos duas portas virtuais - uma será utilizada para enviar os dados, e a outra para receber. Assim, podemos testar a comunicação serial sem a necessidade de um dispositivo físico.
Abaixo um exemplo de configuração para o com0com:
Funcionamento
Ao executar o aplicativo, ele irá procurar por um config.ini no diretório onde ele foi executado. Caso não possua, ele irá criar um arquivo com as configurações padrão.
[CUSTOM]
comm_port = COM2
baud_rate = 9600
weight_type = fixed
weight_min = 0
weight_max = 0
weight_fixed = 1000
update_time = 1Caso o arquivo já exista, ele irá carregar as configurações presentes no arquivo.
Então, caso as configurações estejam corretas, ele irá imediatamente iniciar a comunicação com a porta e enviar os dados.
Caso as configurações estejam incorretas, ele irá acusar o erro e abrir uma janela de configuração para que o usuário possa alterar as configurações.
Funcionalidades
O programa irá enviar constantemente informações para a porta serial, seguindo o formato apontado via código:
def formatar_peso(self, peso):
peso_str = f"{peso:.0f}"
return f"\x02{peso_str.rjust(5, '0')}\x03"Ao iniciar, também é criado um ícone na bandeja do sistema, onde o usuário pode acessar as configurações do programa, ler as configurações gravadas atualmente, ou fechar o programa.
Configurações
No momento temos algumas opções de inicialização, como:
- Porta COM - O programa irá escanear e apontar as portas disponíveis, para então o usuário escolher uma porta específica
- Baud Rate - A taxa de transmissão de dados (no momento não tá fazendo a mínima diferença, essa informação não é utilizada na execução)
- Tipo de peso - Define se o peso será uma quantidade fixa ou aleatória
- Peso Fixo - Define o peso que será enviando caso o tipo seja fixo
- Peso Mímimo - Define o peso mínimo que será enviado caso o tipo de peso seja aleatório
- Peso Máximo - Define o peso máximo que será enviado caso o tipo de peso seja aleatório
- Intervalo de envio - Define o intervalo de tempo que o programa irá enviar as informações na porta serial
Contribuição
Caso queira contribuir com o projeto, basta fazer um fork do repositório e enviar um pull request com as alterações.
Licença
Esse projeto está sob a licença MIT.
Virtual Scaler - v0.1.0
Aplicativo para emular uma balança disparando peso para o sistema.
Requisitos
Para que ele funcione, é necessário que um aplicativo de virtualização de porta COM esteja instalado. Para essa operação, estamos utilizando o com0com.
Neste aplicativo, escolhemos uma porta para enviar os dados, e outra para "escutar" os dados enviados pela balança. No exemplo abaixo, enviamos as informações pela COM22, e escutamos as alterações na COM2.
Depois de instalado e configurado, é necessário reiniciar o computador para que as portas sejam registradas e aceitas corretamente pelo sistema.
Configuração
Em sumo, o processo é descompactar o arquivo compactado, e mover a pasta descompactada para o disco local C.
Depois disso instalar o com0com, e o .net. Depois disso copiamos o atalho "virtual_scaler.ink" para a pasta Inicializar.
Nesta versão a balança funciona por parâmetro, da seguinte maneira:
[-p] Porta de comunicação - Aceita tanto a numeração quanto o nome completo [COM1, COM2, 1, 2, ...] [-b] Baudrate - Aceita o número inteiro [2400, 9600, ...] [-t] Tipo de peso - Aceita essas duas palavras, mas estamos usando o fixo [fixo, aleatorio] [-f] Peso fixo que ficará persistindo - Aceita o peso em gramas [1000, 2000, 3000]
Para a utilização destes parâmetros, deve ser criado um atalho do executável "virtual_scaler.exe", e então adicionado os parâmetros após o texto existente no campo "Destino", como o exemplo abaixo:
C:\virtual_scaler\Virtual Scaler.exe" -p COM1 -b 9600 -t fixo -f 1000
Depois disso, copiar o atalho para a pasta de inicialização do windows.
O aplicativo funciona no plano de fundo, e nesta versão não acusa falha, sucesso ou interferência na inicialização. É possível verificar se o mesmo está aberto pelo gerenciador de tarefas, em detalhes. E é possível verificar se o mesmo está enviando o peso corretamente com o uso de testadores de balança, como este Testador de Balanças.

