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,ToledoP03ouToledoPrt1)
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
| Campo | Serial |
|---|---|
| Obrigatório | TipoConexao.Serial, PortaSerial, protocolo suportado |
| Padrão | Baud 9600, Parity.None, 8 bits, StopBits.One, timeout 3000, NewLine \r\n |
Erros frequentes
ArgumentExceptionsePortaSerialestiver vaziaInvalidOperationExceptionse chamarLerPesoAsyncsemConectarAsyncNotSupportedExceptionse o protocolo não for Toledo