none
Reconocimiento de trama en hexadecimal RRS feed

  • Pregunta

  • Hola buenos días.

    Tengo un problema tengo esta trama "7E A0 21 00 02 00 37 03 93 6E 92 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 07 65 5E 7E" ya esta en formato hexadecimal y quiero enviarla por TCP/IP pero no se como hacer que el programa me la reconozca con ese formato, porque la envió así nada mas y no me responde el servidor. estoy programando en C# o en visual Basic.

    martes, 17 de noviembre de 2020 14:51

Todas las respuestas

  • ya esta en formato hexadecimal

    Tienes que tener cuidado con estas cosas. Normalmente, cuando se transmite una informacion a un dispositivo que trabaja en binario, la informacion se envia asi, en binario. Pero el binario no es legible para los humanos, por lo que cuando esos datos binarios se presentan en un documento o una herramienta de visualizacion, se convierten en su representacion hexadecimal para mostrarlos. Solo porque la presentacion se realice en hexadecimal, no significa que ese formato sea comprensible para el dispositivo.

    Por ejemplo, imaginate que un dispositivo requiere que le envies dos bytes cuyos valores en binario son 1 y 2. Si esa misma informacion la presentas en hexadecimal es "01 02" que como ves ocupa 5 caracteres (que no es lo mismo que los 2 bytes que espera el dispositivo).

    Asi que esto tienes que cuidarlo. Tienes que enterarte bien de que es lo que espera tu servidor. Si espera datos en binario, no vale con enviarle la representacion hexadecimal de esos datos binarios.

    Si este es tu caso, en la respuesta anterior ya te han indicado una posible manera en la que puedes convertir una representacion hexadecimal en su equivalente en binario. Si no es ese el caso, y el dispositivo realmente requiere datos en hexadecimal, entonces el siguiente paso es averiguar que representacion requiere para los caracteres hexadecimales. Por ejemplo, no seria lo mismo enviar un string codificado en UTF-16 que codificado en ASCII, o enviar bytes cuyo valor en binario equivalga a cada digito hexadecimal. Es necesario comprender bien que es lo que realmente requiere tu comunicacion, no es suficiente con decir "esta en hexadecimal".

    martes, 17 de noviembre de 2020 16:17
    Moderador
  • Hola Cristian, 

    ¿Encontrasté la manera? 

    Saludos

    miércoles, 18 de noviembre de 2020 17:17
    Moderador
  • Gracias por tu respuesta, te explico el servidor es un medidor de energía ACE ITRON SL7000 el cual quiero interrogar para poder extraer los datos de algunas magnitudes eléctricas, dicho servidor solamente da respuesta al enviar la trama en hexadecimal es por esa razón que no se como hacer para que a la hora de enviar la trama el programa la reconozca que ya esta en hexadecimal y posterior a eso la envié en ese formato ... mejor dicho quiero hacer algo similar a la aplicación Hercules setup.
    jueves, 26 de noviembre de 2020 14:03
  • [...] enviar la trama en hexadecimal [...] ya esta en hexadecimal

    Insisto, decir que la trama "está" en hexadecimal no es suficientemente descriptivo. No nos dice qué es lo que realmente hay en la trama.

    ¿Hay un contenido binario que percibimos como hexadecimal cuando se muestra en formato visible para los humanos?

    ¿Hay una secuencia de caracteres (en qué codificación) que corresponden con un texto expresado en hexadecimal? En ese caso, ¿cómo van agrupados? ¿Existe en la trama un byte que representa un espacio en blanco entre cada dos dígitos hexadecimales? ¿Cada dos dígitos corresponden con dos nibbles de la trama, o cada dígito corresponde con un byte? En ese caso, ¿cuál es la codificación del byte? ¿ASCII?

    En resumidas cuentas, ¿la trama es binaria pero la describimos en hexadecimal o es una secuencia de caracteres que representan dígitos hexadecimales?

    En ambos casos eso se podría describir como "hexadecimal", sin que esa frase nos diga qué es lo que realmente hay en la trama.

    jueves, 26 de noviembre de 2020 18:14
    Moderador