Chapter 13 Comunicación de datos
9. hasta 16º byte: diversos datos sobre el suceso
13.7.1. Funciones para consultar el registrador de datos
En el siguiente ejemplo de código se emplean seis funciones para la 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 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
strncpy (&string[2], p, 4);
// Calcular suma de prueba: XOR invertido de todos los bytes
// sin suma de prueba y <CR> for (i = 0;
i < 11; i ++)
Heracell 150i / 240i GP 50159353_B_06-2020
171
Thermo Scientific