Procesador Extraer rango de bits

Importante

De forma predeterminada, este procesador no está disponible. Póngase en contacto con el equipo de soporte de Opendatasoft si desea activar este procesador en su dominio.

Este procesador extrae un rango de bits arbitrario de un contenido hexadecimal o binario y lo convierte en uno de los tipos de datos siguientes: entero, entero sin signo o flotante.

Ejemplo de uso: Se puede emplear al procesar datos de una red de sensores, ya que los sensores suelen codificar sus cargas útiles en forma de contenido hexadecimal.

Establecer el procesador

Para establecer los parámetros del procesador Extraer rango de bits, siga las indicaciones de esta tabla.

Etiqueta

Descripción

Obligatorio

Ejemplo

Campo

Campo que contiene el contenido hexadecimal o binario.

column_a

Tipo de entrada

Tipo de contenido: hexadecimal o binario. Si no se establece este parámetro, el contenido se considera hexadecimal de forma predeterminada.

No

Hexadecimal o binario

Offset de bit de inicio

Offset de inicio correspondiente a la posición del primer bit. Empieza por 0.

0, 8, 16, ...

Offset de bit de parada

Offset de finalización correspondiente a la posición del último bit. Debe ser mayor que el offset de inicio.

7, 15, 31, ...

Convertir en

Formato deseado para enviar a la salida y convertir los datos.

int (entero), uint (entero sin signo) o float (flotante)

Campo de salida

Campo en que se visualizará el rango de bits extraído. Puede ser un campo existente seleccionado de la lista, o un campo nuevo creado con ese fin (en ese caso, elija Texto de entrada en la lista y escriba el nombre del campo nuevo en el área de texto que figura a continuación).

result

Ejemplo

Un sensor de temperatura envía un valor hexadecimal.

hexadecimal value : 0x1649

Este valor hexadecimal (2 bytes) contiene: - un valor decimal codificado en el primer byte - el identificador de sensor codificado en los 4 primeros bits del segundo byte - un conjunto de marcas en representación de la configuración del sensor, codificado en los 4 bits restantes

hexadecimal value : 0x1649          <- information sent by the sensor in hexadecimal
binary value : 00010110 01001001    <- same information in binary
  • El primer byte '00010110' es la temperatura en grados.

  • Los 4 bits '0100' siguientes son el identificador de sensor.

  • Los 4 bits '1001' siguientes son la configuración del sensor, pero solo queremos el primer bit.

En consecuencia, la canalización de procesamiento contendrá 3 procesadores Extraer rango de bits.

  • 1 procesador Extraer rango de bits de 0 a 8 para convertir en entero con signo (int) -> int_temperature

  • 1 procesador Extraer rango de bits de 8 a 12 para convertir en entero sin signo (uint) -> sensor_identifier

  • 1 procesador Extraer rango de bits de 12 a 13 para convertir en entero sin signo, en que 0 significa "Not OK" y 1 significa "OK" (uint) -> status

Extraer rango de bits 1

00010110 -> 22

Extraer rango de bits 2

0100 -> 4

Extraer rango de bits 3

1 -> OK

Resultado final:

Temperature : 22 °C
Identifier : 4
Sensor : OK