Exemplo — conexão TCP
Conecta a uma balança Toledo pela rede e lê o peso.
Pré-requisitos
- Referência ao projeto
src/Library/SDBalanca/SDBalanca.csproj - IP e porta TCP acessíveis
- Protocolo Toledo (
Auto,ToledoP03ouToledoPrt1)
Código
using SDBalanca;
using SDBalanca.Enum;
using SDBalanca.Models;
var options = new BalancaOptions
{
TipoConexao = TipoConexao.Tcp,
Protocolo = ProtocoloBalanca.Auto,
IP = "192.168.0.50", // obrigatório
PortaTcp = 4001, // obrigatório (> 0)
TimeoutMs = 3000, // padrão (conexão e I/O)
NewLine = "\r\n", // padrão (delimitador do frame)
};
using var balanca = BalancaFactory.Create(options);
balanca.PesoAlterado += (_, peso) =>
{
Console.WriteLine($"Peso: {peso.PesoTexto}");
};
balanca.PesoEstavel += (_, peso) =>
{
Console.WriteLine($"Estável: {peso.PesoTexto} em {peso.DataHora:HH:mm:ss}");
};
await balanca.ConectarAsync();
var leitura = await balanca.LerPesoAsync();
Console.WriteLine(
$"Leitura: {leitura.PesoTexto} | tara={leitura.Tara} | estável={leitura.Estavel}");
await balanca.DesconectarAsync();
Opções obrigatórias vs padrão
| Campo | TCP |
|---|---|
| Obrigatório | TipoConexao.Tcp, IP, PortaTcp (> 0), protocolo suportado |
| Padrão | TimeoutMs 3000, NewLine \r\n |
Erros frequentes
ArgumentExceptionseIPestiver vazio ouPortaTcpfor nula/<= 0TimeoutExceptionse a balança não responder dentro deTimeoutMsInvalidOperationExceptionse ler sem estar conectadoNotSupportedExceptionpara protocolo ainda não implementado