Skip to content

Releases

Virtual Scaler - v0.3.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 21:32
4d47b9d

Added

  • Item de menu "Reiniciar comunicação" na bandeja, para reiniciar a leitura da porta serial sem fechar o programa.
  • Arquivo VERSION como fonte única da versão exibida em "Sobre".
  • Log em arquivo (virtual_scaler.log, ao lado do executável) substituindo os print() que se perdiam numa build --noconsole.
  • Lint automático (ruff) e checagem de build no CI a cada Pull Request.

Fixed

  • TrayIcon recebia o módulo scale em 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 com AttributeError ao 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.ini era resolvido em relação ao diretório de execução (cwd) em vez de junto ao executável.

Virtual Scaler - v0.2.0

Choose a tag to compare

@JohnAndante JohnAndante released this 09 Apr 20:32

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:

image

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 = 1

Caso 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

Pre-release

Choose a tag to compare

@JohnAndante JohnAndante released this 27 Mar 22:15

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.

Configuração exemplo - com0com

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.