Menu

Agendar demonstração
← GTI Industrial Suite

Disponível

GTI IoT App

Aplicativo desktop instalável que abre o site GTI IoT com impressão e leitura locais.

Histórico de releases

Versões disponíveis

A maior versão verificada aparece primeiro. Releases anteriores permanecem disponíveis para compatibilidade e recuperação.

Catálogo atualizado em 13/10/2026

Versão 2.1.3

Publicada em 13/10/2026 Atualizada em 13/10/2026
Versão atual

# GTI IoT App 2.1.3 Suporte a impressoras da família Eltron (Zebra LP/TLP 2844), que falam **EPL2** e não ZPL. Encontrado na serigrafia da JJP Plásticos, em 13/10/2026, com a impressora na bancada. ## Por que era preciso A TLP 2844 é de 4 polegadas e 203 dpi como a ZD220 — mesmo estoque de etiqueta, mesmo layout — mas fala outro dialeto. A fila dela no Windows instala como `ZDesigner TLP 2844`, e o aplicativo escolhia fila térmica procurando "zdesigner" no nome: selecionava essa impressora para o perfil ZPL e enviava ZPL. Saía papel em branco, sem erro e sem registro. **O nome do driver mente sobre a linguagem.** ## Incluído - **linguagem EPL**, com a mesma arte do ZPL — a etiqueta já é uma imagem raster, então a saída é idêntica ponto a ponto; - **escolha de fila por linguagem**, não por nome: a família 2844 é reconhecida como EPL, e o perfil ZPL passa a recusá-la explicitamente; - **perfil escolhido pela linguagem do trabalho**: escolher Zebra EPL na página passa a usar o perfil EPL, em vez de sempre o perfil ativo; - **deslocamento respeitado no EPL**: o ajuste de alinhamento do perfil era ignorado em silêncio nessa linguagem. Impressora com desalinhamento mecânico passa a ter conserto por configuração, com recusa — e não corte silencioso — quando o deslocamento passa da área imprimível; - **Ctrl+F5** recarrega ignorando o cache. Sem isso, página trocada no servidor continuava vindo da cópia local, e o sintoma não parecia ter relação com a causa. ## Correções silenciosas, que não davam sinal nenhum - a tabela de perfis só aceitava `zpl` e `ppla`; o perfil EPL nunca entrava, e a inserção engolia a violação. Bases existentes são migradas; - a lista de linguagens estava escrita à mão em **cinco** lugares e cada um recusava num ponto diferente do caminho. Agora há uma só, e um teste reprova cópias novas. ## Validação concluída - 386 testes automatizados aprovados e 5 pulados; `ruff check src tests ops` limpo; - impressão verificada na própria TLP 2844, pelo caminho do usuário final, com leitura confirmada nas três formas: código de barras, QR e OCR; - velocidade e densidade medidas na impressora, comparando duas provas. ## Observações - Requer o servidor com suporte a EPL. Sem isso a opção não aparece na página. - Velocidade, densidade e intervalo entre etiquetas ainda estão fixos no servidor, embora o perfil local tenha esses campos. Em cliente com etiqueta ou impressora diferente, precisarão ser ajustados no código até que passem a vir do perfil.

Windows x64 gti-iot-app_2.1.3_windows-x64.exe · 25.2 MB 4fd0682a52958593808d84566942101c13abca9741fe09b56fd252f488ad5c46
Baixar

Versão 2.1.2

Publicada em 13/10/2026 Atualizada em 13/10/2026
Versão anterior

