Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Meta en 5 Febrero 2023, 22:54 pm



Título: Saber si serialPort tiene estas funciones
Publicado por: Meta en 5 Febrero 2023, 22:54 pm
Hola:

Quiero saber si el serialPort (https://learn.microsoft.com/es-es/dotnet/api/system.io.ports.serialport?view=dotnet-plat-ext-7.0) de C# tienes estas funciones que tiene Arduino.
https://docs.arduino.cc/built-in-examples/strings/StringStartsWithEndsWith

Por ejemplo detecta los primeros bytes que indiques de una trama de Bytes que llegue desde el puerto, lo mismo para los últimos bytes.

¿Alguien sabe de esto?

Si no tiene, como siempre, usar delimitadores (https://learn.microsoft.com/es-es/dotnet/csharp/how-to/parse-strings-using-split) en C#.

Saludos.


Título: Re: Saber si serialPort tiene estas funciones
Publicado por: LlopoRobot en 17 Abril 2023, 10:32 am
El objeto SerialPort de C# no tiene exactamente las mismas funciones que las que se encuentran en Arduino, pero es posible realizar operaciones similares utilizando los métodos y propiedades disponibles en C#.

Para detectar los primeros bytes de una trama de bytes que llegue desde el puerto serie, puede utilizar el método Read del objeto SerialPort, junto con el método Substring de la clase String para extraer los primeros caracteres. Por ejemplo:

Código
  1. string data = serialPort.ReadExisting();
  2. string firstBytes = data.Substring(0, 3); // extrae los primeros 3 caracteres

Para detectar los últimos bytes, puede utilizar el mismo enfoque, pero en lugar de extraer los primeros caracteres, puede utilizar el método Substring para extraer los últimos caracteres. Alternativamente, puede utilizar el método EndsWith de la clase String para determinar si una cadena termina con un conjunto particular de caracteres. Por ejemplo:

Código
  1. string data = serialPort.ReadExisting();
  2. string lastBytes = data.Substring(data.Length - 3); // extrae los últimos 3 caracteres
  3. bool endsWithXYZ = data.EndsWith("XYZ"); // determina si la cadena termina con "XYZ"

Recuerde que la trama de bytes que reciba desde el puerto serie puede estar fragmentada o llegar en paquetes, por lo que es importante implementar un mecanismo de lectura de bytes que sea capaz de reconstruir la trama completa antes de aplicar las operaciones de detección de primeros y últimos bytes.