Código más simple si es posible

Iniciado por Meta, 5 Diciembre 2009, 23:10 PM

0 Miembros y 1 Visitante están viendo este tema.

Meta

Hola:

Teniendo este código:

Código (csharp) [Seleccionar]
private void button_b_Click(object sender, EventArgs e)
        {
            byte[] mBuffer = new byte[11];
            mBuffer[0] = 0x48; //ASCII letra "H".
            mBuffer[0] = 0x6F; //ASCII letra "o".
            mBuffer[0] = 0x6C; //ASCII letra "l".
            mBuffer[0] = 0x61; //ASCII letra "a".
            mBuffer[0] = 0x20; //ASCII letra " ".
            mBuffer[0] = 0x6D; //ASCII letra "m".
            mBuffer[0] = 0x75; //ASCII letra "u".
            mBuffer[0] = 0x6E; //ASCII letra "n".
            mBuffer[0] = 0x64; //ASCII letra "d".
            mBuffer[0] = 0x6F; //ASCII letra "o".
            mBuffer[0] = 0x2E; //ASCII letra ".".
            serialPort1.Write(mBuffer, 0, mBuffer.Length);
        }


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.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

raul338

Código (csharp) [Seleccionar]

private void button_b_Click(object sender, EventArgs e)
{
    mBuffer = System.Text.ASCIIEncoding.GetBytes("Hola mundo!");
    serialPort1.Write(mBuffer, 0, mBuffer.Length);
}


ahi lo tenes en una misera linea xD XD


raul338

otra cosa, en el foro preguntaste si podias enviar un archivo de texto, "hola.txt" por ejemplo, pero....la gran pregunta es como? o sea... puedes usar un TextReader (o StreamReader en caso de que me falle la memoria xD) y enviar el contenido con "ReadToEnd()".
Sino enviar el archivo? ...nose...con los comandos del puerto serie capaz,,, algun comando de "sea lo que sea" que este conectado al puerto serie....

Meta

Código (csharp) [Seleccionar]
string strSource = null;
            byte[] bteEndode = null;
            FileStream myFileStream = new FileStream(@"C:\senpir.pdf", FileMode.OpenOrCreate, FileAccess.ReadWrite);
         
         
           strSource = "asdf";
           bteEndode = Encoding.ASCII.GetBytes(strSource);
         
         
           myFileStream.Write(bteEndode, 0, bteEndode.Length);
         
           myFileStream.Close();


No funciona, no envía nada, aún así compila bien.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

raul338

pero ahi lo que estas haciendo es guardar un archivo de texto, no enviarlo por el puerto serie.

Has asi (no estoy seguro de que funcione, lo estoy haciendo al vuelo)
Código (csharp) [Seleccionar]

byte[] strParaEnviar = null;
FileStream archivoTexto = new OpenText(@"C:\senpir.txt");

bteEndode = Encoding.ASCII.GetBytes(archivoTexto.ReadToEnd());

myFileStream.Close();
serialPort1.Write(bteEndode , 0, bteEndode .Length);


y para guardar archivos desde el puerto serie debes hacer lo mismo pero a la inversa (Usar un CreateText para guardar, guardar el serialPort1.Read o Peek o lo que sea para leer bytes en un array de bytes para convertirlo con el ASCII.GetString() y lo escribes en el FileStream)