# GTI IoT App 2.1.2 Uma instância por sessão do Windows. Encontrado em atendimento na JJP Plásticos, em 13/10/2026: o aplicativo abria de novo a cada clique e o computador do cliente chegou a ficar com **três ícones na bandeja** — três processos disputando a mesma base local e a mesma fila de impressão. ## O defeito A guarda de instância única existia e nunca disparava. `ctypes.get_last_error()` só devolve valor quando a função é declarada com `use_last_error=True`; com `ctypes.windll` ela lê o erro que o próprio ctypes guardou, que nunca é preenchido, e devolve zero. Então `ERROR_ALREADY_EXISTS` jamais era visto e toda abertura passava como se fosse a primeira. No mesmo trecho, `CreateMutexW` estava sem `restype`: o identificador de 64 bits voltava truncado, e o fechamento operava sobre um valor que não era o do mutex. ## Incluído - **uma instância por sessão**, com o mutex nomeado funcionando de verdade; - **abrir duas vezes deixa de ser erro**: era registrado como `application_start_failed`, com rastro de exceção, poluindo justamente o log de quem foi investigar. Agora sai em silêncio, com uma linha de informação. ## Validação concluída - 377 testes automatizados aprovados e 5 pulados; `ruff check src tests ops` limpo. Quatro testes novos exercitam o mutex de verdade no Windows, e o primeiro **reprova a versão anterior**, que aceitava a segunda instância. ## Observações - Quando a segunda abertura é recusada, o aplicativo sai em silêncio. O ideal seria trazer a janela existente para frente, já que a pessoa clicou porque quer vê-lo; isso mexe no shell e ficou para depois.

Windows x64 gti-iot-app_2.1.2_windows-x64.exe · 25.2 MB 7369367aceecc2fe5ae8dd6a49298a56b012c8afa3fb498c23400fd180c45936
Baixar

Versão 2.1.1

Publicada em 13/10/2026 Atualizada em 13/10/2026
Versão anterior

# GTI IoT App 2.1.1 A 2.1.0 consertou a tela e o log, e a impressão continuou falhando na estação da JJP Plásticos. A causa era outra e mais abaixo, e atingia **todas** as chamadas HTTPS do aplicativo. Esta versão fecha isso, e mais dois defeitos encontrados no mesmo atendimento. ## O defeito principal No mesmo computador, a página de produção abria e a chamada de API morria em `CERTIFICATE_VERIFY_FAILED — unable to get local issuer certificate`. A diferença é quem valida: o WebView2 usa o Schannel do Windows, que busca a raiz sob demanda no programa de raízes da Microsoft; os clientes HTTP usavam o OpenSSL do Python, que só enxerga o que já está fisicamente na loja de certificados daquela máquina. Na estação da JJP não havia **nenhuma** raiz Sectigo — nem em `LocalMachine` nem em `CurrentUser` — e a nossa cadeia é Sectigo Public Server Authentication Root E46, via ZeroSSL. Sem ativar, a estação não vincula, e a página responde *"Não foi possível conectar este computador à impressão"*: o mesmo sintoma do defeito anterior, o que fez parecer que a atualização não tinha mudado nada. Eram **três** clientes HTTP com saída própria — estação, verificação de atualização e gateway. Consertar um deixava os outros dois quebrados na mesma máquina, pelo mesmo motivo, e foi o que aconteceu na primeira tentativa. ## Incluído - **TLS validado pela cadeia do Windows em todos os pontos de saída**, por um módulo único. Deixa de depender da loja local de cada estação, o que tornaria cada computador novo um incidente, e passa a funcionar também atrás de proxy corporativo que reassina TLS. Sem o pacote disponível, volta ao contexto padrão, que ainda verifica o certificado — falhar aberto aqui seria desligar a verificação. Um teste reprova qualquer cliente HTTP novo que esqueça o contexto; - **o botão "Verificar atualização" dizia apenas "tente novamente"**. O código era `except URLError: return _FETCH_ERROR`, sem uma linha de log — e o motivo real era certificado, não rede, de modo que tentar de novo nunca resolveria. Agora o motivo vai para o log, separando falha de certificado de falha de alcance; - **a tela de login abria no host geral, não no do cliente**. O operador caía no login central a cada abertura e perdia a empresa escolhida em "Trocar empresa". Era deliberado, com a justificativa de que sem barra de endereço o operador não poderia conferir o destino — premissa que caiu quando o shell ganhou barra de navegação. A origem lembrada passa pela mesma verificação de confiança da barra, então origem desconhecida ou de outro ambiente cai na raiz do ambiente; - **log da tela "Configurar impressão"**, que não escrevia nada entre abrir e fechar. Passa a registrar filas encontradas, perfil e fila escolhidos, tentativa de gravar, resultado, exceção com rastro, e o motivo quando o botão se recusa a gravar — dizendo qual das duas caixas está vazia; - **erro de certificado que se identifica**, na estação e no gateway: deixa de ser "Servidor indisponível", que manda procurar rede, e passa a dizer que a cadeia não pôde ser montada nesta máquina, marcado como não transitório; - **versão no executável**: o instalado não declarava versão nenhuma, e `FileVersion` voltava vazio, sem como confirmar o que estava na máquina do cliente. Os três executáveis passam a carregar o recurso de versão, lido da mesma fonte única que o build confere. ## Validação concluída - 371 testes automatizados aprovados e 5 pulados; `ruff check src tests ops` limpo; - prova contra produção reproduzindo a condição da estação: com loja de confiança vazia o OpenSSL falha com a mensagem idêntica à do cliente, e pela cadeia do Windows a mesma URL responde HTTP 200. O cliente real da estação atravessa o TLS e chega à API. ## Observações - Importar a raiz à mão em cada estação resolveria o sintoma e não a causa; esta versão dispensa esse passo. - A tela de perfil de impressão não teve o comportamento alterado além do log: se o erro relatado persistir, o log agora o identifica.

