Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   Recibir datos del puerto serie en bytes. (https://www.clubdelphi.com/foros/showthread.php?t=61152)

REHome 27-10-2008 21:01:20

Recibir datos del puerto serie en bytes.
 
Hola:

En este enlace del mismo foro http://forums.microsoft.com/MSDN-ES/...6544&SiteID=11
Puedo enviar datos de un byte al puerto serie de esta manera:

Este código dentro de un Button

byte[] miBuffer = new byte[1];

miBuffer[0] = 0x74; // Letra "t" del ASCII.

this.serialPort1.Write(miBuffer, 0, miBuffer.Length);


Me gustaría recibir un byte, pero no se como se hace.
Por ejemplo:
Tengo 8 Button o botones en el formulario o Form1 para enviar datos de un bytes como muestra el código de ahí arriba. Otros 8 Button de sólo lectura, es decir, que sólo detecta activado o desactivado, 1 ó 0, True o False. Si recibe un bytes para un button, que lo reconozca.

Creo que con un if else me basta.

Un cordial saludo.

EDIT:
Tal vez no me expresé bien.

¿Cómo se recibe un byte al puerto serie serialPort1?

Por ejemplo:
Un 0x61 en haxadecimal en ASCII es la letra a. Desde que reciba el 0x61 al puerto serie del ordenador o PC que el botón que se muestra en la imagen de abajo, se lea un 1 o un 0. En este caso un 1.

0x61 = 1 // button1.Text = "1";
0x60 = 0 //button1.Text = "0";




Si recibe un 0x61 se ejecuta la instrucción // button1.Text = "1";
Si recibe un 0x60 se ejecuta la otra instrucción // button1.Text = "0";

Esto solo es para saber el estado.

Crandel 31-10-2008 17:50:10

Hola REHome, no se si entindo correctamente tu pregunta.

Tu duda es que codigo escribir para obtener un dato del puerto serie ? no creo que sea muy complicado, solo usa el metodo ReadByte o alguno similar para ir leyendo los datos. Igualmente si esta es la duda avisamen y te escribo algun ejemplo.

Si tu duda es como interpretar ese byte.
No se realmente cual es la funcion que quieres dar al dato recibido. Pero ten en cuenta que ese dato, ademas de ser interpretado como un char, tambien es un valor numerico en si mismo. Por otro lado puedes analizar cada un de los bits de ese dato, de manera mas simple asi:

Código:

if (dato & 0x07)
{
  button1.Text = "1";
}
else
{
  button1.Text = "0";
}

o en su version corta:

Código:

button1.Text = (dato & 0x07) != 0 ? "1" : "0";
Espero que te ayude


La franja horaria es GMT +2. Ahora son las 18:49:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi