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

Watchers

Forks

Releases

No releases published

Packages

No packages published