Instrucciones de manejo | HERAcell
13
13
Anexo Comunicación de datos
Anexo Comunicación de datos
Introducción del registrador de datos
Generación de número hexadecimal
Envío de telegrama
50115193 B / 11.2010
®
150i / 240i
13.7 Ejemplos de códigos del registrador de datos
Una entrada del registrador de datos tiene un tamaño de 16 bytes y está
estructurada como sigue:
1er. byte: indica el suceso (p.ej. puerta abierta 0x31, introducción de
medida 0x01)
2º byte: día de la introducción
3er. byte: mes
4º byte: año
5º byte: hora
6º byte: minuto
7º y 8º byte: estado del aparato
9º a 16º byte: diversos datos sobre el suceso
13.7.1 Funciones para consultar el registrador de datos
En el siguiento ejemplo de código se emplean seis funciones para la
Funciones
selección del registrador de datos:
• ahex
// convierte el signo ASCII recibido en un número hexadecimal,
• send_telegramm
// envía una demanda al registrador de datos,
• get_telegramm
// recibe una respuesta del registrador de datos,
• time_2_str
// hace de un valor hexadecimal signos ASCII en formato horario,
• num_2_string
// hace de un valor hexadecimal signos ASCII a introducir en un fichero,
• read_datalogger
// procesa los datos recibidos y los escribe en un fichero.
13.7.2 Ejemplo de código para consultar el registrador de datos
char ahex (char a)
char ahex(char a)
{
char i;
char hexa[16]="0123456789abcdef";
for (i = 0; i < 16; i++)
if (a == hexa[i])
return (i);
return 0;
}
send_telegramm
void send_telegramm(char *p)
{
char string [15];
unsigned char bcc = 0xFF;
char i;
// Copiar telegrama
strncpy (&string[0], "?:xxxx:00::00\r", 14);
// Introducir dirección de 4 dígitos
142