[C con Clase] Puerto Serie

Sebastian Oldani sebastianoldani en gmail.com
Jue Mar 13 22:35:09 CET 2008


Si, hola, gracias ya lo resolvi, le estaba mandando los datos a otra PC 
que tenia un programita de esas que vienen con los sistemas operativos 
escuchando lo qeu le mandaba desde mi otra PC, y cada vez qe mandaba 
0x00 se cortaba la cadena, pero lo necesitaba para un dispositivo que 
estoy construyendo, pero al final cuando vi lo que estaba mandando lo 
estaba mandando bien, se ve que el otro programa cortaba la cadena.
Asi que funciono sin problemas, gracias por las molestias.

Steven R. Davidson escribió:
> Hola Sebastián,
>
> Sebastian Oldani wrote:
>   
>> Aclaro, si hago una cadena de byte me anda bien.
>> estoy haciendo asi
>> byte cadena[16]={0x32,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34};
>> y envio cadena y me llega al otro lado.
>> ComPort->Write(cadena,16);
>> El tema es que si mando un 0x00 me lo envia cortado, como si ese cero 
>> estaria indicando que se termino la cadena. mientras que si mando 0x01 
>> en lugar de los ceros me lo envia bien, el problema es que necesito si o 
>> si enviar esos ceros.
>> Alguna sugerencia??
>>
>>     
>
> En primer lugar, siempre es aconsejable mandarnos algo de código en 
> estas situaciones. En segundo lugar, espero que no estés intentando 
> mostrar la "cadena" en pantalla haciendo algo así:
>
> ComPort->Read( cadena, 16 );
> cout << cadena;  // O cualquier función equivalente
>
> Esto no representa los valores contenidos en 'cadena', porque 'cout <<' 
> manipula 'cadena' como si fuese una cadena de caracteres y como no un 
> array de bytes.
>
> Por otra parte, comprueba que realmente se ha enviado los 16 bytes 
> guardando el valor retornado por 'Write()'. Por ejemplo,
>
> unsigned int nCant = ComPort->Write( cadena, 16 );
>
> if( nCant != 16 )
>    cerr << "ERROR" << endl;
>
> Asimismo, aplicamos la lógica a la lectura:
>
> unsigned int nCant = ComPort->Read( cadena, 16 );
>
> if( nCant != 16 )
>    cerr << "ERROR" << endl;
>
> También deberías comprobar que ambas comunicaciones usan la misma 
> velocidad de transmisión. Consulta la propiedad 'BaudRate'. Otro matiz a 
> tener en cuenta es el tiempo de desconexión de la propiedad 'Timeouts'. 
> Si es demasiada baja, quizá no dé tiempo a una lectura completa.
>
>
> Espero que esto te oriente.
>
> Steven
>
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>   

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080313/2f867866/attachment-0001.html>


Más información sobre la lista de distribución Cconclase