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.
- Visão Geral
- Estrutura de Arquivos
- Funcionamento
- Configuração via .ini
- Como Executar
- Exemplo de Uso
- Contribuição
- Licença
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.
.
├── 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
- Bindings Go: Cada arquivo
*_bindings.gofaz a ponte entre o Go e as funções exportadas das DLLs, utilizandocgopara chamadas nativas. - Rotas REST: Os arquivos
*_routes.goexpõem endpoints HTTP para cada função relevante das DLLs, recebendo e respondendo em JSON. - Modularização: Cada tecnologia (impressora, balança) possui seus próprios arquivos de rotas e bindings, facilitando manutenção e expansão.
- main.go: Responsável por carregar configurações, inicializar o servidor Gin e registrar todas as rotas.
O arquivo config.ini armazena parâmetros de configuração do servidor.
[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.
-
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.inidevidamente preenchido
-
Compilar e rodar:
go build -ldflags -H=windowsgui -o servidor.exe
./servidor.exeO servidor será iniciado na porta definida no config.ini (padrão: 8080).
- 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.
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
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.