Skip to content

felipm/DllServer

Repository files navigation

DllServer

Servidor modular em Go para integração com dispositivos de automação comercial via DLLs (Impressora térmica e Balança), expondo endpoints REST para fácil integração com sistemas web ou desktop.

Sumário


Visão Geral

O DllServer foi criado para facilitar a comunicação entre sistemas modernos (web, desktop, mobile) e dispositivos legados que utilizam DLLs para automação comercial, como impressoras térmicas e balanças. O servidor expõe endpoints REST para cada função das DLLs, tornando a integração multiplataforma e desacoplada da linguagem original das bibliotecas.


Estrutura de Arquivos

.
├── main.go                  # Inicialização do servidor e registro das rotas principais
├── impressora_routes.go     # Endpoints REST para funções da impressora térmica
├── balanca_routes.go        # Endpoints REST para funções da balança
├── impressora_bindings.go   # Bindings Go para funções exportadas da DLL da impressora
├── balanca_bindings.go      # Bindings Go para funções exportadas da DLL da balança
├── config.ini               # Arquivo de configuração do servidor e dispositivos
└── README.md                # Este arquivo de documentação

Funcionamento

  1. Bindings Go: Cada arquivo *_bindings.go faz a ponte entre o Go e as funções exportadas das DLLs, utilizando cgo para chamadas nativas.
  2. Rotas REST: Os arquivos *_routes.go expõem endpoints HTTP para cada função relevante das DLLs, recebendo e respondendo em JSON.
  3. Modularização: Cada tecnologia (impressora, balança) possui seus próprios arquivos de rotas e bindings, facilitando manutenção e expansão.
  4. main.go: Responsável por carregar configurações, inicializar o servidor Gin e registrar todas as rotas.

Configuração via .ini

O arquivo config.ini armazena parâmetros de configuração do servidor.

Exemplo de config.ini:

[server]
host = 0.0.0.0
porta = 8080

[log]
ativar  = true
arquivo = log.txt
  • [server]: Configurações do servidor HTTP (host e porta).
  • [log]: Configurações de log do sistema (ativação e nome do arquivo de log).

O servidor lê este arquivo na inicialização para configurar corretamente o ambiente de execução.


Como Executar

  1. Pré-requisitos:

    • Go instalado (versão 1.18+ recomendada)
    • As DLLs necessárias na mesma pasta do executável ou no PATH do sistema
    • Arquivo config.ini devidamente preenchido
  2. Compilar e rodar:

go build -ldflags -H=windowsgui -o servidor.exe
./servidor.exe

O servidor será iniciado na porta definida no config.ini (padrão: 8080).


Exemplo de Uso

  • Para testar via curl:
curl -X POST http://localhost:8080/ImpressaoTexto -H "Content-Type: application/json" -d '{"dados":"Hello World","posicao":0,"stilo":0,"tamanho":0}'
  • Para impressora e balança, utilize os endpoints documentados nos respectivos arquivos de rotas.

Contribuição

Sinta-se à vontade para abrir issues ou pull requests para melhorias, correções ou novas integrações de dispositivos. Ele foi criado e baseado nas bibliotecas da elgin, disponível em https://github.com/ElginDeveloperCommunity


Licença

Este projeto é open-source e está sob a licença MIT.


Se precisar de exemplos de endpoints ou detalhes de cada rota, consulte os arquivos de rotas incluídos no projeto.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors