Pular para o conteúdo principal

Exemplo — conexão serial

Conecta a uma balança Toledo pela porta serial e lê o peso.

Pré-requisitos

  • Referência ao projeto src/Library/SDBalanca/SDBalanca.csproj
  • Porta serial disponível (ex.: COM3)
  • Protocolo Toledo (Auto, ToledoP03 ou ToledoPrt1)

Código

using System.IO.Ports;
using SDBalanca;
using SDBalanca.Enum;
using SDBalanca.Models;

var options = new BalancaOptions
{
TipoConexao = TipoConexao.Serial,
Protocolo = ProtocoloBalanca.ToledoP03,
PortaSerial = "COM3", // obrigatório
BaudRate = 9600, // padrão
Paridade = Parity.None, // padrão
DataBits = 8, // padrão
StopBits = StopBits.One, // padrão
TimeoutMs = 3000, // padrão
NewLine = "\r\n", // padrão
};

using var balanca = BalancaFactory.Create(options);

balanca.PesoAlterado += (_, peso) =>
{
Console.WriteLine($"Peso: {peso.PesoTexto} | estável={peso.Estavel}");
};

balanca.PesoEstavel += (_, peso) =>
{
Console.WriteLine($"Estável: {peso.PesoTexto}");
};

await balanca.ConectarAsync();

var leitura = await balanca.LerPesoAsync();
Console.WriteLine($"Leitura: {leitura.PesoTexto}");

await balanca.DesconectarAsync();

Opções obrigatórias vs padrão

CampoSerial
ObrigatórioTipoConexao.Serial, PortaSerial, protocolo suportado
PadrãoBaud 9600, Parity.None, 8 bits, StopBits.One, timeout 3000, NewLine \r\n

Erros frequentes

  • ArgumentException se PortaSerial estiver vazia
  • InvalidOperationException se chamar LerPesoAsync sem ConectarAsync
  • NotSupportedException se o protocolo não for Toledo

Ver também