<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
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.<br>
Asi que funciono sin problemas, gracias por las molestias.<br>
<br>
Steven R. Davidson escribió:
<blockquote cite="mid:47D98CDC.4000203@verizon.net" type="cite">
  <pre wrap="">Hola Sebastián,

Sebastian Oldani wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">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??

    </pre>
  </blockquote>
  <pre wrap=""><!---->
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 <a class="moz-txt-link-abbreviated" href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a>
<a class="moz-txt-link-freetext" href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a>
Bajas: <a class="moz-txt-link-freetext" href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a>

  </pre>
</blockquote>
<br>
</body>
</html>