• Lunes 18 de Noviembre de 2024, 05:33

Autor Tema:  Código más simple si es posible  (Leído 1261 veces)

Meta

  • Miembro MUY activo
  • ***
  • Mensajes: 140
    • Ver Perfil
Código más simple si es posible
« en: Sábado 5 de Diciembre de 2009, 23:10 »
0
Hola:

Teniendo este código:

Código: C#
  1. private void button_b_Click(object sender, EventArgs e)
  2.         {
  3.             byte[] mBuffer = new byte[11];
  4.             mBuffer[0] = 0x48; //ASCII letra "H".
  5.             mBuffer[0] = 0x6F; //ASCII letra "o".
  6.             mBuffer[0] = 0x6C; //ASCII letra "l".
  7.             mBuffer[0] = 0x61; //ASCII letra "a".
  8.             mBuffer[0] = 0x20; //ASCII letra " ".
  9.             mBuffer[0] = 0x6D; //ASCII letra "m".
  10.             mBuffer[0] = 0x75; //ASCII letra "u".
  11.             mBuffer[0] = 0x6E; //ASCII letra "n".
  12.             mBuffer[0] = 0x64; //ASCII letra "d".
  13.             mBuffer[0] = 0x6F; //ASCII letra "o".
  14.             mBuffer[0] = 0x2E; //ASCII letra ".".
  15.             serialPort1.Write(mBuffer, 0, mBuffer.Length);
  16.         }
  17.  
  18.  

En este caso son 11 byte para enviar por puerto serie. Si fueran 50 sería una lista muy grande hacia abajo. ¿Hay alguna forma diferente hacerlo más simplificado con el mismo resultado?

Saludo.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Código más simple si es posible
« Respuesta #1 en: Domingo 6 de Diciembre de 2009, 00:57 »
0
No se si sea mas simple, pero podrias utilizar una variable de tipo string para guardar el texto. y luego utilizar el metodo Convert.ToByte() para hacer la conversion mediante un ciclo de la siguiente forma.

Código: C#
  1.  
  2. string mensaje = "Hola mundo.";
  3. for (int indice = 0; indice < mensaje.Length; indice++)
  4. {
  5.     mBuffer[indice] = Convert.ToByte(mensaje[indice]);
  6. }
  7.  
  8.  

A ver si te funciona.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Meta

  • Miembro MUY activo
  • ***
  • Mensajes: 140
    • Ver Perfil
Re: Código más simple si es posible
« Respuesta #2 en: Domingo 6 de Diciembre de 2009, 01:04 »
0
Gracias. Por casualidad funciona así:

Código: C#
  1.  
  2. using System.Drawing;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Windows.Forms;
  6.  
  7. namespace PSERIE
  8. {
  9.     public partial class Form1 : Form
  10.     {
  11.         public Form1()
  12.         {
  13.             InitializeComponent();
  14.         }
  15.  
  16.         private void button1_Click(object sender, EventArgs e)
  17.         {
  18.             serialPort1.Open();
  19.             byte[] mBuffer = Encoding.ASCII.GetBytes("Hola mundo.");
  20.             serialPort1.Write(mBuffer, 0, mBuffer.Length);
  21.             serialPort1.Close();
  22.         }
  23.     }
  24. }
  25.  
  26.  
  27.  

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Código más simple si es posible
« Respuesta #3 en: Domingo 6 de Diciembre de 2009, 12:34 »
0
Si, debería funcionar bien asi, saludos