Foros del Web » Programando para Internet » PHP »

no logro que dos cadenas sean iguales para transmision datos

Estas en el tema de no logro que dos cadenas sean iguales para transmision datos en el foro de PHP en Foros del Web. Hola amigos del foro. En esta ocasión quisiera pedirles una colaboración. Estoy haciendo unas pruebas para enviar datos a través de un puerto COM1 y ...
  #1 (permalink)  
Antiguo 06/06/2012, 14:15
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 5 meses
Puntos: 181
no logro que dos cadenas sean iguales para transmision datos

Hola amigos del foro. En esta ocasión quisiera pedirles una colaboración. Estoy haciendo unas pruebas para enviar datos a través de un puerto COM1 y de momento me esta funcionando bien. Para eso estoy usando la clase php_serial_class. Por ejemplo para mandar el numero 255 lo que hago es lo siguiente.

Código PHP:
$numero="\xff";
$serial->sendMessage($numero); 
donde \x le indica que es un numero hexa y ff corresponde a 255.

Ahora lo que deseo hacer es que el usuario pueda mandar este número escribiendolo directamente desde un textarea de un formulario. Pense que iba a ser muy sencillo pero como me estaba generando problemas lo hago de la siguiente forma para hacer pruebas.

Código PHP:
function dectohex($dec){//funcion para convertir de decimal a hexa para transmision
   
$code="\x".dechex($dec); //transforma el 255 a hexa y le coloco ademas el \x
   
return $code
}
$decimal=255;
$hexa=dectohex($decimal);
        echo 
$hexa."<br />";//me devuelve esto \xff
        
$hexa2="\xff";
        echo 
$hexa2."<br />";//me devuelve esto ÿ
        
echo strcmp($hexa,$hexa2); // Como ven al no ser iguales da -1 
Supongo que a la función que yo empleo le debo dar algun comando de consola o algo así para que me entienda que es un número hexadecimal pero no se como hacerlo o donde buscar. Le agradezco de antemano a la persona que me pueda ayudar a solucionar el problema. Muchas gracias por su colaboración.
__________________
Blog de humor http://elcuasatar.net63.net/
  #2 (permalink)  
Antiguo 06/06/2012, 14:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: no logro que dos cadenas sean iguales para transmision datos

Lo que sucede es que al hacer el "\x" solo por ende no se está evaluando el hexadecimal, y al concatenarlo no se procesa como tal.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/06/2012, 15:03
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 5 meses
Puntos: 181
Respuesta: no logro que dos cadenas sean iguales para transmision datos

¿Existe alguna función en PHP que pueda tomar esta cadena concatenada y la logre evaluar como hexadecimal? he pensado que quizá se pueda hacer con la función eval() pero no se si existe algún comando de código que pueda hacer esto.

Gracias por cualquier dato o información para solucionar el problema o algún enlace para investigar. Gracias. Ya he logrado transmitir con enlace y ahora la idea es que el usuario escriba directamente el número.
__________________
Blog de humor http://elcuasatar.net63.net/
  #4 (permalink)  
Antiguo 06/06/2012, 15:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: no logro que dos cadenas sean iguales para transmision datos

Existe eval()
http://php.net/eval
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/06/2012, 16:07
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 5 meses
Puntos: 181
Respuesta: no logro que dos cadenas sean iguales para transmision datos

Bueno, después de pensarlo mucho y mirando los caracteres tan raros que me imprimia al cambiar los números supuse que "\xff" correspondía a la conversión en ASCII del 255. Por tanto hice algo mucho mas sencillo de lo que tenia y funciono perfectamente.

Código PHP:
$numero=chr($_POST['numero']);//convierto el número a ASCII
echo $numero;//visualmente verifico que se hizo la conversión
$serial->sendMessage($numero);//envío el mensaje a través del puerto 
Y eso fue todo para solucionar el problema. Lo dejo por si es de interés para alguien.
__________________
Blog de humor http://elcuasatar.net63.net/

Etiquetas: cadenas, formulario, iguales, transmision, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:15.