Pular para o conteúdo principal

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, ToledoP03 ou ToledoPrt1)

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

CampoTCP
ObrigatórioTipoConexao.Tcp, IP, PortaTcp (> 0), protocolo suportado
PadrãoTimeoutMs 3000, NewLine \r\n

Erros frequentes

  • ArgumentException se IP estiver vazio ou PortaTcp for nula/<= 0
  • TimeoutException se a balança não responder dentro de TimeoutMs
  • InvalidOperationException se ler sem estar conectado
  • NotSupportedException para protocolo ainda não implementado

Ver também