Windows x64 gti-iot-app_2.1.1_windows-x64.exe · 25.2 MB 5f2d76b111a2d7209cfbde0a2712a4dd96dfdea07bcb2b15c6eb1776896dc8dd
Baixar

Versão 2.1.0

Publicada em 13/10/2026 Atualizada em 13/10/2026
Versão anterior

# GTI IoT App 2.1.0 Correção da impressão de etiqueta que não funcionava em produção, e dos defeitos que esconderam a causa. Encontrados em atendimento na JJP Plásticos, em 13/10/2026, com o cliente esperando. ## O defeito principal A identidade da estação era guardada numa chave única para os três ambientes, enquanto o endereço do último acesso já era guardado **por ambiente**. Quem ativava o computador em desenvolvimento e depois apontava para produção ficava com uma estação que o outro servidor não conhece, e toda chamada autenticada respondia 404 — para sempre, sem forma de desfazer pela interface. A página agravava: ela só ativa o computador quando **não há** estação. Havendo uma inválida, tentava vincular, recebia 404 e desistia pedindo para recarregar a página, o que nunca resolveria. Resultado para quem usa: *"Não foi possível conectar este computador à impressão"* nos botões Zebra e Argox, enquanto o Imprimir PDF funcionava — porque o PDF não passa pelo aplicativo local. ## Incluído - **estação separada por ambiente**: desenvolvimento, teste e produção passam a ter identidade própria, e cada um se ativa sozinho na primeira vez. Vínculo antigo, sem ambiente, é descartado em vez de aproveitado: não há como saber de qual servidor ele veio, e adivinhar errado reproduz exatamente o defeito; - **erro de HTTP que diz onde falhou**: a mensagem passa a trazer método, URL e um trecho da resposta, e o próprio cliente registra a falha no log. Antes o log repetia "Servidor respondeu HTTP 404" milhares de vezes sem dizer de onde, e foi isso que transformou um defeito simples numa investigação de horas; - **janela "Configurar impressora" que travava**: as caixas de mensagem não informavam a janela dona e nasciam atrás do diálogo. A tela parecia congelada, nunca fechava, o perfil não era gravado — e a mensagem que explicaria a falha ficava escondida; - **log limpo de novo**: a leitura do status HTTP da navegação usava uma propriedade que só existe no evento de requisição, e falhava a cada resposta. Além de a barra de endereço nunca sinalizar erro, o log recebia um rastro de erro por resposta — mais de setecentos em vinte minutos. ## Validação concluída - 360 testes automatizados aprovados e 5 pulados; `ruff check src tests ops` limpo; - impressão verificada ponta a ponta em produção, na JJP Plásticos: três etiquetas em Zebra ZD220/ZPL, com a sequência registrada no servidor; - instalação verificada sobre a 2.0.0, preservando perfil de impressora e configuração da estação. ## Observações - Uma estação ativada por uma versão anterior será reativada automaticamente na primeira impressão após a atualização. Nada precisa ser feito à mão. - Corrigido também um teste que escrevia e apagava arquivos em `C:\ProgramData` da própria máquina, o que impedia gerar o instalador sem elevação e podia remover uma instância real do gateway.

