Dicas sobre desenvolvimento de software, gestão e tributações

Rede Social

12 de novembro de 2015

Leitura em leitores de código de barras com porta serial C#


Nesta postagem irei mostrar uma forma simples de realizar comunicação com leitor de código de barras através da porta serial.
Tanto a abertura de comunicação, quanto encerramento, além da leitura do código através da porta.
No caso eu utilizzei um leitor a laser fixo, esses bastante utilizados em mercado.
Primeiramente é necessário declarar a classe de portas seriais
public SerialPort PortaSerial { get; set; }
 
Com isso vou criar o método de abertura de comunicação (abertura de porta) para o meu aplicativo saber que existe comunicação com aquela porta e também que se trata de um leitor por exemplo
public bool AbreComunicacao(string portaSerial)
{
 bool retorno = false;
 try
 {
  portaSerial = portaSerial.AsString().Trim();
  if (PortaSerial != null && PortaSerial.IsOpen)
  { EncerraComunicação(); }
  PortaSerial = new SerialPort(portaSerial);
  if (!PortaSerial.IsOpen)
  { PortaSerial.Open(); }
  if (PortaSerial.IsOpen)
  { retorno = true; }
  else
  { retorno = false; }
 }
 catch (Exception e)
 {
  //Exibir uma possível mensagem ou realizar algum tratamento de exceção
 }
 return retorno;
}
E para encerrar a comunicação o método é este
public bool EncerraComunicação()
{
 bool retorno = false;
 try
 {
  if (PortaSerial != null && PortaSerial.IsOpen)
   PortaSerial.Dispose();
  if (PortaSerial == null || !PortaSerial.IsOpen)
  { retorno = true; }
  else
  { retorno = false; }
 }
 catch(Exception ex)
 {
  //Exibir uma possível mensagem ou realizar algum tratamento de exceção
 }
 return retorno;
}
Agora na leitura vou colocar um método que também retorna verdadeiro ou falso para saber se houve leitura e a leitura será retornado como out no parâmetro, mas poderia por exemplo ter o retorno direto da leitura e caso
não fosse possível ler retornar uma string vazia, são várias as possibilidades depende de como você deseja utilizar o método. Vamos à ele que é bastante simples.
public bool LePorta(out string leitura)
{
 bool retorno = false;
 leitura = "";
 try
 {
  if (PortaSerial != null && PortaSerial.IsOpen)
  {
   leitura = PortaSerial.ReadExisting();
   retorno = true;
  }
  else
  { retorno = false; }
 }
 catch(Exception ex)
 {
  //Exibir uma possível mensagem ou realizar algum tratamento de exceção
 }
 return retorno;
}

0 comentários:

Postar um comentário