Login
¡Actualmente no estás identificado! Introduce abajo tus datos de identificación para abrir una sesión. Necesitas tener las cookies activadas para identificarte.
Lectura de Datos
El comando está diseñado para la lectura de los datos actuales: nivel relativo, temperatura y frecuencia.
El comando es una secuencia de símbolos ASCII “D” y “O”. Después de recibir el comando “DO”, el programa responderá en forma de una secuencia de símbolos ASCII.
Por ejemplo: F=0AF9 t=1A N=03FF.0 <CR><LF>
donde F es el valor actual de frecuencia, t es el valor actual de temperatura en grados Celsius y N es el valor de nivel. Todos los valores están en formato hexadecimal.
En caso de que el valor de frecuencia supere FFFh, los datos se consideran no válidos.
Salida Periódica de Datos
El comando está diseñado para activar la salida periódica de datos. Después de procesar el comando, el sensor realiza la salida periódica de datos en formato de texto (códigos ASCII) de los siguientes valores: nivel relativo, temperatura y frecuencia.
Los datos se envían periódicamente con el intervalo configurado al configurar el sensor (software Omnicomm Configurator). Si el intervalo de salida de datos está establecido en cero, la salida de datos no se realizará.
La activación de la salida periódica de datos se realiza enviando la secuencia de caracteres “DP”. Después de procesar el comando se recibirá la línea de caracteres.
Por ejemplo: F=0AF9 t=1A N=03FF.0 <CR><LF>
donde F es el valor actual de frecuencia, t es el valor actual de temperatura en grados Celsius y N es el valor de nivel.
La desactivación de la salida periódica de datos se realiza después de recibir cualquier comando válido, reiniciar el procesador o desconectar la alimentación eléctrica.
Algoritmo de Cálculo del Checksum
El checksum se calcula utilizando el método de tabla descrito en Dallas APPLICATION NOTE 27: Understanding and Using Cyclic Redundancy Checks with Dallas Semiconductor iButton Products.
Se pueden utilizar los siguientes algoritmos para calcular el checksum con el polinomio x⁸ + x⁵ + x⁴ + 1 (lenguaje C):
Versión 1:
1 U8 CRC8 (U8 b, U8 crc)
2 {
3 U8 i = 8;
4 do {
5 if ( (b ^ crc) & 0x01) {
6 crc = ( (crc ^ 0x18) >> 1 ) | 0x80;
7 } else {
8 crc >>= 1;
9 }
10 b >>= 1;
11 } while (--i);
12 return crc;
13 }
Versión 2:
1 U8 CRC8(U8 data, U8 crc)
2 {
3 U8 i = data ^ crc;
4 crc = 0;
5 if(i & 0x01) crc ^= 0x5e;
6 if(i & 0x02) crc ^= 0xbc;
7 if(i & 0x04) crc ^= 0x61;
8 if(i & 0x08) crc ^= 0xc2;
9 if(i & 0x10) crc ^= 0x9d;
10 if(i & 0x20) crc ^= 0x23;
11 if(i & 0x40) crc ^= 0x46;
12 if(i & 0x80) crc ^= 0x8c;
13 return crc;
14 }