Windows x64 gti-iot-app_2.1.0_windows-x64.exe · 25.2 MB a6e6ad45ea4d3e55f7978da9bc56cb5a387434141bc3f1f7eea0c560a94801f5
Baixar

Versão 2.0.0

Publicada em 11/10/2026 Atualizada em 11/10/2026
Versão anterior

# GTI IoT App 2.0.0 Impressão de etiqueta da JJP em ZPL na Zebra e PPLA na Argox, com o layout batendo com o original. Primeira versão principal: o incremento sai de 1.8.19 para 2.0.0 porque a impressão deixa de ser caminho único em PDF e passa a ser escolha do operador, com calibração própria de cada impressora. ## Incluído - impressão nativa Zebra/ZPL e Argox/PPLA, além do PDF, com escolha explícita e memória da última opção; - layout 100 × 81 mm fiel ao original: fontes, logo, QR Code e Code39, com a descrição do produto limitada a três linhas para não cobrir lote e quantidade; - calibração de alinhamento separada do layout e guardada **por impressora** — na Zebra ZD220 testada, +4 mm corrigiu o corte à esquerda, sem afetar as outras; - impressão reorganizada em componentes compartilhados pelo aplicativo e pela linha de comando, o que permite diagnosticar impressora sem recompilar e reinstalar; - diálogo do Windows que abria atrás da janela, corrigido; - autorização de reimpressão **antes** da seleção da impressora, e não depois; - proteção contra duplicação de impressão; - campo opcional para vários operadores, preservando quem é o responsável; - zoom persistente e melhorias de responsividade; - `ops/releases` para distribuir o mesmo binário nos três ambientes, com checksum e validação antes da ativação. ## Validação concluída - 339 testes automatizados aprovados e 5 pulados no aplicativo; `ruff check src tests ops` limpo; - 22 testes focados de etiqueta no servidor, mais `manage.py check` e `makemigrations --check` sem pendência; - `core.api.v2` com 135 testes e `service_management` com 151, após trazer o `development` para a branch; - impressão física na Zebra ZD220 por PDF e por ZPL, com texto no tamanho e na posição corretos e leitura dos códigos aprovada; - três pacotes gerados da mesma versão: instalador Windows, e `.deb` amd64 e arm64 para o Gateway Linux. ## Observações de operação - a escuridão foi ajustada de 15 para 20 **na configuração da impressora**, de propósito fora do layout: é característica do ribbon e do papel, não da etiqueta; - a calibração fica no perfil de cada impressora e é preservada na atualização. ## Pendente - validar instalação limpa, atualização e reversão pelo instalador publicado; - impressão física na Argox OS-214 Plus; - homologar no Azul antes da promoção ao Laranja.

Windows x64 gti-iot-app_2.0.0_windows-x64.exe · 25.2 MB fa6298d6c45d3883764a63a60c5383f43882718d776c74abfc7202f93678b17d
Baixar

Versão 1.8.19

Publicada em 27/09/2026 Atualizada em 27/09/2026
Versão anterior

Log detalhado do Gateway V2 via endpoint proprio (sem header), impressao de etiqueta JJP (log por job, selecao de fila), fix de sensor. Instale por cima da versao anterior.

Windows x64 gti-iot-app_1.8.19_windows-x64.exe · 25.2 MB e02a57afd2ee030b0b1bae5930a0a1f13be0a865f4a608bc36c9558564938bfd
Baixar

Versão 1.0.0

Cadastrada em 19/09/2026 Atualizada em 19/09/2026
Versão anterior
Windows x64 gti-iot-app_1.0.0_windows-x64.exe · 16.5 MB 51e08e61fc27c3ffee9f73e8c482de7452e7c857a23dfb32b2db48a96c273b4a
Baixar